diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 987e20c3a7b..6510e3b4ef3 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -233,6 +233,8 @@ Release 2.6.0 - UNRELEASED HDFS-6987. Move CipherSuite xattr information up to the encryption zone root. (Zhe Zhang via wang) + HDFS-7139. Unit test for creating encryption zone on root path. (Zhe Zhang via wang) + OPTIMIZATIONS HDFS-6690. Deduplicate xattr names in memory. (wang) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java index b80fd45e443..05b39c3342c 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java @@ -1177,4 +1177,25 @@ public class TestEncryptionZones { parser.parse(new InputSource(new StringReader(xml)), new DefaultHandler()); } + /** + * Test creating encryption zone on the root path + */ + @Test(timeout = 60000) + public void testEncryptionZonesOnRootPath() throws Exception { + final int len = 8196; + final Path rootDir = new Path("/"); + final Path zoneFile = new Path(rootDir, "file"); + final Path rawFile = new Path("/.reserved/raw/file"); + dfsAdmin.createEncryptionZone(rootDir, TEST_KEY); + DFSTestUtil.createFile(fs, zoneFile, len, (short) 1, 0xFEED); + + assertEquals("File can be created on the root encryption zone " + + "with correct length", + len, fs.getFileStatus(zoneFile).getLen()); + assertEquals("Root dir is encrypted", + true, fs.getFileStatus(rootDir).isEncrypted()); + assertEquals("File is encrypted", + true, fs.getFileStatus(zoneFile).isEncrypted()); + DFSTestUtil.verifyFilesNotEqual(fs, zoneFile, rawFile, len); + } }