Author: cnauroth Date: Thu Jan 30 01:46:19 2014 New Revision: 1562668 URL: http://svn.apache.org/r1562668 Log: HDFS-5702. FsShell Cli: Add XML based End-to-End test for getfacl and setfacl commands. Contributed by Vinay.
Added: hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cli/TestAclCLI.java hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testAclCLI.xml Modified: hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4685.txt Modified: hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4685.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4685.txt?rev=1562668&r1=1562667&r2=1562668&view=diff ============================================================================== --- hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4685.txt (original) +++ hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4685.txt Thu Jan 30 01:46:19 2014 @@ -44,6 +44,9 @@ HDFS-4685 (Unreleased) HADOOP-10241. Clean up output of FsShell getfacl. (Chris Nauroth via wheat9) + HDFS-5702. FsShell Cli: Add XML based End-to-End test for getfacl and + setfacl commands. (Vinay via cnauroth) + OPTIMIZATIONS BUG FIXES Added: hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cli/TestAclCLI.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cli/TestAclCLI.java?rev=1562668&view=auto ============================================================================== --- hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cli/TestAclCLI.java (added) +++ hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/cli/TestAclCLI.java Thu Jan 30 01:46:19 2014 @@ -0,0 +1,83 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.cli; + +import org.apache.hadoop.cli.util.CLICommand; +import org.apache.hadoop.cli.util.CommandExecutor.Result; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.hdfs.DFSConfigKeys; +import org.apache.hadoop.hdfs.MiniDFSCluster; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class TestAclCLI extends CLITestHelperDFS { + private MiniDFSCluster cluster = null; + private FileSystem fs = null; + private String namenode = null; + private String username = null; + + @Before + @Override + public void setUp() throws Exception { + super.setUp(); + cluster = new MiniDFSCluster.Builder(conf).numDataNodes(1).build(); + fs = cluster.getFileSystem(); + namenode = conf.get(DFSConfigKeys.FS_DEFAULT_NAME_KEY, "file:///"); + username = System.getProperty("user.name"); + } + + @After + @Override + public void tearDown() throws Exception { + super.tearDown(); + if (fs != null) { + fs.close(); + } + if (cluster != null) { + cluster.shutdown(); + } + } + + @Override + protected String getTestFile() { + return "testAclCLI.xml"; + } + + @Override + protected String expandCommand(final String cmd) { + String expCmd = cmd; + expCmd = expCmd.replaceAll("NAMENODE", namenode); + expCmd = expCmd.replaceAll("USERNAME", username); + expCmd = expCmd.replaceAll("#LF#", + System.getProperty("line.separator")); + expCmd = super.expandCommand(expCmd); + return expCmd; + } + + @Override + protected Result execute(CLICommand cmd) throws Exception { + return cmd.getExecutor(namenode).executeCommand(cmd.getCmd()); + } + + @Test + @Override + public void testAll() { + super.testAll(); + } +} Added: hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testAclCLI.xml URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testAclCLI.xml?rev=1562668&view=auto ============================================================================== --- hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testAclCLI.xml (added) +++ hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testAclCLI.xml Thu Jan 30 01:46:19 2014 @@ -0,0 +1,760 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/xsl" href="testConf.xsl"?> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<configuration> + <!-- Normal mode is test. To run just the commands and dump the output + to the log, set it to nocompare --> + <mode>test</mode> + + <!-- Comparator types: + ExactComparator + SubstringComparator + RegexpComparator + TokenComparator + --> + <tests> + <!-- Tests for setfacl and getfacl--> + <test> + <description>getfacl: basic permissions</description> + <test-commands> + <command>-fs NAMENODE -touchz /file1</command> + <command>-fs NAMENODE -getfacl /file1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm /file1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /file1</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rw-</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r--</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>getfacl: basic permissions for directory</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -getfacl /dir1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /dir1</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r-x</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : Add an ACL</description> + <test-commands> + <command>-fs NAMENODE -touchz /file1</command> + <command>-fs NAMENODE -setfacl -m user:bob:r-- /file1</command> + <command>-fs NAMENODE -getfacl /file1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm /file1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /file1</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rw-</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user:bob:r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>mask::r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r--</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : Add multiple ACLs at once</description> + <test-commands> + <command>-fs NAMENODE -touchz /file1</command> + <command>-fs NAMENODE -setfacl -m user:bob:r--,group:users:r-x /file1</command> + <command>-fs NAMENODE -getfacl /file1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm /file1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /file1</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rw-</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user:bob:r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group:users:r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>mask::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r--</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : Remove an ACL</description> + <test-commands> + <command>-fs NAMENODE -touchz /file1</command> + <command>-fs NAMENODE -setfacl -m user:bob:r--,user:charlie:r-x /file1</command> + <command>-fs NAMENODE -setfacl -x user:bob /file1</command> + <command>-fs NAMENODE -getfacl /file1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm /file1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /file1</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rw-</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user:charlie:r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r--</expected-output> + </comparator> + <comparator> + <type>RegexpAcrossOutputComparator</type> + <expected-output>.*(?!bob)*</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : Add default ACL</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -setfacl -m user:bob:r--,group:users:r-x /dir1</command> + <command>-fs NAMENODE -setfacl -m default:user:charlie:r-x,default:group:admin:rwx /dir1</command> + <command>-fs NAMENODE -getfacl /dir1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm -R /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /dir1</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user:bob:r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group:users:r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>mask::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:user::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:user:charlie:r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:group::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:group:admin:rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:mask::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:other::r-x</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : try adding default ACL to file</description> + <test-commands> + <command>-fs NAMENODE -touchz /file1</command> + <command>-fs NAMENODE -setfacl -m default:user:charlie:r-x /file1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm /file1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output>setfacl: Invalid ACL: only directories may have a default ACL</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : Remove one default ACL</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -setfacl -m user:bob:r--,group:users:r-x /dir1</command> + <command>-fs NAMENODE -setfacl -m default:user:charlie:r-x,default:group:admin:rwx /dir1</command> + <command>-fs NAMENODE -setfacl -x default:user:charlie /dir1</command> + <command>-fs NAMENODE -getfacl /dir1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm -R /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /dir1</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user:bob:r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group:users:r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>mask::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:user::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:group::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:group:admin:rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:mask::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:other::r-x</expected-output> + </comparator> + <comparator> + <type>RegexpAcrossOutputComparator</type> + <expected-output>.*(?!default:user:charlie).*</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : Remove all default ACL</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -setfacl -m user:bob:r--,group:users:r-x /dir1</command> + <command>-fs NAMENODE -setfacl -m default:user:charlie:r-x,default:group:admin:rwx /dir1</command> + <command>-fs NAMENODE -setfacl -k /dir1</command> + <command>-fs NAMENODE -getfacl /dir1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm -R /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /dir1</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user:bob:r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group:users:r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>mask::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r-x</expected-output> + </comparator> + <comparator> + <type>RegexpAcrossOutputComparator</type> + <expected-output>.*(?!default).*</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : Remove all but base ACLs for a directory</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -setfacl -m user:charlie:r-x,default:group:admin:rwx /dir1</command> + <command>-fs NAMENODE -setfacl -b /dir1</command> + <command>-fs NAMENODE -getfacl /dir1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm -R /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /dir1</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r-x</expected-output> + </comparator> + <comparator> + <type>RegexpAcrossOutputComparator</type> + <expected-output>.*(?!charlie).*</expected-output> + </comparator> + <comparator> + <type>RegexpAcrossOutputComparator</type> + <expected-output>.*(?!default).*</expected-output> + </comparator> + <comparator> + <type>RegexpAcrossOutputComparator</type> + <expected-output>.*(?!admin).*</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : Remove all but base ACLs for a file</description> + <test-commands> + <command>-fs NAMENODE -touchz /file1</command> + <command>-fs NAMENODE -setfacl -m user:charlie:r-x,group:admin:rwx /file1</command> + <command>-fs NAMENODE -setfacl -b /file1</command> + <command>-fs NAMENODE -getfacl /file1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm /file1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /file1</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rw-</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r--</expected-output> + </comparator> + <comparator> + <type>RegexpAcrossOutputComparator</type> + <expected-output>.*(?!charlie).*</expected-output> + </comparator> + <comparator> + <type>RegexpAcrossOutputComparator</type> + <expected-output>.*(?!admin).*</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : check inherit default ACL to file</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -setfacl -m default:user:charlie:r-x,default:group:admin:rwx /dir1</command> + <command>-fs NAMENODE -touchz /dir1/file</command> + <command>-fs NAMENODE -getfacl /dir1/file</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm -R /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /dir1/file</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rw-</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user:charlie:r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r--</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group:admin:rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r--</expected-output> + </comparator> + <comparator> + <type>RegexpAcrossOutputComparator</type> + <expected-output>.*(?!default).*</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl : check inherit default ACL to dir</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -setfacl -m default:user:charlie:r-x,default:group:admin:rwx /dir1</command> + <command>-fs NAMENODE -mkdir /dir1/dir2</command> + <command>-fs NAMENODE -getfacl /dir1/dir2</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm -R /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output># file: /dir1/dir2</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># owner: USERNAME</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output># group: supergroup</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>user:charlie:r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>group:admin:rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>mask::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:user::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:user:charlie:r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:group::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:group:admin:rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:mask::rwx</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>default:other::r-x</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>other::r-x</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>getfacl -R : recursive</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -setfacl -m user:charlie:r-x,group:admin:rwx /dir1</command> + <command>-fs NAMENODE -mkdir /dir1/dir2</command> + <command>-fs NAMENODE -setfacl -m user:user1:r-x,group:users:rwx /dir1/dir2</command> + <command>-fs NAMENODE -getfacl -R /dir1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm -R /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>ExactComparator</type> + <expected-output># file: /dir1#LF## owner: USERNAME#LF## group: supergroup#LF#user::rwx#LF#user:charlie:r-x#LF#group::r-x#LF#group:admin:rwx#LF#mask::rwx#LF#other::r-x#LF##LF## file: /dir1/dir2#LF## owner: USERNAME#LF## group: supergroup#LF#user::rwx#LF#user:user1:r-x#LF#group::r-x#LF#group:users:rwx#LF#mask::rwx#LF#other::r-x#LF##LF#</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl -R : recursive</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -mkdir /dir1/dir2</command> + <command>-fs NAMENODE -setfacl -R -m user:charlie:r-x,group:admin:rwx /dir1</command> + <command>-fs NAMENODE -getfacl -R /dir1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm -R /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>ExactComparator</type> + <expected-output># file: /dir1#LF## owner: USERNAME#LF## group: supergroup#LF#user::rwx#LF#user:charlie:r-x#LF#group::r-x#LF#group:admin:rwx#LF#mask::rwx#LF#other::r-x#LF##LF## file: /dir1/dir2#LF## owner: USERNAME#LF## group: supergroup#LF#user::rwx#LF#user:charlie:r-x#LF#group::r-x#LF#group:admin:rwx#LF#mask::rwx#LF#other::r-x#LF##LF#</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl --set : Set full set of ACLs</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -setfacl -m user:charlie:r-x,group:admin:rwx /dir1</command> + <command>-fs NAMENODE -setfacl --set user::rw-,group::r--,other::r--,user:user1:r-x,group:users:rw- /dir1</command> + <command>-fs NAMENODE -getfacl /dir1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm -R /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>ExactComparator</type> + <expected-output># file: /dir1#LF## owner: USERNAME#LF## group: supergroup#LF#user::rw-#LF#user:user1:r-x#LF#group::r--#LF#group:users:rw-#LF#mask::rwx#LF#other::r--#LF##LF#</expected-output> + </comparator> + </comparators> + </test> + <test> + <description>setfacl -x mask : remove mask entry along with other ACL entries</description> + <test-commands> + <command>-fs NAMENODE -mkdir /dir1</command> + <command>-fs NAMENODE -setfacl -m user:charlie:r-x,group:admin:rwx /dir1</command> + <command>-fs NAMENODE -setfacl -x mask::,user:charlie,group:admin /dir1</command> + <command>-fs NAMENODE -getfacl /dir1</command> + </test-commands> + <cleanup-commands> + <command>-fs NAMENODE -rm -R /dir1</command> + </cleanup-commands> + <comparators> + <comparator> + <type>ExactComparator</type> + <expected-output># file: /dir1#LF## owner: USERNAME#LF## group: supergroup#LF#user::rwx#LF#group::r-x#LF#other::r-x#LF##LF#</expected-output> + </comparator> + </comparators> + </test> + </tests> +</configuration> \ No newline at end of file