Fix TestHardLinkCopyDirectoryWrapper if an assume is hit all directories must be closed

This commit is contained in:
Simon Willnauer 2016-05-26 12:20:49 +02:00
parent 268da5be45
commit 2aabed4ab6
1 changed files with 28 additions and 23 deletions

View File

@ -45,7 +45,8 @@ public class TestHardLinkCopyDirectoryWrapper extends BaseDirectoryTestCase {
Directory luceneDir_1 = newFSDirectory(dir_1); Directory luceneDir_1 = newFSDirectory(dir_1);
Directory luceneDir_2 = newFSDirectory(dir_2); Directory luceneDir_2 = newFSDirectory(dir_2);
try(IndexOutput output = luceneDir_1.createOutput("foo.bar", IOContext.DEFAULT)) { try {
try (IndexOutput output = luceneDir_1.createOutput("foo.bar", IOContext.DEFAULT)) {
CodecUtil.writeHeader(output, "foo", 0); CodecUtil.writeHeader(output, "foo", 0);
output.writeString("hey man, nice shot!"); output.writeString("hey man, nice shot!");
CodecUtil.writeFooter(output); CodecUtil.writeFooter(output);
@ -57,7 +58,7 @@ public class TestHardLinkCopyDirectoryWrapper extends BaseDirectoryTestCase {
assumeTrue("hardlinks are not supported", destAttr.fileKey() != null assumeTrue("hardlinks are not supported", destAttr.fileKey() != null
&& destAttr.fileKey().equals(sourceAttr.fileKey())); && destAttr.fileKey().equals(sourceAttr.fileKey()));
} catch (UnsupportedOperationException ex) { } catch (UnsupportedOperationException ex) {
assumeFalse("hardlinks are not supported", false); assumeFalse("hardlinks are not supported", true);
} }
HardlinkCopyDirectoryWrapper wrapper = new HardlinkCopyDirectoryWrapper(luceneDir_2); HardlinkCopyDirectoryWrapper wrapper = new HardlinkCopyDirectoryWrapper(luceneDir_2);
@ -66,11 +67,15 @@ public class TestHardLinkCopyDirectoryWrapper extends BaseDirectoryTestCase {
BasicFileAttributes destAttr = Files.readAttributes(dir_2.resolve("bar.foo"), BasicFileAttributes.class); BasicFileAttributes destAttr = Files.readAttributes(dir_2.resolve("bar.foo"), BasicFileAttributes.class);
BasicFileAttributes sourceAttr = Files.readAttributes(dir_1.resolve("foo.bar"), BasicFileAttributes.class); BasicFileAttributes sourceAttr = Files.readAttributes(dir_1.resolve("foo.bar"), BasicFileAttributes.class);
assertEquals(destAttr.fileKey(), sourceAttr.fileKey()); assertEquals(destAttr.fileKey(), sourceAttr.fileKey());
try(ChecksumIndexInput indexInput = wrapper.openChecksumInput("bar.foo", IOContext.DEFAULT)) { try (ChecksumIndexInput indexInput = wrapper.openChecksumInput("bar.foo", IOContext.DEFAULT)) {
CodecUtil.checkHeader(indexInput, "foo", 0, 0); CodecUtil.checkHeader(indexInput, "foo", 0, 0);
assertEquals("hey man, nice shot!", indexInput.readString()); assertEquals("hey man, nice shot!", indexInput.readString());
CodecUtil.checkFooter(indexInput); CodecUtil.checkFooter(indexInput);
} }
} finally {
// close them in a finally block we might run into an assume here
IOUtils.close(luceneDir_1, luceneDir_2); IOUtils.close(luceneDir_1, luceneDir_2);
} }
}
} }