blob: 1a36be6652da62c013f3335ab189776d69805055 [file] [log] [blame]
<?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 ls -->
<test> <!-- TESTED -->
<description>ls: file using absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -ls /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: file using relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -ls file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: files using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -ls file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: directory using absolute path</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -ls /</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: directory using relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir1</command>
<command>-fs NAMENODE -ls </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: directory using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir1</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir3</command>
<command>-fs NAMENODE -mkdir -p dir4</command>
<command>-fs NAMENODE -ls </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: file/directory that does not exist in /</description>
<test-commands>
<command>-fs NAMENODE -ls /file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: file/directory that does not exist in home directory (/user/username)</description>
<test-commands>
<command>-fs NAMENODE -ls /user</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `/user': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: Non-URI input file at Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -ls NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: file at hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -ls hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: Non-URI input file at Namenode's path using globing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -ls NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: file at hdfs:// path using globing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -ls hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: Non-URI input dir at Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p NAMENODE/user/dir1</command>
<command>-fs NAMENODE -ls hdfs:///user/</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///user/dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>Found [0-9] items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///user/dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: dir at hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p hdfs:///user/dir1</command>
<command>-fs NAMENODE -ls hdfs:///user/</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///user/dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>Found [0-9] items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///user/dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: Non-URI input dir at Namenode's path using globing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p NAMENODE/user/dir1</command>
<command>-fs NAMENODE -mkdir -p NAMENODE/user/dir2</command>
<command>-fs NAMENODE -mkdir -p NAMENODE/user/dir3</command>
<command>-fs NAMENODE -ls hdfs:///user/</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///user/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>Found [0-9] items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///user/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///user/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///user/dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: dir at hdfs:// path using globing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p hdfs:///user/dir1</command>
<command>-fs NAMENODE -mkdir -p hdfs:///user/dir2</command>
<command>-fs NAMENODE -mkdir -p hdfs:///user/dir3</command>
<command>-fs NAMENODE -ls hdfs:///user/</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///user/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>Found [0-9] items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///user/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///user/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///user/dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: non-existent file/directory at hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -ls hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<!-- no cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `hdfs:///file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: non-existent file/directory in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -ls NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<!-- no cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: whitespaces in an absolute path to a file</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p "/a path with/whitespaces in directories"</command>
<command>-fs NAMENODE -touchz "/a path with/whitespaces in directories/and file names"</command>
<command>-fs NAMENODE -ls "/a path with/whitespaces in directories"</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r "/a path with"</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-z]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/a path with/whitespaces in directories/and file names</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: whitespaces in a relative path to a file</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p "a path with/whitespaces in directories"</command>
<command>-fs NAMENODE -touchz "a path with/whitespaces in directories/and file names"</command>
<command>-fs NAMENODE -ls "a path with/whitespaces in directories"</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r "a path with"</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-z]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*a path with/whitespaces in directories/and file names</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: whitespaces in a scheme-qualified path to a file</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p "NAMENODE/a path with/whitespaces in directories"</command>
<command>-fs NAMENODE -touchz "NAMENODE/a path with/whitespaces in directories/and file names"</command>
<command>-fs NAMENODE -ls "NAMENODE/a path with/whitespaces in directories"</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r "NAMENODE/a path with"</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-z]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/a path with/whitespaces in directories/and file names</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: whitespaces in an absolute path to a file, using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p "/a path with/whitespaces in directories"</command>
<command>-fs NAMENODE -touchz "/a path with/whitespaces in directories/and file names"</command>
<command>-fs NAMENODE -touchz "/a path with/whitespaces in directories/and file names 2"</command>
<command>-fs NAMENODE -ls "/a*/w*"</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r "/a path with"</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 2 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-z]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/a path with/whitespaces in directories/and file names</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-z]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/a path with/whitespaces in directories/and file names 2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: whitespaces in a relative path to a file, using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p "a path with/whitespaces in directories"</command>
<command>-fs NAMENODE -touchz "a path with/whitespaces in directories/and file names"</command>
<command>-fs NAMENODE -touchz "a path with/whitespaces in directories/and file names 2"</command>
<command>-fs NAMENODE -ls "a*/w*"</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r "a path with"</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 2 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-z]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*a path with/whitespaces in directories/and file names</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-z]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*a path with/whitespaces in directories/and file names 2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: whitespaces in a scheme-qualified path to a file, using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p "NAMENODE/a path with/whitespaces in directories"</command>
<command>-fs NAMENODE -touchz "NAMENODE/a path with/whitespaces in directories/and file names"</command>
<command>-fs NAMENODE -touchz "NAMENODE/a path with/whitespaces in directories/and file names 2"</command>
<command>-fs NAMENODE -ls "NAMENODE/a*/w*"</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r "NAMENODE/a path with"</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 2 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-z]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/a path with/whitespaces in directories/and file names</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-z]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/a path with/whitespaces in directories/and file names 2</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for ls -R -->
<test> <!-- TESTED -->
<description>ls: files/directories using absolute path</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -mkdir /dir0/dir1/dir1</command>
<command>-fs NAMENODE -mkdir /dir0/dir1/dir2</command>
<command>-fs NAMENODE -mkdir /dir0/dir2</command>
<command>-fs NAMENODE -mkdir /dir0/dir2/dir1</command>
<command>-fs NAMENODE -mkdir /dir0/dir2/dir2</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -touchz /dir0/dir2/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir2/file2</command>
<command>-fs NAMENODE -touchz /dir0/dir1/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/dir1/file2</command>
<command>-fs NAMENODE -touchz /dir0/dir2/dir2/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir2/dir2/file2</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir2/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir2/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir2/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir2/dir2/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir2/dir2/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: files/directories using relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1/dir1</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1/dir2</command>
<command>-fs NAMENODE -mkdir -p dir0/dir2</command>
<command>-fs NAMENODE -mkdir -p dir0/dir2/dir1</command>
<command>-fs NAMENODE -mkdir -p dir0/dir2/dir2</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -touchz dir0/dir2/file1</command>
<command>-fs NAMENODE -touchz dir0/dir2/file2</command>
<command>-fs NAMENODE -touchz dir0/dir1/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/dir1/file2</command>
<command>-fs NAMENODE -touchz dir0/dir2/dir2/file1</command>
<command>-fs NAMENODE -touchz dir0/dir2/dir2/file2</command>
<command>-fs NAMENODE -ls -R dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/dir2/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/dir2/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: files/directories using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1/dir1</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1/dir2</command>
<command>-fs NAMENODE -mkdir -p dir0/dir2</command>
<command>-fs NAMENODE -mkdir -p dir0/dir2/dir1</command>
<command>-fs NAMENODE -mkdir -p dir0/dir2/dir2</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -touchz dir0/dir2/file1</command>
<command>-fs NAMENODE -touchz dir0/dir2/file2</command>
<command>-fs NAMENODE -touchz dir0/dir1/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/dir1/file2</command>
<command>-fs NAMENODE -touchz dir0/dir2/dir2/file1</command>
<command>-fs NAMENODE -touchz dir0/dir2/dir2/file2</command>
<command>-fs NAMENODE -ls -R dir0/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<!-- JIRA?
<comparator>
<type>RegexpComparator</type>
<expected-output>^/user/[a-zA-z0-9]*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^/user/[a-zA-z0-9]*/dir0/dir2</expected-output>
</comparator>
-->
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/dir2/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir2/dir2/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: file/directory that does not exist in /</description>
<test-commands>
<command>-fs NAMENODE -ls -R /file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: file/directory that does not exist in home directory (/user/username)</description>
<test-commands>
<command>-fs NAMENODE -ls -R /user</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `/user': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: dir at hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -ls -R hdfs:///</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///dir0</command>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: files/directories in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir0/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: Non-existent file/directory in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -ls -R hdfs:///file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `hdfs:///file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: dir at Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -ls -R NAMENODE/</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///dir0</command>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: Non-URI input files/directories in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir0/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: Non-URI input for non-existent file/directory in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -ls -R NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: Negative test for quoted /*/* globbing </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -ls -R /\*/\*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>ls: `/*/*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>ls: Test for quoted globbing </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/\*</command>
<command>-fs NAMENODE -touchz /dir0/\*/file</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -ls -R /dir0/\*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/\*/file</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: Test for quoted globbing </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/\*</command>
<command>-fs NAMENODE -touchz /dir0/\*/file</command>
<command>-fs NAMENODE -mkdir /dir0/dir1/</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -rm -r /dir0/\*</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for du -->
<test> <!-- TESTED -->
<description>du: file using absolute path</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -du /data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: file using relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes data15bytesZZ</command>
<command>-fs NAMENODE -du data15bytesZZ</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm data15bytesZZ</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+data15bytesZZ</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: files using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p CLITEST_DATA</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes data120bytes</command>
<command>-fs NAMENODE -du data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm data*bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^120\s+data120bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30\s+data30bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^60\s+data60bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: directory using absolute path</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir0/data15bytes</command>
<command>-fs NAMENODE -du /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+/dir0/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: directory using relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes dir0/data15bytes</command>
<command>-fs NAMENODE -du dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+dir0/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: directory using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes /dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes /dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes /dir0/data120bytes</command>
<command>-fs NAMENODE -du /dir0/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15( |\t)*/dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30( |\t)*/dir0/data30bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^60( |\t)*/dir0/data60bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^120( |\t)*/dir0/data120bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: Test for hdfs:// path - file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///data15bytes</command>
<command>-fs NAMENODE -du hdfs:///data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+hdfs:///data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: Test for hdfs:// path - files using globbing</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes hdfs:///data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes hdfs:///data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes hdfs:///data120bytes</command>
<command>-fs NAMENODE -du hdfs:///data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^120\s+hdfs:///data120bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+hdfs:///data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30\s+hdfs:///data30bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^60\s+hdfs:///data60bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: Test for hdfs:// path - directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir0/data15bytes</command>
<command>-fs NAMENODE -du hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+hdfs:///dir0/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>duh: Test for hdfs:// path - directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data1k hdfs:///dir0/data1k</command>
<command>-fs NAMENODE -du -h hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+hdfs:///dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^1\.0 K\s+hdfs:///dir0/data1k</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: Test for hdfs:// path - directory using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes hdfs:///dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes hdfs:///dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes hdfs:///dir0/data120bytes</command>
<command>-fs NAMENODE -du hdfs:///dir0/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15( |\t)*hdfs:///dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30( |\t)*hdfs:///dir0/data30bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^60( |\t)*hdfs:///dir0/data60bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^120( |\t)*hdfs:///dir0/data120bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: Test for Namenode's path - file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/data15bytes</command>
<command>-fs NAMENODE -du NAMENODE/data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15( |\t)*NAMENODE/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: Test for Namenode's path - files using globbing</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes NAMENODE/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes NAMENODE/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes NAMENODE/data120bytes</command>
<command>-fs NAMENODE -du NAMENODE/data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15( |\t)*NAMENODE/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30( |\t)*NAMENODE/data30bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^60( |\t)*NAMENODE/data60bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^120( |\t)*NAMENODE/data120bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: Test for Namenode's path - directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/dir0/data15bytes</command>
<command>-fs NAMENODE -du NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15( |\t)*NAMENODE/dir0/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>du: Test for Namenode's path - directory using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes NAMENODE/dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes NAMENODE/dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes NAMENODE/dir0/data120bytes</command>
<command>-fs NAMENODE -du NAMENODE/dir0/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15( |\t)*NAMENODE/dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30( |\t)*NAMENODE/dir0/data30bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^60( |\t)*NAMENODE/dir0/data60bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^120( |\t)*NAMENODE/dir0/data120bytes</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for dus -->
<test> <!-- TESTED -->
<description>dus: directories/files using absolute path</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -mkdir /dir0/dir1/dir1</command>
<command>-fs NAMENODE -mkdir /dir0/dir1/dir2</command>
<command>-fs NAMENODE -mkdir /dir0/dir2</command>
<command>-fs NAMENODE -mkdir /dir0/dir2/dir1</command>
<command>-fs NAMENODE -mkdir /dir0/dir2/dir2</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir0/dir1/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes /dir0/dir1/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir0/dir2/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes /dir0/dir2/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes /dir0/dir1/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes /dir0/dir1/dir2/data120bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes /dir0/dir2/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes /dir0/dir2/dir2/data120bytes</command>
<command>-fs NAMENODE -du -s /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^450\s+/dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>dus: directories/files using relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1/dir1</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1/dir2</command>
<command>-fs NAMENODE -mkdir -p dir0/dir2</command>
<command>-fs NAMENODE -mkdir -p dir0/dir2/dir1</command>
<command>-fs NAMENODE -mkdir -p dir0/dir2/dir2</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes dir0/dir1/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes dir0/dir1/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes dir0/dir2/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes dir0/dir2/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes dir0/dir1/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes dir0/dir1/dir2/data120bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes dir0/dir2/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes dir0/dir2/dir2/data120bytes</command>
<command>-fs NAMENODE -du -s dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^450\s+dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>dus: directories/files using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -mkdir /dir0/dir1/dir1</command>
<command>-fs NAMENODE -mkdir /dir0/dir1/dir2</command>
<command>-fs NAMENODE -mkdir /dir0/dir2</command>
<command>-fs NAMENODE -mkdir /dir0/dir2/dir1</command>
<command>-fs NAMENODE -mkdir /dir0/dir2/dir2</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir0/dir1/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes /dir0/dir1/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir0/dir2/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes /dir0/dir2/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes /dir0/dir1/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes /dir0/dir1/dir2/data120bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes /dir0/dir2/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes /dir0/dir2/dir2/data120bytes</command>
<command>-fs NAMENODE -mkdir /donotcountdir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -du -s /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
<command>-fs NAMENODE -rm -r /donotcountdir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^450\s+/dir0</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for dus -->
<test> <!-- TESTED -->
<description>dus: Test for hdfs:// path - directories/files</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1/dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1/dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir2/dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir2/dir2</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir0/dir1/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes hdfs:///dir0/dir1/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir0/dir2/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes hdfs:///dir0/dir2/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes hdfs:///dir0/dir1/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes hdfs:///dir0/dir1/dir2/data120bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes hdfs:///dir0/dir2/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes hdfs:///dir0/dir2/dir2/data120bytes</command>
<command>-fs NAMENODE -du -s hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^450\s+hdfs:///dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>dus: Test for hdfs:// path - directories/files using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1/dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1/dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir2/dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir2/dir2</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir0/dir1/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes hdfs:///dir0/dir1/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir0/dir2/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes hdfs:///dir0/dir2/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes hdfs:///dir0/dir1/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes hdfs:///dir0/dir1/dir2/data120bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes hdfs:///dir0/dir2/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes hdfs:///dir0/dir2/dir2/data120bytes</command>
<command>-fs NAMENODE -mkdir /donotcountdir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -du -s hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
<command>-fs NAMENODE -rm -r hdfs:///donotcountdir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^450\s+hdfs:///dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>dus: Test for Namenode's path - directories/files</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir2/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir2/dir2</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/dir0/dir1/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes NAMENODE/dir0/dir1/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/dir0/dir2/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes NAMENODE/dir0/dir2/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes NAMENODE/dir0/dir1/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes NAMENODE/dir0/dir1/dir2/data120bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes NAMENODE/dir0/dir2/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes NAMENODE/dir0/dir2/dir2/data120bytes</command>
<command>-fs NAMENODE -du -s NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^450\s+NAMENODE/dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>dus: Test for Namenode's path - directories/files using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir2/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir2/dir2</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/dir0/dir1/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes NAMENODE/dir0/dir1/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/dir0/dir2/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes NAMENODE/dir0/dir2/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes NAMENODE/dir0/dir1/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes NAMENODE/dir0/dir1/dir2/data120bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes NAMENODE/dir0/dir2/dir1/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes NAMENODE/dir0/dir2/dir2/data120bytes</command>
<command>-fs NAMENODE -mkdir NAMENODE/donotcountdir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/donotcountdir0/data15bytes</command>
<command>-fs NAMENODE -du -s NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
<command>-fs NAMENODE -rm -r NAMENODE/donotcountdir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^450\s+NAMENODE/dir0</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for mv -->
<test> <!-- TESTED -->
<description>mv: file (absolute path) to file (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -mv /file1 /file2</command>
<command>-fs NAMENODE -ls /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file2</command>
</cleanup-commands>:
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file[^1]</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: file (absolute path) to file (relative path)</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -mv /file1 file2</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^mv: `file2': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: file (absolute path) to directory (absolute path); keep the same name at the destination</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mv /file1 /dir0</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: file (absolute path) to directory (absolute path); keep the same name at the destination [ TIED to previous test ]</description>
<test-commands>
<command>-fs NAMENODE -ls /file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>ls: `/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: file (absolute path) to directory (absolute path); change the name at the destination</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mv /file1 /dir0/file2</command>
<command>-fs NAMENODE -ls /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: file (absolute path) to directory (absolute path); change the name at the destination [ TIED to previous test ]</description>
<test-commands>
<command>-fs NAMENODE -ls /file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>ls: `/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: files (absolute path) to directory (absolute path) using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mv /file* /dir0</command>
<command>-fs NAMENODE -ls -R /*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: files (absolute path) to directory (absolute path) using globbing [ TIED to previous test ]</description>
<test-commands>
<command>-fs NAMENODE -ls /file*</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>ls: `/file*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: file (relative) to file (relative)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -mv file1 file2</command>
<command>-fs NAMENODE -ls file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file[^1]</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving file to file(rename in for hdfs:// path) </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -mv hdfs:///file1 hdfs:///file2</command>
<command>-fs NAMENODE -ls hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file2</command>
</cleanup-commands>:
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file[^1]</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving file to directory (keep the same name at the destination) in hdfs:// path - </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mv hdfs:///file1 hdfs:///dir0</command>
<command>-fs NAMENODE -ls -R hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving files to directory in hdfs:// path - [ TIED to previous test ]</description>
<test-commands>
<command>-fs NAMENODE -ls hdfs:///file*</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>ls: `hdfs:///file*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving file that does not exist in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -mv hdfs:///file1 hdfs:///file2</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>mv: `hdfs:///file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving file to directory (different name at the destination) in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mv hdfs:///file1 hdfs:///dir0/file2</command>
<command>-fs NAMENODE -ls hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving file to directory (different name at the destination) in hdfs:// path [ TIED to previous test ]</description>
<test-commands>
<command>-fs NAMENODE -ls hdfs:///file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>ls: `hdfs:///file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving group of files to directory using globbing in hdfs:// path - </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mv hdfs:///file* hdfs:///dir0</command>
<command>-fs NAMENODE -ls -R hdfs:///*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving files to directory using globbing in hdfs:// [ TIED to previous test ]</description>
<test-commands>
<command>-fs NAMENODE -ls hdfs:///file*</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>ls: `hdfs:///file*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving file to file(rename) in Namenode's path - </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -mv NAMENODE/file1 NAMENODE/file2</command>
<command>-fs NAMENODE -ls NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file2</command>
</cleanup-commands>:
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file[^1]</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving file to directory (keep the same name at the destination) in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mv NAMENODE/file1 NAMENODE/dir0</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving files to directory in Namenode's path - [ TIED to previous test ]</description>
<test-commands>
<command>-fs NAMENODE -ls NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving file that does not exist in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -mv NAMENODE/file1 NAMENODE/file2</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^mv: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving file to directory (different name at the destination) in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mv NAMENODE/file1 NAMENODE/dir0/file2</command>
<command>-fs NAMENODE -ls NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving file to directory (different name at the destination) in Namenode's path [ TIED to previous test ]</description>
<test-commands>
<command>-fs NAMENODE -ls NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `NAMENODE/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving group of files to directory using globbing in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mv NAMENODE/file* NAMENODE/dir0</command>
<command>-fs NAMENODE -ls -R NAMENODE/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving files to directory using globbing in Namenode's path [ TIED to previous test ]</description>
<test-commands>
<command>-fs NAMENODE -ls NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^ls: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file\*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving directory to directory in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file1</command>
<command>-fs NAMENODE -mv hdfs:///dir0 hdfs:///dir1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir1/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir1/dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mv: moving directory to directory in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file1</command>
<command>-fs NAMENODE -mv NAMENODE/dir0 NAMENODE/dir1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir1/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir1/dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for cp-->
<test> <!-- TESTED -->
<description>cp: file (absolute path) to file (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -cp /file1 /file2</command>
<command>-fs NAMENODE -ls /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file*</command>
</cleanup-commands>:
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file (absolute path) to file (relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -cp /file1 file2</command>
<command>-fs NAMENODE -ls /file1 file2</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /file1 file2</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file (relative path) to file (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -cp file1 /file2</command>
<command>-fs NAMENODE -ls file1 /file2</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r file1 /file2</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file (relative path) to file (relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -cp file1 file2</command>
<command>-fs NAMENODE -ls file1 file2</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r file1 file2</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file (absolute path) to directory (absolute path); keep the same name at the destination</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -cp /file1 /dir0</command>
<command>-fs NAMENODE -ls /file1 /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file (absolute path) to directory (absolute path); change the name at the destination</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -cp /file1 /dir0/file2</command>
<command>-fs NAMENODE -ls /file1 /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: files to directory (absolute path) using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -cp /file* /dir0</command>
<command>-fs NAMENODE -ls -R /*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file4</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: files to directory (absolute path) without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -cp /file1 /file2 /file3 /file4 /dir0</command>
<command>-fs NAMENODE -ls -R /*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0 /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file4</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying non existent file (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -cp /file /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>:
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying non existent file (relative path)</description>
<test-commands>
<command>-fs NAMENODE -cp touchz test</command>
<command>-fs NAMENODE -cp file1 file2</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>:
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `file2': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: files to an existent file using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -touchz /file5</command>
<command>-fs NAMENODE -cp /file* /file5</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `/file5': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: files to an existent file without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -touchz /file5</command>
<command>-fs NAMENODE -cp /file1 /file2 /file3 /file4 /file5</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `/file5': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: files to a non existent directory using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -cp /file* dir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `dir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: files to a non existent directory without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -cp /file1 /file2 /file3 /file4 dir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `dir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file to file copy in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -cp hdfs:///file1 hdfs:///file2</command>
<command>-fs NAMENODE -ls hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</cleanup-commands>:
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file to directory copy (same name at the destination) in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -cp hdfs:///file1 hdfs:///dir0</command>
<command>-fs NAMENODE -ls hdfs:///file1 hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0/ hdfs://file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file to directory (different name at the destination) in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -cp hdfs:///file1 hdfs:///dir0/file2</command>
<command>-fs NAMENODE -ls hdfs:///file1 hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0/</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: files to directory using globbing in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -cp hdfs:///file* hdfs:///dir0</command>
<command>-fs NAMENODE -ls -R hdfs:///*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///file*</command>
<command>-fs NAMENODE -rm -r hdfs:///dir0/</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: files to directory in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -cp hdfs:///file1 hdfs:///file2 hdfs:///file3 hdfs:///dir0</command>
<command>-fs NAMENODE -ls -R hdfs:///*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///file*</command>
<command>-fs NAMENODE -rm -r hdfs:///dir0/</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying non existent file in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -cp hdfs:///file hdfs:///file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>:
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs:///file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying files to an existent file in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -touchz hdfs:///file5</command>
<command>-fs NAMENODE -cp hdfs:///file* hdfs:///file5</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs:///file5': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying files to an existent file in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -touchz hdfs:///file5</command>
<command>-fs NAMENODE -cp hdfs:///file1 hdfs:///file2 hdfs:///file3 hdfs:///file4 hdfs:///file5</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs:///file5': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying files to a non existent directory in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -cp hdfs:///file* hdfs:///dir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs:///dir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying files to a non existent directory in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -cp hdfs:///file1 hdfs:///file2 hdfs:///file3 hdfs:///file4 hdfs:///dir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs:///dir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying non existent directory in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -cp hdfs:///dir0 hdfs:///dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMNEODE -rm -r hdfs:///dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs:///dir0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: putting file into an already existing destination with -f option(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /user</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz /user/file0</command>
<command>-fs NAMENODE -cp -f CLITEST_DATA/data120bytes /user/file0</command>
<command>-fs NAMENODE -cat /user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying directory to directory in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file1</command>
<command>-fs NAMENODE -cp hdfs:///dir0 hdfs:///dir1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir1/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir1/dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying multiple directories to directory using globbing in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dest</command>
<command>-fs NAMENODE -cp hdfs:///dir* hdfs:///dest</command>
<command>-fs NAMENODE -ls -R hdfs:///d*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMNEODE -rm -r hdfs:///d*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dest/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dest/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dest/dir2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying multiple directories to directory in hdfs:// path without using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dest</command>
<command>-fs NAMENODE -cp hdfs:///dir0 hdfs:///dir1 hdfs:///dir2 hdfs:///dest</command>
<command>-fs NAMENODE -ls -R hdfs:///d*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMNEODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dest/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dest/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dest/dir2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file to file copy in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -cp NAMENODE/file1 NAMENODE/file2</command>
<command>-fs NAMENODE -ls NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</cleanup-commands>:
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file to directory copy (same name at the destination) in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -cp NAMENODE/file1 NAMENODE/dir0</command>
<command>-fs NAMENODE -ls NAMENODE/file1 NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0/ NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: file to directory (different name at the destination) in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -cp NAMENODE/file1 NAMENODE/dir0/file2</command>
<command>-fs NAMENODE -ls NAMENODE/file1 NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0/</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: files to directory in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -cp NAMENODE/file* NAMENODE/dir0</command>
<command>-fs NAMENODE -ls -R NAMENODE/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file*</command>
<command>-fs NAMENODE -rm -r NAMENODE/dir0/</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: files to directory in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -cp NAMENODE/file1 NAMENODE/file2 NAMENODE/file3 NAMENODE/dir0</command>
<command>-fs NAMENODE -ls -R NAMENODE/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file*</command>
<command>-fs NAMENODE -rm -r NAMENODE/dir0/</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying non existent file in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -cp NAMENODE/file NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>:
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying files to an existent file in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -touchz NAMENODE/file5</command>
<command>-fs NAMENODE -cp NAMENODE/file* NAMENODE/file5</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file5': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying files to an existent file in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -touchz NAMENODE/file5</command>
<command>-fs NAMENODE -cp NAMENODE/file1 NAMENODE/file2 NAMENODE/file3 NAMENODE/file4 NAMENODE/file5</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file5': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying files to a non existent directory in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -cp NAMENODE/file* NAMENODE/dir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs://\w+[-.a-z0-9]*:[0-9]+/dir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying files to a non existent directory in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -cp NAMENODE/file1 NAMENODE/file2 NAMENODE/file3 NAMENODE/file4 NAMENODE/dir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cp: `hdfs://\w+[-.a-z0-9]*:[0-9]+/dir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying directory to directory in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file1</command>
<command>-fs NAMENODE -cp NAMENODE/dir0 NAMENODE/dir1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir1/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir1/dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying multiple directories to directory in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dest</command>
<command>-fs NAMENODE -cp NAMENODE/dir* NAMENODE/dest</command>
<command>-fs NAMENODE -ls -R NAMENODE/d*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMNEODE -rm -r NAMENODE/d*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dest/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dest/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dest/dir2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cp: copying multiple directories to directory in Namenode's path without using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dest</command>
<command>-fs NAMENODE -cp NAMENODE/dir0 NAMENODE/dir1 NAMENODE/dir2 NAMENODE/dest</command>
<command>-fs NAMENODE -ls -R NAMENODE/d*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMNEODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dest/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dest/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dest/dir2</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for rm -->
<test> <!-- TESTED -->
<description>rm: removing a file (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -rm /dir0/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a file (relative path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file0</command>
<command>-fs NAMENODE -rm file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing files by globbing (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/file1</command>
<command>-fs NAMENODE -touchz /dir0/file2</command>
<command>-fs NAMENODE -touchz /dir0/file3</command>
<command>-fs NAMENODE -rm /dir0/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir0/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir0/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir0/file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing files by globbing (relative path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir dir</command>
<command>-fs NAMENODE -touchz file0</command>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -rm file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a directory (absolute path) </description>
<test-commands>
<command>-fs NAMENODE mkdir /dir0</command>
<command>-fs NAMENODE -rm /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `/dir0': Is a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a directory (relative path) </description>
<test-commands>
<command>-fs NAMENODE mkdir -p dir0</command>
<command>-fs NAMENODE -rm dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `dir0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a nonexistent file (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -rm /dir0/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `/dir0/file0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a nonexistent file (relative path) </description>
<test-commands>
<command>-fs NAMENODE -rm file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `file0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a file in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file0</command>
<command>-fs NAMENODE -rm hdfs:///file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing files by globbing in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file0</command>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a directory in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -rm hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `hdfs:///dir0': Is a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a nonexistent file or dirctory in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -rm hdfs:///file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `hdfs:///file0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing files without globbing in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file0</command>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -rm hdfs:///file0 hdfs:///file1 hdfs:///file2 hdfs:///file3</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a file in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file0</command>
<command>-fs NAMENODE -rm NAMENODE/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing files by globbing in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/file3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a directory in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -rm NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>rm: `NAMENODE/dir0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a nonexistent file or directory in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -rm NAMENODE/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `NAMENODE/file0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: Tremoving files without globbing in Namenode path </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -rm NAMENODE/file0 NAMENODE/file1 NAMENODE/file2 NAMENODE/file3</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/file3</expected-output>
</comparator>
</comparators>
</test>
<!--Tests for rmr-->
<test> <!-- TESTED -->
<description>rm: removing a file (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -rm -r /dir0/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a file (relative path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file0</command>
<command>-fs NAMENODE -rm -r file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a directory (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -touchz /dir0</command>
<command>-fs NAMENODE -rm -r /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a directory (relative path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -rm -r dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing directories by globbing (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir3</command>
<command>-fs NAMENODE -rm -r /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted /dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing directories by globbing (relative path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir1</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir3</command>
<command>-fs NAMENODE -rm -r dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!--TESTED-->
<description>rm: removing a nonexistent file (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -rm -r /dir0/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `/dir0/file0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a nonexistent file (relative path) </description>
<test-commands>
<command>-fs NAMENODE -rm -r file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `file0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a file in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file0</command>
<command>-fs NAMENODE -rm -r hdfs:///file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing a directory in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///dir0</command>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing directories by globbing in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir3</command>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!--TESTED-->
<description>rm: removing a nonexistent file or directory in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -rm -r hdfs:///file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `hdfs:///file0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing directories without globbing in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir3</command>
<command>-fs NAMENODE -rm -r hdfs:///dir0 hdfs:///dir1 hdfs:///dir2 hdfs:///dir3</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted hdfs:///dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: Test for Namenode's path - removing a file</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file0</command>
<command>-fs NAMENODE -rm -r NAMENODE/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: Test for Namenode's path - removing a directory</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/dir0</command>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing directories by globbing in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir3</command>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!--TESTED-->
<description>rm: removing a nonexistent file or directory in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^rm: `NAMENODE/file0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>rm: removing directories without globbing in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir3</command>
<command>-fs NAMENODE -rm -r NAMENODE/dir0 NAMENODE/dir1 NAMENODE/dir2 NAMENODE/dir3</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Deleted NAMENODE/dir3</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for expunge -->
<!-- Not yet implemented -->
<!-- Tests for put -->
<test> <!-- TESTED -->
<description>put: putting file into a file (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -du /data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting file into a file (relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes data15bytes</command>
<command>-fs NAMENODE -du data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting file into a directory(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p /dir0/dir1/data</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir0/dir1/data</command> -->
<command>-fs NAMENODE -du /dir0/dir1/data</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+/dir0/dir1/data/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting file into a directory(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0/dir1/data</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes dir0/dir1/data</command>
<command>-fs NAMENODE -du dir0/dir1/data</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+dir0/dir1/data/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting many files into an existing directory(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes /dir0</command>
<command>-fs NAMENODE -du /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+/dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30\s+/dir0/data30bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting many files into an existing directory(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes dir0</command>
<command>-fs NAMENODE -du dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30\s+dir0/data30bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting non existent file(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -put /user/wrongdata file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>put: `/user/wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting non existent file(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -put wrongdata file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>put: `wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting file into an already existing destination(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /user</command>
<command>-fs NAMENODE -touchz /user/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>put: `/user/file0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting file into an already existing destination with -f option(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /user</command>
<command>-fs NAMENODE -touchz /user/file0</command>
<command>-fs NAMENODE -put -f CLITEST_DATA/data120bytes /user/file0</command>
<command>-fs NAMENODE -cat /user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting file into an already existing destination(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>put: `file0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting many files into an existing file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes /data30bytes</command>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file0</command>
<command>-fs NAMENODE -put /data15bytes /data30bytes file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^put: `file0': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting many files into a non existent directory</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes /data30bytes</command>
<command>-fs NAMENODE -put /data15bytes /data30bytes wrongdir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^put: `wrongdir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting a local file into hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///data15bytes</command>
<command>-fs NAMENODE -du hdfs:///data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+hdfs:///data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting file into a directory in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p /dir1/data</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir1/data</command>
<command>-fs NAMENODE -du hdfs:///dir1/data/</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir1/data</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+hdfs:///dir1/data/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting many local files into an existing directory in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes hdfs:///dir0</command>
<command>-fs NAMENODE -du hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+hdfs:///dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30\s+hdfs:///dir0/data30bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting non existent file in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -put /user/wrongdata hdfs:///file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>put: `/user/wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting local file into an already existing destination in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///user/</command>
<command>-fs NAMENODE -touchz hdfs:///user/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>put: `hdfs:///user/file0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting many local files into an existing file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes hdfs:///file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^put: `hdfs:///file0': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting file into a non existent directory in hdfs:// path </description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes hdfs:///wrongdir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^put: `hdfs:///wrongdir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting a local file into in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/data15bytes</command>
<command>-fs NAMENODE -du NAMENODE/data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+NAMENODE/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting file into a directory in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p /dir1/data</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/dir1/data</command>
<command>-fs NAMENODE -du NAMENODE/dir1/data</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir1/data</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+NAMENODE/dir1/data/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting many local files into an existing directory in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes NAMENODE/dir0</command>
<command>-fs NAMENODE -du NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+NAMENODE/dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30\s+NAMENODE/dir0/data30bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting non existent file in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -put /user/wrongdata NAMENODE/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^put: `/user/wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting local file into an already existing destination in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/user/</command>
<command>-fs NAMENODE -touchz NAMENODE/user/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^put: `hdfs://\w+[-.a-z0-9]*:[0-9]+/user/file0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting many local files into an existing file in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes NAMENODE/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^put: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file0': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>put: putting many files into a non existent directory in Namenode's path </description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes NAMENODE/wrongdir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^put: `hdfs://\w+[-.a-z0-9]*:[0-9]+/wrongdir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for copyFromLocal -->
<test> <!-- TESTED -->
<description>copyFromLocal: copying file into a file (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -du /data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying file into a file (relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes data15bytes</command>
<command>-fs NAMENODE -du data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying file into a directory(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p /dir0/dir1/data</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes /dir0/dir1/data</command>
<command>-fs NAMENODE -du /dir0/dir1/data/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+/dir0/dir1/data/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying file into a directory(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0/dir1/data</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes dir0/dir1/data</command>
<command>-fs NAMENODE -du dir0/dir1/data/*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+dir0/dir1/data/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying many files into an existing directory(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes /dir0</command>
<command>-fs NAMENODE -du /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+/dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30\s+/dir0/data30bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying many files into an existing directory(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes dir0</command>
<command>-fs NAMENODE -du dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30\s+dir0/data30bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying non existent file(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -copyFromLocal /user/wrongdata file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>copyFromLocal: `/user/wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying non existent file(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -copyFromLocal wrongdata file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>copyFromLocal: `wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying file into an already existing destination(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /user</command>
<command>-fs NAMENODE -touchz /user/file0</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes /user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>copyFromLocal: `/user/file0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying file into an already existing destination with -f option(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /user</command>
<command>-fs NAMENODE -touchz /user/file0</command>
<command>-fs NAMENODE -copyFromLocal -f CLITEST_DATA/data120bytes /user/file0</command>
<command>-fs NAMENODE -cat /user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying file into an already existing destination(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file0</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>copyFromLocal: `file0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying many files into an existing file</description>
<test-commands>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data30bytes /data30bytes</command>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file0</command>
<command>-fs NAMENODE -copyFromLocal /data15bytes /data30bytes file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^copyFromLocal: `file0': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: copying many files into a non existent directory</description>
<test-commands>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data30bytes /data30bytes</command>
<command>-fs NAMENODE -copyFromLocal /data15bytes /data30bytes wrongdir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^copyFromLocal: `wrongdir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for hdfs:// path - copying local file into a hdfs://file</description>
<test-commands>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes hdfs:///data15bytes</command>
<command>-fs NAMENODE -du hdfs:///data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+hdfs:///data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for hdfs:// path - copying local file into a hdfs directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1/data</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes hdfs:///dir0/dir1/data/</command>
<command>-fs NAMENODE -du hdfs:///dir0/dir1/data/data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+hdfs:///dir0/dir1/data/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for hdfs:// path copying many local files into an existing hdfs directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes hdfs:///dir0</command>
<command>-fs NAMENODE -du hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+hdfs:///dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30\s+hdfs:///dir0/data30bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for hdfs:// path - copying non existent file</description>
<test-commands>
<command>-fs NAMENODE -copyFromLocal /user/wrongdata hdfs:///file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>copyFromLocal: `/user/wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for hdfs:// path - copying local file into an already existing destination</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///user/</command>
<command>-fs NAMENODE -touchz hdfs:///user/file0</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes hdfs:///user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>copyFromLocal: `hdfs:///user/file0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for hdfs:// path - copying many local files into an existing file</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file0</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes hdfs:///file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^copyFromLocal: `hdfs:///file0': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for hdfs:// path - copying many local files into a non existent directory</description>
<test-commands>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes hdfs:///wrongdir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^copyFromLocal: `hdfs:///wrongdir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for copyFromLocal using Namenode's path-->
<test> <!-- TESTED -->
<description>copyFromLocal: Test for Namenode's path - copying local file into a hdfs://file</description>
<test-commands>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes NAMENODE/data15bytes</command>
<command>-fs NAMENODE -du NAMENODE/data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+NAMENODE/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for Namenode's path - copying local file into a hdfs directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1/data</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes NAMENODE/dir0/dir1/data/</command>
<command>-fs NAMENODE -du NAMENODE/dir0/dir1/data/data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+NAMENODE/dir0/dir1/data/data15bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for Namenode's path copying many local files into an existing hdfs directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes NAMENODE/dir0</command>
<command>-fs NAMENODE -du NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^15\s+NAMENODE/dir0/data15bytes</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^30\s+NAMENODE/dir0/data30bytes</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for Namenode's path - copying non existent file</description>
<test-commands>
<command>-fs NAMENODE -copyFromLocal /user/wrongdata NAMENODE/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>copyFromLocal: `/user/wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for Namenode's path - copying local file into an already existing destination</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/user/</command>
<command>-fs NAMENODE -touchz NAMENODE/user/file0</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes NAMENODE/user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>copyFromLocal: `hdfs://\w+[-.a-z0-9]*:[0-9]+/user/file0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for Namenode's path - copying many local files into an existing file</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file0</command>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes NAMENODE/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^copyFromLocal: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file0': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyFromLocal: Test for Namenode's path - copying many local files into a non existent directory</description>
<test-commands>
<command>-fs NAMENODE -copyFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes NAMENODE/wrongdir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^copyFromLocal: `hdfs://\w+[-.a-z0-9]*:[0-9]+/wrongdir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for get -->
<test> <!-- TESTED -->
<description>get: getting non existent(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -get /user/file CLITEST_DATA/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>get: `.*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>get: getting non existent file(relative path)</description>
<test-commands>
<command>-fs NAMENODE -get file CLITEST_DATA/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>get: `.*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>get: Test for hdfs:// path - getting non existent</description>
<test-commands>
<command>-fs NAMENODE -get hdfs:///user/file CLITEST_DATA/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>get: `.*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>get: Test for Namenode's path - getting non existent</description>
<test-commands>
<command>-fs NAMENODE -get NAMENODE/user/file CLITEST_DATA/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>get: `.*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for getmerge -->
<!-- Manual Testing -->
<!-- Tests for cat -->
<test> <!-- TESTED -->
<description>cat: contents of file(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -cat /data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test>
<description>cat: contents of file(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes data15bytes</command>
<command>-fs NAMENODE -cat data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: contents of files(absolute path) using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes /dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes /dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes /dir0/data120bytes</command>
<command>-fs NAMENODE -cat /dir0/data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234.*</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED-->
<description>cat: contents of files(relative path) using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes dir0/data120bytes</command>
<command>-fs NAMENODE -cat dir0/data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234.*</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: contents of files(absolute path) without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes /dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes /dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes /dir0/data120bytes</command>
<command>-fs NAMENODE -cat /dir0/data15bytes /dir0/data30bytes /dir0/data60bytes /dir0/data120bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234.*</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED-->
<description>cat: contents of files(relative path) without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes dir0/data120bytes</command>
<command>-fs NAMENODE -cat dir0/data15bytes dir0/data30bytes dir0/data60bytes dir0/data120bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234.*</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: contents of file(absolute path) that does not exist</description>
<test-commands>
<command>-fs NAMENODE -cat /file</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cat: `/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: contents of file(relative path) that does not exist</description>
<test-commands>
<command>-fs NAMENODE -cat file</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cat: `file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: contents of directory(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -cat /dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cat: `/dir1': Is a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: contents of directory(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir1</command>
<command>-fs NAMENODE -cat dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cat: `dir1': Is a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: Test for hdfs:// path - content of file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///data15bytes</command>
<command>-fs NAMENODE -cat hdfs:///data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: Test for hdfs:// path - contents of files using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes hdfs:///dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes hdfs:///dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes hdfs:///dir0/data120bytes</command>
<command>-fs NAMENODE -cat hdfs:///dir0/data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234.*</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: Test for hdfs:// path - contents of files without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes hdfs:///dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes hdfs:///dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes hdfs:///dir0/data120bytes</command>
<command>-fs NAMENODE -cat hdfs:///dir0/data15bytes hdfs:///dir0/data30bytes hdfs:///dir0/data60bytes hdfs:///dir0/data120bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234.*</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: Test for hdfs:// path - contents of file that does not exist</description>
<test-commands>
<command>-fs NAMENODE -cat hdfs:///file</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cat: `hdfs:///file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: Test for hdfs:// path - contents of directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -cat hdfs:///dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cat: `hdfs:///dir1': Is a directory</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for cat using Namenode's path -->
<test> <!-- TESTED -->
<description>cat: Test for Namenode's path - content of file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/data15bytes</command>
<command>-fs NAMENODE -cat NAMENODE/data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: Test for Namenode's path - contents of files using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes NAMENODE/dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes NAMENODE/dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes NAMENODE/dir0/data120bytes</command>
<command>-fs NAMENODE -cat NAMENODE/dir0/data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234.*</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: Test for Namenode's path - contents of files without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes NAMENODE/dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes NAMENODE/dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes NAMENODE/dir0/data120bytes</command>
<command>-fs NAMENODE -cat NAMENODE/dir0/data15bytes NAMENODE/dir0/data30bytes NAMENODE/dir0/data60bytes NAMENODE/dir0/data120bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>12345678901234.*</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: Test for Namenode's path - contents of file that does not exist</description>
<test-commands>
<command>-fs NAMENODE -cat NAMENODE/file</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cat: `NAMENODE/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>cat: Test for Namenode's path - contents of directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -cat NAMENODE/dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^cat: `NAMENODE/dir1': Is a directory</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for copyToLocal -->
<test> <!-- TESTED -->
<description>copyToLocal: non existent relative path</description>
<test-commands>
<command>-fs NAMENODE -copyToLocal file CLITEST_DATA/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>copyToLocal: `.*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyToLocal: non existent absolute path</description>
<test-commands>
<command>-fs NAMENODE -copyToLocal /user/file CLITEST_DATA/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>copyToLocal: `.*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyToLocal: Test for hdfs:// path - non existent file/directory</description>
<test-commands>
<command>-fs NAMENODE -copyToLocal hdfs:///file CLITEST_DATA/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>copyToLocal: `.*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>copyToLocal: Test for Namenode's path - non existent file/directory</description>
<test-commands>
<command>-fs NAMENODE -copyToLocal NAMENODE/file CLITEST_DATA/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>copyToLocal: `.*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED-->
<description>checksum: checksum of files(relative path) using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes dir0/data120bytes</command>
<command>-fs NAMENODE -checksum dir0/data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^dir0/data120bytes\tMD5-of-0MD5-of-512CRC32C\t000002000000000000000000a58cdc3c0967fc8cddb7fed5960d06f2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^dir0/data15bytes\tMD5-of-0MD5-of-512CRC32C\t0000020000000000000000007267e9528002723a30939aefc238d665</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^dir0/data30bytes\tMD5-of-0MD5-of-512CRC32C\t000002000000000000000000fc09371298117c4943cf089b4bd79c96</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^dir0/data60bytes\tMD5-of-0MD5-of-512CRC32C\t000002000000000000000000009476431d851dd7b0a8d057a404d7b9</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for moveToLocal -->
<!-- Not yet implemented -->
<!-- Tests for mkdir -->
<test> <!-- TESTED -->
<description>mkdir: creating directory (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -du -s /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+/dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: creating directory (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/b/</command>
<command>-fs NAMENODE -du -s /dir0/b</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+/dir0/b</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: creating directory (relative path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0 </command>
<command>-fs NAMENODE -du -s dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: creating many directories (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0 </command>
<command>-fs NAMENODE -mkdir /dir1 </command>
<command>-fs NAMENODE -mkdir /dir2 </command>
<command>-fs NAMENODE -mkdir /dir3 </command>
<command>-fs NAMENODE -du -s /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+/dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: creating many directories (relative path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0 </command>
<command>-fs NAMENODE -mkdir -p dir1 </command>
<command>-fs NAMENODE -mkdir -p dir2 </command>
<command>-fs NAMENODE -mkdir -p dir3 </command>
<command>-fs NAMENODE -du -s dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: creating a directory with the name of an already existing directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>mkdir: `/dir0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: creating a directory with the name of an already existing file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes data15bytes</command>
<command>-fs NAMENODE -mkdir -p data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>mkdir: `data15bytes': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test for hdfs:// path - creating directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -du -s hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+hdfs:///dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test for hdfs:// path - creating many directories</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0 hdfs:///dir1 hdfs:///dir2 hdfs:///dir3 </command>
<command>-fs NAMENODE -du -s hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+hdfs:///dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+hdfs:///dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+hdfs:///dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+hdfs:///dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test for hdfs:// path - creating a directory with the name of an already existing directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>mkdir: `hdfs:///dir0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test for hdfs:// path - creating a directory with the name of an already existing file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///data15bytes</command>
<command>-fs NAMENODE -mkdir hdfs:///data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>mkdir: `hdfs:///data15bytes': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test for Namenode's path - creating directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -du -s NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+NAMENODE/dir0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test for Namenode's path - creating many directories</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0 NAMENODE/dir1 NAMENODE/dir2 NAMENODE/dir3</command>
<command>-fs NAMENODE -du -s NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+NAMENODE/dir0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+NAMENODE/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+NAMENODE/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+NAMENODE/dir3</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test for NAMENODE path - creating a directory with the name of an already existing directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>mkdir: `hdfs://\w+[-.a-z0-9]*:[0-9]+/dir0': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test for Namenode's path - creating a directory with the name of an already existing file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/data15bytes</command>
<command>-fs NAMENODE -mkdir NAMENODE/data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>mkdir: `hdfs://\w+[-.a-z0-9]*:[0-9]+/data15bytes': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test create of directory with no parent and no -p fails</description>
<test-commands>
<command>-fs NAMENODE -rm -r -f dir0</command>
<command>-fs NAMENODE -mkdir dir0/dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>mkdir: `dir0/dir1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test recreate of existing directory fails</description>
<test-commands>
<command>-fs NAMENODE -rm -r -f dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -mkdir dir0/dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>mkdir: `dir0/dir1': File exists</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>mkdir: Test recreate of existing directory with -p succeeds</description>
<test-commands>
<command>-fs NAMENODE -rm -r -f dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<!--Tests for setrep-->
<test> <!-- TESTED -->
<description>setrep: existent file (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -setrep 2 /dir0/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: /dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: existent file (relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file0</command>
<command>-fs NAMENODE -setrep 2 file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: existent directory (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/file1</command>
<command>-fs NAMENODE -setrep -R 2 /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: /dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: /dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: existent directory (relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/file1</command>
<command>-fs NAMENODE -setrep -R 2 dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: non existent file (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -setrep 2 /dir0/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^setrep: `/dir0/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: non existent file (relative path)</description>
<test-commands>
<command>-fs NAMENODE -setrep 2 file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^setrep: `file0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: Test for hdfs:// path - existent file</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0/</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -setrep 2 hdfs:///dir0/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: hdfs:///dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: Test for hdfs:// path - existent directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0/</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file1</command>
<command>-fs NAMENODE -setrep -R 2 hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: hdfs:///dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: Test for hdfs:// path - non existent file</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0/</command>
<command>-fs NAMENODE -setrep 2 hdfs:///dir0/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^setrep: `hdfs:///dir0/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: Test for Namenode's path - existent file</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -setrep 2 NAMENODE/dir0/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: NAMENODE/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: Test for Namenode's path - existent directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p NAMENODE/dir0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file1</command>
<command>-fs NAMENODE -setrep -R 2 NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^Replication 2 set: NAMENODE/dir0/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>setrep: Test for Namenode's path - non existent file</description>
<test-commands>
<command>-fs NAMENODE -setrep 2 NAMENODE/dir0/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^setrep: `hdfs://\w+[-.a-z0-9]*:[0-9]+/dir0/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for touchz-->
<test> <!-- TESTED -->
<description>touchz: touching file (absolute path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir /user</command>
<command>-fs NAMENODE -touchz /user/file0</command>
<command>-fs NAMENODE -du /user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+/user/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>touchz: touching file in non-existent directory </description>
<test-commands>
<command>-fs NAMENODE -touchz file0 </command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>touchz: `file0': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>touchz: touching file(relative path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file0 </command>
<command>-fs NAMENODE -du file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>touchz: touching many files </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file0 file1 file2</command>
<command>-fs NAMENODE -du file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0( |\t)*file0</expected-output>
<expected-output>^0( |\t)*file1</expected-output>
<expected-output>^0( |\t)*file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>touchz: touching already existing file </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes data15bytes</command>
<command>-fs NAMENODE -touchz data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>touchz: `data15bytes': Not a zero-length file</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>touchz: Test for hdfs:// path - touching file</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p hdfs:///user/</command>
<command>-fs NAMENODE -touchz hdfs:///user/file0</command>
<command>-fs NAMENODE -du hdfs:///user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+hdfs:///user/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>touchz: Test for hdfs:// path - touching many files </description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file0 hdfs:///file1 hdfs:///file2</command>
<command>-fs NAMENODE -du hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0( |\t)*hdfs:///file0</expected-output>
<expected-output>^0( |\t)*hdfs:///file1</expected-output>
<expected-output>^0( |\t)*hdfs:///file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>touchz: Test for hdfs:// path - touching already existing file </description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///data15bytes</command>
<command>-fs NAMENODE -touchz hdfs:///data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>touchz: `hdfs:///data15bytes': Not a zero-length file</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>touchz: Test for Namenode's path - touching file</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/user/file0</command>
<command>-fs NAMENODE -du NAMENODE/user/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+NAMENODE/user/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>touchz: Test for Namenode path - touching many files </description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file0 NAMENODE/file1 NAMENODE/file2</command>
<command>-fs NAMENODE -du NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^0\s+hdfs://\w+[-.a-z0-9]*:[0-9]+/file0</expected-output>
<expected-output>^0\s+hdfs://\w+[-.a-z0-9]*:[0-9]+/file1</expected-output>
<expected-output>^0\s+hdfs://\w+[-.a-z0-9]*:[0-9]+/file2</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>touchz: Test for Namenode's path - touching already existing file </description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/data15bytes</command>
<command>-fs NAMENODE -touchz NAMENODE/data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/data15bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>touchz: `hdfs://\w+[-.a-z0-9]*:[0-9]+/data15bytes': Not a zero-length file</expected-output>
</comparator>
</comparators>
</test>
<!--Tests for test-->
<test> <!-- TESTED -->
<description>test: non existent file (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -test -z /dir0/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>test: non existent file (relative path)</description>
<test-commands>
<command>-fs NAMENODE -test -z file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>test: non existent directory (absolute path)</description>
<test-commands>
<command>-fs NAMENODE -test -d /dir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>test: non existent directory (relative path)</description>
<test-commands>
<command>-fs NAMENODE -test -d dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>test: Test for hdfs:// path - non existent file</description>
<test-commands>
<command>-fs NAMENODE -test -z hdfs:///dir0/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>test: Test for hdfs:// path - non existent directory</description>
<test-commands>
<command>-fs NAMENODE -test -d hdfs:///dir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir</command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>test: Test for Namenode's path - non existent file</description>
<test-commands>
<command>-fs NAMENODE -test -z NAMENODE/dir0/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>test: Test for Namenode's path - non existent directory</description>
<test-commands>
<command>-fs NAMENODE -test -d NAMENODE/dir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir</command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<!--Tests for stat -->
<test> <!-- TESTED -->
<description>stat: statistics about file(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes /data60bytes</command>
<command>-fs NAMENODE -stat "%n-%b" /data60bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /data60bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>data60bytes-60</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: statistics about file(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes data60bytes</command>
<command>-fs NAMENODE -stat "%n-%b" data60bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>data60bytes-60</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: statistics about directory(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dirtest</command>
<command>-fs NAMENODE -stat "%n-%b-%o" /dirtest</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dirtest</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>dirtest-0-0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: statistics about directory(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dirtest</command>
<command>-fs NAMENODE -stat "%n-%b-%o" dirtest</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>dirtest-0-0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: statistics about files (absolute path) using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes /dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes /dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes /dir0/data120bytes</command>
<command>-fs NAMENODE -mkdir /dir0/datadir</command>
<command>-fs NAMENODE -stat "%n-%b" /dir0/data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>data15bytes-15</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data30bytes-30</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data60bytes-60</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data120bytes-120</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>datadir-0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: statistics about files (relative path) using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes data120bytes</command>
<command>-fs NAMENODE -mkdir -p datadir</command>
<command>-fs NAMENODE -stat "%n-%b" data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>data15bytes-15</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data30bytes-30</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data60bytes-60</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data120bytes-120</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>datadir-0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: statistics about file or directory(absolute path) that does not exist</description>
<test-commands>
<command>-fs NAMENODE -stat /file</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^stat: `/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: statistics about file or directory(relative path) that does not exist </description>
<test-commands>
<command>-fs NAMENODE -stat file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^stat: `file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: Test for hdfs:// path - statistics about file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes hdfs:///data60bytes</command>
<command>-fs NAMENODE -stat "%n-%b" hdfs:///data60bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///data60bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>data60bytes-60</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: Test for hdfs:// path - statistics about directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dirtest</command>
<command>-fs NAMENODE -stat "%n-%b-%o" hdfs:///dirtest</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dirtest</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>dirtest-0-0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: Test for hdfs:// path - statistics about files using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes hdfs:///dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes hdfs:///dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes hdfs:///dir0/data120bytes</command>
<command>-fs NAMENODE -mkdir -p hdfs:///dir0/datadir</command>
<command>-fs NAMENODE -stat "%n-%b" hdfs:///dir0/data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>data15bytes-15</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data30bytes-30</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data60bytes-60</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data120bytes-120</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>datadir-0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: Test for hdfs:// path - statistics about file or directory that does not exist</description>
<test-commands>
<command>-fs NAMENODE -stat hdfs:///file</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^stat: `hdfs:///file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: Test for Namenode's path - statistics about file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes NAMENODE/data60bytes</command>
<command>-fs NAMENODE -stat "%n-%b" NAMENODE/data60bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/data60bytes</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>data60bytes-60</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: Test for Namenode's path - statistics about directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dirtest</command>
<command>-fs NAMENODE -stat "%n-%b-%o" NAMENODE/dirtest</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dirtest</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>dirtest-0-0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: Test for Namenode's path - statistics about files using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/dir0/data15bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data30bytes NAMENODE/dir0/data30bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data60bytes NAMENODE/dir0/data60bytes</command>
<command>-fs NAMENODE -put CLITEST_DATA/data120bytes NAMENODE/dir0/data120bytes</command>
<command>-fs NAMENODE -mkdir -p NAMENODE/dir0/datadir</command>
<command>-fs NAMENODE -stat "%n-%b" NAMENODE/dir0/data*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>data15bytes-15</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data30bytes-30</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data60bytes-60</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>data120bytes-120</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>datadir-0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>stat: Test for Namenode's path - statistics about file or directory that does not exist</description>
<test-commands>
<command>-fs NAMENODE -stat NAMENODE/file</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^stat: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for tail -->
<test> <!-- TESTED -->
<description>tail: contents of file(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -tail /data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test> <!--TESTED-->
<description>tail: contents of file(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes data15bytes</command>
<command>-fs NAMENODE -tail data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: contents of files(absolute path) using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -tail /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `/file\*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: contents of files(relative path) using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -tail file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `file\*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: contents of file(absolute path) that does not exist</description>
<test-commands>
<command>-fs NAMENODE -tail /file</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: contents of file(relative path) that does not exist</description>
<test-commands>
<command>-fs NAMENODE -tail file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: contents of directory(absolute path) </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -tail /dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `/dir1': Is a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: contents of directory(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir1</command>
<command>-fs NAMENODE -tail dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `dir1': Is a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: Test for hdfs:// path - contents of file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes hdfs:///data15bytes</command>
<command>-fs NAMENODE -tail hdfs:///data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: Test for hdfs:// path - contents of files using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -tail hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `hdfs:///file\*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: Test for hdfs:// path - contents of file that does not exist</description>
<test-commands>
<command>-fs NAMENODE -tail hdfs:///file</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `hdfs:///file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: Test for hdfs:// path - contents of directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -tail hdfs:///dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `hdfs:///dir1': Is a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: Test for Namenode's path - contents of file</description>
<test-commands>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes NAMENODE/data15bytes</command>
<command>-fs NAMENODE -tail NAMENODE/data15bytes</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>12345678901234</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: Test for Namenode's path - contents of files using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -tail NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file\*': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: Test for Namenode's path - contents of file that does not exist</description>
<test-commands>
<command>-fs NAMENODE -tail NAMENODE/file</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>tail: Test for Namenode's path - contents of directory</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -tail NAMENODE/dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^tail: `hdfs://\w+[-.a-z0-9]*:[0-9]+/dir1': Is a directory</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for count -->
<test> <!-- TESTED -->
<description>count: file using absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -count /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 /file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: file using relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -count file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: directory using absolute path</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -count /dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 /dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: directory using relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir1</command>
<command>-fs NAMENODE -count dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: absolute path to file/directory that does not exist</description>
<test-commands>
<command>-fs NAMENODE -count /file1 </command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>count: `/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: relative path to file/directory that does not exist</description>
<test-commands>
<command>-fs NAMENODE -count file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>count: `file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: absolute path to multiple files using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -count /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 /file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 /file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 /file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 /file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: relative path to multiple files using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -count file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: absolute path to multiple files without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -count /file1 /file2 /file3 /file4</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 /file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 /file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 /file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 /file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: relative path to multiple files without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -count file1 file2 file3 file4</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: absolute path to multiple directories using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir3</command>
<command>-fs NAMENODE -mkdir /dir4</command>
<command>-fs NAMENODE -count /dir* </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 /dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 /dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 /dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 /dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: relative path to multiple directories using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir1</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir3</command>
<command>-fs NAMENODE -mkdir -p dir4</command>
<command>-fs NAMENODE -count dir* </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: absolute path to multiple directories without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir3</command>
<command>-fs NAMENODE -mkdir /dir4</command>
<command>-fs NAMENODE -count /dir1 /dir2 /dir3 /dir4 </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 /dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 /dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 /dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 /dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: relative path to multiple directories without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir1</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir3</command>
<command>-fs NAMENODE -mkdir -p dir4</command>
<command>-fs NAMENODE -count dir1 dir2 dir3 dir4 </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: file using absolute path with -q option</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -count -q /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 /file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: file using relative path with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -count -q file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: directory using absolute path with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 /dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m /dir1 </dfs-admin-command>
<command>-fs NAMENODE -count -q /dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 /dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: directory using relative path with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir1</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m dir1 </dfs-admin-command>
<command>-fs NAMENODE -count -q dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: absolute path to file/directory that does not exist with -q option</description>
<test-commands>
<command>-fs NAMENODE -count -q /file1 </command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>count: `/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: relative path to file/directory that does not exist with -q option</description>
<test-commands>
<command>-fs NAMENODE -count -q file1</command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>count: `file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: absolute path to multiple files using globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -count -q /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 /file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 /file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 /file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 /file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: relative path to multiple files using globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -count -q file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: absolute path to multiple files without globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -count -q /file1 /file2 /file3 /file4</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 /file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 /file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 /file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 /file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: relative path to multiple files without globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -count -q file1 file2 file3 file4</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: absolute path to multiple directories using globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir3</command>
<command>-fs NAMENODE -mkdir /dir4</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 /dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m /dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 /dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m /dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 /dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m /dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 /dir4 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m /dir4 </dfs-admin-command>
<command>-fs NAMENODE -count -q /dir* </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 /dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 /dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 /dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 /dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: relative path to multiple directories using globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir1</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir3</command>
<command>-fs NAMENODE -mkdir -p dir4</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 dir4 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m dir4 </dfs-admin-command>
<command>-fs NAMENODE -count -q dir* </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: absolute path to multiple directories without globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir3</command>
<command>-fs NAMENODE -mkdir /dir4</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 /dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m /dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 /dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m /dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 /dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m /dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 /dir4 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m /dir4 </dfs-admin-command>
<command>-fs NAMENODE -count -q /dir1 /dir2 /dir3 /dir4 </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 /dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 /dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 /dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 /dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: relative path to multiple directories without globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir1</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir3</command>
<command>-fs NAMENODE -mkdir -p dir4</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 dir4 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m dir4 </dfs-admin-command>
<command>-fs NAMENODE -count -q dir1 dir2 dir3 dir4 </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for file using hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -count hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 hdfs:///file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for directory using hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -count hdfs:///dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for hdfs:// path - file/directory that does not exist</description>
<test-commands>
<command>-fs NAMENODE -count hdfs:///file1 </command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>count: `hdfs:///file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for hdfs:// path - multiple files using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -count hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for hdfs:// path - multiple files without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -count hdfs:///file1 hdfs:///file2 hdfs:///file3 hdfs:///file4</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for hdfs:// path - multiple directories using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir3</command>
<command>-fs NAMENODE -mkdir hdfs:///dir4</command>
<command>-fs NAMENODE -count hdfs:///dir* </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for hdfs:// path - multiple directories without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir3</command>
<command>-fs NAMENODE -mkdir hdfs:///dir4</command>
<command>-fs NAMENODE -count hdfs:///dir1 hdfs:///dir2 hdfs:///dir3 hdfs:///dir4 </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for file using hdfs:// path with -q option</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -count -q hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 hdfs:///file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for directory using hdfs:// path with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 hdfs:///dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m hdfs:///dir1 </dfs-admin-command>
<command>-fs NAMENODE -count -q hdfs:///dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for hdfs:// path - file/directory that does not exist with -q option</description>
<test-commands>
<command>-fs NAMENODE -count -q hdfs:///file1 </command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>count: `hdfs:///file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for hdfs:// path - multiple files using globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -count -q hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for hdfs:// path - multiple files without globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -count -q hdfs:///file1 hdfs:///file2 hdfs:///file3 hdfs:///file4</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for hdfs:// path - multiple directories using globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir3</command>
<command>-fs NAMENODE -mkdir hdfs:///dir4</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 hdfs:///dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m hdfs:///dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 hdfs:///dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m hdfs:///dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 hdfs:///dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m hdfs:///dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 hdfs:///dir4 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m hdfs:///dir4 </dfs-admin-command>
<command>-fs NAMENODE -count -q hdfs:///dir* </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for hdfs:// path - multiple directories without globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir1</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir3</command>
<command>-fs NAMENODE -mkdir hdfs:///dir4</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 hdfs:///dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m hdfs:///dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 hdfs:///dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m hdfs:///dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 hdfs:///dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m hdfs:///dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 hdfs:///dir4 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m hdfs:///dir4 </dfs-admin-command>
<command>-fs NAMENODE -count -q hdfs:///dir1 hdfs:///dir2 hdfs:///dir3 hdfs:///dir4 </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 hdfs:///dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for file using Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -count NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for directory using Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -count NAMENODE/dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for Namenode's path - file/directory that does not exist</description>
<test-commands>
<command>-fs NAMENODE -count NAMENODE/file1 </command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>count: `NAMENODE/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for Namenode's path - multiple files using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -count NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for Namenode's path - multiple files without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -count NAMENODE/file1 NAMENODE/file2 NAMENODE/file3 NAMENODE/file4</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for Namenode's path - multiple directories using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir3</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir4</command>
<command>-fs NAMENODE -count NAMENODE/dir* </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for Namenode's path - multiple directories without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir3</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir4</command>
<command>-fs NAMENODE -count NAMENODE/dir1 NAMENODE/dir2 NAMENODE/dir3 NAMENODE/dir4 </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for file using Namenode's path with -q option</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -count -q NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for directory using Namenode's path with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 NAMENODE/dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m NAMENODE/dir1 </dfs-admin-command>
<command>-fs NAMENODE -count -q NAMENODE/dir1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for Namenode's path - file/directory that does not exist with -q option</description>
<test-commands>
<command>-fs NAMENODE -count -q NAMENODE/file1 </command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>count: `NAMENODE/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for Namenode's path - multiple files using globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -count -q NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for Namenode's path - multiple files without globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -count -q NAMENODE/file1 NAMENODE/file2 NAMENODE/file3 NAMENODE/file4</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*none( |\t)*inf( |\t)*none( |\t)*inf( |\t)*0( |\t)*1( |\t)*0 NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for Namenode's path - multiple directories using globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir3</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir4</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 NAMENODE/dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m NAMENODE/dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 NAMENODE/dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m NAMENODE/dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 NAMENODE/dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m NAMENODE/dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 NAMENODE/dir4 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m NAMENODE/dir4 </dfs-admin-command>
<command>-fs NAMENODE -count -q NAMENODE/dir* </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>count: Test for Namenode's path - multiple directories without globbing with -q option</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir1</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir3</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir4</command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 NAMENODE/dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m NAMENODE/dir1 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 NAMENODE/dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m NAMENODE/dir2 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 NAMENODE/dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m NAMENODE/dir3 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 10 NAMENODE/dir4 </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1m NAMENODE/dir4 </dfs-admin-command>
<command>-fs NAMENODE -count -q NAMENODE/dir1 NAMENODE/dir2 NAMENODE/dir3 NAMENODE/dir4 </command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>( |\t)*10( |\t)*9( |\t)*1048576( |\t)*1048576( |\t)*1( |\t)*0( |\t)*0 NAMENODE/dir4</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for chmod -->
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -chmod 777 /file1</command>
<command>-fs NAMENODE -ls /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of file in relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -chmod 666 file1</command>
<command>-fs NAMENODE -ls file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of directory in absolute path</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 /dir0/dir1</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of directory in relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 dir0/dir1</command>
<command>-fs NAMENODE -ls -R dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -chmod a+rw /file1</command>
<command>-fs NAMENODE -ls /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of file in relative path</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -chmod a+rw file1</command>
<command>-fs NAMENODE -ls file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of directory in absolute path</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx /dir0/dir1</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of directory in relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx dir0/dir1</command>
<command>-fs NAMENODE -ls -R dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of directory in absolute path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 /dir0/dir1</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of directory in relative path recursively</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 dir0/dir1</command>
<command>-fs NAMENODE -ls -R dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of directory in absolute path recursively</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx /dir0/dir1</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of directory in relative path recursively</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx dir0/dir1</command>
<command>-fs NAMENODE -ls -R dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of non existent file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -chmod 777 /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chmod: `/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of non existent file in relative path</description>
<test-commands>
<command>-fs NAMENODE -chmod 666 file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chmod: `file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of non existent file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -chmod a+rw /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chmod: `/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of non existent file in relative path</description>
<test-commands>
<command>-fs NAMENODE -chmod a+rw file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chmod: `file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple files in absolute path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -chmod 777 /file* </command>
<command>-fs NAMENODE -ls -R /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple files in relative path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -chmod 777 file* </command>
<command>-fs NAMENODE -ls -R file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in absolute path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 /dir*</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in relative path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 dir*</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple files in absolute path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -chmod 777 /file1 /file2 /file3 /file4 </command>
<command>-fs NAMENODE -ls -R /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple files in relative path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -chmod 777 file1 file2 file3 file4 </command>
<command>-fs NAMENODE -ls -R file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in absolute path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 /dir0 /dir2</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in relative path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 dir0 dir2</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple files in absolute path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -chmod a+rw /file* </command>
<command>-fs NAMENODE -ls -R /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple files in relative path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -chmod a+rw file* </command>
<command>-fs NAMENODE -ls -R file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in absolute path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx /dir*</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in relative path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx dir*</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple files in absolute path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -chmod a+rw /file1 /file2 /file3 /file4 </command>
<command>-fs NAMENODE -ls -R /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple files in relative path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -chmod a+rw file1 file2 file3 file4 </command>
<command>-fs NAMENODE -ls -R file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in absolute path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx /dir0 /dir2</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in relative path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx dir0 dir2</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in absolute path recursively using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 /dir*</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in relative path recursively using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 dir*</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in absolute path recursively without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 /dir0 /dir2</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in relative path recursively without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 dir0 dir2</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in absolute path recursively using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx /dir*</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in relative path recursively using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx dir*</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in absolute path recursively without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx /dir0 /dir2</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in relative path recursively without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx dir0 dir2</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: invalid value in octal mode of file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -chmod 999 /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chmod: chmod : mode '999' does not match the expected pattern.</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: invalid value in octal mode of file in relative path</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -chmod 999 file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chmod: chmod : mode '999' does not match the expected pattern.</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: invalid value in normal mode of file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -chmod r+def /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chmod: chmod : mode \'r\+def\' does not match the expected pattern.</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: invalid value in normal mode of file in relative path</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -chmod r+def file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chmod: chmod : mode \'r\+def\' does not match the expected pattern.</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -chmod 777 hdfs:///file1</command>
<command>-fs NAMENODE -ls hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of directory in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -chmod a+rw hdfs:///file1</command>
<command>-fs NAMENODE -ls hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of directory in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of directory in hdfs:// path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of directory in hdfs:// path recursively</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of non existent file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -chmod 777 hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chmod: `hdfs:///file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of non existent file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -chmod a+rw hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chmod: `hdfs:///file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple files in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -chmod 777 hdfs:///file* </command>
<command>-fs NAMENODE -ls -R hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 hdfs:///dir*</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple files in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -chmod 777 hdfs:///file1 hdfs:///file2 hdfs:///file3 hdfs:///file4 </command>
<command>-fs NAMENODE -ls -R hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 hdfs:///dir0 hdfs:///dir2</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple files in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -chmod a+rw hdfs:///file* </command>
<command>-fs NAMENODE -ls -R hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx hdfs:///dir*</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple files in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -chmod a+rw hdfs:///file1 hdfs:///file2 hdfs:///file3 hdfs:///file4 </command>
<command>-fs NAMENODE -ls -R hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx hdfs:///dir0 hdfs:///dir2</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in hdfs:// path recursively using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 hdfs:///dir*</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in hdfs:// path recursively without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 hdfs:///dir0 hdfs:///dir2</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in hdfs:// path recursively using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx hdfs:///dir*</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in hdfs:// path recursively without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx hdfs:///dir0 hdfs:///dir2</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: invalid value in octal mode of file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -chmod 999 hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chmod: chmod : mode '999' does not match the expected pattern.</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: invalid value in normal mode of file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -chmod rdef hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chmod: chmod : mode \'rdef\' does not match the expected pattern.</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for chmod -->
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -chmod 777 NAMENODE/file1</command>
<command>-fs NAMENODE -ls NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of directory in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -chmod a+rw NAMENODE/file1</command>
<command>-fs NAMENODE -ls NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of directory in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of directory in Namenode's path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of directory in Namenode's path recursively</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of non existent file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -chmod 777 NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chmod: `NAMENODE/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of non existent file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -chmod a+rw NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chmod: `NAMENODE/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple files in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -chmod 777 NAMENODE/file* </command>
<command>-fs NAMENODE -ls -R NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 NAMENODE/dir*</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple files in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -chmod 777 NAMENODE/file1 NAMENODE/file2 NAMENODE/file3 NAMENODE/file4 </command>
<command>-fs NAMENODE -ls -R NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod 777 NAMENODE/dir0 NAMENODE/dir2</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple files in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -chmod a+rw NAMENODE/file* </command>
<command>-fs NAMENODE -ls -R NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx NAMENODE/dir*</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple files in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -chmod a+rw NAMENODE/file1 NAMENODE/file2 NAMENODE/file3 NAMENODE/file4 </command>
<command>-fs NAMENODE -ls -R NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-rw-rw-( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod a+rwx NAMENODE/dir0 NAMENODE/dir2</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in Namenode's path recursively using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 NAMENODE/dir*</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(octal mode) of multiple directories in Namenode's path recursively without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R 777 NAMENODE/dir0 NAMENODE/dir2</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in Namenode's path recursively using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx NAMENODE/dir*</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: change permission(normal mode) of multiple directories in Namenode's path recursively without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chmod -R a+rwx NAMENODE/dir0 NAMENODE/dir2</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxrwxrwx( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rwxrwxrwx( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: invalid value in octal mode of file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -chmod 999 NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chmod: chmod : mode '999' does not match the expected pattern.</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chmod: invalid value in normal mode of file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -chmod rdef NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chmod: chmod : mode \'rdef\' does not match the expected pattern.</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for chown -->
<test> <!-- TESTED -->
<description>chown: change ownership of file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -chown newowner:newgroup hdfs:///file1</command>
<command>-fs NAMENODE -ls hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of directory in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of directory in hdfs:// path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of non existent file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -chown newowner:newgroup hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chown: `hdfs:///file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple files in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -chown newowner:newgroup hdfs:///file* </command>
<command>-fs NAMENODE -ls -R hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup hdfs:///dir*</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple files in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -chown newowner:newgroup hdfs:///file1 hdfs:///file2 hdfs:///file3 hdfs:///file4 </command>
<command>-fs NAMENODE -ls -R hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup hdfs:///dir0 hdfs:///dir2</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories recursively in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup hdfs:///dir*</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories recursively in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup hdfs:///dir0 hdfs:///dir2</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: invalid option for owner of file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -chown %:newgroup hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chown: '%:newgroup' does not match expected pattern for \[owner\]\[:group\].</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: invalid option for group of file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -chown newowner:% hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chown: 'newowner:%' does not match expected pattern for \[owner\]\[:group\].</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for chown -->
<test> <!-- TESTED -->
<description>chown: change ownership of file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -chown newowner:newgroup /file1</command>
<command>-fs NAMENODE -ls /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of file in relative path</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -chown newowner:newgroup file1</command>
<command>-fs NAMENODE -ls file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of directory in absolute path</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup /dir0/dir1</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of directory in relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup dir0/dir1</command>
<command>-fs NAMENODE -ls -R dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of directory in absolute path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup /dir0/dir1</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of directory in relative path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup dir0/dir1</command>
<command>-fs NAMENODE -ls -R dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of non existent file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -chown newowner:newgroup /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chown: `/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of non existent file in relative path</description>
<test-commands>
<command>-fs NAMENODE -chown newowner:newgroup file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chown: `file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple files in absolute path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -chown newowner:newgroup /file* </command>
<command>-fs NAMENODE -ls -R /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple files in relative path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -chown newowner:newgroup file* </command>
<command>-fs NAMENODE -ls -R file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories in absolute path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup /dir*</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories in relative path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup dir*</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple files in absolute path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -chown newowner:newgroup /file1 /file2 /file3 /file4 </command>
<command>-fs NAMENODE -ls -R /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple files in relative path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -chown newowner:newgroup file1 file2 file3 file4 </command>
<command>-fs NAMENODE -ls -R file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories in absolute path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup /dir0 /dir2</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories in relative path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup dir0 dir2</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories recursively in absolute path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup /dir*</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories recursively in relative path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup dir*</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories recursively in absolute path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup /dir0 /dir2</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories recursively in relative path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup dir0 dir2</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: invalid option for owner of file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -chown %:newgroup /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chown: '%:newgroup' does not match expected pattern for \[owner\]\[:group\].</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: invalid option for owner of file in relative path</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -chown %:newgroup file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chown: '%:newgroup' does not match expected pattern for \[owner\]\[:group\].</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: invalid option for group of file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -chown newowner:% /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chown: 'newowner:%' does not match expected pattern for \[owner\]\[:group\].</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: invalid option for group of file in relative path</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -chown newowner:% file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chown: 'newowner:%' does not match expected pattern for \[owner\]\[:group\].</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -chown newowner:newgroup NAMENODE/file1</command>
<command>-fs NAMENODE -ls NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of directory in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of directory in Namenode's path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of non existent file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -chown newowner:newgroup NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chown: `NAMENODE/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple files in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -chown newowner:newgroup NAMENODE/file* </command>
<command>-fs NAMENODE -ls -R NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup NAMENODE/dir*</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple files in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -chown newowner:newgroup NAMENODE/file1 NAMENODE/file2 NAMENODE/file3 NAMENODE/file4 </command>
<command>-fs NAMENODE -ls -R NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chown newowner:newgroup NAMENODE/dir0 NAMENODE/dir2</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories recursively in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup NAMENODE/dir*</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: change ownership of multiple directories recursively in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chown -R newowner:newgroup NAMENODE/dir0 NAMENODE/dir2</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*newowner( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: invalid option for owner of file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -chown %:newgroup NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chown: '%:newgroup' does not match expected pattern for \[owner\]\[:group\].</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chown: invalid option for group of file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -chown newowner:% NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chown: 'newowner:%' does not match expected pattern for \[owner\]\[:group\].</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for chgrp -->
<test> <!-- TESTED -->
<description>chgrp: change group of file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -chgrp newgroup /file1</command>
<command>-fs NAMENODE -ls /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of file in relative path</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -chgrp newgroup file1</command>
<command>-fs NAMENODE -ls file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of directory in absolute path</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup /dir0/dir1</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of directory in relative path</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup dir0/dir1</command>
<command>-fs NAMENODE -ls -R dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of directory in absolute path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup /dir0/dir1</command>
<command>-fs NAMENODE -ls -R /dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of directory in relative path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup dir0/dir1</command>
<command>-fs NAMENODE -ls -R dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of non existent file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -chgrp newgroup /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chgrp: `/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of non existent file in relative path</description>
<test-commands>
<command>-fs NAMENODE -chgrp newgroup file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chgrp: `file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple files in absolute path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -chgrp newgroup /file* </command>
<command>-fs NAMENODE -ls -R /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple files in relative path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -chgrp newgroup file* </command>
<command>-fs NAMENODE -ls -R file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories in absolute path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup /dir*</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories in relative path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup dir*</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change of multiple files in absolute path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -touchz /file2</command>
<command>-fs NAMENODE -touchz /file3</command>
<command>-fs NAMENODE -touchz /file4</command>
<command>-fs NAMENODE -chgrp newgroup /file1 /file2 /file3 /file4 </command>
<command>-fs NAMENODE -ls -R /file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple files in relative path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -touchz file2</command>
<command>-fs NAMENODE -touchz file3</command>
<command>-fs NAMENODE -touchz file4</command>
<command>-fs NAMENODE -chgrp newgroup file1 file2 file3 file4 </command>
<command>-fs NAMENODE -ls -R file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories in absolute path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup /dir0 /dir2</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories in relative path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup dir0 dir2</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories recursively in absolute path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup /dir*</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories recursively in relative path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup dir*</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories recursively in absolute path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir0</command>
<command>-fs NAMENODE -mkdir /dir0/dir1</command>
<command>-fs NAMENODE -touchz /dir0/file0</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir2/dir1</command>
<command>-fs NAMENODE -touchz /dir2/file0</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz /dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup /dir0 /dir2</command>
<command>-fs NAMENODE -ls -R /dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories recursively in relative path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir0</command>
<command>-fs NAMENODE -mkdir -p dir0/dir1</command>
<command>-fs NAMENODE -touchz dir0/file0</command>
<command>-fs NAMENODE -touchz dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir -p dir2</command>
<command>-fs NAMENODE -mkdir -p dir2/dir1</command>
<command>-fs NAMENODE -touchz dir2/file0</command>
<command>-fs NAMENODE -touchz dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup dir0 dir2</command>
<command>-fs NAMENODE -ls -R dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: invalid option for group of file in absolute path</description>
<test-commands>
<command>-fs NAMENODE -touchz /file1</command>
<command>-fs NAMENODE -chgrp % /file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm /file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chgrp: '%' does not match expected pattern for group</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: invalid option for group of file in relative path</description>
<test-commands>
<command>-fs NAMENODE -touchz file1</command>
<command>-fs NAMENODE -chgrp % file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chgrp: '%' does not match expected pattern for group</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -chgrp newgroup hdfs:///file1</command>
<command>-fs NAMENODE -ls hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of directory in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of directory in hdfs:// path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -ls -R hdfs:///dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of non existent file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -chgrp newgroup hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chgrp: `hdfs:///file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple files in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -chgrp newgroup hdfs:///file* </command>
<command>-fs NAMENODE -ls -R hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup hdfs:///dir*</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change of multiple files in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -touchz hdfs:///file2</command>
<command>-fs NAMENODE -touchz hdfs:///file3</command>
<command>-fs NAMENODE -touchz hdfs:///file4</command>
<command>-fs NAMENODE -chgrp newgroup hdfs:///file1 hdfs:///file2 hdfs:///file3 hdfs:///file4 </command>
<command>-fs NAMENODE -ls -R hdfs:///file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup hdfs:///dir0 hdfs:///dir2</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories recursively in hdfs:// path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup hdfs:///dir*</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories recursively in hdfs:// path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir hdfs:///dir0</command>
<command>-fs NAMENODE -mkdir hdfs:///dir0/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2</command>
<command>-fs NAMENODE -mkdir hdfs:///dir2/dir1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/file0</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz hdfs:///dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup hdfs:///dir0 hdfs:///dir2</command>
<command>-fs NAMENODE -ls -R hdfs:///dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*hdfs:///dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: invalid option for group of file in hdfs:// path</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file1</command>
<command>-fs NAMENODE -chgrp % hdfs:///file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm hdfs:///file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chgrp: '%' does not match expected pattern for group</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for chgrp -->
<test> <!-- TESTED -->
<description>chgrp: change group of file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -chgrp newgroup NAMENODE/file1</command>
<command>-fs NAMENODE -ls NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Found 1 items</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of directory in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of directory in Namenode's path recursively </description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir0</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of non existent file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -chgrp newgroup NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^chgrp: `NAMENODE/file1': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple files in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -chgrp newgroup NAMENODE/file* </command>
<command>-fs NAMENODE -ls -R NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup NAMENODE/dir*</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change of multiple files in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/file2</command>
<command>-fs NAMENODE -touchz NAMENODE/file3</command>
<command>-fs NAMENODE -touchz NAMENODE/file4</command>
<command>-fs NAMENODE -chgrp newgroup NAMENODE/file1 NAMENODE/file2 NAMENODE/file3 NAMENODE/file4 </command>
<command>-fs NAMENODE -ls -R NAMENODE/file*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file3</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/file4</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp newgroup NAMENODE/dir0 NAMENODE/dir2</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*supergroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories recursively in Namenode's path using globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup NAMENODE/dir*</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: change group of multiple directories recursively in Namenode's path without globbing</description>
<test-commands>
<command>-fs NAMENODE -mkdir NAMENODE/dir0</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir0/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir0/dir1/file2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2</command>
<command>-fs NAMENODE -mkdir NAMENODE/dir2/dir1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/file0</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file1</command>
<command>-fs NAMENODE -touchz NAMENODE/dir2/dir1/file2</command>
<command>-fs NAMENODE -chgrp -R newgroup NAMENODE/dir0 NAMENODE/dir2</command>
<command>-fs NAMENODE -ls -R NAMENODE/dir*</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/dir*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir0/file0</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^drwxr-xr-x( )*-( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file1</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/dir1/file2</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-rw-r--r--( )*1( )*[a-zA-z0-9]*( )*newgroup( )*0( )*[0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{2,}:[0-9]{2,}( )*NAMENODE/dir2/file0</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>chgrp: invalid option for group of file in Namenode's path</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file1</command>
<command>-fs NAMENODE -chgrp % NAMENODE/file1</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm NAMENODE/file1</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-chgrp: '%' does not match expected pattern for group</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin report</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help report</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-report:( |\t)*Reports basic filesystem information and statistics.( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin safemode</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help safemode</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-safemode &lt;enter\|leave\|get\|wait&gt;:( |\t)*Safe mode maintenance command.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*Safe mode is a Namenode state in which it( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*1.( )*does not accept changes to the name space \(read-only\)( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*2.( )*does not replicate or delete blocks.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*Safe mode is entered automatically at Namenode startup, and( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*leaves safe mode automatically when the configured minimum( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*percentage of blocks satisfies the minimum replication( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*condition. Safe mode can also be entered manually, but then( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*it can only be turned off manually as well.( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin refreshNodes</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help refreshNodes</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-refreshNodes:( |\t)*Updates the namenode with the set of datanodes allowed to connect to the namenode.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*Namenode re-reads datanode hostnames from the file defined by( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*dfs.hosts, dfs.hosts.exclude configuration parameters.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*Hosts defined in dfs.hosts are the datanodes that are part of( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*the cluster. If there are entries in dfs.hosts, only the hosts( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*in it are allowed to register with the namenode.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*Entries in dfs.hosts.exclude are datanodes that need to be( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*decommissioned. Datanodes complete decommissioning when ( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*all the replicas from them are replicated to other datanodes.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*Decommissioned nodes are not automatically shutdown and( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*are not chosen for writing new replicas.( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin finalizeUpgrade</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help finalizeUpgrade</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-finalizeUpgrade:( )*Finalize upgrade of HDFS.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*Datanodes delete their previous version working directories,( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*followed by Namenode doing the same.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*This completes the upgrade process.( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin metasave</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help metasave</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-metasave &lt;filename&gt;:( |\t)*Save Namenode's primary data structures( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*to &lt;filename&gt; in the directory specified by hadoop.log.dir property.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*&lt;filename&gt; will contain one line for each of the following( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*1. Datanodes heart beating with Namenode( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*2. Blocks waiting to be replicated( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*3. Blocks currrently being replicated( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*4. Blocks waiting to be deleted( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin setQuota</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help setQuota</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-setQuota &lt;quota&gt; &lt;dirname&gt;...&lt;dirname&gt;: Set the quota &lt;quota&gt; for each directory &lt;dirName&gt;.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*The directory quota is a long integer that puts a hard limit( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*on the number of names in the directory tree( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*For each directory, attempt to set the quota. An error will be reported if( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*1. N is not a positive integer, or( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*2. User is not an administrator, or( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*3. The directory does not exist or is a file.( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin clrQuota</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help clrQuota</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-clrQuota &lt;dirname&gt;...&lt;dirname&gt;: Clear the quota for each directory &lt;dirName&gt;.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*For each directory, attempt to clear the quota. An error will be reported if( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*1. the directory does not exist or is a file, or( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*2. user is not an administrator.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*It does not fault if the directory has no quota.( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin setSpaceQuota</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help setSpaceQuota</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-setSpaceQuota &lt;quota&gt; &lt;dirname&gt;...&lt;dirname&gt;: Set the disk space quota &lt;quota&gt; for each directory &lt;dirName&gt;.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*The space quota is a long integer that puts a hard limit( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*on the total size of all the files under the directory tree.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*2. user is not an administrator, or( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin clrSpaceQuota</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help clrSpaceQuota</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-clrSpaceQuota &lt;dirname&gt;...&lt;dirname&gt;: Clear the disk space quota for each directory &lt;dirName&gt;.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*For each directory, attempt to clear the quota. An error will be reported if( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*1. the directory does not exist or is a file, or( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*2. user is not an administrator.( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*It does not fault if the directory has no quota.( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin refreshServiceAcl</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help refreshServiceAcl</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-refreshServiceAcl: Reload the service-level authorization policy file( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*Namenode will reload the authorization policy file.( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>help: help for dfsadmin help</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -help help</dfs-admin-command>
</test-commands>
<cleanup-commands>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^-help \[cmd\]:( |\t)*Displays help for the given command or all commands if none( )*</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>^( |\t)*is specified.( )*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>verifying error messages for quota commands - setting quota on a file</description>
<test-commands>
<command>-fs NAMENODE -mkdir /test </command>
<command>-fs NAMENODE -touchz /test/file1 </command>
<dfs-admin-command>-fs NAMENODE -setQuota 1 /test/file1 </dfs-admin-command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -setQuota 5 /test </dfs-admin-command>
<!-- Same directory will be used in the next test -->
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>setQuota: `/test/file1': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>verifying error messages for quota commands - setting quota on non-existing file</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1g /test1 </dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- Same directory will be used in the next test -->
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>setSpaceQuota: Directory does not exist: /test1</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>verifying error messages for quota commands - exceeding quota</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -setQuota 3 /test </dfs-admin-command>
<command>-fs NAMENODE -touchz /test/file0 </command>
<command>-fs NAMENODE -mkdir /test/test1 </command>
</test-commands>
<cleanup-commands>
<!-- Same directory(/test) will be used in the next test -->
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>The NameSpace quota (directories and files) of directory /test is exceeded</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>verifying error messages for quota commands - setting not valid quota</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -setQuota 0 /test </dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- Same directory will be used in the next test -->
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>Invalid values for quota : 0</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>verifying error messages for quota commands - setting not valid space quota</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota a5 /test </dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- Same directory will be used in the next test -->
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>setSpaceQuota: "a5" is not a valid value for a quota.</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>verifying error messages for quota commands - clearQuota on non existing file</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -clrQuota /test1 </dfs-admin-command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /test </command>
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>clrQuota: Directory does not exist: /test1</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>verifying error messages for quota commands - using globing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir3</command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 1k /dir* </dfs-admin-command>
<command>-fs NAMENODE -put CLITEST_DATA/data15bytes /dir1/</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir* </command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>put: The DiskSpace quota of /dir1 is exceeded: quota = 1024 B = 1 KB but diskspace consumed = [0-9]+ B = [0-9.]+ [KMG]B*</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>verifying error messages for quota commands - setting quota using globing</description>
<test-commands>
<command>-fs NAMENODE -mkdir /dir1</command>
<command>-fs NAMENODE -mkdir /dir2</command>
<command>-fs NAMENODE -mkdir /dir3</command>
<dfs-admin-command>-fs NAMENODE -setQuota 1 /dir* </dfs-admin-command>
<command>-fs NAMENODE -mkdir /dir1/dir4</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /dir* </command>
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>mkdir: The NameSpace quota (directories and files) of directory /dir1 is exceeded: quota=1 file count=2</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>refreshServiceAcl: refreshing security authorization policy for namenode</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -refreshServiceAcl </dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- No cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test><!--
<test> Tested
<description>refreshServiceAcl: verifying error message while refreshing security authorization policy for namenode</description>
<test-commands>
hadoop-policy.xml for tests has
security.refresh.policy.protocol.acl = ${user.name}
<dfs-admin-command>-fs NAMENODE -Dhadoop.job.ugi=blah,blah -refreshServiceAcl </dfs-admin-command>
</test-commands>
<cleanup-commands>
No cleanup
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>access denied</expected-output>
</comparator>
</comparators>
</test>
--><!-- Test for safemode -->
<test> <!-- TESTED -->
<description>safemode: Test for enter - Namenode is not in safemode</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -safemode enter</dfs-admin-command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Safe mode is ON</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>safemode: Test for enter - Namenode is already in safemode</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -safemode enter</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -safemode enter</dfs-admin-command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Safe mode is ON</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>safemode: Test for leave - Namenode is already in safemode</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -safemode enter</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- No cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Safe mode is OFF</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>safemode: Test for leave - Namenode is not in safemode</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- No cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Safe mode is OFF</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>safemode: Test for get - Namenode is not in safemode</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -safemode get</dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- No cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Safe mode is OFF</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>safemode:Test for get - Namenode is already in safemode</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -safemode enter</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -safemode get</dfs-admin-command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Safe mode is ON</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>safemode: Test for wait - Namenode is not in safemode</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -safemode wait</dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- No cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Safe mode is OFF</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>safemode: Test for wait - Namenode is already in safemode</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -safemode enter</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -safemode wait &amp;</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- No cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>Safe mode is OFF</expected-output>
</comparator>
</comparators>
</test>
<!-- Test for report -->
<test> <!-- TESTED -->
<description>report: Displays the report about the Datanodes</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -report</dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- no cleanup cmd -->
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>Configured Capacity: [0-9]+ \([0-9]+\.[0-9]+ [BKMGT]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Present Capacity: [0-9]+ \([0-9\.]+ [BKMGT]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>DFS Remaining: [0-9]+ \([0-9\.]+ [BKMGT]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>DFS Used: [0-9]+ \([0-9\.]+ [BKMGT]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>DFS Used\%: [0-9\.]+%</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Datanodes available: [0-9]+ \([0-9]+ total, [0-9]+ dead\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Name: [0-9\.:]+ \([-.a-zA-z0-9\.]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Hostname: [-.a-zA-z0-9\.]+</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Decommission Status : [a-zA-Z]+</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Non DFS Used: [0-9]+ \([0-9\.]+ [BKMGT]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>DFS Remaining%: [0-9\.]+%</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Last contact: [a-zA-Z]+ [a-zA-Z]+ [0-9]+ [0-9:]+ [A-Z\-\+\:0-9]+ [0-9]+</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>Live datanodes:</expected-output>
</comparator>
</comparators>
</test>
<!-- Test for saveNamespace -->
<test> <!-- TESTED -->
<description>saveNamespace: to save the namespace when safemode is ON</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -safemode enter</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -saveNamespace</dfs-admin-command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>saveNamespace: to save the namespace when safemode is OFF</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -saveNamespace</dfs-admin-command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave</dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>saveNamespace: Safe mode should be turned ON in order to create namespace image.</expected-output>
</comparator>
</comparators>
</test>
<!-- Test for rollEdits -->
<test> <!-- TESTED -->
<description>rollEdits: test rollEdits admin command</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -rollEdits</dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- no cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>New segment starts at txid \d+</expected-output>
</comparator>
</comparators>
</test>
<!-- Test for refreshNodes -->
<test> <!-- TESTED -->
<description>refreshNodes: to refresh the nodes</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -refreshNodes</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -report</dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- no cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>Configured Capacity: [0-9]+ \([0-9]+\.[0-9]+ [BKMGT]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Present Capacity: [0-9]+ \([0-9\.]+ [BKMGT]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>DFS Remaining: [0-9]+ \([0-9\.]+ [BKMGT]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>DFS Used: [0-9]+ \([0-9\.]+ [BKMGT]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>DFS Used\%: [0-9\.]+%</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Datanodes available: [0-9]+ \([0-9]+ total, [0-9]+ dead\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Name: [0-9\.:]+ \([-.a-zA-z0-9\.]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Hostname: [-.a-zA-z0-9\.]+</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Decommission Status : [a-zA-Z]+</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Non DFS Used: [0-9]+ \([0-9\.]+ [BKMGT]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>DFS Remaining%: [0-9\.]+%</expected-output>
</comparator>
<comparator>
<type>RegexpComparator</type>
<expected-output>Last contact: [a-zA-Z]+ [a-zA-Z]+ [0-9]+ [0-9:]+ [A-Z\-\+\:0-9]+ [0-9]+</expected-output>
</comparator>
<comparator>
<type>TokenComparator</type>
<expected-output>Live datanodes:</expected-output>
</comparator>
</comparators>
</test>
<!-- Test for metasave -->
<test> <!-- TESTED -->
<description>metasave: to save metadata</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -metasave metafile</dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- No cleanup -->
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>Created metasave file metafile in the log directory of namenode hdfs:\/\/[-.a-zA-Z0-9\.:]+</expected-output>
</comparator>
</comparators>
</test>
<!-- Test for clrSpacequota -->
<test> <!-- TESTED -->
<description>clrSpaceQuota: Namenode is already in safemode</description>
<test-commands>
<command>-fs NAMENODE -mkdir test</command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 15 test</dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -clrSpaceQuota test</dfs-admin-command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r test</command>
</cleanup-commands>
<comparators>
<comparator>
<type>ExactComparator</type>
<expected-output></expected-output>
</comparator>
</comparators>
</test>
<test> <!-- Tested -->
<description>printTopology: verifying that the topology map is what we expect</description>
<test-commands>
<dfs-admin-command>-fs NAMENODE -printTopology</dfs-admin-command>
</test-commands>
<cleanup-commands>
<!-- No cleanup -->
</cleanup-commands>
<comparators>
<!-- miniDFS cluster started in CLITestHelper is set to match this output -->
<comparator>
<type>RegexpAcrossOutputComparator</type>
<expected-output>^Rack: \/rack1\s*127\.0\.0\.1:\d+\s\([-.a-zA-Z0-9]+\)\s*127\.0\.0\.1:\d+\s\([-.a-zA-Z0-9]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpAcrossOutputComparator</type>
<expected-output>Rack: \/rack2\s*127\.0\.0\.1:\d+\s\([-.a-zA-Z0-9]+\)\s*127\.0\.0\.1:\d+\s\([-.a-zA-Z0-9]+\)\s*127\.0\.0\.1:\d+\s\([-.a-zA-Z0-9]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpAcrossOutputComparator</type>
<expected-output>Rack: \/rack3\s*127\.0\.0\.1:\d+\s\([-.a-zA-Z0-9]+\)</expected-output>
</comparator>
<comparator>
<type>RegexpAcrossOutputComparator</type>
<expected-output>Rack: \/rack4\s*127\.0\.0\.1:\d+\s\([-.a-zA-Z0-9]+\)\s*127\.0\.0\.1:\d+\s\([-.a-zA-Z0-9]+\)</expected-output>
</comparator>
</comparators>
</test>
<!-- Tests for moveFromLocal -->
<test> <!-- TESTED -->
<description>moveFromLocal: moving non existent file(absolute path)</description>
<test-commands>
<command>-fs NAMENODE -moveFromLocal /user/wrongdata file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>moveFromLocal: `/user/wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>moveFromLocal: moving non existent file(relative path)</description>
<test-commands>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz test</command>
<command>-fs NAMENODE -moveFromLocal wrongdata file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>moveFromLocal: `wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>moveFromLocal: moving many files into an existing file</description>
<test-commands>
<command>-fs NAMENODE -moveFromLocal CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -moveFromLocal CLITEST_DATA/data30bytes /data30bytes</command>
<command>-fs NAMENODE -mkdir -p dir</command> <!-- make sure user home dir exists -->
<command>-fs NAMENODE -touchz file0</command>
<command>-fs NAMENODE -moveFromLocal /data15bytes /data30bytes file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^moveFromLocal: `file0': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>moveFromLocal: moving many files into a non existent directory</description>
<test-commands>
<command>-fs NAMENODE -moveFromLocal CLITEST_DATA/data15bytes /data15bytes</command>
<command>-fs NAMENODE -moveFromLocal CLITEST_DATA/data30bytes /data30bytes</command>
<command>-fs NAMENODE -moveFromLocal /data15bytes /data30bytes wrongdir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^moveFromLocal: `wrongdir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>moveFromLocal: Test for hdfs:// path - moving non existent file</description>
<test-commands>
<command>-fs NAMENODE -moveFromLocal /user/wrongdata hdfs:///file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>moveFromLocal: `/user/wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>moveFromLocal: Test for hdfs:// path - moving many files into an existing file</description>
<test-commands>
<command>-fs NAMENODE -touchz hdfs:///file0</command>
<command>-fs NAMENODE -moveFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes hdfs:///file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r hdfs:///*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^moveFromLocal: `hdfs:///file0': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>moveFromLocal: Test for hdfs:// path - moving many files into a non existent directory</description>
<test-commands>
<command>-fs NAMENODE -moveFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes hdfs:///wrongdir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^moveFromLocal: `hdfs:///wrongdir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>moveFromLocal: Test for Namenode's path - moving non existent file</description>
<test-commands>
<command>-fs NAMENODE -moveFromLocal /user/wrongdata NAMENODE/file</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>TokenComparator</type>
<expected-output>moveFromLocal: `/user/wrongdata': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>moveFromLocal: Test for Namenode's path - moving many files into an existing file</description>
<test-commands>
<command>-fs NAMENODE -touchz NAMENODE/file0</command>
<command>-fs NAMENODE -moveFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes NAMENODE/file0</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r NAMENODE/*</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^moveFromLocal: `hdfs://\w+[-.a-z0-9]*:[0-9]+/file0': Is not a directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!-- TESTED -->
<description>moveFromLocal: Test for Namenode's path - moving many files into a non existent directory</description>
<test-commands>
<command>-fs NAMENODE -moveFromLocal CLITEST_DATA/data15bytes CLITEST_DATA/data30bytes NAMENODE/wrongdir</command>
</test-commands>
<cleanup-commands>
<command>-fs NAMENODE -rm -r /user</command>
</cleanup-commands>
<comparators>
<comparator>
<type>RegexpComparator</type>
<expected-output>^moveFromLocal: `hdfs://\w+[-.a-z0-9]*:[0-9]+/wrongdir': No such file or directory</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>Verifying chmod operation is not permitted in safemode</description>
<test-commands>
<command>-fs NAMENODE -mkdir /test </command>
<command>-fs NAMENODE -touchz /test/file1 </command>
<dfs-admin-command>-fs NAMENODE -safemode enter </dfs-admin-command>
<command>-fs NAMENODE -chmod 777 /test/file1 </command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -rm -r /test </dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>Cannot set permission for /test/file1. Name node is in safe mode.</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>Verifying chown operation is not permitted in safemode</description>
<test-commands>
<command>-fs NAMENODE -mkdir /test </command>
<command>-fs NAMENODE -touchz /test/file1 </command>
<dfs-admin-command>-fs NAMENODE -safemode enter </dfs-admin-command>
<command>-fs NAMENODE -chown newgroup /test/file1 </command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -rm -r /test </dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>Cannot set owner for /test/file1. Name node is in safe mode.</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>Verifying chgrp operation is not permitted in safemode</description>
<test-commands>
<command>-fs NAMENODE -mkdir /test </command>
<command>-fs NAMENODE -touchz /test/file1 </command>
<dfs-admin-command>-fs NAMENODE -safemode enter </dfs-admin-command>
<command>-fs NAMENODE -chgrp newgroup /test/file1 </command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -rm -r /test </dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>Cannot set owner for /test/file1. Name node is in safe mode.</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>Verifying setQuota operation is not permitted in safemode</description>
<test-commands>
<command>-fs NAMENODE -mkdir /test </command>
<dfs-admin-command>-fs NAMENODE -safemode enter </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setQuota 100 /test </dfs-admin-command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -rm -r /test </dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>setQuota: Cannot set quota on /test. Name node is in safe mode.</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>Verifying clrQuota operation is not permitted in safemode</description>
<test-commands>
<command>-fs NAMENODE -mkdir /test </command>
<dfs-admin-command>-fs NAMENODE -safemode enter </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -clrQuota /test </dfs-admin-command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -rm -r /test </dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>clrQuota: Cannot set quota on /test. Name node is in safe mode.</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>Verifying setSpaceQuota operation is not permitted in safemode</description>
<test-commands>
<command>-fs NAMENODE -mkdir /test </command>
<dfs-admin-command>-fs NAMENODE -safemode enter </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -setSpaceQuota 100 /test </dfs-admin-command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -rm -r /test </dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>setSpaceQuota: Cannot set quota on /test. Name node is in safe mode.</expected-output>
</comparator>
</comparators>
</test>
<test> <!--Tested -->
<description>Verifying clrSpaceQuota operation is not permitted in safemode</description>
<test-commands>
<command>-fs NAMENODE -mkdir /test </command>
<dfs-admin-command>-fs NAMENODE -safemode enter </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -clrSpaceQuota /test </dfs-admin-command>
</test-commands>
<cleanup-commands>
<dfs-admin-command>-fs NAMENODE -safemode leave </dfs-admin-command>
<dfs-admin-command>-fs NAMENODE -rm -r /test </dfs-admin-command>
</cleanup-commands>
<comparators>
<comparator>
<type>SubstringComparator</type>
<expected-output>clrSpaceQuota: Cannot set quota on /test. Name node is in safe mode.</expected-output>
</comparator>
</comparators>
</test>
</tests>
</configuration>