Skip to content

Commit

Permalink
[FLINK-5860] [tests] Replace java.io.tmpdir with JUnit TemporaryFolde…
Browse files Browse the repository at this point in the history
…r in tests

JUnit's TemporaryFolder is a better way to handle temporary folders
in tests as JUnit takes care of creation and cleanup of temporary
folders automatically.

This closes apache#6399.
  • Loading branch information
maheshsenni authored and zentol committed Jul 26, 2018
1 parent c503c21 commit 2c0dd54
Show file tree
Hide file tree
Showing 11 changed files with 131 additions and 239 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@
import org.apache.flink.types.IntValue;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

import java.io.File;


public class DelimitedInputFormatSamplingTest {
Expand Down Expand Up @@ -68,6 +72,11 @@ public class DelimitedInputFormatSamplingTest {
private static final int DEFAULT_NUM_SAMPLES = 4;

private static Configuration CONFIG;

@ClassRule
public static TemporaryFolder tempFolder = new TemporaryFolder();

private static File testTempFolder;

// ========================================================================
// Setup
Expand All @@ -76,11 +85,13 @@ public class DelimitedInputFormatSamplingTest {
@BeforeClass
public static void initialize() {
try {
testTempFolder = tempFolder.newFolder();
// make sure we do 4 samples
CONFIG = TestConfigUtils.loadGlobalConf(
new String[] { OptimizerOptions.DELIMITED_FORMAT_MIN_LINE_SAMPLES.key(),
OptimizerOptions.DELIMITED_FORMAT_MAX_LINE_SAMPLES.key() },
new String[] { "4", "4" });
new String[] { "4", "4" },
testTempFolder);


} catch (Throwable t) {
Expand Down Expand Up @@ -125,7 +136,7 @@ public void testNumSamplesOneFile() {
@Test
public void testNumSamplesMultipleFiles() {
try {
final String tempFile = TestFileUtils.createTempFileDir(TEST_DATA1, TEST_DATA1, TEST_DATA1, TEST_DATA1);
final String tempFile = TestFileUtils.createTempFileDir(testTempFolder, TEST_DATA1, TEST_DATA1, TEST_DATA1, TEST_DATA1);
final Configuration conf = new Configuration();

final TestDelimitedInputFormat format = new TestDelimitedInputFormat(CONFIG);
Expand Down Expand Up @@ -175,7 +186,7 @@ public void testSamplingOneFile() {
@Test
public void testSamplingDirectory() {
try {
final String tempFile = TestFileUtils.createTempFileDir(TEST_DATA1, TEST_DATA2);
final String tempFile = TestFileUtils.createTempFileDir(testTempFolder, TEST_DATA1, TEST_DATA2);
final Configuration conf = new Configuration();

final TestDelimitedInputFormat format = new TestDelimitedInputFormat(CONFIG);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,16 @@
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

public class EnumerateNestedFilesTest {
public class EnumerateNestedFilesTest {

@Rule
public TemporaryFolder tempFolder = new TemporaryFolder();

protected Configuration config;
final String tempPath = System.getProperty("java.io.tmpdir");

private DummyFileInputFormat format;

Expand Down Expand Up @@ -81,15 +85,8 @@ public void testOneNestedDirectoryTrue() {
String firstLevelDir = TestFileUtils.randomFileName();
String secondLevelDir = TestFileUtils.randomFileName();

File nestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir);
nestedDir.mkdirs();
nestedDir.deleteOnExit();

File insideNestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir + System.getProperty("file.separator") + secondLevelDir);
insideNestedDir.mkdirs();
insideNestedDir.deleteOnExit();
File insideNestedDir = tempFolder.newFolder(firstLevelDir, secondLevelDir);
File nestedDir = insideNestedDir.getParentFile();

// create a file in the first-level and two files in the nested dir
TestFileUtils.createTempFileInDirectory(nestedDir.getAbsolutePath(), "paella");
Expand Down Expand Up @@ -117,15 +114,8 @@ public void testOneNestedDirectoryFalse() {
String firstLevelDir = TestFileUtils.randomFileName();
String secondLevelDir = TestFileUtils.randomFileName();

File nestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir);
nestedDir.mkdirs();
nestedDir.deleteOnExit();

File insideNestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir + System.getProperty("file.separator") + secondLevelDir);
insideNestedDir.mkdirs();
insideNestedDir.deleteOnExit();
File insideNestedDir = tempFolder.newFolder(firstLevelDir, secondLevelDir);
File nestedDir = insideNestedDir.getParentFile();

// create a file in the first-level and two files in the nested dir
TestFileUtils.createTempFileInDirectory(nestedDir.getAbsolutePath(), "paella");
Expand Down Expand Up @@ -154,21 +144,9 @@ public void testTwoNestedDirectoriesTrue() {
String secondLevelDir = TestFileUtils.randomFileName();
String thirdLevelDir = TestFileUtils.randomFileName();

File nestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir);
nestedDir.mkdirs();
nestedDir.deleteOnExit();

File insideNestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir + System.getProperty("file.separator") + secondLevelDir);
insideNestedDir.mkdirs();
insideNestedDir.deleteOnExit();

File nestedNestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir + System.getProperty("file.separator") + secondLevelDir
+ System.getProperty("file.separator") + thirdLevelDir);
nestedNestedDir.mkdirs();
nestedNestedDir.deleteOnExit();
File nestedNestedDir = tempFolder.newFolder(firstLevelDir, secondLevelDir, thirdLevelDir);
File insideNestedDir = nestedNestedDir.getParentFile();
File nestedDir = insideNestedDir.getParentFile();

// create a file in the first-level, two files in the second level and one in the third level
TestFileUtils.createTempFileInDirectory(nestedDir.getAbsolutePath(), "paella");
Expand Down Expand Up @@ -199,23 +177,10 @@ public void testOnlyLevel2NestedDirectories() {
String firstNestedNestedDir = TestFileUtils.randomFileName();
String secondNestedNestedDir = TestFileUtils.randomFileName();

File testDir = new File(tempPath + System.getProperty("file.separator") + rootDir);
testDir.mkdirs();
testDir.deleteOnExit();

File nested = new File(testDir.getAbsolutePath() + System.getProperty("file.separator") + nestedDir);
nested.mkdirs();
nested.deleteOnExit();

File nestedNestedDir1 = new File(nested.getAbsolutePath() + System.getProperty("file.separator")
+ firstNestedNestedDir);
nestedNestedDir1.mkdirs();
nestedNestedDir1.deleteOnExit();

File nestedNestedDir2 = new File(nested.getAbsolutePath() + System.getProperty("file.separator")
+ secondNestedNestedDir);
nestedNestedDir2.mkdirs();
nestedNestedDir2.deleteOnExit();
File testDir = tempFolder.newFolder(rootDir);
tempFolder.newFolder(rootDir, nestedDir);
File nestedNestedDir1 = tempFolder.newFolder(rootDir, nestedDir, firstNestedNestedDir);
File nestedNestedDir2 = tempFolder.newFolder(rootDir, nestedDir, secondNestedNestedDir);

// create files in second level
TestFileUtils.createTempFileInDirectory(nestedNestedDir1.getAbsolutePath(), "paella");
Expand All @@ -240,36 +205,20 @@ public void testOnlyLevel2NestedDirectories() {
*/
@Test
public void testTwoNestedDirectoriesWithFilteredFilesTrue() {

String sep = System.getProperty("file.separator");

try {
String firstLevelDir = TestFileUtils.randomFileName();
String secondLevelDir = TestFileUtils.randomFileName();
String thirdLevelDir = TestFileUtils.randomFileName();
String secondLevelFilterDir = "_"+TestFileUtils.randomFileName();
String thirdLevelFilterDir = "_"+TestFileUtils.randomFileName();

File nestedDir = new File(tempPath + sep + firstLevelDir);
nestedDir.mkdirs();
nestedDir.deleteOnExit();

File insideNestedDir = new File(tempPath + sep + firstLevelDir + sep + secondLevelDir);
insideNestedDir.mkdirs();
insideNestedDir.deleteOnExit();
File insideNestedDirFiltered = new File(tempPath + sep + firstLevelDir + sep + secondLevelFilterDir);
insideNestedDirFiltered.mkdirs();
insideNestedDirFiltered.deleteOnExit();
File filteredFile = new File(tempPath + sep + firstLevelDir + sep + "_IWillBeFiltered");
File nestedNestedDirFiltered = tempFolder.newFolder(firstLevelDir, secondLevelDir, thirdLevelDir, thirdLevelFilterDir);
File nestedNestedDir = nestedNestedDirFiltered.getParentFile();
File insideNestedDir = nestedNestedDir.getParentFile();
File nestedDir = insideNestedDir.getParentFile();
File insideNestedDirFiltered = tempFolder.newFolder(firstLevelDir, secondLevelFilterDir);
File filteredFile = new File(nestedDir, "_IWillBeFiltered");
filteredFile.createNewFile();
filteredFile.deleteOnExit();

File nestedNestedDir = new File(tempPath + sep + firstLevelDir + sep + secondLevelDir + sep + thirdLevelDir);
nestedNestedDir.mkdirs();
nestedNestedDir.deleteOnExit();
File nestedNestedDirFiltered = new File(tempPath + sep + firstLevelDir + sep + secondLevelDir + sep + thirdLevelFilterDir);
nestedNestedDirFiltered.mkdirs();
nestedNestedDirFiltered.deleteOnExit();

// create a file in the first-level, two files in the second level and one in the third level
TestFileUtils.createTempFileInDirectory(nestedDir.getAbsolutePath(), "paella");
Expand Down Expand Up @@ -300,15 +249,8 @@ public void testGetStatisticsOneFileInNestedDir() {
String firstLevelDir = TestFileUtils.randomFileName();
String secondLevelDir = TestFileUtils.randomFileName();

File nestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir);
nestedDir.mkdirs();
nestedDir.deleteOnExit();

File insideNestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir + System.getProperty("file.separator") + secondLevelDir);
insideNestedDir.mkdirs();
insideNestedDir.deleteOnExit();
File insideNestedDir = tempFolder.newFolder(firstLevelDir, secondLevelDir);
File nestedDir = insideNestedDir.getParentFile();

// create a file in the nested dir
TestFileUtils.createTempFileInDirectory(insideNestedDir.getAbsolutePath(), SIZE);
Expand Down Expand Up @@ -338,20 +280,9 @@ public void testGetStatisticsMultipleNestedFiles() {
String secondLevelDir = TestFileUtils.randomFileName();
String secondLevelDir2 = TestFileUtils.randomFileName();

File nestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir);
nestedDir.mkdirs();
nestedDir.deleteOnExit();

File insideNestedDir = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir + System.getProperty("file.separator") + secondLevelDir);
insideNestedDir.mkdirs();
insideNestedDir.deleteOnExit();

File insideNestedDir2 = new File(tempPath + System.getProperty("file.separator")
+ firstLevelDir + System.getProperty("file.separator") + secondLevelDir2);
insideNestedDir2.mkdirs();
insideNestedDir2.deleteOnExit();
File insideNestedDir = tempFolder.newFolder(firstLevelDir, secondLevelDir);
File insideNestedDir2 = tempFolder.newFolder(firstLevelDir, secondLevelDir2);
File nestedDir = insideNestedDir.getParentFile();

// create a file in the first-level and two files in the nested dir
TestFileUtils.createTempFileInDirectory(nestedDir.getAbsolutePath(), SIZE1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ public void testGetStatisticsMultipleFilesNoCachedVersion() {
final long SIZE3 = 10;
final long TOTAL = SIZE1 + SIZE2 + SIZE3;

String tempDir = TestFileUtils.createTempFileDir(SIZE1, SIZE2, SIZE3);
String tempDir = TestFileUtils.createTempFileDir(temporaryFolder.newFolder(), SIZE1, SIZE2, SIZE3);

final DummyFileInputFormat format = new DummyFileInputFormat();
format.setFilePath(tempDir);
Expand Down Expand Up @@ -455,13 +455,13 @@ public void testGetStatisticsMultipleFilesMultiplePathsNoCachedVersion() throws
final long size3 = 10;
final long totalSize123 = size1 + size2 + size3;

String tempDir = TestFileUtils.createTempFileDir(size1, size2, size3);
String tempDir = TestFileUtils.createTempFileDir(temporaryFolder.newFolder(), size1, size2, size3);

final long size4 = 2051;
final long size5 = 31902;
final long size6 = 15;
final long totalSize456 = size4 + size5 + size6;
String tempDir2 = TestFileUtils.createTempFileDir(size4, size5, size6);
String tempDir2 = TestFileUtils.createTempFileDir(temporaryFolder.newFolder(), size4, size5, size6);

final MultiDummyFileInputFormat format = new MultiDummyFileInputFormat();
format.setFilePaths(tempDir, tempDir2);
Expand Down Expand Up @@ -532,7 +532,7 @@ public void testGetStatisticsMultipleOneFileWithCachedVersion() throws IOExcepti
@Test
public void testFileInputSplit() {
try {
String tempFile = TestFileUtils.createTempFileDirExtension(".deflate", "some", "stupid", "meaningless", "files");
String tempFile = TestFileUtils.createTempFileDirExtension(temporaryFolder.newFolder(), ".deflate", "some", "stupid", "meaningless", "files");
final DummyFileInputFormat format = new DummyFileInputFormat();
format.setFilePath(tempFile);
format.configure(new Configuration());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,11 @@
*/
public final class TestConfigUtils {

public static Configuration loadGlobalConf(String[] keys, String[] values) throws IOException {
return loadGlobalConf(getConfAsString(keys, values));
public static Configuration loadGlobalConf(String[] keys, String[] values, File tempDir) throws IOException {
return loadGlobalConf(getConfAsString(keys, values), tempDir);
}

public static Configuration loadGlobalConf(String contents) throws IOException {
final File tempDir = new File(System.getProperty("java.io.tmpdir"));
public static Configuration loadGlobalConf(String contents, File tempDir) throws IOException {
File confDir;
do {
confDir = new File(tempDir, TestFileUtils.randomFileName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,7 @@ public static String createTempFile(String contents) throws IOException {

// ------------------------------------------------------------------------

public static String createTempFileDir(long ... bytes) throws IOException {
File tempDir = new File(System.getProperty("java.io.tmpdir"));
public static String createTempFileDir(File tempDir, long ... bytes) throws IOException {
File f = null;
do {
f = new File(tempDir, randomFileName());
Expand All @@ -112,12 +111,11 @@ public static String createTempFileDir(long ... bytes) throws IOException {
return f.toURI().toString();
}

public static String createTempFileDir(String ... contents) throws IOException {
return createTempFileDirExtension(FILE_SUFFIX, contents);
public static String createTempFileDir(File tempDir, String ... contents) throws IOException {
return createTempFileDirExtension(tempDir, FILE_SUFFIX, contents);
}

public static String createTempFileDirExtension(String fileExtension, String ... contents ) throws IOException {
File tempDir = new File(System.getProperty("java.io.tmpdir"));
public static String createTempFileDirExtension(File tempDir, String fileExtension, String ... contents ) throws IOException {
File f = null;
do {
f = new File(tempDir, randomFileName(FILE_SUFFIX));
Expand Down
Loading

0 comments on commit 2c0dd54

Please sign in to comment.