diff --git a/src/parallel b/src/parallel index f25a0d2f..a772130e 100755 --- a/src/parallel +++ b/src/parallel @@ -34,8 +34,8 @@ use strict; $::oodebug=0; $SIG{TERM} ||= sub { exit 0; }; # $SIG{TERM} is not set on Mac OS X if(not $ENV{SHELL}) { - # $ENV{SHELL} is sometimes not set on Mac OS X - print STDERR ("parallel: Warning: \$SHELL not set. Using /bin/sh\n"); + # $ENV{SHELL} is sometimes not set on Mac OS X and Windows + ::warning("\$SHELL not set. Using /bin/sh.\n"); $ENV{SHELL} = "/bin/sh"; } %Global::original_sig = %SIG; @@ -110,9 +110,8 @@ if($::opt_filter_hosts) { } elsif($col[6] eq "127") { # signal == 127: parallel not installed remote # Set ncpus and ncores = 1 - print $Global::original_stderr - ("parallel: Warning: Could not figure out ", - "number of cpus on $col[1]. Using 1\n"); + ::warning("Could not figure out ", + "number of cpus on $col[1]. Using 1.\n"); $ncores{$col[1]} = 1; $ncpus{$col[1]} = 1; $maxlen{$col[1]} = Limits::Command::max_length(); @@ -349,7 +348,7 @@ sub spreadstdin { } } } - + # If there is anything left in the buffer write it substr($buf,0,0) = ""; write_record_to_pipe(\$header,\$buf,$recstart,$recend,length $buf); @@ -614,13 +613,13 @@ sub parse_options { @ARGV=read_options(); if(defined $::opt_retired) { - print STDERR "$Global::progname: -g has been retired. Use --group.\n"; - print STDERR "$Global::progname: -B has been retired. Use --bf.\n"; - print STDERR "$Global::progname: -T has been retired. Use --tty.\n"; - print STDERR "$Global::progname: -U has been retired. Use --er.\n"; - print STDERR "$Global::progname: -W has been retired. Use --wd.\n"; - print STDERR "$Global::progname: -Y has been retired. Use --shebang.\n"; - print STDERR "$Global::progname: -H has been retired. Use --halt.\n"; + ::error("-g has been retired. Use --group.\n"); + ::error("-B has been retired. Use --bf.\n"); + ::error("-T has been retired. Use --tty.\n"); + ::error("-U has been retired. Use --er.\n"); + ::error("-W has been retired. Use --wd.\n"); + ::error("-Y has been retired. Use --shebang.\n"); + ::error("-H has been retired. Use --halt.\n"); ::wait_and_exit(255); } if(@::opt_v) { $Global::verbose = $#::opt_v+1; } # Convert -v -v to v=2 @@ -791,8 +790,8 @@ sub parse_options { $::opt_P = 1; } if($Global::interactive and $::opt_bg) { - print STDERR "$Global::progname: Jobs running in the ". - "background cannot be interactive.\n"; + ::error("Jobs running in the ". + "background cannot be interactive.\n"); ::wait_and_exit(255); } } @@ -806,8 +805,7 @@ sub parse_options { # As we do not know the max line length on the remote machine # long commands generated by xargs may fail # If opt_N is set, it is probably safe - print STDERR ("$Global::progname: Warning: using -X or -m ", - "with --sshlogin may fail\n"); + ::warning("Using -X or -m with --sshlogin may fail.\n"); } if(not defined $::opt_P) { @@ -819,7 +817,7 @@ sub parse_options { sub open_joblog { my $append = 0; if($::opt_resume and not $::opt_joblog) { - print STDERR ("$Global::progname: --resume requires --joblog\n"); + ::error("--resume requires --joblog.\n"); ::wait_and_exit(255); } if($::opt_joblog) { @@ -832,7 +830,7 @@ sub open_joblog { # This is 30% faster than set_job_already_run($1); vec($Global::job_already_run,$1,1) = 1; } else { - print STDERR ("$Global::progname: Format of '$::opt_joblog' is wrong\n"); + ::error("Format of '$::opt_joblog' is wrong.\n"); ::wait_and_exit(255); } } @@ -842,15 +840,13 @@ sub open_joblog { if($append) { # Append to joblog if(not open($Global::joblog,">>$::opt_joblog")) { - print STDERR ("$Global::progname: Cannot append to ", - "--joblog $::opt_joblog\n"); + ::error("Cannot append to --joblog $::opt_joblog.\n"); ::wait_and_exit(255); } } else { # Overwrite the joblog if(not open($Global::joblog,">$::opt_joblog")) { - print STDERR ("$Global::progname: Cannot write to ", - "--joblog $::opt_joblog\n"); + ::error("Cannot write to --joblog $::opt_joblog.\n"); ::wait_and_exit(255); } else { print $Global::joblog @@ -908,7 +904,7 @@ sub read_options { if(grep /^$profile$/, @config_profiles) { # config file is not required to exist } else { - print STDERR "$Global::progname: $profile not readable\n"; + ::error("$profile not readable.\n"); wait_and_exit(255); } } @@ -1096,9 +1092,7 @@ sub open_or_exit { } my $fh = gensym; if(not open($fh,"<",$file)) { - print STDERR "$Global::progname: ". - "Cannot open input file `$file': ". - "No such file or directory\n"; + ::error("Cannot open input file `$file': No such file or directory.\n"); wait_and_exit(255); } return $fh; @@ -1229,10 +1223,9 @@ sub start_another_job { $sshlogin->set_max_jobs_running($max); # Sleep up to 300 ms to give other processes time to die ::usleep(rand()*300); - print $Global::original_stderr - ("parallel: Warning: No more processes: ". - "Decreasing number of running jobs to $max. ". - "Raising ulimit -u may help.\n"); + ::warning("No more processes: ", + "Decreasing number of running jobs to $max. ", + "Raising ulimit -u may help.\n"); return 0; } } @@ -1559,7 +1552,7 @@ sub read_sshloginfile { $close = 0; } else { if(not open(IN, $file)) { - print $Global::original_stderr "Cannot open $file\n"; + ::error("Cannot open $file.\n"); ::wait_and_exit(255); } } @@ -1598,20 +1591,15 @@ sub parse_sshlogin { if(not remote_hosts()) { # There are no remote hosts if(@::opt_trc) { - print $Global::original_stderr - "parallel: Warning: --trc ignored as there are no remote --sshlogin\n"; + ::warning("--trc ignored as there are no remote --sshlogin.\n"); } elsif (defined $::opt_transfer) { - print $Global::original_stderr - "parallel: Warning: --transfer ignored as there are no remote --sshlogin\n"; + ::warning("--transfer ignored as there are no remote --sshlogin.\n"); } elsif (@::opt_return) { - print $Global::original_stderr - "parallel: Warning: --return ignored as there are no remote --sshlogin\n"; + ::warning("--return ignored as there are no remote --sshlogin.\n"); } elsif (defined $::opt_cleanup) { - print $Global::original_stderr - "parallel: Warning: --cleanup ignored as there are no remote --sshlogin\n"; + ::warning("--cleanup ignored as there are no remote --sshlogin.\n"); } elsif (@::opt_basefile) { - print $Global::original_stderr - "parallel: Warning: --basefile ignored as there are no remote --sshlogin\n"; + ::warning("--basefile ignored as there are no remote --sshlogin.\n"); } } } @@ -1835,6 +1823,22 @@ sub usage { ""); } +sub warning { + my @w = @_; + my $fh = $Global::original_stderr || *STDERR; + my $prog = $Global::progname || "parallel"; + print $fh $prog, ": Warning: ", @w; +} + + +sub error { + my @w = @_; + my $fh = $Global::original_stderr || *STDERR; + my $prog = $Global::progname || "parallel"; + print $fh $prog, ": Error: ", @w; +} + + sub die_bug { my $bugid = shift; print STDERR @@ -2558,20 +2562,16 @@ sub processes_available_by_system_limit { if($system_limit < $wanted_processes) { # The system_limit is less than the wanted_processes if($system_limit < 1 and not $Global::JobQueue->empty()) { - print $Global::original_stderr "$Global::progname: Cannot spawn any jobs. ", - "Raising ulimit -u may help.\n"; + ::warning("Cannot spawn any jobs. Raising ulimit -u may help.\n"); ::wait_and_exit(255); } if(not $more_filehandles) { - print $Global::original_stderr - ("parallel: Warning: Only enough filehandles to run ", - $system_limit, " jobs in parallel. ", - "Raising ulimit -n may help.\n"); + ::warning("Only enough filehandles to run ", $system_limit, + " jobs in parallel. Raising ulimit -n may help.\n"); } if($max_system_proc_reached) { - print $Global::original_stderr - ("parallel: Warning: Only enough available processes to run ", - $system_limit, " jobs in parallel. Raising ulimit -u may help.\n"); + ::warning("Only enough available processes to run ", $system_limit, + " jobs in parallel. Raising ulimit -u may help.\n"); } } if($Global::JobQueue->empty()) { @@ -2598,13 +2598,12 @@ sub simultaneous_sshlogin_limit { $self->simultaneous_sshlogin($wanted_processes)); if($ssh_limit < $wanted_processes) { my $serverlogin = $self->serverlogin(); - print $Global::original_stderr - ("parallel: Warning: ssh to $serverlogin only allows ", - "for $ssh_limit simultaneous logins.\n", - "You may raise this by changing ", - "/etc/ssh/sshd_config:MaxStartup on $serverlogin\n", - "Using only ",$ssh_limit-1," connections ", - "to avoid race conditions\n"); + ::warning("ssh to $serverlogin only allows ", + "for $ssh_limit simultaneous logins.\n", + "You may raise this by changing ", + "/etc/ssh/sshd_config:MaxStartup on $serverlogin.\n", + "Using only ",$ssh_limit-1," connections ", + "to avoid race conditions.\n"); } # Race condition can cause problem if using all sshs. if($ssh_limit > 1) { $ssh_limit -= 1; } @@ -2672,11 +2671,11 @@ sub user_requested_processes { close IN; $processes = $self->user_requested_processes($opt_P_file); } else { - print $Global::original_stderr "Cannot open $opt_P\n"; + ::error("Cannot open $opt_P.\n"); ::wait_and_exit(255); } } else { - print $Global::original_stderr "Parsing of --jobs/-j/--max-procs/-P failed\n"; + ::error("Parsing of --jobs/-j/--max-procs/-P failed.\n"); ::die_usage(); } if($processes < 1) { @@ -2708,9 +2707,8 @@ sub ncpus { if($ncpu =~ /^\s*[0-9]+\s*$/s) { $self->{'ncpus'} = $ncpu; } else { - print $Global::original_stderr - ("parallel: Warning: Could not figure out ", - "number of cpus on $serverlogin ($ncpu). Using 1\n"); + ::warning("Could not figure out ", + "number of cpus on $serverlogin ($ncpu). Using 1.\n"); $self->{'ncpus'} = 1; } } @@ -2745,7 +2743,7 @@ sub no_of_cpus { chomp $no_of_cpus; return $no_of_cpus; } else { - warn("parallel: Cannot figure out number of cpus. Using 1"); + ::warning("Cannot figure out number of cpus. Using 1.\n"); return 1; } } @@ -2777,7 +2775,7 @@ sub no_of_cores { chomp $no_of_cores; return $no_of_cores; } else { - warn("parallel: Cannot figure out number of CPU cores. Using 1"); + ::warning("Cannot figure out number of CPU cores. Using 1.\n"); return 1; } } @@ -3459,9 +3457,7 @@ sub sshtransfer { $pre .= "$mkremote_workdir; rsync $rsync_opt " . ::shell_quote_scalar($file)." $serverlogin:$rsync_destdir;"; } else { - print $Global::original_stderr - "parallel: Warning: " - . $file . " is not readable and will not be transferred\n"; + ::warning($file, " is not readable and will not be transferred.\n"); } } return $pre; @@ -4232,9 +4228,7 @@ sub replaced { # Is this really a command in $PATH starting with '-'? my $cmd = $1; if(not grep { -e $_."/".$cmd } split(":",$ENV{'PATH'})) { - print STDERR "parallel: Error:" - . " Command ($cmd) starts with '-'." - . " Is this a wrong option?\n"; + ::error("Command ($cmd) starts with '-'. Is this a wrong option?.\n"); ::wait_and_exit(255); } } @@ -4501,8 +4495,7 @@ sub get { if($::opt_pipe) { if($cmd_line->replaced() eq "") { # Empty command - pipe requires a command - print STDERR "$Global::progname: --pipe must have a ". - "command to pipe into (e.g. 'cat')\n"; + ::error("--pipe must have a command to pipe into (e.g. 'cat').\n"); ::wait_and_exit(255); } } else { @@ -4582,8 +4575,8 @@ sub max_length { if($::opt_s <= $Limits::Command::line_max_len) { $Limits::Command::line_max_len = $::opt_s; } else { - print STDERR "$Global::progname: value for -s option ", - "should be < $Limits::Command::line_max_len\n"; + ::warning("Value for -s option ", + "should be < $Limits::Command::line_max_len.\n"); } } else { $Limits::Command::line_max_len = real_max_length(); @@ -4769,9 +4762,9 @@ sub new { my $fhs = shift; for my $fh (@$fhs) { if(-t $fh) { - print STDERR "$Global::progname: Input is read from the terminal. ". - "Only experts do this on purpose. ". - "Press CTRL-D to exit.\n"; + ::warning("Input is read from the terminal. ". + "Only experts do this on purpose. ". + "Press CTRL-D to exit.\n"); } } return bless { @@ -5056,8 +5049,7 @@ sub trim_of { } elsif($Global::trim eq "rl" or $Global::trim eq "lr") { for $arg (@strings) { $arg =~ s/^\s+//; $arg =~ s/\s+$//; } } else { - print STDERR "$Global::progname: --trim must be one of: r l ". - "rl lr\n"; + ::error("--trim must be one of: r l rl lr.\n"); ::wait_and_exit(255); } return wantarray ? @strings : "@strings"; @@ -5251,9 +5243,8 @@ sub lock { $Global::use{"Fcntl"} ||= eval "use Fcntl qw(:DEFAULT :flock); 1;"; while(not flock $self->{'lockfh'}, LOCK_EX()|LOCK_NB()) { if ($! =~ m/Function not implemented/) { - print $Global::original_stderr - ("parallel: Warning: flock: $!"); - print "parallel: Will wait for a random while\n"; + ::warning("flock: $!"); + ::warning("Will wait for a random while\n"); ::usleep(rand(5000)); last; } @@ -5286,7 +5277,7 @@ sub mkdir_or_die { mkdir $ddir; } if(not -w $dir) { - print STDERR "$Global::progname: Cannot write to $dir: $!\n"; + ::error("Cannot write to $dir: $!\n"); ::wait_and_exit(255); } } diff --git a/src/parallel.pod b/src/parallel.pod index 0580b32e..17a8ed05 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -797,6 +797,12 @@ defaults to '\n'. To have no record separator use B<--recend "">. B<--files> is often used with B<--pipe>. +=item B<--plain> (not implemented) + +Ignore any B<--profile>, $PARALLEL, ~/.parallel/config, B<--tollef> to +get full control on the command line (used by GNU B itself +when called with B<--sshlogin>). + =item B<--progress> Show progress of computations. List the computers involved in the task diff --git a/src/parallel.texi b/src/parallel.texi index 2fd7b223..c8bf3936 100644 --- a/src/parallel.texi +++ b/src/parallel.texi @@ -853,6 +853,13 @@ defaults to '\n'. To have no record separator use @strong{--recend ""}. @strong{--files} is often used with @strong{--pipe}. +@item @strong{--plain} (not implemented) +@anchor{@strong{--plain} (not implemented)} + +Ignore any @strong{--profile}, $PARALLEL, ~/.parallel/config, @strong{--tollef} to +get full control on the command line (used by GNU @strong{parallel} itself +when called with @strong{--sshlogin}). + @item @strong{--progress} @anchor{@strong{--progress}} diff --git a/testsuite/tests-to-run/test15.sh b/testsuite/tests-to-run/test15.sh index 619e48b4..2a1b1cd4 100755 --- a/testsuite/tests-to-run/test15.sh +++ b/testsuite/tests-to-run/test15.sh @@ -89,7 +89,7 @@ seq 1 10 >/tmp/$$-1; parallel -k -a /tmp/$$-1 echo seq 1 10 >/tmp/$$-2; parallel -k --arg-file /tmp/$$-2 echo echo '### Test killing children with --timeout and exit value (failed if timed out)' -pstree | grep sleep | grep -v anacron | wc; parallel --timeout 3 'true {} ; for i in `seq 100 120`; do bash -c "(sleep $i)" & sleep $i & done; wait; echo No good' ::: 1000000000 1000000001 ; echo $?; pstree | grep sleep | grep -v anacron | wc +pstree | grep sleep | grep -v anacron | grep -v screensave | wc; parallel --timeout 3 'true {} ; for i in `seq 100 120`; do bash -c "(sleep $i)" & sleep $i & done; wait; echo No good' ::: 1000000000 1000000001 ; echo $?; pstree | grep sleep | grep -v anacron | grep -v screensave | wc EOF #echo '### Test bugfix if no command given' diff --git a/testsuite/wanted-results/parallel-local129 b/testsuite/wanted-results/parallel-local129 index f4e2c4be..7aedab1c 100644 --- a/testsuite/wanted-results/parallel-local129 +++ b/testsuite/wanted-results/parallel-local129 @@ -3,7 +3,7 @@ ### Test of quoting of > bug if line continuation > > > ### Test of --trim illegal -parallel: --trim must be one of: r l rl lr +parallel: Error: --trim must be one of: r l rl lr. ### Test of eof string on ::: foo ### Test of ignore-empty string on ::: diff --git a/testsuite/wanted-results/parallel-local150 b/testsuite/wanted-results/parallel-local150 index cc1f63d0..77e5042b 100644 --- a/testsuite/wanted-results/parallel-local150 +++ b/testsuite/wanted-results/parallel-local150 @@ -17,4 +17,4 @@ ajob2b job2 ### Test bug #35820: sem breaks if $HOME is not writable Workaround: use another writable dir OK -parallel: Cannot write to /usr/this/should/fail/.parallel: No such file or directory +parallel: Error: Cannot write to /usr/this/should/fail/.parallel: No such file or directory diff --git a/testsuite/wanted-results/parallel-local4 b/testsuite/wanted-results/parallel-local4 index 7d16f1a5..6c02a348 100644 --- a/testsuite/wanted-results/parallel-local4 +++ b/testsuite/wanted-results/parallel-local4 @@ -31,7 +31,7 @@ echo '### Test of --retries on unreachable host' ### Test of --retries on unreachable host seq 2 | stdout parallel -k --retries 2 -v -S 4.3.2.1,: echo ssh: connect to host 4.3.2.1 port 22: Connection timed out -parallel: Warning: Could not figure out number of cpus on 4.3.2.1 (). Using 1 +parallel: Warning: Could not figure out number of cpus on 4.3.2.1 (). Using 1. echo 1 1 echo 2 diff --git a/testsuite/wanted-results/parallel-local9 b/testsuite/wanted-results/parallel-local9 index a8b97c1e..dcc5957e 100644 --- a/testsuite/wanted-results/parallel-local9 +++ b/testsuite/wanted-results/parallel-local9 @@ -86,7 +86,7 @@ When using GNU Parallel for a publication please cite: O. Tange (2011): GNU Parallel - The Command-Line Power Tool, ;login: The USENIX Magazine, February 2011:42-47. -Parsing of --jobs/-j/--max-procs/-P failed +parallel: Error: Parsing of --jobs/-j/--max-procs/-P failed. ### Test of -j filename sleep 0.5 sleep 0.7 @@ -151,7 +151,7 @@ sleep 0.3 3 4 5 6 7 ### Test :::: on nonexistent -parallel: Cannot open input file `nonexistent': No such file or directory +parallel: Error: Cannot open input file `nonexistent': No such file or directory. ### Test :::: two files 1 5 2 6 @@ -233,8 +233,8 @@ b a echo b a b a ### Multiple -a: nonexistent -parallel: Cannot open input file `nonexist': No such file or directory -parallel: Cannot open input file `nonexist': No such file or directory +parallel: Error: Cannot open input file `nonexist': No such file or directory. +parallel: Error: Cannot open input file `nonexist': No such file or directory. ### Test {#.} echo c-ext b-withext a-noext c-ext b-withext a-noext diff --git a/testsuite/wanted-results/sem01 b/testsuite/wanted-results/sem01 index 9d8562ea..64a77558 100644 --- a/testsuite/wanted-results/sem01 +++ b/testsuite/wanted-results/sem01 @@ -117,4 +117,4 @@ done 4 39 40 ### Test bug #33621: --bg -p should give an error message -parallel: Jobs running in the background cannot be interactive. +parallel: Error: Jobs running in the background cannot be interactive. diff --git a/testsuite/wanted-results/sql01 b/testsuite/wanted-results/sql01 index 43a8adec..36428ee4 100644 --- a/testsuite/wanted-results/sql01 +++ b/testsuite/wanted-results/sql01 @@ -39,11 +39,11 @@ def 3 2 17 2 17 ### Test --db-size --dbsize - 2 6 53 - 2 6 53 + 2 6 54 + 2 6 54 ### Test --table-size --tablesize -30 -30 +39 +39 ### Test --debug dburl mysql://sqlunittest:CB5A1FFFA5A@localhost:3306/sqlunittest databasedriver mysql user sqlunittest password CB5A1FFFA5A host localhost port 3306 database sqlunittest query diff --git a/testsuite/wanted-results/test18 b/testsuite/wanted-results/test18 index 36eedd2c..6c35d87e 100644 --- a/testsuite/wanted-results/test18 +++ b/testsuite/wanted-results/test18 @@ -40,7 +40,7 @@ 19 20 ### Check warning if --transfer but file not found -parallel: Warning: /tmp/noexistant/file is not readable and will not be transferred +parallel: Warning: /tmp/noexistant/file is not readable and will not be transferred. /tmp/noexistant/file ### Transfer for file starting with : remote-:.: @@ -54,13 +54,13 @@ content-file: name.foo remote-file : name.foo.file : name content-file : name.foo ### Check warning if --transfer but not --sshlogin -parallel: Warning: --transfer ignored as there are no remote --sshlogin +parallel: Warning: --transfer ignored as there are no remote --sshlogin. ### Check warning if --return but not --sshlogin -parallel: Warning: --return ignored as there are no remote --sshlogin +parallel: Warning: --return ignored as there are no remote --sshlogin. ### Check warning if --cleanup but not --sshlogin -parallel: Warning: --cleanup ignored as there are no remote --sshlogin +parallel: Warning: --cleanup ignored as there are no remote --sshlogin. ### Test --sshlogin -S --sshloginfile 1 diff --git a/testsuite/wanted-results/test23 b/testsuite/wanted-results/test23 index c6494130..c47d982f 100644 --- a/testsuite/wanted-results/test23 +++ b/testsuite/wanted-results/test23 @@ -1,5 +1,5 @@ ### Test --basefile with no --sshlogin -parallel: Warning: --basefile ignored as there are no remote --sshlogin +parallel: Warning: --basefile ignored as there are no remote --sshlogin. ### Test --basefile + --cleanup + permissions script1 run 1 @@ -45,7 +45,7 @@ OK 8 9 ### Test combined -X --return {/}_{/.}_{#/.}_{#/}_{#.} with files containing space -parallel: Warning: using -X or -m with --sshlogin may fail +parallel: Warning: Using -X or -m with --sshlogin may fail. mkdir -p tmp/number1.c_number1_number2_number2.c_a/number2 tmp/number2.c_number2_number2_number2.c_a/number2 tmp/number3.c_number3_number2_number2.c_a/number2 tmp/number4_number4_number2_number2.c_a/number2 tmp/number5_number5_number2_number2.c_a/number2 tmp/number6_number6_number2_number2.c_a/number2 tmp/number\ 7_number\ 7_number2_number2.c_a/number2 tmp/number\ \<8\|8\>_number\ \<8\|8\>_number2_number2.c_a/number2 ;touch tmp/number1.c_number1_number2_number2.c_a/number2/file tmp/number2.c_number2_number2_number2.c_a/number2/file tmp/number3.c_number3_number2_number2.c_a/number2/file tmp/number4_number4_number2_number2.c_a/number2/file tmp/number5_number5_number2_number2.c_a/number2/file tmp/number6_number6_number2_number2.c_a/number2/file tmp/number\ 7_number\ 7_number2_number2.c_a/number2/file tmp/number\ \<8\|8\>_number\ \<8\|8\>_number2_number2.c_a/number2/file tmp tmp/number 7_number 7_number2_number2.c_a diff --git a/testsuite/wanted-results/test30 b/testsuite/wanted-results/test30 index e8d97ea6..d4d52c22 100644 --- a/testsuite/wanted-results/test30 +++ b/testsuite/wanted-results/test30 @@ -25,6 +25,6 @@ slept 1 slept 1 jobs failed: 2 ### --pipe without command -parallel: --pipe must have a command to pipe into (e.g. 'cat') +parallel: Error: --pipe must have a command to pipe into (e.g. 'cat'). ### bug #36260: {n} expansion in --colsep files fails for empty fields if all following fields are also empty AB diff --git a/testsuite/wanted-results/test45 b/testsuite/wanted-results/test45 index 1fcccb46..a05d03c7 100644 --- a/testsuite/wanted-results/test45 +++ b/testsuite/wanted-results/test45 @@ -20,27 +20,27 @@ OK 7.7 8.8 ### Test retired -parallel: -g has been retired. Use --group. -parallel: -B has been retired. Use --bf. -parallel: -T has been retired. Use --tty. -parallel: -U has been retired. Use --er. -parallel: -W has been retired. Use --wd. -parallel: -Y has been retired. Use --shebang. -parallel: -H has been retired. Use --halt. -parallel: -g has been retired. Use --group. -parallel: -B has been retired. Use --bf. -parallel: -T has been retired. Use --tty. -parallel: -U has been retired. Use --er. -parallel: -W has been retired. Use --wd. -parallel: -Y has been retired. Use --shebang. -parallel: -H has been retired. Use --halt. -parallel: -g has been retired. Use --group. -parallel: -B has been retired. Use --bf. -parallel: -T has been retired. Use --tty. -parallel: -U has been retired. Use --er. -parallel: -W has been retired. Use --wd. -parallel: -Y has been retired. Use --shebang. -parallel: -H has been retired. Use --halt. +parallel: Error: -g has been retired. Use --group. +parallel: Error: -B has been retired. Use --bf. +parallel: Error: -T has been retired. Use --tty. +parallel: Error: -U has been retired. Use --er. +parallel: Error: -W has been retired. Use --wd. +parallel: Error: -Y has been retired. Use --shebang. +parallel: Error: -H has been retired. Use --halt. +parallel: Error: -g has been retired. Use --group. +parallel: Error: -B has been retired. Use --bf. +parallel: Error: -T has been retired. Use --tty. +parallel: Error: -U has been retired. Use --er. +parallel: Error: -W has been retired. Use --wd. +parallel: Error: -Y has been retired. Use --shebang. +parallel: Error: -H has been retired. Use --halt. +parallel: Error: -g has been retired. Use --group. +parallel: Error: -B has been retired. Use --bf. +parallel: Error: -T has been retired. Use --tty. +parallel: Error: -U has been retired. Use --er. +parallel: Error: -W has been retired. Use --wd. +parallel: Error: -Y has been retired. Use --shebang. +parallel: Error: -H has been retired. Use --halt. ### Test --joblog followed by --resume --joblog 5 49 ### Test --resume --joblog followed by --resume --joblog