HDDS-130. TestGenerateOzoneRequiredConfigurations should use GenericTestUtils#getTempPath to set output directory. Contributed by Sandeep Nemuri.
This commit is contained in:
parent
652bcbb3e4
commit
e9ea902299
@ -18,56 +18,57 @@
|
||||
|
||||
package org.apache.hadoop.ozone.genconf;
|
||||
|
||||
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
|
||||
import org.apache.hadoop.ozone.MiniOzoneCluster;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang.RandomStringUtils;
|
||||
import org.apache.hadoop.test.GenericTestUtils;
|
||||
import org.hamcrest.CoreMatchers;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Assert;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintStream;
|
||||
|
||||
|
||||
/**
|
||||
* Tests GenerateOzoneRequiredConfigurations.
|
||||
*/
|
||||
public class TestGenerateOzoneRequiredConfigurations {
|
||||
private static MiniOzoneCluster cluster;
|
||||
private static OzoneConfiguration conf;
|
||||
|
||||
private static File outputBaseDir;
|
||||
/**
|
||||
* Create a MiniDFSCluster for testing.
|
||||
* <p>
|
||||
* Ozone is made active by setting OZONE_ENABLED = true and
|
||||
* OZONE_HANDLER_TYPE_KEY = "distributed"
|
||||
* Creates output directory which will be used by the test-cases.
|
||||
* If a test-case needs a separate directory, it has to create a random
|
||||
* directory inside {@code outputBaseDir}.
|
||||
*
|
||||
* @throws IOException
|
||||
* @throws Exception In case of exception while creating output directory.
|
||||
*/
|
||||
@BeforeClass
|
||||
public static void init() throws Exception {
|
||||
conf = new OzoneConfiguration();
|
||||
cluster = MiniOzoneCluster.newBuilder(conf).setNumDatanodes(1).build();
|
||||
cluster.waitForClusterToBeReady();
|
||||
outputBaseDir = GenericTestUtils.getTestDir();
|
||||
FileUtils.forceMkdir(outputBaseDir);
|
||||
}
|
||||
|
||||
/**
|
||||
* Shutdown MiniDFSCluster.
|
||||
* Cleans up the output base directory.
|
||||
*/
|
||||
@AfterClass
|
||||
public static void shutdown() {
|
||||
if (cluster != null) {
|
||||
cluster.shutdown();
|
||||
}
|
||||
public static void cleanup() throws IOException {
|
||||
FileUtils.deleteDirectory(outputBaseDir);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests a valid path and generates ozone-site.xml.
|
||||
* Tests a valid path and generates ozone-site.xml by calling
|
||||
* {@code GenerateOzoneRequiredConfigurations#generateConfigurations}.
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
@Test
|
||||
public void generateConfigurationsSuccess() throws Exception {
|
||||
String[] args = new String[]{"-output", "."};
|
||||
GenerateOzoneRequiredConfigurations.main(args);
|
||||
public void testGenerateConfigurations() throws Exception {
|
||||
File tempPath = getRandomTempDir();
|
||||
String[] args = new String[]{"-output", tempPath.getAbsolutePath()};
|
||||
|
||||
Assert.assertEquals("Path is valid",
|
||||
true, GenerateOzoneRequiredConfigurations.isValidPath(args[1]));
|
||||
@ -79,6 +80,27 @@ public void generateConfigurationsSuccess() throws Exception {
|
||||
0, GenerateOzoneRequiredConfigurations.generateConfigurations(args[1]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests ozone-site.xml generation by calling
|
||||
* {@code GenerateOzoneRequiredConfigurations#main}.
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
@Test
|
||||
public void testGenerateConfigurationsThroughMainMethod() throws Exception {
|
||||
File tempPath = getRandomTempDir();
|
||||
String[] args = new String[]{"-output", tempPath.getAbsolutePath()};
|
||||
ByteArrayOutputStream outContent = new ByteArrayOutputStream();
|
||||
PrintStream oldStream = System.out;
|
||||
try (PrintStream ps = new PrintStream(outContent)) {
|
||||
System.setOut(ps);
|
||||
GenerateOzoneRequiredConfigurations.main(args);
|
||||
Assert.assertThat(outContent.toString(),
|
||||
CoreMatchers.containsString("ozone-site.xml has been generated at"));
|
||||
System.setOut(oldStream);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test to avoid generating ozone-site.xml when invalid permission.
|
||||
* @throws Exception
|
||||
@ -97,4 +119,10 @@ public void generateConfigurationsFailure() throws Exception {
|
||||
Assert.assertEquals("Config file not generated",
|
||||
1, GenerateOzoneRequiredConfigurations.generateConfigurations(args[1]));
|
||||
}
|
||||
|
||||
private File getRandomTempDir() throws IOException {
|
||||
File tempDir = new File(outputBaseDir, RandomStringUtils.randomAlphanumeric(5));
|
||||
FileUtils.forceMkdir(tempDir);
|
||||
return tempDir;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user