tests: add tests for basename's --zero option
authorBernhard Voelker <mail@bernhard-voelker.de>
Thu, 20 Dec 2012 15:38:56 +0000 (16:38 +0100)
committerBernhard Voelker <mail@bernhard-voelker.de>
Thu, 20 Dec 2012 15:38:56 +0000 (16:38 +0100)
The -z option has been introduced in commit v8.15-60-ga3eb71a,
i.e. in coreutils-8.16.  Time to add some tests for it.

* tests/misc/basename.pl: Add tests exercising the -z option.
In the foreach loop to append a newline to the end of each
expected 'OUT' string, skip the -z tests.

tests/misc/basename.pl

index d0ab57b..e95dff9 100755 (executable)
@@ -61,9 +61,17 @@ my @Tests =
      ['8', qw(fs x),       {OUT => 'fs'}],
      ['9', qw(fs ''),      {OUT => 'fs'}],
      ['10', qw(fs/ s/),    {OUT => 'fs'}],
+
+     # Exercise -z option.
+     ['z0', qw(-z a),       {OUT => "a\0"}],
+     ['z1', qw(--zero a),   {OUT => "a\0"}],
+     ['z2', qw(-za a b),    {OUT => "a\0b\0"}],
+     ['z3', qw(-z ba a),    {OUT => "b\0"}],
+     ['z4', qw(-z -s a ba), {OUT => "b\0"}],
    );
 
 # Append a newline to end of each expected 'OUT' string.
+# Skip -z tests, i.e. those whose 'OUT' string has a trailing '\0'.
 my $t;
 foreach $t (@Tests)
   {
@@ -72,7 +80,8 @@ foreach $t (@Tests)
     foreach $e (@$t)
       {
         $e->{OUT} = "$e->{OUT}\n"
-          if ref $e eq 'HASH' and exists $e->{OUT};
+          if ref $e eq 'HASH' and exists $e->{OUT}
+            and not $e->{OUT} =~ /\0$/;
       }
   }