diff options
Diffstat (limited to 'tests/libtest')
| -rwxr-xr-x | tests/libtest/test613.pl | 20 | 
1 files changed, 17 insertions, 3 deletions
| diff --git a/tests/libtest/test613.pl b/tests/libtest/test613.pl index ead1159ff..8efc05ca0 100755 --- a/tests/libtest/test613.pl +++ b/tests/libtest/test613.pl @@ -97,15 +97,29 @@ elsif ($ARGV[0] eq "postprocess")          my @canondir;          open(IN, "<$logfile") || die "$!";          while (<IN>) { -            /^(.)(..).(..).(..).\s*(\S+)\s+\S+\s+\S+\s+(\S+)\s+(\S+\s+\S+\s+\S+)(.*)$/; +            /^(.)(..).(..).(..).\s*(\S+)\s+\S+\s+\S+\s+(\S+)\s+(\S+\s+\S+\s+\S+)\s+(.*)$/;              if ($1 eq "d") { +                # Skip current and parent directory listing, because some SSH +                # servers (eg. OpenSSH for Windows) are not listing those +                if ($8 eq "." || $8 eq "..") { +                    next; +                }                  # Erase all directory metadata except for the name, as it is not                  # consistent for across all test systems and filesystems -                push @canondir, "d?????????    N U         U               N ???  N NN:NN$8\n"; +                push @canondir, "d?????????    N U         U               N ???  N NN:NN $8\n";              } elsif ($1 eq "-") { +                # Replace missing group and other permissions with user +                # permissions (eg. on Windows) due to them being shown as * +                my ($u, $g, $o) = ($2, $3, $4); +                if($g eq "**") { +                    $g = $u; +                } +                if($o eq "**") { +                    $o = $u; +                }                  # Erase user and group names, as they are not consistent across                  # all test systems -                my $line = sprintf("%s%s?%s?%s?%5d U         U %15d %s%s\n", $1,$2,$3,$4,$5,$6,$7,$8); +                my $line = sprintf("%s%s?%s?%s?%5d U         U %15d %s %s\n", $1,$u,$g,$o,$5,$6,$7,$8);                  push @canondir, $line;              } else {                  # Unexpected format; just pass it through and let the test fail | 
