]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
tests: tty-eof: fix various issues
authorPádraig Brady <P@draigBrady.com>
Tue, 11 Apr 2023 12:02:21 +0000 (13:02 +0100)
committerPádraig Brady <P@draigBrady.com>
Thu, 13 Apr 2023 23:02:22 +0000 (00:02 +0100)
* tests/misc/tty-eof.pl: Ensure we don't erroneously
skip commands with parameters.
Comment as to why cut(1) is treated differently.
Adjust expect calls to not wait needlessly for cut output.

tests/misc/tty-eof.pl

index d429cbb8ff3f8185165d0ca039b236e505f4365a..ad639189f0806b26e60601199051915e53610acd 100755 (executable)
@@ -69,15 +69,19 @@ $@
     {
       my $exp = new Expect;
       $exp->log_user(0);
-      $ENV{built_programs} =~ /\b$cmd\b/ || next;
+      my $cmd_name = (split(' ', $cmd))[0];
+      $ENV{built_programs} =~ /\b$cmd_name\b/ || next;
       $exp->spawn("$cmd 2> $stderr")
         or (warn "$ME: cannot run '$cmd': $!\n"), $fail=1, next;
-      # No input for cut -f2.
+      # Test cut in a different mode, even though it supports the standard flow
+      # Ensure that it exits with no input as it used to not do so
       $cmd =~ /^cut/
         or $exp->send("a b\n");
       $exp->send("\cD");  # This is Control-D.  FIXME: what if that's not EOF?
-      $exp->expect (0, '-re', "^a b\\r?\$");
-      my $found = $exp->expect (1, '-re', "^.+\$");
+      $cmd =~ /^cut/
+        or $exp->expect (0, '-re', "^a b\\r?\$");
+      $cmd =~ /^cut/
+        or my $found = $exp->expect (1, '-re', "^.+\$");
       $found and warn "F: $found: " . $exp->exp_match () . "\n";
       $exp->expect(10, 'eof');
       # Expect no output from cut, since we gave it no input.