From 8df952494894bcbc156e341b297bb49700989774 Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Sun, 22 May 2022 10:36:45 +0200 Subject: [PATCH] Upgrade testsuite to Ubuntu 22.04. --- doc/citation-notice-faq.txt | 9 +- doc/haikus | 5 +- doc/release_new_version | 6 +- packager/debian/debian-template/compat | 2 +- src/parallel | 265 +++++++++++------- src/parallel.pod | 22 +- src/parallel_alternatives.pod | 48 +++- testsuite/REQUIREMENTS | 2 +- testsuite/tests-to-run/parallel-centos3.sh | 46 ++- testsuite/tests-to-run/parallel-local-0.3s.sh | 14 +- testsuite/tests-to-run/parallel-local-10s.sh | 8 +- testsuite/tests-to-run/parallel-local-30s.sh | 2 +- testsuite/tests-to-run/parallel-local-3s.sh | 21 +- .../tests-to-run/parallel-local-race01.sh | 10 +- .../tests-to-run/parallel-local-race02.sh | 37 ++- testsuite/tests-to-run/parallel-local-sql.sh | 6 +- .../tests-to-run/parallel-local-sql01.sh | 4 +- testsuite/tests-to-run/parallel-local-ssh7.sh | 2 +- testsuite/tests-to-run/parallel-local-ssh9.sh | 2 +- .../tests-to-run/parallel-virtualbox1.sh | 32 ++- testsuite/tests-to-run/parsort-local-01.sh | 2 +- testsuite/vagrant/tange/centos3/Vagrantfile | 77 +++++ testsuite/wanted-results/parallel-local-0.3s | 10 +- testsuite/wanted-results/parallel-local-10s | 3 +- testsuite/wanted-results/parallel-local-300s | 204 +++++++------- testsuite/wanted-results/parallel-local-30s | 54 ++-- testsuite/wanted-results/parallel-local-3s | 3 - .../wanted-results/parallel-local-race02 | 3 + testsuite/wanted-results/parallel-local-sql01 | 2 +- testsuite/wanted-results/parallel-local-ssh5 | 2 +- testsuite/wanted-results/parallel-local-ssh7 | 108 +++---- testsuite/wanted-results/parallel-local13 | 22 +- testsuite/wanted-results/parallel-local7 | 2 +- testsuite/wanted-results/parallel-macos | 85 +++--- testsuite/wanted-results/parallel-tutorial | 181 ++++++------ testsuite/wanted-results/sem01 | 10 +- testsuite/wanted-results/sql01 | 35 +-- testsuite/wanted-results/sql02 | 2 +- testsuite/wanted-results/test19 | 12 +- 39 files changed, 796 insertions(+), 564 deletions(-) create mode 100644 testsuite/vagrant/tange/centos3/Vagrantfile diff --git a/doc/citation-notice-faq.txt b/doc/citation-notice-faq.txt index dd6665af..719f27be 100644 --- a/doc/citation-notice-faq.txt +++ b/doc/citation-notice-faq.txt @@ -51,8 +51,15 @@ to accept that the software is already compliant with GPLv3, because nothing else gives you the right to change it. And if you accept this, you do not need to change it to make it compliant. +What you can not do is to simultaneously claim that the software both +is and is not available under GPLv3. You need to pick one. + +This is also covered in section 9 of GPLv3: "However, nothing other +than this License grants you permission to propagate or modify any +covered work." https://www.gnu.org/licenses/gpl-3.0.en.html + So: If you do not feel the citation notice adheres to GPLv3, you need -to treat it as software that you have no license to use. +to treat it as software that you have no license to modify. == Do automated scripts break if the notice is not silenced? == diff --git a/doc/haikus b/doc/haikus index 3a55e0e2..bac88acc 100644 --- a/doc/haikus +++ b/doc/haikus @@ -3,7 +3,10 @@ # SPDX-License-Identifier: CC-BY-SA-4.0 Quote of the month: - + + xargs諦めてGNU Parallel使ったら一瞬で問題が解決したので終わり + -- aria_moto @moto_aria@twitter + Such a life saver of a tool. -- winrid@ycombinator diff --git a/doc/release_new_version b/doc/release_new_version index dcfc3a09..bd69b216 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -254,7 +254,7 @@ from:tange@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org stable-bcc: Jesse Alama -Subject: GNU Parallel 20220522 ('Слава Україні Emmanuel Jean-Michel Frédéric<<>>') released [stable] +Subject: GNU Parallel 20220522 ('Colorado/Слава Україні Emmanuel Jean-Michel Frédéric<<>>') released [stable] GNU Parallel 20220522 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4 @@ -276,6 +276,10 @@ News about GNU Parallel: https://www.blopig.com/blog/2022/05/make-your-code-do-more-with-less/ +W09 B IntroHPC II 20220513 gnu parallel https://www.youtube.com/watch?v=2udvC90rIa4 + +https://saveriomiroddi.github.io/Running-shell-commands-in-parallel-via-gnu-parallel/#xdg_runtime_dir + <<>> Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html diff --git a/packager/debian/debian-template/compat b/packager/debian/debian-template/compat index 7ed6ff82..7f8f011e 100644 --- a/packager/debian/debian-template/compat +++ b/packager/debian/debian-template/compat @@ -1 +1 @@ -5 +7 diff --git a/src/parallel b/src/parallel index a320c38f..a0ef5502 100755 --- a/src/parallel +++ b/src/parallel @@ -1681,15 +1681,18 @@ sub options_completion_hash() { "xargs[Insert as many arguments as the command line length permits]" => \$opt::xargs, "m[Multiple arguments]" => \$opt::m, - ("X[Insert as many arguments with context as the command line length permits]" + ("X[Insert as many arguments with context as the command line ". + "length permits]" => \$opt::X), "v[Verbose]" => \@opt::v, "sql=s[Use --sql-master instead (obsolete)]:DBURL" => \$opt::retired, ("sql-master|sqlmaster=s". - "[Submit jobs via SQL server. DBURL must point to a table, which will contain --joblog, the values, and output]:DBURL" + "[Submit jobs via SQL server. DBURL must point to a table, which ". + "will contain --joblog, the values, and output]:DBURL" => \$opt::sqlmaster), ("sql-worker|sqlworker=s". - "[Execute jobs via SQL server. Read the input sources variables from the table pointed to by DBURL.]:DBURL" + "[Execute jobs via SQL server. Read the input sources variables ". + "from the table pointed to by DBURL.]:DBURL" => \$opt::sqlworker), ("sql-and-worker|sqlandworker=s". "[--sql-master DBURL --sql-worker DBURL]:DBURL" @@ -1709,24 +1712,29 @@ sub options_completion_hash() { "[Keep sequence of output same as the order of input]" => \$opt::keeporder), ("no-keep-order|nokeeporder|nok|no-k". - "[Overrides an earlier --keep-order (e.g. if set in ~/.parallel/config)]" + "[Overrides an earlier --keep-order (e.g. if set in ". + "~/.parallel/config)]" => \$opt::nokeeporder), "group[Group output]" => \$opt::group, "g" => \$opt::retired, ("ungroup|u". - "[Output is printed as soon as possible and bypasses GNU parallel internal processing]" + "[Output is printed as soon as possible and bypasses GNU parallel ". + "internal processing]" => \$opt::ungroup), - ("last-line-buffer|last-line-buffered|lastlinebuffer|lastlinebuffered|llb". + ("latest-line|latestline|ll". "[Print latest line of each job]" - => \$opt::lastlinebuffer), + => \$opt::latestline), ("line-buffer|line-buffered|linebuffer|linebuffered|lb". "[Buffer output on line basis]" => \$opt::linebuffer), ("tmux". - "[Use tmux for output. Start a tmux session and run each job in a window in that session. No other output will be produced]" + "[Use tmux for output. Start a tmux session and run each job in a ". + "window in that session. No other output will be produced]" => \$opt::tmux), ("tmux-pane|tmuxpane". - "[Use tmux for output but put output into panes in the first window. Useful if you want to monitor the progress of less than 100 concurrent jobs]" + "[Use tmux for output but put output into panes in the first ". + "window. Useful if you want to monitor the progress of less than ". + "100 concurrent jobs]" => \$opt::tmuxpane), "null|0[Use NUL as delimiter]" => \$opt::null, "quote|q[Quote command]" => \$opt::quote, @@ -1740,26 +1748,33 @@ sub options_completion_hash() { "[Use the replacement string replace-str instead of {}]:replace-str" => \$opt::I), ("extensionreplace|er=s". - "[Use the replacement string replace-str instead of {.} for input line without extension]:replace-str" + "[Use the replacement string replace-str instead of {.} for input ". + "line without extension]:replace-str" => \$opt::U), "U=s" => \$opt::retired, ("basenamereplace|bnr=s". - "[Use the replacement string replace-str instead of {/} for basename of input line]:replace-str" + "[Use the replacement string replace-str instead of {/} for ". + "basename of input line]:replace-str" => \$opt::basenamereplace), ("dirnamereplace|dnr=s". - "[Use the replacement string replace-str instead of {//} for dirname of input line]:replace-str" + "[Use the replacement string replace-str instead of {//} for ". + "dirname of input line]:replace-str" => \$opt::dirnamereplace), ("basenameextensionreplace|bner=s". - "[Use the replacement string replace-str instead of {/.} for basename of input line without extension]:replace-str" + "[Use the replacement string replace-str instead of {/.} for ". + "basename of input line without extension]:replace-str" => \$opt::basenameextensionreplace), ("seqreplace=s". - "[Use the replacement string replace-str instead of {#} for job sequence number]:replace-str" + "[Use the replacement string replace-str instead of {#} for job ". + "sequence number]:replace-str" => \$opt::seqreplace), ("slotreplace=s". - "[Use the replacement string replace-str instead of {%} for job slot number]:replace-str" + "[Use the replacement string replace-str instead of {%} for job ". + "slot number]:replace-str" => \$opt::slotreplace), ("jobs|j=s". - "[(Add +N to/Subtract -N from/Multiply N%) the number of CPU threads or read parameter from file]:_files" + "[(Add +N to/Subtract -N from/Multiply N%) the number of CPU ". + "threads or read parameter from file]:_files" => \$opt::jobs), ("delay=s". "[Delay starting next job by duration]:duration" => \$opt::delay), @@ -1795,7 +1810,8 @@ sub options_completion_hash() { "[Determine how GNU Parallel counts the number of CPUs]" => \$opt::use_cpus_instead_of_cores), ("shell-quote|shellquote|shell_quote". - "[Does not run the command but quotes it. Useful for making quoted composed commands for GNU parallel]" + "[Does not run the command but quotes it. Useful for making ". + "quoted composed commands for GNU parallel]" => \@opt::shellquote), ('nice=i[Run the command at this niceness]:niceness:($(seq -20 19))' => \$opt::nice), @@ -1812,10 +1828,12 @@ sub options_completion_hash() { => \$opt::filter_hosts), ('sshlogin|S=s'. '[Distribute jobs to remote computers]'. - ':[@hostgroups/][ncpus/]sshlogin[,[@hostgroups/][ncpus/]sshlogin[,...]] or @hostgroup'. + ':[@hostgroups/][ncpus/]sshlogin'. + '[,[@hostgroups/][ncpus/]sshlogin[,...]] or @hostgroup'. ':_users') => \@opt::sshlogin, ("sshloginfile|slf=s". - "[File with sshlogins on separate lines. Lines starting with '#' are ignored.]:filename:_files" + "[File with sshlogins on separate lines. Lines starting with '#' ". + "are ignored.]:filename:_files" => \@opt::sshloginfile), ("controlmaster|M". "[Use ssh's ControlMaster to make ssh connections faster]" @@ -1833,15 +1851,20 @@ sub options_completion_hash() { "transfer[Transfer files to remote computers]" => \$opt::transfer, "cleanup[Remove transferred files]" => \$opt::cleanup, ("basefile|bf=s". - "[Transfer file to each sshlogin before first job is started]:file:_files" + "[Transfer file to each sshlogin before first job is started]". + ":file:_files" => \@opt::basefile), - ("template|tmpl=s[Replace replacement strings in file and save it in repl]:file=repl:_files" + ("template|tmpl=s". + "[Replace replacement strings in file and save it in repl]". + ":file=repl:_files" => \%opt::template), "B=s" => \$opt::retired, "ctrl-c|ctrlc" => \$opt::retired, "no-ctrl-c|no-ctrlc|noctrlc" => \$opt::retired, ("work-dir|workdir|wd=s". - "[Jobs will be run in the dir mydir. (default: the current dir for the local machine, the login dir for remote computers)]:mydir:_cd" + "[Jobs will be run in the dir mydir. (default: the current dir ". + "for the local machine, the login dir for remote computers)]". + ":mydir:_cd" => \$opt::workdir), "W=s" => \$opt::retired, ("rsync-opts|rsyncopts=s[Options to pass on to rsync]:options" @@ -1862,7 +1885,8 @@ sub options_completion_hash() { "T" => \$opt::retired, "H=i" => \$opt::retired, ("dry-run|dryrun|dr". - "[Print the job to run on stdout (standard output), but do not run the job]" + "[Print the job to run on stdout (standard output), but do not ". + "run the job]" => \$opt::dryrun), "progress[Show progress of computations]" => \$opt::progress, ("eta[Show the estimated number of seconds before finishing]" @@ -1883,7 +1907,9 @@ sub options_completion_hash() { "env=s[Copy environment variable var]:var:_vars" => \@opt::env, "recordenv|record-env[Record environment]" => \$opt::record_env, ('session'. - '[Record names in current environment in $PARALLEL_IGNORED_NAMES and exit. Only used with env_parallel. Aliases, functions, and variables with names i]' + '[Record names in current environment in $PARALLEL_IGNORED_NAMES '. + 'and exit. Only used with env_parallel. '. + 'Aliases, functions, and variables with names i]' => \$opt::session), ('plain[Ignore --profile, $PARALLEL, and ~/.parallel/config]' => \$opt::plain), @@ -1900,12 +1926,16 @@ sub options_completion_hash() { # You accept to be put in a public hall of shame by removing # these lines. ("bibtex|citation". - "[Print the citation notice and BibTeX entry for GNU parallel, silence citation notice for all future runs, and exit. It will not run any commands]" + "[Print the citation notice and BibTeX entry for GNU parallel, ". + "silence citation notice for all future runs, and exit. ". + "It will not run any commands]" => \$opt::citation), "will-cite|willcite|nn|nonotice|no-notice" => \$opt::willcite, # Termination and retries ('halt-on-error|haltonerror|halt=s'. - '[When should GNU parallel terminate]:when:((now\:"kill all running jobs and halt immediately" soon\:"wait for all running jobs to complete, start no new jobs"))' + '[When should GNU parallel terminate]'. + ':when:((now\:"kill all running jobs and halt immediately" '. + 'soon\:"wait for all running jobs to complete, start no new jobs"))' => \$opt::halt), 'limit=s[Dynamic job limit]:"command args"' => \$opt::limit, ("memfree=s". @@ -1916,13 +1946,15 @@ sub options_completion_hash() { => \$opt::memsuspend), "retries=s[Try failing jobs n times]:n" => \$opt::retries, ("timeout=s". - "[Time out for command. If the command runs for longer than duration seconds it will get killed as per --term-seq]:duration" + "[Time out for command. If the command runs for longer than ". + "duration seconds it will get killed as per --term-seq]:duration" => \$opt::timeout), ("term-seq|termseq=s". "[Termination sequence]:sequence" => \$opt::termseq), # xargs-compatibility - implemented, man, testsuite ("max-procs|maxprocs|P=s". - "[Add N to/Subtract N from/Multiply N% with/ the number of CPU threads or read parameter from file]:+N/-N/N%/N/procfile:_files" + "[Add N to/Subtract N from/Multiply N% with/ the number of CPU ". + "threads or read parameter from file]:+N/-N/N%/N/procfile:_files" => \$opt::jobs), ("delimiter|d=s[Input items are terminated by delim]:delim" => \$opt::d), @@ -1961,7 +1993,8 @@ sub options_completion_hash() { ("version|V[Print the version GNU parallel and exit]" => \$opt::version), ('min-version|minversion=i'. - '[Print the version GNU parallel and exit]:version:($(parallel --minversion 0))' + '[Print the version GNU parallel and exit]'. + ':version:($(parallel --minversion 0))' => \$opt::minversion), ("show-limits|showlimits". "[Display limits given by the operating system]" @@ -1971,7 +2004,8 @@ sub options_completion_hash() { # Semaphore "semaphore[Work as a counting semaphore]" => \$opt::semaphore, ("semaphore-timeout|semaphoretimeout|st=s". - "[If secs > 0: If the semaphore is not released within secs seconds, take it anyway]:secs" + "[If secs > 0: If the semaphore is not released within secs ". + "seconds, take it anyway]:secs" => \$opt::semaphoretimeout), ("semaphore-name|semaphorename|id=s". "[Use name as the name of the semaphore]:name" @@ -1981,7 +2015,9 @@ sub options_completion_hash() { "wait[Wait for all commands to complete]" => \$opt::wait, # Shebang #!/usr/bin/parallel --shebang ("shebang|hashbang". - "[GNU parallel can be called as a shebang (#!) command as the first line of a script. The content of the file will be treated as inputsource]" + "[GNU parallel can be called as a shebang (#!) command as the ". + "first line of a script. The content of the file will be treated ". + "as inputsource]" => \$opt::shebang), ("_pipe-means-argfiles[internal]" => \$opt::_pipe_means_argfiles), @@ -2158,7 +2194,7 @@ sub parse_options(@) { or defined $opt::color) { $Global::color = 1; } - if($opt::linebuffer or $opt::lastlinebuffer) { + if($opt::linebuffer or $opt::latestline) { $Global::linebuffer = 1; } if(defined $opt::tag and not defined $opt::tagstring) { @@ -2167,7 +2203,8 @@ sub parse_options(@) { } if(defined $opt::tagstring) { $opt::tagstring = unquote_printf($opt::tagstring); - if($opt::tagstring =~ /\Q$Global::parensleft\E.*\Q$Global::parensright\E/ + if($opt::tagstring =~ + /\Q$Global::parensleft\E.*\Q$Global::parensright\E/ and $Global::linebuffer) { # --tagstring contains {= =} and --linebuffer => @@ -2175,7 +2212,9 @@ sub parse_options(@) { $Global::cache_replacement_eval = 0; } } - if(defined $opt::interactive) { $Global::interactive = $opt::interactive; } + if(defined $opt::interactive) { + $Global::interactive = $opt::interactive; + } if(defined $opt::quote) { $Global::quoting = 1; } if(defined $opt::r) { $Global::ignore_empty = 1; } if(defined $opt::verbose) { $Global::stderr_verbose = 1; } @@ -2401,7 +2440,8 @@ sub parse_options(@) { } } if(defined $opt::max_replace_args) { - $opt::max_replace_args = multiply_binary_prefix($opt::max_replace_args); + $opt::max_replace_args = + multiply_binary_prefix($opt::max_replace_args); $Global::max_number_of_args = $opt::max_replace_args; $Global::ContextReplace = 1; } @@ -2537,7 +2577,9 @@ sub parse_options(@) { } if($opt::sqlworker) { $Global::membuffer ||= 1; } # The sqlmaster groups the arguments, so the should just read one - if($opt::sqlworker and not $opt::sqlmaster) { $Global::max_number_of_args = 1; } + if($opt::sqlworker and not $opt::sqlmaster) { + $Global::max_number_of_args = 1; + } } sub check_invalid_option_combinations() { @@ -2654,15 +2696,18 @@ sub init_globals() { '{/..}' => 's:.*/::; s:\.[^/.]+\.[^/.]+$::', '{/...}' => 's:.*/::; s:\.[^/.]+\.[^/.]+\.[^/.]+$::', # n choose k = Binomial coefficient - '{choose_k}' => 'for $t (2..$#arg){ if($arg[$t-1] ge $arg[$t]) { skip() } }', + '{choose_k}' => ('for $t (2..$#arg)'. + '{ if($arg[$t-1] ge $arg[$t]) { skip() } }'), # unique values: Skip job if any args are the same '{uniq}' => 'if(::uniq(@arg) != @arg) { skip(); }', # {##} = number of jobs '{##}' => '1 $_=total_jobs()', # {0%} = 0-padded jobslot - '{0%}' => '1 $f=1+int((log($Global::max_jobs_running||1)/log(10))); $_=sprintf("%0${f}d",slot())', + '{0%}' => ('1 $f=1+int((log($Global::max_jobs_running||1)/log(10)));'. + '$_=sprintf("%0${f}d",slot())'), # {0%} = 0-padded seq - '{0#}' => '1 $f=1+int((log(total_jobs())/log(10))); $_=sprintf("%0${f}d",seq())', + '{0#}' => ('1 $f=1+int((log(total_jobs())/log(10)));'. + '$_=sprintf("%0${f}d",seq())'), ## Bash inspired replacement strings # Bash ${a:-myval} @@ -2979,7 +3024,7 @@ sub open_joblog() { $append = <$joblog_fh>; my $joblog_regexp; if($opt::retry_failed) { - # Make a regexp that only matches commands with exit+signal=0 + # Make a regexp that matches commands with exit+signal=0 # 4 host 1360490623.067 3.445 1023 1222 0 0 command $joblog_regexp='^(\d+)(?:\t[^\t]+){5}\t0\t0\t'; my @group; @@ -3004,12 +3049,14 @@ sub open_joblog() { # Put args into argfile if(grep /\0/, @group) { # force --null to deal with \n in commandlines - ::warning("Command lines contain newline. Forcing --null."); + ::warning("Command lines contain newline. ". + "Forcing --null."); $opt::null = 1; $/ = "\0"; } # Replace \0 with '\n' as used in print_joblog() - print $outfh map { s/\0/\n/g; $_,$/ } map { $_ } @group; + print $outfh (map { s/\0/\n/g; $_,$/ } + map { $_ } @group); seek $outfh, 0, 0; exit_if_disk_full(); # Set filehandle to -a @@ -3020,7 +3067,7 @@ sub open_joblog() { } if($opt::resume || $opt::resume_failed) { if($opt::resume_failed) { - # Make a regexp that only matches commands with exit+signal=0 + # Make a regexp that matches commands with exit+signal=0 # 4 host 1360490623.067 3.445 1023 1222 0 0 command $joblog_regexp='^(\d+)(?:\t[^\t]+){5}\t0\t0\t'; } else { @@ -3176,7 +3223,7 @@ sub read_options() { my @options; my @parser; if ($^O eq 'freebsd') { - # FreeBSD's #! puts different values in @ARGV than Linux' does. + # FreeBSD's #! puts different values in @ARGV than Linux' does my @nooptions = @ARGV; get_options_from_array(\@nooptions); while($#ARGV > $#nooptions) { @@ -3198,7 +3245,8 @@ sub read_options() { } } if($ARGV[0] =~ / --shebang(-?wrap)? /) { - ::warning("--shebang and --shebang-wrap must be the first argument.\n"); + ::warning("--shebang and --shebang-wrap must be the first ". + "argument.\n"); } Getopt::Long::Configure("bundling","require_order"); @@ -3318,7 +3366,7 @@ sub read_args_from_command_line() { $arg eq $Global::arg_file_sep or $arg eq $Global::arg_file_sep."+") { - my $group_sep = $arg; # This group of arguments is args or argfiles + my $group_sep = $arg; # This group of args is args or argfiles my @group; while(defined ($arg = shift @ARGV)) { if($arg eq $Global::arg_sep @@ -3760,7 +3808,8 @@ sub init_run_jobs() { my $mtime = (stat($actual_file))[9]; $last_mtime{$actual_file} ||= $mtime; if($mtime - $last_mtime{$actual_file} > 1) { - ::debug("run","--sshloginfile $actual_file changed. reload\n"); + ::debug("run", + "--sshloginfile $actual_file changed. reload\n"); $last_mtime{$actual_file} = $mtime; # Reload $slf # Empty sshlogins @@ -3820,7 +3869,7 @@ sub init_run_jobs() { if ($sshlogin->jobs_running() < $sshlogin->max_jobs_running()) { if($opt::delay and - $opt::delay - 0.008 > ::now() - $Global::newest_starttime) { + $opt::delay-0.008 > ::now()-$Global::newest_starttime) { # It has been too short since last start next; } @@ -3915,8 +3964,10 @@ sub init_run_jobs() { } } while ($job->is_already_in_joblog() or - ($opt::results and $opt::resume and $job->is_already_in_results())); - debug("start", "Command to run on '", $job->sshlogin()->string(), "': '", + ($opt::results and $opt::resume + and $job->is_already_in_results())); + debug("start", "Command to run on '", + $job->sshlogin()->string(), "': '", $job->replaced(),"'\n"); if($job->start()) { if($opt::pipe) { @@ -3938,10 +3989,11 @@ sub init_run_jobs() { my $max = $sshlogin->max_jobs_running(); if($max > 1) { $max--; } else { my @arg; - for my $record (@{$job->{'commandline'}->{'arg_list'}}) { + for my $record (@{$job->{'commandline'}{'arg_list'}}) { push @arg, map { $_->orig() } @$record; } - ::error("No more processes: cannot run a single job. Something is wrong at @arg."); + ::error("No more processes: cannot run a single job. ". + "Something is wrong at @arg."); ::wait_and_exit(255); } $sshlogin->set_max_jobs_running($max); @@ -4185,7 +4237,7 @@ sub progress() { @workers); } if(length $status > $termcols) { - # 1:XX/XX/XX% 2:XX/XX/XX% 3:XX/XX/XX% 4:XX/XX/XX% 5:XX/XX/XX% 6:XX/XX/XX% + # 1:XX/XX/XX% 2:XX/XX/XX% 3:XX/XX/XX% 4:XX/XX/XX% 5:XX/XX/XX% $header = "Computer:jobs running/jobs completed/%of started jobs"; $status = $eta . join(" ",map @@ -4203,56 +4255,56 @@ sub progress() { @workers); } if(length $status > $termcols) { - # sshlogin1:XX/XX/XX% sshlogin2:XX/XX/XX% sshlogin3:XX/XX sshlogin4:XX/XX + # sshlogin1:XX/XX/XX% sshlogin2:XX/XX/XX% sshlogin3:XX/XX $header = "Computer:jobs running/jobs completed"; $status = $eta . - join(" ",map - { sprintf("%s:%d/%d", - $sshlogin{$_}, $Global::host{$_}->jobs_running(), - ($Global::host{$_}->jobs_completed()||0)) } - @workers); + join(" ", + map { sprintf("%s:%d/%d", + $sshlogin{$_}, $Global::host{$_}->jobs_running(), + ($Global::host{$_}->jobs_completed()||0)) } + @workers); } if(length $status > $termcols) { # sshlogin1:XX/XX sshlogin2:XX/XX sshlogin3:XX/XX sshlogin4:XX/XX $header = "Computer:jobs running/jobs completed"; $status = $eta . - join(" ",map - { sprintf("%s:%d/%d", - $sshlogin{$_}, $Global::host{$_}->jobs_running(), - ($Global::host{$_}->jobs_completed()||0)) } - @workers); + join(" ", + map { sprintf("%s:%d/%d", + $sshlogin{$_}, $Global::host{$_}->jobs_running(), + ($Global::host{$_}->jobs_completed()||0)) } + @workers); } if(length $status > $termcols) { # 1:XX/XX 2:XX/XX 3:XX/XX 4:XX/XX 5:XX/XX 6:XX/XX $header = "Computer:jobs running/jobs completed"; $status = $eta . - join(" ",map - { sprintf("%s:%d/%d", - $workerno{$_}, $Global::host{$_}->jobs_running(), - ($Global::host{$_}->jobs_completed()||0)) } - @workers); + join(" ", + map { sprintf("%s:%d/%d", $workerno{$_}, + $Global::host{$_}->jobs_running(), + ($Global::host{$_}->jobs_completed()||0)) } + @workers); } if(length $status > $termcols) { # sshlogin1:XX sshlogin2:XX sshlogin3:XX sshlogin4:XX sshlogin5:XX $header = "Computer:jobs completed"; $status = $eta . - join(" ",map - { sprintf("%s:%d", - $sshlogin{$_}, - ($Global::host{$_}->jobs_completed()||0)) } - @workers); + join(" ", + map { sprintf("%s:%d", $sshlogin{$_}, + ($Global::host{$_}->jobs_completed()||0)) } + @workers); } if(length $status > $termcols) { # 1:XX 2:XX 3:XX 4:XX 5:XX 6:XX $header = "Computer:jobs completed"; $status = $eta . - join(" ",map - { sprintf("%s:%d", - $workerno{$_}, - ($Global::host{$_}->jobs_completed()||0)) } - @workers); + join(" ", + map { sprintf("%s:%d", + $workerno{$_}, + ($Global::host{$_}->jobs_completed()||0)) } + @workers); } - return ("workerlist" => $workerlist, "header" => $header, "status" => $status); + return ("workerlist" => $workerlist, "header" => $header, + "status" => $status); } { @@ -4323,7 +4375,8 @@ sub progress() { my $zenity = sprintf("%-${terminal_width}s", substr("# $eta sec $arg", 0,$terminal_width)); - $s = "\r" . $zenity . "\r" . $pctcomplete*100 . # Prefix with zenity header + # Prefix with zenity header + $s = "\r" . $zenity . "\r" . $pctcomplete*100 . "\r" . $rev . $s . $reset; return $s; } @@ -4583,21 +4636,26 @@ sub parse_sshlogin() { } # debug("start", "sshlogin: ", my_dump(%Global::host),"\n"); - if(@Global::transfer_files or @opt::return or $opt::cleanup or @opt::basefile) { + if(@Global::transfer_files or @opt::return + or $opt::cleanup or @opt::basefile) { if(not remote_hosts()) { # There are no remote hosts if(@opt::trc) { ::warning("--trc ignored as there are no remote --sshlogin."); } elsif (defined $opt::transfer) { - ::warning("--transfer ignored as there are no remote --sshlogin."); + ::warning("--transfer ignored as there are ". + "no remote --sshlogin."); } elsif (@opt::transfer_files) { - ::warning("--transferfile ignored as there are no remote --sshlogin."); + ::warning("--transferfile ignored as there ". + "are no remote --sshlogin."); } elsif (@opt::return) { ::warning("--return ignored as there are no remote --sshlogin."); } elsif (defined $opt::cleanup and not %opt::template) { - ::warning("--cleanup ignored as there are no remote --sshlogin."); + ::warning("--cleanup ignored as there ". + "are no remote --sshlogin."); } elsif (@opt::basefile) { - ::warning("--basefile ignored as there are no remote --sshlogin."); + ::warning("--basefile ignored as there ". + "are no remote --sshlogin."); } } } @@ -4630,7 +4688,8 @@ sub setup_basefile() { ::wait_and_exit(255); } if(not $workdir) { - my $dummycmdline = CommandLine->new(1,["true"],{},0,0,[],[],[],[],{},{}); + my $dummycmdline = + CommandLine->new(1,["true"],{},0,0,[],[],[],[],{},{}); my $dummyjob = Job->new($dummycmdline); $workdir = $dummyjob->workdir(); } @@ -4919,7 +4978,8 @@ sub parallelized_host_filtering() { push(@threads, $host."\t"."true $host; ". sshwrapped($sshlogin,"parallel --number-of-threads",0)."\n\0"); push(@maxline, $host."\t"."true $host; ". - sshwrapped($sshlogin,"parallel --max-line-length-allowed",0)."\n\0"); + sshwrapped($sshlogin, + "parallel --max-line-length-allowed",0)."\n\0"); # 'echo' is used to get the fastest possible ssh login time push(@echo, $host."\t"."true $host; ". $sshlogin->wrap("echo $host")."\n\0"); @@ -5109,7 +5169,8 @@ sub onall($@) { my %seen; for my $joblog (@joblogs) { # Append to $joblog - open(my $fh, "<", $joblog) || ::die_bug("Cannot open tmp joblog $joblog"); + open(my $fh, "<", $joblog) || + ::die_bug("Cannot open tmp joblog $joblog"); # Skip first line (header); <$fh>; print $Global::joblog (<$fh>); @@ -5515,8 +5576,10 @@ sub citation_notice() { print $fh $runs; close $fh; if($runs >= 10) { - ::status("Come on: You have run parallel $runs times. Isn't it about time ", - "you run 'parallel --citation' once to silence the citation notice?", + ::status("Come on: You have run parallel $runs times. ". + "Isn't it about time ", + "you run 'parallel --citation' once to silence ". + "the citation notice?", ""); } } @@ -6055,8 +6118,10 @@ sub multiply_time_units($) { s/m/*60+/gi; s/h/*3600+/gi; s/d/*86400+/gi; - $_ = eval $_."0"; + # 1m/3 => 1*60+/3 => 1*60/3 + s/\+(\D)/$1/gi; } + $_ = eval $_."-0"; } return wantarray ? @v : $v[0]; } @@ -6489,14 +6554,12 @@ sub reap_usleep() { $something_printed += $job->print(); } } - if($something_printed) { - $ms = $ms/2+0.001; - } + if($something_printed) { $ms = $ms/2+0.001; } } if($ms > 0.002) { # When a child dies, wake up from sleep (or select(,,,)) $SIG{CHLD} = sub { kill "ALRM", $$ }; - if($opt::delay) { + if($opt::delay and not $Global::linebuffer) { # The 0.004s is approximately the time it takes for one round my $next_earliest_start = $Global::newest_starttime + $opt::delay - 0.004; @@ -11087,7 +11150,7 @@ sub print_files($) { } if(not $init) { $init = 1; - if($Global::color or $opt::lastlinebuffer) { + if($Global::color or $opt::latestline) { # cursor_up cuu1 = up one line $up = `tput cuu1 add_returnsize($outputlength); - } + if($fdno == 1) { $self->add_returnsize($outputlength); } close $in_fh; if($? and $opt::compress) { ::error($opt::decompress_program." failed."); @@ -11477,7 +11538,7 @@ sub print_joblog($) { $curseq = 1; $maxseq = 1; } - + sub print_color() { # @text is a single line my ($out_fh,@text) = @_; diff --git a/src/parallel.pod b/src/parallel.pod index b5d03f69..3df076b0 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -1348,7 +1348,7 @@ Number of jobslots on each machine. Run up to N jobs in parallel. 0 means as many as possible (this can take a while to determine). Default is 100% which will run one job per -CPU on each machine. +CPU thread on each machine. Due to a bug B<-j 0> will also evaluate replacement strings twice up to the number of joblots: @@ -1360,6 +1360,10 @@ to the number of joblots: If B<--semaphore> is set, the default is 1 thus making a mutex. +See also: B<--use-cores-instead-of-threads> +B<--use-sockets-instead-of-threads> + + =item B<--jobs> I<+N> @@ -1543,9 +1547,9 @@ Similar to B<--memfree>. See also: B<--memfree> B<--load> -=item B<--last-line-buffer> (alpha testing) +=item B<--latest-line> (alpha testing) -=item B<--llb> (alpha testing) +=item B<--ll> (alpha testing) Print the lastest line of each running job. @@ -3446,8 +3450,9 @@ See also: B<--use-cores-instead-of-threads> Determine how GNU B counts the number of CPUs. -GNU B uses this number when the number of jobslots is -computed relative to the number of CPUs (e.g. 100% or +1). +GNU B uses this number when the number of jobslots +(B<--jobs>) is computed relative to the number of CPUs (e.g. 100% or ++1). CPUs can be counted in three different ways: @@ -4872,9 +4877,6 @@ If you cannot use passwordless login, you may be able to use B: seq 10 | parallel --ssh 'sshpass -e ssh' -S 4/user-with-password@server' echo -Currently the remote detection of CPU cores is incompatible with -B so use the '4/' syntax to tell the server has 4 cores. - =head2 EXAMPLE: Use outrun instead of ssh @@ -5124,7 +5126,7 @@ Interleaved FASTQ starts with a line like these: where '/1' and ' 1:' determines this is read 1. -This will cut big.fq into one chunk per CPU core and pass it on +This will cut big.fq into one chunk per CPU thread and pass it on stdin (standard input) to the program fastq-reader: parallel --pipe-part -a big.fq --block -1 --regexp \ @@ -5752,7 +5754,7 @@ Remember to quote the $, so it gets evaluated by the correct shell. Or use B<--plus> and {sshlogin}. -The value is the sshlogin line with number of cores removed. E.g. +The value is the sshlogin line with number of threads removed. E.g. 4//usr/bin/specialssh user@host diff --git a/src/parallel_alternatives.pod b/src/parallel_alternatives.pod index 1ab5cff5..a74820b9 100644 --- a/src/parallel_alternatives.pod +++ b/src/parallel_alternatives.pod @@ -978,21 +978,41 @@ https://github.com/danielgtaylor/ladon (Last checked: 2019-01) =head2 DIFFERENCES BETWEEN jobflow AND GNU Parallel +Summary (see legend above): + +=over + +=item I1 - - - - - I7 + +=item - - M3 - - (M6) + +=item O1 O2 O3 - O5 O6 (O7) - - O10 + +=item E1 - - - - E6 - + +=item - - - - - - - - - + +=item - - + +=back + + B can run multiple jobs in parallel. Just like B output from B jobs running in parallel mix -together by default. B can buffer into files (placed in -/run/shm), but these are not cleaned up if B dies -unexpectedly (e.g. by Ctrl-C). If the total output is big (in the -order of RAM+swap) it can cause the system to slow to a crawl and -eventually run out of memory. +together by default. B can buffer into files with +B<-buffered> (placed in /run/shm), but these are not cleaned up if +B dies unexpectedly (e.g. by Ctrl-C). If the total output is +big (in the order of RAM+swap) it can cause the system to slow to a +crawl and eventually run out of memory. -B gives no error if the command is unknown, and like B -redirection and composed commands require wrapping with B. +Just like B redirection and composed commands require wrapping +with B. -Input lines can at most be 4096 bytes. You can at most have 16 {}'s in -the command template. More than that either crashes the program or -simple does not execute the command. +Input lines can at most be 4096 bytes. + +B is faster than GNU B but around 6 times slower +than B. B has no equivalent for B<--pipe>, or B<--sshlogin>. @@ -1024,7 +1044,13 @@ jobs. This can be emulated by GNU B using B's B: 4$ find . -name '*.bmp' | \ parallel -j8 bmp2jpeg {.}.bmp {.}.jpg -https://github.com/rofl0r/jobflow + 5$ seq 100 | jobflow -skip 10 -count 10 + + 5$ seq 100 | parallel --filter '{1} > 10 and {1} <= 20' echo + + 5$ seq 100 | parallel echo '{= $_>10 and $_<=20 or skip() =}' + +https://github.com/rofl0r/jobflow (Last checked: 2022-05) =head2 DIFFERENCES BETWEEN gargs AND GNU Parallel diff --git a/testsuite/REQUIREMENTS b/testsuite/REQUIREMENTS index 72561b41..5ee67551 100644 --- a/testsuite/REQUIREMENTS +++ b/testsuite/REQUIREMENTS @@ -34,7 +34,7 @@ install_packages() { # Shells # (csh = bsd-csh that is broken) - shell_pkgs="ash dash fdclone fish fizsh ksh ksh93 mksh posh rc rush sash" + shell_pkgs="ash dash fdclone fish fizsh ksh ksh93u+m ksh93 mksh posh rc rush sash" shell_pkgs="$shell_pkgs tcsh yash zsh" # Databases diff --git a/testsuite/tests-to-run/parallel-centos3.sh b/testsuite/tests-to-run/parallel-centos3.sh index 595b4b6b..192e3fe4 100644 --- a/testsuite/tests-to-run/parallel-centos3.sh +++ b/testsuite/tests-to-run/parallel-centos3.sh @@ -7,6 +7,17 @@ echo "### These tests requires VirtualBox running with the following images" echo 'vagrant@centos3' +# add this to .ssh/config +# Host centos3 +# HostKeyAlgorithms +ssh-rsa,ssh-dss +# PubkeyAcceptedAlgorithms +ssh-dss +# user vagrant + +# add this to: /etc/ssh/sshd_config on 172.27.27.1 +# HostKeyAlgorithms +ssh-rsa +# and: +# systemctl restart sshd + SERVER1=centos3 SSHUSER1=vagrant SSHLOGIN1=$SSHUSER1@$SERVER1 @@ -15,18 +26,29 @@ SERVER2=172.27.27.1 SSHUSER2=parallel export SSHLOGIN2=$SSHUSER2@$SERVER2 -stdout ping -w 1 -c 1 centos3 >/dev/null || ( - # Vagrant does not set the IP addr - cd testsuite/vagrant/tange/centos3/ 2>/dev/null - cd vagrant/tange/centos3/ 2>/dev/null - cd ../vagrant/tange/centos3/ 2>/dev/null - ( - stdout vagrant up >/dev/null - vagrant ssh -c 'sudo ifconfig eth1 172.27.27.3' | - # Ignore empty ^M line - grep .. - ) & -) +start_centos3() { + stdout ping -w 1 -c 1 centos3 >/dev/null || ( + # Vagrant does not set the IP addr + cd testsuite/vagrant/tange/centos3/ 2>/dev/null + cd vagrant/tange/centos3/ 2>/dev/null + cd ../vagrant/tange/centos3/ 2>/dev/null + vagrantssh() { + port=$(perl -ne '/#/ and next; /config.vm.network.*host:\s*(\d+)/ and print $1' Vagrantfile) + w4it-for-port-open localhost $port + ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 \ + -oHostKeyAlgorithms=+ssh-rsa,ssh-dss \ + -oPubkeyAcceptedAlgorithms=+ssh-dss -p$port vagrant@localhost "$@" | + # Ignore empty ^M line + grep .. + } + ( + stdout vagrant up >/dev/null + vagrantssh 'sudo /sbin/ifconfig eth1 172.27.27.3' + ) & + ) +} +start_centos3 + ( # Copy binaries to server cd testsuite/vagrant/tange/centos3/ 2>/dev/null diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index c4b49245..44a6b4d3 100644 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -147,7 +147,7 @@ EOF par_resume_k() { echo '### --resume -k' - tmp=$(tempfile) + tmp=$(mktemp) parallel -k --resume --joblog $tmp echo job{}id\;exit {} ::: 0 1 2 3 0 5 echo try 2 = nothing parallel -k --resume --joblog $tmp echo job{}id\;exit {} ::: 0 1 2 3 0 5 @@ -688,8 +688,8 @@ par_link_files_as_only_arg() { } par_basic_halt() { - cpuburn=$(tempfile) - cpuburn2=$(tempfile) + cpuburn=$(mktemp) + cpuburn2=$(mktemp) (echo '#!/usr/bin/perl' echo "eval{setpriority(0,0,9)}; while(1){}") > $cpuburn chmod 700 $cpuburn @@ -745,8 +745,8 @@ par_X_eta_div_zero() { par_parcat_args_stdin() { echo 'bug #51690: parcat: read args from stdin' - tmp1=$(tempfile) - tmp2=$(tempfile) + tmp1=$(mktemp) + tmp2=$(mktemp) echo OK1 > $tmp1 echo OK2 > $tmp2 (echo $tmp1 @@ -756,7 +756,7 @@ par_parcat_args_stdin() { par_parcat_rm() { echo 'bug #51691: parcat --rm remove fifo when opened' - tmp1=$(tempfile) + tmp1=$(mktemp) echo OK1 > $tmp1 parcat --rm $tmp1 rm $tmp1 2>/dev/null || echo OK file removed @@ -792,7 +792,7 @@ par_blocking_redir() { par_pipepart_recend_recstart() { echo 'bug #52343: --recend/--recstart does wrong thing with --pipepart' - tmp1=$(tempfile) + tmp1=$(mktemp) seq 10 > $tmp1 parallel -k --pipepart -a $tmp1 --recend '\n' --recstart '6' --block 1 'echo a; cat' parallel -k --pipe < $tmp1 --recend '\n' --recstart '6' --block 1 'echo a; cat' diff --git a/testsuite/tests-to-run/parallel-local-10s.sh b/testsuite/tests-to-run/parallel-local-10s.sh index a8bdee0c..ec697251 100644 --- a/testsuite/tests-to-run/parallel-local-10s.sh +++ b/testsuite/tests-to-run/parallel-local-10s.sh @@ -454,8 +454,8 @@ par_semaphore() { par_line_buffer() { echo "### --line-buffer" - tmp1=$(tempfile) - tmp2=$(tempfile) + tmp1=$(mktemp) + tmp2=$(mktemp) seq 10 | parallel -j20 --line-buffer 'seq {} 10 | pv -qL 10' > $tmp1 seq 10 | parallel -j20 'seq {} 10 | pv -qL 10' > $tmp2 @@ -467,8 +467,8 @@ par_line_buffer() { par_pipe_line_buffer() { echo "### --pipe --line-buffer" - tmp1=$(tempfile) - tmp2=$(tempfile) + tmp1=$(mktemp) + tmp2=$(mktemp) nowarn() { # Ignore certain warnings diff --git a/testsuite/tests-to-run/parallel-local-30s.sh b/testsuite/tests-to-run/parallel-local-30s.sh index b77d1ee7..469255fc 100755 --- a/testsuite/tests-to-run/parallel-local-30s.sh +++ b/testsuite/tests-to-run/parallel-local-30s.sh @@ -289,7 +289,7 @@ par_groupby_pipepart() { generator="$1" colsep="$2" groupby="$3" - tmp=`tempfile` + tmp=`mktemp` echo "### test $generator | --colsep $colsep --groupby $groupby" $generator > $tmp diff --git a/testsuite/tests-to-run/parallel-local-3s.sh b/testsuite/tests-to-run/parallel-local-3s.sh index 6decfc20..4dd849c1 100644 --- a/testsuite/tests-to-run/parallel-local-3s.sh +++ b/testsuite/tests-to-run/parallel-local-3s.sh @@ -8,23 +8,6 @@ # Each should be taking 3-10s and be possible to run in parallel # I.e.: No race conditions, no logins -par_llb_color() { - echo 'bug #62386: --color (--ctag but without --tag)' - echo 'bug #62438: See last line from multiple jobslots' - slow_seq() { - sleep 0.$1 - seq $1 | pv -qL $1 - } - export -f slow_seq - run() { - seq 4 | parallel --color $@ slow_seq - } - export -f run - parallel --delay 0.1 -vkj0 run \ - ::: --lb --llb '' ::: --color '' ::: '--tagstring {}{}' --tag '' ::: -k '' | - md5sum -} - par_process_slot_var() { echo '### bug #62310: xargs compatibility: --process-slot-var=name' seq 0.1 0.1 0.5 | @@ -144,7 +127,7 @@ EOF true } run() { - tmp=`tempfile` + tmp=`mktemp` "$@" > "$tmp" chmod +x "$tmp" "$tmp" A B C @@ -343,7 +326,7 @@ par_tee_with_premature_close() { par_tee_too_many_args() { echo '### Fail if there are more arguments than --jobs' seq 11 | stdout parallel -k --tag --pipe -j4 --tee grep {} ::: {1..4} - tmp=`tempfile` + tmp=`mktemp` seq 11 | parallel -k --tag --pipe -j0 --tee grep {} ::: {1..10000} 2> "$tmp" cat "$tmp" | perl -pe 's/\d+/999/g' rm "$tmp" diff --git a/testsuite/tests-to-run/parallel-local-race01.sh b/testsuite/tests-to-run/parallel-local-race01.sh index 0bfc5077..9acecde1 100755 --- a/testsuite/tests-to-run/parallel-local-race01.sh +++ b/testsuite/tests-to-run/parallel-local-race01.sh @@ -13,8 +13,8 @@ par_sem_dir() { par_parcat_mixing() { echo 'parcat output should mix: a b a b' - mktmpfifo() { - tmp=$(tempfile) + mktempfifo() { + tmp=$(mktemp) rm $tmp mkfifo $tmp echo $tmp @@ -25,8 +25,8 @@ par_parcat_mixing() { sleep 2 perl -e 'print "'$string'"x9000,"end\n"' } - tmp1=$(mktmpfifo) - tmp2=$(mktmpfifo) + tmp1=$(mktempfifo) + tmp2=$(mktempfifo) slow_output a > $tmp1 & sleep 1 slow_output b > $tmp2 & @@ -106,7 +106,7 @@ par_bug56403() { par_delay_Xauto() { echo 'TODO: --retries for those that fail and --sshdelay' echo '### bug #58911: --delay Xauto' - tmp=$(tempfile) + tmp=$(mktemp) doit() { perl -e '$a=shift; $m = -M $a < 0.0000001; diff --git a/testsuite/tests-to-run/parallel-local-race02.sh b/testsuite/tests-to-run/parallel-local-race02.sh index ebb55d07..5b69fb56 100644 --- a/testsuite/tests-to-run/parallel-local-race02.sh +++ b/testsuite/tests-to-run/parallel-local-race02.sh @@ -6,6 +6,41 @@ # These fail regularly +par_ll_lb_color() { + echo 'bug #62386: --color (--ctag but without --tag)' + echo 'bug #62438: See last line from multiple jobslots' + # This is really a race condition - might have to be moved + # # delay modulo 4 seconds + # perl -MTime::HiRes -E 'Time::HiRes::usleep(1000000*(((time|3)+1)-Time::HiRes::time()));' + # # delay modulo 2 seconds + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|1)));say time;' + # # delay modulo 1 second + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|0)));say time;' + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time*4|0)/4));say time;' + # # delay modulo 1/4 second + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(-time+(1+time*3|0)/3));say time;'; + # # delay modulo 1/4 second + 100 ms + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.1-time+(1+time*3|0)/3));say time;'; + # # delay modulo 1 second + 200 ms + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.2-time+(1+time*1|0)/1));say time;'; + # # delay modulo 1 second + delta ms + # perl -E 'use Time::HiRes qw(usleep time); $d=shift; for(1..shift){ + # usleep(1000000*($d-time+(1+time*1|0)/1));say;}' 0.2 6; + offset_seq() { + perl -E 'use Time::HiRes qw(usleep time); $|=1;$d=shift; for(1..shift){ + usleep(1000000*($d-time+(1+time*1|0)/1));say;}' $@; + } + export -f offset_seq + run() { + seq 4 -1 1 | parallel -j0 $@ offset_seq 0.{#} {} + } + export -f run + + parallel --delay 0.17 -vkj0 run \ + ::: --lb --ll '' ::: --color '' ::: '--tagstring {}{}' --tag '' ::: -k '' | + md5sum +} + ctrlz_should_suspend_children() { echo 'bug #46120: Suspend should suspend (at least local) children' echo 'it should burn 1.9 CPU seconds, but no more than that' @@ -154,7 +189,7 @@ par_kill_hup() { par_resume_failed_k() { echo '### bug #38299: --resume-failed -k' - tmp=$(tempfile) + tmp=$(mktemp) parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1 echo try 2. Gives failing - not 0 parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1 diff --git a/testsuite/tests-to-run/parallel-local-sql.sh b/testsuite/tests-to-run/parallel-local-sql.sh index 8059e512..83079e21 100755 --- a/testsuite/tests-to-run/parallel-local-sql.sh +++ b/testsuite/tests-to-run/parallel-local-sql.sh @@ -22,8 +22,8 @@ p_wrapper() { SERVERURL=$(eval echo $2) TABLE=TBL$RANDOM DBURL=$SERVERURL/$TABLE - T1=$(tempfile) - T2=$(tempfile) + T1=$(mktemp) + T2=$(mktemp) eval "$INNER" echo Exit=$? wait @@ -114,7 +114,7 @@ par_sql_joblog() { parallel -k --joblog - --sqlmaster $DBURL --wait sleep .3\;echo ::: {1..5} ::: {a..e} | perl -pe 's/\d+\.\d+/999.999/g' | sort -n & sleep 0.5 - T=$(tempfile) + T=$(mktemp) parallel -k --joblog - --sqlworker $DBURL > $T wait # Needed because of race condition diff --git a/testsuite/tests-to-run/parallel-local-sql01.sh b/testsuite/tests-to-run/parallel-local-sql01.sh index ae00ed86..0d2b194f 100644 --- a/testsuite/tests-to-run/parallel-local-sql01.sh +++ b/testsuite/tests-to-run/parallel-local-sql01.sh @@ -29,8 +29,8 @@ p_wrapper() { # Use a random table for each test TABLE=TBL$RANDOM DBURL=$SERVERURL/$TABLE - T1=$(tempfile) - T2=$(tempfile) + T1=$(mktemp) + T2=$(mktemp) # Run $INNER (all the par_* functions) eval "$INNER" echo Exit=$? diff --git a/testsuite/tests-to-run/parallel-local-ssh7.sh b/testsuite/tests-to-run/parallel-local-ssh7.sh index 96efeb5e..6fda7767 100755 --- a/testsuite/tests-to-run/parallel-local-ssh7.sh +++ b/testsuite/tests-to-run/parallel-local-ssh7.sh @@ -3321,7 +3321,7 @@ compgen -A function | grep par_ | LC_ALL=C sort -r | # parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1' # 2019-07-14 200% too high for 16 GB/4 thread parallel --joblog /tmp/jl-`basename $0` -j75% --retries 2 --tag -k '{} 2>&1' | - perl -pe 's/line \d?\d\d:/line XXX:/g; + perl -pe 's/line \d\d+/line XXX/g; s/\d+ >= \d+/XXX >= XXX/; s/sh:? \d?\d\d:/sh: XXX:/; s/:\d?\d\d:/:XXX:/; diff --git a/testsuite/tests-to-run/parallel-local-ssh9.sh b/testsuite/tests-to-run/parallel-local-ssh9.sh index 8c7746cc..12050272 100644 --- a/testsuite/tests-to-run/parallel-local-ssh9.sh +++ b/testsuite/tests-to-run/parallel-local-ssh9.sh @@ -174,7 +174,7 @@ par_no_route_to_host() { # Random hosts findhosts() { ip='$(($RANDOM%256)).$(($RANDOM%256)).$(($RANDOM%256)).$(($RANDOM%256))' - seq 10000 | parallel -N0 echo $ip + seq 10000 | parallel -N0 echo $ip | grep -v ^127 } # See if the hosts fail fast diff --git a/testsuite/tests-to-run/parallel-virtualbox1.sh b/testsuite/tests-to-run/parallel-virtualbox1.sh index 01c4ef3f..6819b5c1 100644 --- a/testsuite/tests-to-run/parallel-virtualbox1.sh +++ b/testsuite/tests-to-run/parallel-virtualbox1.sh @@ -4,16 +4,28 @@ # # SPDX-License-Identifier: GPL-3.0-or-later -stdout ping -w 1 -c 1 centos3 >/dev/null || ( - # Vagrant does not set the IP addr - cd testsuite/vagrant/tange/centos3/ 2>/dev/null - cd vagrant/tange/centos3/ 2>/dev/null - cd ../vagrant/tange/centos3/ 2>/dev/null - stdout vagrant up >/dev/null - vagrant ssh -c 'sudo ifconfig eth1 172.27.27.3' | - # Ignore empty ^M line - grep .. -) +start_centos3() { + stdout ping -w 1 -c 1 centos3 >/dev/null || ( + # Vagrant does not set the IP addr + cd testsuite/vagrant/tange/centos3/ 2>/dev/null + cd vagrant/tange/centos3/ 2>/dev/null + cd ../vagrant/tange/centos3/ 2>/dev/null + vagrantssh() { + port=$(perl -ne '/#/ and next; /config.vm.network.*host:\s*(\d+)/ and print $1' Vagrantfile) + w4it-for-port-open localhost $port + ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 \ + -oHostKeyAlgorithms=+ssh-rsa,ssh-dss \ + -oPubkeyAcceptedAlgorithms=+ssh-dss -p$port vagrant@localhost "$@" | + # Ignore empty ^M line + grep .. + } + ( + stdout vagrant up >/dev/null + vagrantssh 'sudo /sbin/ifconfig eth1 172.27.27.3' + ) & + ) +} +start_centos3 stdout parallel --tag -k 'ping -w 1 -c 1 {} || (cd vagrant/*/{} && vagrant up)' ::: rhel8 centos3 | grep -v 'default' | grep -v '==>' | grep -E '^$' & diff --git a/testsuite/tests-to-run/parsort-local-01.sh b/testsuite/tests-to-run/parsort-local-01.sh index eb5c810c..3246449e 100644 --- a/testsuite/tests-to-run/parsort-local-01.sh +++ b/testsuite/tests-to-run/parsort-local-01.sh @@ -8,7 +8,7 @@ par_whitespace_delimiter() { echo 'bug #59779: parsort does not work with white characters as delimiters' doit() { del="$1" - tmp=$(tempfile) + tmp=$(mktemp) ( printf "a%s8%se\n" "$del" "$del" printf "b%s7%sf\n" "$del" "$del" diff --git a/testsuite/vagrant/tange/centos3/Vagrantfile b/testsuite/vagrant/tange/centos3/Vagrantfile new file mode 100644 index 00000000..7401b861 --- /dev/null +++ b/testsuite/vagrant/tange/centos3/Vagrantfile @@ -0,0 +1,77 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# All Vagrant configuration is done below. The "2" in Vagrant.configure +# configures the configuration version (we support older styles for +# backwards compatibility). Please don't change it unless you know what +# you're doing. +Vagrant.configure("2") do |config| + # The most common configuration options are documented and commented below. + # For a complete reference, please see the online documentation at + # https://docs.vagrantup.com. + + # Every Vagrant development environment requires a box. You can search for + # boxes at https://vagrantcloud.com/search. + config.vm.box = "tange/centos3" + + # Disable automatic box update checking. If you disable this, then + # boxes will only be checked for updates when the user runs + # `vagrant box outdated`. This is not recommended. + # config.vm.box_check_update = false + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine. In the example below, + # accessing "localhost:8080" will access port 80 on the guest machine. + # NOTE: This will enable public access to the opened port + config.vm.network :forwarded_port, guest: 22, host: 50036, id: 'ssh' + + config.vm.boot_timeout = 600 + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine and only allow access + # via 127.0.0.1 to disable public access + # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" + + # Create a private network, which allows host-only access to the machine + # using a specific IP. + config.vm.network "private_network", ip: "172.27.27.3" + + # Create a public network, which generally matched to bridged network. + # Bridged networks make the machine appear as another physical device on + # your network. + # config.vm.network "public_network" + + # Share an additional folder to the guest VM. The first argument is + # the path on the host to the actual folder. The second argument is + # the path on the guest to mount the folder. And the optional third + # argument is a set of non-required options. + # config.vm.synced_folder "../data", "/vagrant_data" + + # Provider-specific configuration so you can fine-tune various + # backing providers for Vagrant. These expose provider-specific options. + # Example for VirtualBox: + # + config.vm.provider "virtualbox" do |vb| + # # Display the VirtualBox GUI when booting the machine + # vb.gui = true + # + # # Customize the amount of memory on the VM: + vb.memory = "256" + end + # + # View the documentation for the provider you are using for more + # information on available options. + + # Enable provisioning with a shell script. Additional provisioners such as + # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the + # documentation for more information about their specific syntax and use. + config.vm.provision "shell" do |s| + ssh_pub_key = File.readlines("../../authorized_keys").first.strip + s.inline = <<-SHELL + mkdir /root/.ssh + echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys + echo #{ssh_pub_key} >> /root/.ssh/authorized_keys + sudo apt install rsync || sudo yum install -y rsync || sudo pkg install -y rsync + SHELL + end +end diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index 2ea27ff5..cb8efa7d 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -530,7 +530,7 @@ par_nice_locally PAR=a bash -c "echo \$PAR b" par_nice_locally a b par_no_command_given ### Test bugfix if no command given par_no_command_given 1 2 -par_no_command_given /bin/bash: 3: command not found +par_no_command_given /bin/bash: line 1: 3: command not found par_no_command_given parallel: Error: Command line too long (1000002 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... par_no_joblog_with_dryrun bug #46016: --joblog should not log when --dryrun par_no_joblog_with_dryrun echo Only_this @@ -953,10 +953,10 @@ par_sem_quote ### sem --quote should not add empty argument par_sem_quote echo par_sem_quote par_shellcompletion ### --shellcompletion -par_shellcompletion a040c070a388e8799d899dce6e4d478b - -par_shellcompletion a040c070a388e8799d899dce6e4d478b - -par_shellcompletion 7bd30aa4542083e298ef0d1a60dc1322 - -par_shellcompletion 7bd30aa4542083e298ef0d1a60dc1322 - +par_shellcompletion 329fc284cae55cbfed49ed5546eb2b29 - +par_shellcompletion 329fc284cae55cbfed49ed5546eb2b29 - +par_shellcompletion 4869360b2bf2f084c17bdc60413faace - +par_shellcompletion 4869360b2bf2f084c17bdc60413faace - par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks par_slow_pipe_regexp This should take a few ms, but took more than 2 hours par_slow_pipe_regexp 0 1 1 diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index 1ba6c885..20ab3370 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -934,8 +934,7 @@ par_shellquote fish ' par_shellquote fish par_shellquote fish  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' par_shellquote fizsh ' par_shellquote fizsh par_shellquote fizsh  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' -par_shellquote ksh2020 ' -par_shellquote ksh2020 par_shellquote ksh2020  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_shellquote ksh2020 environment: line 1: ksh2020: command not found par_shellquote ksh93 ' par_shellquote ksh93 par_shellquote ksh93  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' par_shellquote lksh ' diff --git a/testsuite/wanted-results/parallel-local-300s b/testsuite/wanted-results/parallel-local-300s index beddd14c..deaefecf 100644 --- a/testsuite/wanted-results/parallel-local-300s +++ b/testsuite/wanted-results/parallel-local-300s @@ -18,7 +18,7 @@ par_halt_on_error -2 false true parallel: This job succeeded: par_halt_on_error -2 false true sleep 2;true par_halt_on_error -2 false false 3 par_halt_on_error -2 false false 4 -par_halt_on_error -2 false false /bin/bash: non_exist: command not found +par_halt_on_error -2 false false /bin/bash: line 1: non_exist: command not found par_halt_on_error -1 true true 0 par_halt_on_error -1 true true 0 par_halt_on_error -1 true true parallel: This job succeeded: @@ -38,7 +38,7 @@ par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jo par_halt_on_error -1 true true parallel: This job succeeded: par_halt_on_error -1 true true sleep 3;true par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish. -par_halt_on_error -1 true true /bin/bash: non_exist: command not found +par_halt_on_error -1 true true /bin/bash: line 1: non_exist: command not found par_halt_on_error -1 true false 0 par_halt_on_error -1 true false 0 par_halt_on_error -1 true false parallel: This job succeeded: @@ -52,7 +52,7 @@ par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 3 j par_halt_on_error -1 true false parallel: This job succeeded: par_halt_on_error -1 true false sleep 3;true par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish. -par_halt_on_error -1 true false /bin/bash: non_exist: command not found +par_halt_on_error -1 true false /bin/bash: line 1: non_exist: command not found par_halt_on_error -1 false true 0 par_halt_on_error -1 false true 0 par_halt_on_error -1 false true parallel: This job succeeded: @@ -61,25 +61,25 @@ par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 1 j par_halt_on_error -1 false true parallel: This job succeeded: par_halt_on_error -1 false true sleep 2;true par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish. -par_halt_on_error -1 false true /bin/bash: non_exist: command not found +par_halt_on_error -1 false true /bin/bash: line 1: non_exist: command not found par_halt_on_error -1 false false 3 par_halt_on_error -1 false false 4 -par_halt_on_error -1 false false /bin/bash: non_exist: command not found +par_halt_on_error -1 false false /bin/bash: line 1: non_exist: command not found par_halt_on_error 0 true true 0 par_halt_on_error 0 true true 1 -par_halt_on_error 0 true true /bin/bash: non_exist: command not found +par_halt_on_error 0 true true /bin/bash: line 1: non_exist: command not found par_halt_on_error 0 true false 1 par_halt_on_error 0 true false 2 -par_halt_on_error 0 true false /bin/bash: non_exist: command not found +par_halt_on_error 0 true false /bin/bash: line 1: non_exist: command not found par_halt_on_error 0 false true 2 par_halt_on_error 0 false true 3 -par_halt_on_error 0 false true /bin/bash: non_exist: command not found +par_halt_on_error 0 false true /bin/bash: line 1: non_exist: command not found par_halt_on_error 0 false false 3 par_halt_on_error 0 false false 4 -par_halt_on_error 0 false false /bin/bash: non_exist: command not found +par_halt_on_error 0 false false /bin/bash: line 1: non_exist: command not found par_halt_on_error 1 true true 0 par_halt_on_error 1 true true 127 -par_halt_on_error 1 true true /bin/bash: non_exist: command not found +par_halt_on_error 1 true true /bin/bash: line 1: non_exist: command not found par_halt_on_error 1 true true parallel: This job failed: par_halt_on_error 1 true true sleep 4;non_exist par_halt_on_error 1 true false 1 @@ -90,7 +90,7 @@ par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 1 jo par_halt_on_error 1 true false parallel: This job failed: par_halt_on_error 1 true false sleep 2;false par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish. -par_halt_on_error 1 true false /bin/bash: non_exist: command not found +par_halt_on_error 1 true false /bin/bash: line 1: non_exist: command not found par_halt_on_error 1 true false parallel: This job failed: par_halt_on_error 1 true false sleep 4;non_exist par_halt_on_error 1 false true 1 @@ -106,7 +106,7 @@ par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 3 jo par_halt_on_error 1 false true parallel: This job failed: par_halt_on_error 1 false true sleep 3;false par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish. -par_halt_on_error 1 false true /bin/bash: non_exist: command not found +par_halt_on_error 1 false true /bin/bash: line 1: non_exist: command not found par_halt_on_error 1 false true parallel: This job failed: par_halt_on_error 1 false true sleep 4;non_exist par_halt_on_error 1 false false 1 @@ -128,12 +128,12 @@ par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 j par_halt_on_error 1 false false parallel: This job failed: par_halt_on_error 1 false false sleep 3;false par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish. -par_halt_on_error 1 false false /bin/bash: non_exist: command not found +par_halt_on_error 1 false false /bin/bash: line 1: non_exist: command not found par_halt_on_error 1 false false parallel: This job failed: par_halt_on_error 1 false false sleep 4;non_exist par_halt_on_error 2 true true 0 par_halt_on_error 2 true true 127 -par_halt_on_error 2 true true /bin/bash: non_exist: command not found +par_halt_on_error 2 true true /bin/bash: line 1: non_exist: command not found par_halt_on_error 2 true true parallel: This job failed: par_halt_on_error 2 true true sleep 4;non_exist par_halt_on_error 2 true false 1 @@ -259,221 +259,221 @@ par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/parallel.pod > "."/parallel.1n \ par_test_build_and_install && mv "."/parallel.1n "."/parallel.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parallel.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/env_parallel.pod > "."/env_parallel.1n \ par_test_build_and_install && mv "."/env_parallel.1n "."/env_parallel.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old env_parallel.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old env_parallel.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/sem.pod > "."/sem.1n \ par_test_build_and_install && mv "."/sem.1n "."/sem.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old sem.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old sem.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/sql > "."/sql.1n \ par_test_build_and_install && mv "."/sql.1n "."/sql.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old sql.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/niceload.pod > "."/niceload.1n \ par_test_build_and_install && mv "."/niceload.1n "."/niceload.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old niceload.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old niceload.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=7 "."/parallel_tutorial.pod > "."/parallel_tutorial.7n \ par_test_build_and_install && mv "."/parallel_tutorial.7n "."/parallel_tutorial.7 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parallel_tutorial.7 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=7 "."/parallel_book.pod > "."/parallel_book.7n \ par_test_build_and_install && mv "."/parallel_book.7n "."/parallel_book.7 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_book.7" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parallel_book.7 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=7 "."/parallel_design.pod > "."/parallel_design.7n \ par_test_build_and_install && mv "."/parallel_design.7n "."/parallel_design.7 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_design.7" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parallel_design.7 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=7 "."/parallel_alternatives.pod > "."/parallel_alternatives.7n \ par_test_build_and_install && mv "."/parallel_alternatives.7n "."/parallel_alternatives.7 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_alternatives.7" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parallel_alternatives.7 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/parcat.pod > "."/parcat.1n \ par_test_build_and_install && mv "."/parcat.1n "."/parcat.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parcat.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parcat.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/parset.pod > "."/parset.1n \ par_test_build_and_install && mv "."/parset.1n "."/parset.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parset.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parset.1 par_test_build_and_install pod2html --title "GNU Parallel" "."/parallel.pod > "."/parallel.htmln \ par_test_build_and_install && mv "."/parallel.htmln "."/parallel.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parallel.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU Parallel with environment" "."/env_parallel.pod > "."/env_parallel.htmln \ par_test_build_and_install && mv "."/env_parallel.htmln "."/env_parallel.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old env_parallel.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU Parallel tutorial" "."/parallel_tutorial.pod > "."/parallel_tutorial.htmln \ par_test_build_and_install && mv "."/parallel_tutorial.htmln "."/parallel_tutorial.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parallel_tutorial.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU Parallel book" "."/parallel_book.pod > "."/parallel_book.htmln \ par_test_build_and_install && mv "."/parallel_book.htmln "."/parallel_book.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_book.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parallel_book.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU Parallel design" "."/parallel_design.pod > "."/parallel_design.htmln \ par_test_build_and_install && mv "."/parallel_design.htmln "."/parallel_design.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_design.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parallel_design.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU Parallel alternatives" "."/parallel_alternatives.pod > "."/parallel_alternatives.htmln \ par_test_build_and_install && mv "."/parallel_alternatives.htmln "."/parallel_alternatives.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_alternatives.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parallel_alternatives.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "sem (GNU Parallel)" "."/sem.pod > "."/sem.htmln \ par_test_build_and_install && mv "."/sem.htmln "."/sem.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old sem.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old sem.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU SQL" "."/sql > "."/sql.htmln \ par_test_build_and_install && mv "."/sql.htmln "."/sql.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old sql.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU niceload" "."/niceload.pod > "."/niceload.htmln \ par_test_build_and_install && mv "."/niceload.htmln "."/niceload.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old niceload.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU parcat" "."/parcat.pod > "."/parcat.htmln \ par_test_build_and_install && mv "."/parcat.htmln "."/parcat.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parcat.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU parset" "."/parset.pod > "."/parset.htmln \ par_test_build_and_install && mv "."/parset.htmln "."/parset.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parset.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2texi --output="."/parallel.texi "."/parallel.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parallel.texi par_test_build_and_install pod2texi --output="."/env_parallel.texi "."/env_parallel.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old env_parallel.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old env_parallel.texi par_test_build_and_install pod2texi --output="."/sem.texi "."/sem.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old sem.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old sem.texi par_test_build_and_install pod2texi --output="."/sql.texi "."/sql \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old sql.texi par_test_build_and_install pod2texi --output="."/niceload.texi "."/niceload.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi par_test_build_and_install pod2texi --output="."/parallel_tutorial.texi "."/parallel_tutorial.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parallel_tutorial.texi par_test_build_and_install pod2texi --output="."/parallel_book.texi "."/parallel_book.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_book.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parallel_book.texi par_test_build_and_install pod2texi --output="."/parallel_design.texi "."/parallel_design.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_design.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parallel_design.texi par_test_build_and_install pod2texi --output="."/parallel_alternatives.texi "."/parallel_alternatives.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parallel_alternatives.texi par_test_build_and_install pod2texi --output="."/parcat.texi "."/parcat.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parcat.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parcat.texi par_test_build_and_install pod2texi --output="."/parset.texi "."/parset.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parset.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parset.texi par_test_build_and_install pod2pdf --output-file "."/parallel.pdf "."/parallel.pod --title "GNU Parallel" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parallel.pdf par_test_build_and_install pod2pdf --output-file "."/env_parallel.pdf "."/env_parallel.pod --title "GNU Parallel with environment" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old env_parallel.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old env_parallel.pdf par_test_build_and_install pod2pdf --output-file "."/sem.pdf "."/sem.pod --title "GNU sem" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sem.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old sem.pdf par_test_build_and_install pod2pdf --output-file "."/sql.pdf "."/sql --title "GNU SQL" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old sql.pdf par_test_build_and_install pod2pdf --output-file "."/niceload.pdf "."/niceload.pod --title "GNU niceload" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old niceload.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old niceload.pdf par_test_build_and_install pod2pdf --output-file "."/parallel_tutorial.pdf "."/parallel_tutorial.pod --title "GNU Parallel Tutorial" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parallel_tutorial.pdf par_test_build_and_install pod2pdf --output-file "."/parallel_book.pdf "."/parallel_book.pod --title "GNU Parallel Book" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_book.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parallel_book.pdf par_test_build_and_install pod2pdf --output-file "."/parallel_design.pdf "."/parallel_design.pod --title "GNU Parallel Design" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_design.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parallel_design.pdf par_test_build_and_install pod2pdf --output-file "."/parallel_alternatives.pdf "."/parallel_alternatives.pod --title "GNU Parallel alternatives" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parallel_alternatives.pdf par_test_build_and_install pod2pdf --output-file "."/parcat.pdf "."/parcat.pod --title "GNU parcat" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parcat.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parcat.pdf par_test_build_and_install pod2pdf --output-file "."/parset.pdf "."/parset.pod --title "GNU parset" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin' @@ -486,156 +486,156 @@ par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/sr par_test_build_and_install pod2html --title "GNU Parallel" "."/parallel.pod > "."/parallel.htmln \ par_test_build_and_install && mv "."/parallel.htmln "."/parallel.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parallel.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU Parallel with environment" "."/env_parallel.pod > "."/env_parallel.htmln \ par_test_build_and_install && mv "."/env_parallel.htmln "."/env_parallel.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old env_parallel.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU Parallel tutorial" "."/parallel_tutorial.pod > "."/parallel_tutorial.htmln \ par_test_build_and_install && mv "."/parallel_tutorial.htmln "."/parallel_tutorial.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parallel_tutorial.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU Parallel book" "."/parallel_book.pod > "."/parallel_book.htmln \ par_test_build_and_install && mv "."/parallel_book.htmln "."/parallel_book.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_book.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parallel_book.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU Parallel design" "."/parallel_design.pod > "."/parallel_design.htmln \ par_test_build_and_install && mv "."/parallel_design.htmln "."/parallel_design.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_design.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parallel_design.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU Parallel alternatives" "."/parallel_alternatives.pod > "."/parallel_alternatives.htmln \ par_test_build_and_install && mv "."/parallel_alternatives.htmln "."/parallel_alternatives.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_alternatives.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parallel_alternatives.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "sem (GNU Parallel)" "."/sem.pod > "."/sem.htmln \ par_test_build_and_install && mv "."/sem.htmln "."/sem.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old sem.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old sem.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU SQL" "."/sql > "."/sql.htmln \ par_test_build_and_install && mv "."/sql.htmln "."/sql.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old sql.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU niceload" "."/niceload.pod > "."/niceload.htmln \ par_test_build_and_install && mv "."/niceload.htmln "."/niceload.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old niceload.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU parcat" "."/parcat.pod > "."/parcat.htmln \ par_test_build_and_install && mv "."/parcat.htmln "."/parcat.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parcat.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2html --title "GNU parset" "."/parset.pod > "."/parset.htmln \ par_test_build_and_install && mv "."/parset.htmln "."/parset.html \ par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html" -par_test_build_and_install /bin/bash: pod2html: command not found +par_test_build_and_install /bin/bash: line 1: pod2html: command not found par_test_build_and_install Warning: pod2html not found. Using old parset.html par_test_build_and_install rm -f "."/pod2htm* par_test_build_and_install pod2texi --output="."/parallel.texi "."/parallel.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parallel.texi par_test_build_and_install pod2texi --output="."/env_parallel.texi "."/env_parallel.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old env_parallel.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old env_parallel.texi par_test_build_and_install pod2texi --output="."/sem.texi "."/sem.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old sem.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old sem.texi par_test_build_and_install pod2texi --output="."/sql.texi "."/sql \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old sql.texi par_test_build_and_install pod2texi --output="."/niceload.texi "."/niceload.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi par_test_build_and_install pod2texi --output="."/parallel_tutorial.texi "."/parallel_tutorial.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parallel_tutorial.texi par_test_build_and_install pod2texi --output="."/parallel_book.texi "."/parallel_book.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_book.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parallel_book.texi par_test_build_and_install pod2texi --output="."/parallel_design.texi "."/parallel_design.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_design.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parallel_design.texi par_test_build_and_install pod2texi --output="."/parallel_alternatives.texi "."/parallel_alternatives.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parallel_alternatives.texi par_test_build_and_install pod2texi --output="."/parcat.texi "."/parcat.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parcat.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parcat.texi par_test_build_and_install pod2texi --output="."/parset.texi "."/parset.pod \ par_test_build_and_install || echo "Warning: pod2texi not found. Using old parset.texi" -par_test_build_and_install /bin/bash: pod2texi: command not found +par_test_build_and_install /bin/bash: line 1: pod2texi: command not found par_test_build_and_install Warning: pod2texi not found. Using old parset.texi par_test_build_and_install pod2pdf --output-file "."/parallel.pdf "."/parallel.pod --title "GNU Parallel" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parallel.pdf par_test_build_and_install pod2pdf --output-file "."/env_parallel.pdf "."/env_parallel.pod --title "GNU Parallel with environment" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old env_parallel.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old env_parallel.pdf par_test_build_and_install pod2pdf --output-file "."/sem.pdf "."/sem.pod --title "GNU sem" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sem.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old sem.pdf par_test_build_and_install pod2pdf --output-file "."/sql.pdf "."/sql --title "GNU SQL" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old sql.pdf par_test_build_and_install pod2pdf --output-file "."/niceload.pdf "."/niceload.pod --title "GNU niceload" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old niceload.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old niceload.pdf par_test_build_and_install pod2pdf --output-file "."/parallel_tutorial.pdf "."/parallel_tutorial.pod --title "GNU Parallel Tutorial" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parallel_tutorial.pdf par_test_build_and_install pod2pdf --output-file "."/parallel_book.pdf "."/parallel_book.pod --title "GNU Parallel Book" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_book.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parallel_book.pdf par_test_build_and_install pod2pdf --output-file "."/parallel_design.pdf "."/parallel_design.pod --title "GNU Parallel Design" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_design.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parallel_design.pdf par_test_build_and_install pod2pdf --output-file "."/parallel_alternatives.pdf "."/parallel_alternatives.pod --title "GNU Parallel alternatives" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parallel_alternatives.pdf par_test_build_and_install pod2pdf --output-file "."/parcat.pdf "."/parcat.pod --title "GNU parcat" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parcat.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parcat.pdf par_test_build_and_install pod2pdf --output-file "."/parset.pdf "."/parset.pod --title "GNU parset" \ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset.pdf" -par_test_build_and_install /bin/bash: pod2pdf: command not found +par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install /bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.rst env_parallel.rst sem.rst sql.rst niceload.rst parallel_tutorial.rst parallel_book.rst parallel_design.rst parallel_alternatives.rst parcat.rst parset.rst parsort.rst parallel.pdf env_parallel.pdf sem.pdf sql.pdf '/tmp/parallel-install/share/doc/parallel' @@ -644,67 +644,67 @@ par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/parallel.pod > "."/parallel.1n \ par_test_build_and_install && mv "."/parallel.1n "."/parallel.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parallel.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/env_parallel.pod > "."/env_parallel.1n \ par_test_build_and_install && mv "."/env_parallel.1n "."/env_parallel.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old env_parallel.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old env_parallel.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/sem.pod > "."/sem.1n \ par_test_build_and_install && mv "."/sem.1n "."/sem.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old sem.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old sem.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/sql > "."/sql.1n \ par_test_build_and_install && mv "."/sql.1n "."/sql.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old sql.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/niceload.pod > "."/niceload.1n \ par_test_build_and_install && mv "."/niceload.1n "."/niceload.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old niceload.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old niceload.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=7 "."/parallel_tutorial.pod > "."/parallel_tutorial.7n \ par_test_build_and_install && mv "."/parallel_tutorial.7n "."/parallel_tutorial.7 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parallel_tutorial.7 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=7 "."/parallel_book.pod > "."/parallel_book.7n \ par_test_build_and_install && mv "."/parallel_book.7n "."/parallel_book.7 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_book.7" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parallel_book.7 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=7 "."/parallel_design.pod > "."/parallel_design.7n \ par_test_build_and_install && mv "."/parallel_design.7n "."/parallel_design.7 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_design.7" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parallel_design.7 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=7 "."/parallel_alternatives.pod > "."/parallel_alternatives.7n \ par_test_build_and_install && mv "."/parallel_alternatives.7n "."/parallel_alternatives.7 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_alternatives.7" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parallel_alternatives.7 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/parcat.pod > "."/parcat.1n \ par_test_build_and_install && mv "."/parcat.1n "."/parcat.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parcat.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parcat.1 par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install --section=1 "."/parset.pod > "."/parset.1n \ par_test_build_and_install && mv "."/parset.1n "."/parset.1 \ par_test_build_and_install || echo "Warning: pod2man not found. Using old parset.1" -par_test_build_and_install /bin/bash: pod2man: command not found +par_test_build_and_install /bin/bash: line 1: pod2man: command not found par_test_build_and_install Warning: pod2man not found. Using old parset.1 par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1' par_test_build_and_install /bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1' diff --git a/testsuite/wanted-results/parallel-local-30s b/testsuite/wanted-results/parallel-local-30s index 9f35285b..de9aafc0 100644 --- a/testsuite/wanted-results/parallel-local-30s +++ b/testsuite/wanted-results/parallel-local-30s @@ -88,16 +88,16 @@ par_exit_code fizsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: par_exit_code fizsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 par_exit_code fizsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 par_exit_code fizsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 -par_exit_code ksh2020 /tmp/mysleep 100 137 -par_exit_code ksh2020 parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 -par_exit_code ksh2020 parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 -par_exit_code ksh2020 parallel --halt-on-error now,done=1 /bin/true ::: 100 0 -par_exit_code ksh2020 parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code ksh2020 true;/tmp/mysleep 100 137 -par_exit_code ksh2020 parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 -par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 -par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 -par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code ksh2020 /tmp/mysleep 100 open3: exec of ksh2020 -c /tmp/mysleep 100 failed: No such file or directory at -e line 1. +par_exit_code ksh2020 parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 failed: No such file or directory at -e line 1. +par_exit_code ksh2020 parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 failed: No such file or directory at -e line 1. +par_exit_code ksh2020 parallel --halt-on-error now,done=1 /bin/true ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 /bin/true ::: 100 failed: No such file or directory at -e line 1. +par_exit_code ksh2020 parallel --halt-on-error now,done=1 exit ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 exit ::: 100 failed: No such file or directory at -e line 1. +par_exit_code ksh2020 true;/tmp/mysleep 100 open3: exec of ksh2020 -c true;/tmp/mysleep 100 failed: No such file or directory at -e line 1. +par_exit_code ksh2020 parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 failed: No such file or directory at -e line 1. +par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 failed: No such file or directory at -e line 1. +par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 failed: No such file or directory at -e line 1. +par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;exit' ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 'true;exit' ::: 100 failed: No such file or directory at -e line 1. par_exit_code posh /tmp/mysleep 100 137 par_exit_code posh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code posh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 @@ -153,7 +153,7 @@ par_exit_code bash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code bash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 par_exit_code bash parallel --halt-on-error now,done=1 /bin/true ::: 100 0 par_exit_code bash parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code bash true;/tmp/mysleep 100 137 +par_exit_code bash true;/tmp/mysleep 100 0 par_exit_code bash parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 par_exit_code bash parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 par_exit_code bash parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 @@ -1481,13 +1481,13 @@ par_macron par_macron -q "" par_macron -q par_macron -q "" -par_macron -q /usr/bin/bash: $'echo \257': command not found +par_macron -q /usr/bin/bash: line 1: $'echo \257': command not found par_macron -Xq par_macron -Xq par_macron -Xq "" par_macron -Xq par_macron -Xq "" -par_macron -Xq /usr/bin/bash: $'echo \257': command not found +par_macron -Xq /usr/bin/bash: line 1: $'echo \257': command not found par_macron -k par_macron -k par_macron -k @@ -1505,13 +1505,13 @@ par_macron par_macron -q "" par_macron -q par_macron -q "" -par_macron -q /usr/bin/bash: $'echo \257\256': command not found +par_macron -q /usr/bin/bash: line 1: $'echo \257\256': command not found par_macron -Xq par_macron -Xq par_macron -Xq "" par_macron -Xq par_macron -Xq "" -par_macron -Xq /usr/bin/bash: $'echo \257\256': command not found +par_macron -Xq /usr/bin/bash: line 1: $'echo \257\256': command not found par_macron -k par_macron -k par_macron -k @@ -1529,13 +1529,13 @@ par_macron par_macron -q "" par_macron -q par_macron -q "" -par_macron -q /usr/bin/bash: $'echo \257\257\256': command not found +par_macron -q /usr/bin/bash: line 1: $'echo \257\257\256': command not found par_macron -Xq par_macron -Xq par_macron -Xq "" par_macron -Xq par_macron -Xq "" -par_macron -Xq /usr/bin/bash: $'echo \257\257\256': command not found +par_macron -Xq /usr/bin/bash: line 1: $'echo \257\257\256': command not found par_macron -k par_macron -k par_macron -k @@ -1545,29 +1545,29 @@ par_macron par_macron <<>> -X <<>> par_macron <<>> -X <<>> <<>> par_macron <<>> -X <<>><<>> -par_macron <<>> -X /usr/bin/bash: -c: line 0: syntax error near unexpected token `newline' -par_macron <<>> -X /usr/bin/bash: -c: line 0: `echo <<>>' -par_macron <<>> -X /usr/bin/bash: : No such file or directory -par_macron <<>> -X /usr/bin/bash: : No such file or directory +par_macron <<>> -X /usr/bin/bash: -c: line 1: syntax error near unexpected token `newline' +par_macron <<>> -X /usr/bin/bash: -c: line 1: `echo <<>>' +par_macron <<>> -X /usr/bin/bash: line 1: : No such file or directory +par_macron <<>> -X /usr/bin/bash: line 1: : No such file or directory par_macron <<>> -q <<>> par_macron <<>> -q <<>> <<>> par_macron <<>> -q "<<>>" <<>> par_macron <<>> -q <<>><<>> par_macron <<>> -q "<<>>"<<>> -par_macron <<>> -q /usr/bin/bash: $'echo \257<\257<\257>\257>': command not found +par_macron <<>> -q /usr/bin/bash: line 1: $'echo \257<\257<\257>\257>': command not found par_macron <<>> -Xq <<>> par_macron <<>> -Xq <<>> <<>> par_macron <<>> -Xq "<<>>" <<>> par_macron <<>> -Xq <<>><<>> par_macron <<>> -Xq "<<>>"<<>> -par_macron <<>> -Xq /usr/bin/bash: $'echo \257<\257<\257>\257>': command not found +par_macron <<>> -Xq /usr/bin/bash: line 1: $'echo \257<\257<\257>\257>': command not found par_macron <<>> -k <<>> par_macron <<>> -k <<>> <<>> par_macron <<>> -k <<>><<>> -par_macron <<>> -k /usr/bin/bash: -c: line 0: syntax error near unexpected token `newline' -par_macron <<>> -k /usr/bin/bash: -c: line 0: `echo <<>>' -par_macron <<>> -k /usr/bin/bash: : No such file or directory -par_macron <<>> -k /usr/bin/bash: : No such file or directory +par_macron <<>> -k /usr/bin/bash: -c: line 1: syntax error near unexpected token `newline' +par_macron <<>> -k /usr/bin/bash: -c: line 1: `echo <<>>' +par_macron <<>> -k /usr/bin/bash: line 1: : No such file or directory +par_macron <<>> -k /usr/bin/bash: line 1: : No such file or directory par_max_length_len_128k ### BUG: The length for -X is not close to max (131072) par_max_length_len_128k 64xxx par_max_length_len_128k 64xxx diff --git a/testsuite/wanted-results/parallel-local-3s b/testsuite/wanted-results/parallel-local-3s index 089b9326..fd22fbf8 100644 --- a/testsuite/wanted-results/parallel-local-3s +++ b/testsuite/wanted-results/parallel-local-3s @@ -135,9 +135,6 @@ par_kill_term bash---pstree par_lb_mem_usage 1 par_lb_mem_usage 1 par_lb_mem_usage 2 -par_llb_color bug #62386: --color (--ctag but without --tag) -par_llb_color bug #62438: See last line from multiple jobslots -par_llb_color 74c668db859b3c8acbecbddf5880fd20 - par_maxargs ### Test -n and --max-args: Max number of args per line (only with -X and -m) par_maxargs line 1 par_maxargs line 2 diff --git a/testsuite/wanted-results/parallel-local-race02 b/testsuite/wanted-results/parallel-local-race02 index 44128b20..da9047a9 100644 --- a/testsuite/wanted-results/parallel-local-race02 +++ b/testsuite/wanted-results/parallel-local-race02 @@ -118,6 +118,9 @@ par_kill_hup parallel: Waiting for these 2 jobs to finish. Send SIGTERM to stop par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid' par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid' par_kill_hup bash---pstree +par_ll_lb_color bug #62386: --color (--ctag but without --tag) +par_ll_lb_color bug #62438: See last line from multiple jobslots +par_ll_lb_color 715a389ad9d92c8fab448a74494617d1 - par_more_than_9_relative_sshlogin ### Check more than 9(relative) simultaneous sshlogins par_more_than_9_relative_sshlogin 1 par_more_than_9_relative_sshlogin 2 diff --git a/testsuite/wanted-results/parallel-local-sql01 b/testsuite/wanted-results/parallel-local-sql01 index 350248a5..647bd7e5 100644 --- a/testsuite/wanted-results/parallel-local-sql01 +++ b/testsuite/wanted-results/parallel-local-sql01 @@ -285,7 +285,7 @@ par_empty $SQLITE p_wrapper par_empty '$SQLITE' par_empty $SQLITE Do nothing: TBL99999 does not exist because it is not created par_empty $SQLITE Exit=0 par_empty $SQLITE Exit=0 -par_empty $SQLITE Error: near line 1: no such table: TBL99999 +par_empty $SQLITE Error: near line 1: in prepare, no such table: TBL99999 (1) par_empty $CSV p_wrapper par_empty '$CSV' par_empty $CSV Do nothing: TBL99999 does not exist because it is not created par_empty $CSV Exit=0 diff --git a/testsuite/wanted-results/parallel-local-ssh5 b/testsuite/wanted-results/parallel-local-ssh5 index 29f701be..6366ee4d 100644 --- a/testsuite/wanted-results/parallel-local-ssh5 +++ b/testsuite/wanted-results/parallel-local-ssh5 @@ -608,5 +608,5 @@ par_autossh AUTOSSH_DEBUG - turn logging to maximum verbosity and log par_autossh stderr par_autossh par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] -par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.3] +par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(228) [Receiver=3.2.3] par_autossh foo_autossh diff --git a/testsuite/wanted-results/parallel-local-ssh7 b/testsuite/wanted-results/parallel-local-ssh7 index 4681930e..44a90bd9 100644 --- a/testsuite/wanted-results/parallel-local-ssh7 +++ b/testsuite/wanted-results/parallel-local-ssh7 @@ -718,8 +718,8 @@ par_mksh_underscore variables in aliases in and arrays in functions work par_mksh_underscore variables in aliases in and arrays in functions work par_mksh_underscore variables in aliases in and arrays in functions work par_mksh_underscore variables in aliases in and arrays in functions work -par_mksh_underscore script[9]: not_copied_alias: inaccessible or not found -par_mksh_underscore script[9]: not_copied_func: inaccessible or not found +par_mksh_underscore W: script[9]: not_copied_alias: inaccessible or not found +par_mksh_underscore W: script[9]: not_copied_func: inaccessible or not found par_mksh_underscore error=OK par_mksh_underscore error=OK par_mksh_underscore aliases in and arrays in functions work @@ -730,9 +730,9 @@ par_mksh_underscore aliases in functions work par_mksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ par_mksh_underscore aliases in functions work par_mksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_mksh_underscore /bin/mksh: myfunc: inaccessible or not found +par_mksh_underscore W: /bin/mksh: myfunc: inaccessible or not found par_mksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ -par_mksh_underscore script[9]: myfunc: inaccessible or not found +par_mksh_underscore W: script[9]: myfunc: inaccessible or not found par_mksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ par_mksh_parset parset par_mksh_parset ### parset into array @@ -880,12 +880,12 @@ par_mksh_env_parallel_session ### Test env_parallel --session par_mksh_env_parallel_session ### level0 should be hidden, level1 should be transferred par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session script[9]: level0func: inaccessible or not found -par_mksh_env_parallel_session script[9]: level0alias: inaccessible or not found +par_mksh_env_parallel_session W: script[9]: level0func: inaccessible or not found +par_mksh_env_parallel_session W: script[9]: level0alias: inaccessible or not found par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found -par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found +par_mksh_env_parallel_session W: /bin/mksh: level0func: inaccessible or not found +par_mksh_env_parallel_session W: /bin/mksh: level0alias: inaccessible or not found par_mksh_env_parallel_session l1var par_mksh_env_parallel_session l1func par_mksh_env_parallel_session l1alias @@ -897,20 +897,20 @@ par_mksh_env_parallel_session level1 array OK par_mksh_env_parallel_session ### level0+1 should be hidden, level2 should be transferred par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session script[9]: level0func: inaccessible or not found -par_mksh_env_parallel_session script[9]: level0alias: inaccessible or not found +par_mksh_env_parallel_session W: script[9]: level0func: inaccessible or not found +par_mksh_env_parallel_session W: script[9]: level0alias: inaccessible or not found par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found -par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found +par_mksh_env_parallel_session W: /bin/mksh: level0func: inaccessible or not found +par_mksh_env_parallel_session W: /bin/mksh: level0alias: inaccessible or not found par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session script[9]: level1func: inaccessible or not found -par_mksh_env_parallel_session script[9]: level1alias: inaccessible or not found +par_mksh_env_parallel_session W: script[9]: level1func: inaccessible or not found +par_mksh_env_parallel_session W: script[9]: level1alias: inaccessible or not found par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level1func: inaccessible or not found -par_mksh_env_parallel_session /bin/mksh: level1alias: inaccessible or not found +par_mksh_env_parallel_session W: /bin/mksh: level1func: inaccessible or not found +par_mksh_env_parallel_session W: /bin/mksh: level1alias: inaccessible or not found par_mksh_env_parallel_session l2var par_mksh_env_parallel_session l2func par_mksh_env_parallel_session l2alias @@ -922,12 +922,12 @@ par_mksh_env_parallel_session level2 array OK par_mksh_env_parallel_session ### level0 should be hidden, level1+2 should be transferred par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session script[9]: level0func: inaccessible or not found -par_mksh_env_parallel_session script[9]: level0alias: inaccessible or not found +par_mksh_env_parallel_session W: script[9]: level0func: inaccessible or not found +par_mksh_env_parallel_session W: script[9]: level0alias: inaccessible or not found par_mksh_env_parallel_session par_mksh_env_parallel_session fail -par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found -par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found +par_mksh_env_parallel_session W: /bin/mksh: level0func: inaccessible or not found +par_mksh_env_parallel_session W: /bin/mksh: level0alias: inaccessible or not found par_mksh_env_parallel_session l1var par_mksh_env_parallel_session l1func par_mksh_env_parallel_session l1alias @@ -969,10 +969,10 @@ par_mksh_env_parallel_session l2var par_mksh_env_parallel_session l2func par_mksh_env_parallel_session l2alias par_mksh_env_parallel_session level2 array OK -par_mksh_env_parallel_session /bin/mksh: aliasbefore: inaccessible or not found -par_mksh_env_parallel_session script[9]: aliasbefore: inaccessible or not found -par_mksh_env_parallel_session /bin/mksh: funcbefore: inaccessible or not found -par_mksh_env_parallel_session script[9]: funcbefore: inaccessible or not found +par_mksh_env_parallel_session W: /bin/mksh: aliasbefore: inaccessible or not found +par_mksh_env_parallel_session W: script[9]: aliasbefore: inaccessible or not found +par_mksh_env_parallel_session W: /bin/mksh: funcbefore: inaccessible or not found +par_mksh_env_parallel_session W: script[9]: funcbefore: inaccessible or not found par_mksh_env_parallel_session no_before par_mksh_env_parallel_session no_before par_mksh_env_parallel_session no_before @@ -1021,21 +1021,21 @@ par_ksh_underscore variables in aliases in and arrays in functions work par_ksh_underscore variables in aliases in and arrays in functions work par_ksh_underscore variables in aliases in and arrays in functions work par_ksh_underscore variables in aliases in and arrays in functions work -par_ksh_underscore script[9]: not_copied_alias: not found [No such file or directory] -par_ksh_underscore script[9]: not_copied_func: not found [No such file or directory] +par_ksh_underscore script: line 5: not_copied_alias: not found +par_ksh_underscore script: line 5: not_copied_func: not found par_ksh_underscore error=OK par_ksh_underscore error=OK par_ksh_underscore aliases in and arrays in functions work par_ksh_underscore aliases in and arrays in functions work par_ksh_underscore aliases in functions work par_ksh_underscore aliases in functions work -par_ksh_underscore /bin/ksh: myecho: not found [No such file or directory] +par_ksh_underscore /bin/ksh: myecho: not found par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_ksh_underscore script[9]: myecho: not found [No such file or directory] +par_ksh_underscore script[9]: myecho: not found par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ par_ksh_underscore /bin/ksh: myfunc: not found par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ -par_ksh_underscore script[9]: myfunc: not found [No such file or directory] +par_ksh_underscore script: line 2: myfunc: not found par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ par_ksh_parset parset par_ksh_parset ### parset into array @@ -1142,9 +1142,9 @@ par_ksh_man work, par_ksh_man too par_ksh_man This may never work par_ksh_man https://unix.stackexchange.com/questions/457031/extract-full-function-definitions -par_ksh_man /bin/ksh: line XXX: syntax error at line XXX: `{' unmatched -par_ksh_man /bin/ksh: line XXX: syntax error at line XXX: `{' unmatched -par_ksh_man /bin/ksh: line XXX: syntax error at line XXX: `{' unmatched +par_ksh_man /bin/ksh: line 3: syntax error at line XXX: `{' unmatched +par_ksh_man /bin/ksh: line 3: syntax error at line XXX: `{' unmatched +par_ksh_man /bin/ksh: line 3: syntax error at line XXX: `{' unmatched par_ksh_man exit value 2 should be 2 par_ksh_man Unknown option: no-such-option par_ksh_man exit value 255 should be 255 @@ -1187,12 +1187,12 @@ par_ksh_env_parallel_session ### Test env_parallel --session par_ksh_env_parallel_session ### level0 should be hidden, level1 should be transferred par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session script[9]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session script[9]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session script[9]: level0func: not found +par_ksh_env_parallel_session script[9]: level0alias: not found par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found +par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found par_ksh_env_parallel_session l1var par_ksh_env_parallel_session l1func par_ksh_env_parallel_session l1alias @@ -1204,20 +1204,20 @@ par_ksh_env_parallel_session level1 array OK par_ksh_env_parallel_session ### level0+1 should be hidden, level2 should be transferred par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session script[9]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session script[9]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session script[9]: level0func: not found +par_ksh_env_parallel_session script[9]: level0alias: not found par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found +par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session script[9]: level1func: not found [No such file or directory] -par_ksh_env_parallel_session script[9]: level1alias: not found [No such file or directory] +par_ksh_env_parallel_session script[9]: level1func: not found +par_ksh_env_parallel_session script[9]: level1alias: not found par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /bin/ksh[XXX]: level1func: not found [No such file or directory] -par_ksh_env_parallel_session /bin/ksh[XXX]: level1alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level1func: not found +par_ksh_env_parallel_session /bin/ksh[XXX]: level1alias: not found par_ksh_env_parallel_session l2var par_ksh_env_parallel_session l2func par_ksh_env_parallel_session l2alias @@ -1229,12 +1229,12 @@ par_ksh_env_parallel_session level2 array OK par_ksh_env_parallel_session ### level0 should be hidden, level1+2 should be transferred par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session script[9]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session script[9]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session script[9]: level0func: not found +par_ksh_env_parallel_session script[9]: level0alias: not found par_ksh_env_parallel_session par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory] -par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory] +par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found +par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found par_ksh_env_parallel_session l1var par_ksh_env_parallel_session l1func par_ksh_env_parallel_session l1alias @@ -1277,9 +1277,9 @@ par_ksh_env_parallel_session l2func par_ksh_env_parallel_session l2alias par_ksh_env_parallel_session level2 array OK par_ksh_env_parallel_session /bin/ksh: line 3: aliasbefore: not found -par_ksh_env_parallel_session script[9]: aliasbefore: not found [No such file or directory] +par_ksh_env_parallel_session script: line 4: aliasbefore: not found par_ksh_env_parallel_session /bin/ksh: line 3: funcbefore: not found -par_ksh_env_parallel_session script[9]: funcbefore: not found [No such file or directory] +par_ksh_env_parallel_session script: line 4: funcbefore: not found par_ksh_env_parallel_session no_before par_ksh_env_parallel_session no_before par_ksh_env_parallel_session no_before @@ -1327,10 +1327,10 @@ par_fish_underscore variables in aliases and arrays in functions work par_fish_underscore variables in aliases and arrays in functions work par_fish_underscore variables in aliases and arrays in functions work par_fish_underscore variables in aliases and arrays in functions work -par_fish_underscore script (line 15): +par_fish_underscore script (line XXX): par_fish_underscore not_copied_alias 'error=OK' par_fish_underscore ^ -par_fish_underscore script (line 15): +par_fish_underscore script (line XXX): par_fish_underscore not_copied_func 'error=OK' par_fish_underscore ^ par_fish_underscore error=OK @@ -1343,11 +1343,11 @@ par_fish_underscore myecho $myarray functions $argv par_fish_underscore ^ par_fish_underscore in function 'myfunc' with arguments 'work' par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho -par_fish_underscore script (line 3): +par_fish_underscore script (line 4): par_fish_underscore myecho $myarray functions $argv par_fish_underscore ^ par_fish_underscore in function 'myfunc' with arguments 'work' -par_fish_underscore called on line 9 of file script +par_fish_underscore called on line XXX of file script par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho par_fish_underscore myfunc work par_fish_underscore ^ diff --git a/testsuite/wanted-results/parallel-local13 b/testsuite/wanted-results/parallel-local13 index bbd351a0..1139d420 100644 --- a/testsuite/wanted-results/parallel-local13 +++ b/testsuite/wanted-results/parallel-local13 @@ -89,6 +89,7 @@ from one to xoney xargs: argument list too long stdsort parallel -k -i -s26 -0 echo from \{\} to x{}y < items-0.xi +from one to xoney parallel: Error: Command line too long (32 >= 26) at input 0: echo '### -l -0 echo < ldata-0.xi' ### -l -0 echo < ldata-0.xi @@ -314,6 +315,7 @@ second echo '### -P3 -n1 -IARG sh -c ARG < Pdata.xi' ### -P3 -n1 -IARG sh -c ARG < Pdata.xi stdout xargs -P3 -n1 -IARG sh -c ARG < Pdata.xi +xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value three two one @@ -441,7 +443,7 @@ stdout parallel -k -r echo this plus that < space.xi echo '### -t -0 echo this plus that < space.xi' ### -t -0 echo this plus that < space.xi stdout xargs -t -0 echo this plus that < space.xi -echo this plus that ''$'\n'' '$'\f\r\t\v\n' +echo this plus that ''$'\n'' '$'\f\r\t\v\n' this plus that @@ -599,6 +601,7 @@ stdout parallel -k -L2 echo < ldatab.xi echo '### -L2 -n2 echo < ldata.xi' ### -L2 -n2 echo < ldata.xi stdout xargs -L2 -n2 echo < ldata.xi +xargs: warning: options --max-lines and --max-args/-n are mutually exclusive, ignoring previous --max-lines value 1 22 333 4444 55555 666666 @@ -1267,6 +1270,7 @@ stdout parallel -l -k echo < ldata.xi echo '### -l1 -n4 echo < files.xi' ### -l1 -n4 echo < files.xi stdout xargs -l1 -n4 echo < files.xi +xargs: warning: options --max-lines and --max-args/-n are mutually exclusive, ignoring previous --max-lines value /src/gnu/autoconf-1.11 /src/gnu/autoconf-1.11/README /src/gnu/autoconf-1.11/Makefile.in /src/gnu/autoconf-1.11/INSTALL /src/gnu/autoconf-1.11/NEWS /src/gnu/autoconf-1.11/COPYING /src/gnu/autoconf-1.11/ChangeLog /src/gnu/autoconf-1.11/autoconf.texi /src/gnu/autoconf-1.11/acconfig.h /src/gnu/autoconf-1.11/autoconf.sh /src/gnu/autoconf-1.11/acgeneral.m4 /src/gnu/autoconf-1.11/acspecific.m4 @@ -1309,15 +1313,15 @@ stdout parallel -k -l2 echo < files.xi echo '### -s30 -t echo < stairs.xi - xargs' ### -s30 -t echo < stairs.xi - xargs stdout xargs -s30 -t echo < stairs.xi -echo 1 22 333 4444 55555 +echo 1 22 333 4444 55555 1 22 333 4444 55555 -echo 666666 7777777 88888888 +echo 666666 7777777 88888888 666666 7777777 88888888 -echo 999999999 1 22 333 4444 +echo 999999999 1 22 333 4444 999999999 1 22 333 4444 -echo 55555 666666 7777777 +echo 55555 666666 7777777 55555 666666 7777777 -echo 88888888 999999999 +echo 88888888 999999999 88888888 999999999 echo '### -s30 -t echo < stairs.xi - parallel' ### -s30 -t echo < stairs.xi - parallel @@ -1339,7 +1343,7 @@ echo 999999999 1 22 333 4444 echo '### -t echo this plus that < space.xi' ### -t echo this plus that < space.xi stdout xargs -t echo this plus that < space.xi -echo this plus that +echo this plus that this plus that stdout parallel -k -t echo this plus that < space.xi | sort echo this plus that ' ' @@ -1360,9 +1364,9 @@ stdout parallel -k -n1 printf "@%s@\n" < empty.xi @foo '' bar@n@baz ''@n@'' fnord@necho '### -n2 -t echo < foobar.xi' ### -n2 -t echo < foobar.xi stdout xargs -n2 -t echo < foobar.xi -echo foo bar +echo foo bar foo bar -echo baz ugh +echo baz ugh baz ugh stdout parallel -k -n2 -t echo < foobar.xi | sort echo 'foo bar' 'baz ' diff --git a/testsuite/wanted-results/parallel-local7 b/testsuite/wanted-results/parallel-local7 index 82221dcc..885bd1d4 100644 --- a/testsuite/wanted-results/parallel-local7 +++ b/testsuite/wanted-results/parallel-local7 @@ -16,7 +16,7 @@ parallel: Error: Command line too long (2012 >= 523) at input 0: 2001 parallel: Error: Command line too long (3012 >= 523) at input 0: 3001 255 seq 4001 10 4030 | PARALLEL_TMUX=tmux-1.9 par_tm -/usr/bin/bash: par_tm: command not found +/usr/bin/bash: line 1: par_tm: command not found echo 4036 | PARALLEL_TMUX=tmux-1.9 par_tmux parallel: Error: Command line too long (4047 >= 523) at input 0: 4036 255 diff --git a/testsuite/wanted-results/parallel-macos b/testsuite/wanted-results/parallel-macos index e9efa102..eb2b83cc 100644 --- a/testsuite/wanted-results/parallel-macos +++ b/testsuite/wanted-results/parallel-macos @@ -1,14 +1,14 @@ par_big_func 1 3XXX 91XXX par_big_func 1 3XXX 91XXX par_big_func 1 3XXX 91XXX -par_big_func 1 1XXX 44XXX +par_big_func 1 1XXX 45XXX par_big_func_name 19XXX par_big_func_name 19XXX par_big_func_name 19XXX par_big_func_name 19XXX par_big_func_name 19XXX par_big_func_name 19XXX -par_big_func_name 2XXX +par_big_func_name 3XXX par_big_var_func_name 19XXX par_big_var_func_name 19XXX par_big_var_func_name 19XXX @@ -25,7 +25,7 @@ par_big_var_func_name 19XXX par_big_var_func_name 19XXX par_big_var_func_name 19XXX par_big_var_func_name 19XXX -par_big_var_func_name 8XXX +par_big_var_func_name 9XXX par_many_args 1 3XXX 6XXX par_many_args 1 3XXX 6XXX par_many_args 1 3XXX 6XXX @@ -33,43 +33,43 @@ par_many_args 1 3XXX 6XXX par_many_args 1 3XXX 6XXX par_many_args 1 3XXX 6XXX par_many_args 1 1XXX 2XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 228 5XXX -par_many_func 1 56 1XXX -par_many_var 1 980 23XXX -par_many_var 1 980 23XXX -par_many_var 1 980 23XXX -par_many_var 1 980 23XXX -par_many_var 1 980 23XXX -par_many_var 1 980 23XXX -par_many_var 1 788 18XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 224 5XXX +par_many_func 1 172 4XXX +par_many_var 1 976 23XXX +par_many_var 1 976 23XXX +par_many_var 1 976 23XXX +par_many_var 1 976 23XXX +par_many_var 1 976 23XXX +par_many_var 1 976 23XXX +par_many_var 1 812 19XXX par_many_var_big_func 6XXX par_many_var_big_func 6XXX par_many_var_big_func 6XXX @@ -95,7 +95,8 @@ par_many_var_big_func 6XXX par_many_var_big_func 6XXX par_many_var_big_func 6XXX par_many_var_big_func 6XXX -par_many_var_big_func 4XXX +par_many_var_big_func 6XXX +par_many_var_big_func 260 par_many_var_func 1 2XXX 59XXX par_many_var_func 1 2XXX 59XXX -par_many_var_func 1 1XXX 40XXX +par_many_var_func 1 1XXX 41XXX diff --git a/testsuite/wanted-results/parallel-tutorial b/testsuite/wanted-results/parallel-tutorial index a204e0a7..7317d1e9 100644 --- a/testsuite/wanted-results/parallel-tutorial +++ b/testsuite/wanted-results/parallel-tutorial @@ -8,8 +8,8 @@ 40f53af6 9e20dae5 713ba06c f517006d 9897747b ed8a4694 b1acba1b 1464beb4 60055629 3f2356f3 3e9c4e3c 76e3f3af a9db4b32 bd33322b 975696fc e6b23cfb $ bash install.sh -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: ` fetch -o - http://pi.dk/3 ) > install.sh' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: ` fetch -o - http://pi.dk/3 ) > install.sh' parallel -k echo ::: A B C > abc-file parallel -k echo ::: D E F > def-file perl -e 'printf "A\0B\0C\0"' > abc0-file @@ -21,11 +21,11 @@ perl -e 'for(1..1000000){print "$_\n"}' > num1000000 (echo %head1; echo %head2; \ sleep .3 -/usr/bin/bash: -c: line 2: syntax error: unexpected end of file +/usr/bin/bash: -c: line 3: syntax error: unexpected end of file sleep .3 perl -e 'for(1..10){print "$_\n"}') > num_%header -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: ` perl -e 'for(1..10){print "$_\n"}') > num_%header' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: ` perl -e 'for(1..10){print "$_\n"}') > num_%header' perl -e 'print "HHHHAAABBBCCC"' > fixedlen parallel echo ::: A B C parallel -a abc-file echo @@ -213,7 +213,7 @@ foo foo parallel --rpl '{..} s:\.[^.]+$::;s:\.[^.]+$::;' echo '{..}' ::: foo.tar.gz -/usr/bin/bash: line 1: :::: command not found +/usr/bin/bash: line 2: :::: command not found parallel --rpl '{%(.+?)} s/$$1$//;' echo {%.tar.gz}.zip ::: foo.tar.gz foo.zip parallel --rpl '{/(.+?)/(.*?)} s/$$1/$$2/;' echo {/tar.gz/zip} \ @@ -227,13 +227,13 @@ foo.zip eval "use File::Basename; 1;"; $_ = dirname($_);' --rpl '{/.} s:.*/::; s:\.[^/.]+$::;' --rpl '{.} s:\.[^/.]+$::' -/usr/bin/bash: --rpl: command not found /usr/bin/bash: line 1: --rpl: command not found /usr/bin/bash: line 2: --rpl: command not found /usr/bin/bash: line 3: --rpl: command not found -/usr/bin/bash: line 5: --rpl: command not found +/usr/bin/bash: line 4: --rpl: command not found /usr/bin/bash: line 6: --rpl: command not found /usr/bin/bash: line 7: --rpl: command not found +/usr/bin/bash: line 8: --rpl: command not found parallel echo {1} and {2} ::: A B ::: C D A and C A and D @@ -351,9 +351,9 @@ foo Warning: Press CTRL-D to exit. perl -e 'print "@ARGV\n"' [CTRL-D] -/usr/bin/bash: line 1: Warning:: command not found -/usr/bin/bash: -c: line 2: syntax error near unexpected token `(' -/usr/bin/bash: -c: line 2: ` Warning: are doing (in which case: YOU ARE AWESOME!) or you forgot' +/usr/bin/bash: line 2: Warning:: command not found +/usr/bin/bash: -c: line 3: syntax error near unexpected token `(' +/usr/bin/bash: -c: line 3: ` Warning: are doing (in which case: YOU ARE AWESOME!) or you forgot' parallel --trim r echo pre-{}-post ::: ' A ' pre- A-post parallel --trim l echo pre-{}-post ::: ' A ' @@ -365,26 +365,26 @@ pre-A-post =bash =ls parallel 'set a="{}"; if( { test -d "$a" } ) echo "$a is a dir"' ::: * -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: `set a="abc-file"; if( { test -d "$a" } ) echo "$a is a dir"' -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: `set a="abc0-file"; if( { test -d "$a" } ) echo "$a is a dir"' -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: `set a="abc_-file"; if( { test -d "$a" } ) echo "$a is a dir"' -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: `set a="def-file"; if( { test -d "$a" } ) echo "$a is a dir"' -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: `set a="fixedlen"; if( { test -d "$a" } ) echo "$a is a dir"' -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: `set a="num1000000"; if( { test -d "$a" } ) echo "$a is a dir"' -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: `set a="num128"; if( { test -d "$a" } ) echo "$a is a dir"' -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: `set a="num30000"; if( { test -d "$a" } ) echo "$a is a dir"' -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: `set a="num8"; if( { test -d "$a" } ) echo "$a is a dir"' -/usr/bin/bash: -c: line 0: syntax error near unexpected token `)' -/usr/bin/bash: -c: line 0: `set a="tsv-file.tsv"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="abc-file"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="abc0-file"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="abc_-file"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="def-file"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="fixedlen"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="num1000000"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="num128"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="num30000"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="num8"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="tsv-file.tsv"; if( { test -d "$a" } ) echo "$a is a dir"' parallel --tag echo foo-{} ::: A B C A foo-A B foo-B @@ -452,15 +452,15 @@ echo C outdir/1/C/seq outdir/1/C/stderr outdir/1/C/stdout -/usr/bin/bash: outdir/1/A/seq: No such file or directory -/usr/bin/bash: line 1: outdir/1/A/stderr: No such file or directory -/usr/bin/bash: line 2: outdir/1/A/stdout: No such file or directory -/usr/bin/bash: line 3: outdir/1/B/seq: No such file or directory -/usr/bin/bash: line 4: outdir/1/B/stderr: No such file or directory -/usr/bin/bash: line 5: outdir/1/B/stdout: No such file or directory -/usr/bin/bash: line 6: outdir/1/C/seq: No such file or directory -/usr/bin/bash: line 7: outdir/1/C/stderr: No such file or directory -/usr/bin/bash: line 8: outdir/1/C/stdout: No such file or directory +/usr/bin/bash: line 1: outdir/1/A/seq: No such file or directory +/usr/bin/bash: line 2: outdir/1/A/stderr: No such file or directory +/usr/bin/bash: line 3: outdir/1/A/stdout: No such file or directory +/usr/bin/bash: line 4: outdir/1/B/seq: No such file or directory +/usr/bin/bash: line 5: outdir/1/B/stderr: No such file or directory +/usr/bin/bash: line 6: outdir/1/B/stdout: No such file or directory +/usr/bin/bash: line 7: outdir/1/C/seq: No such file or directory +/usr/bin/bash: line 8: outdir/1/C/stderr: No such file or directory +/usr/bin/bash: line 9: outdir/1/C/stdout: No such file or directory parallel --header : --results outdir echo ::: f1 A B ::: f2 C D outdir/f1/A/f2/C/seq outdir/f1/A/f2/C/stderr @@ -474,18 +474,18 @@ echo C outdir/f1/B/f2/D/seq outdir/f1/B/f2/D/stderr outdir/f1/B/f2/D/stdout -/usr/bin/bash: outdir/f1/A/f2/C/seq: No such file or directory -/usr/bin/bash: line 1: outdir/f1/A/f2/C/stderr: No such file or directory -/usr/bin/bash: line 2: outdir/f1/A/f2/C/stdout: No such file or directory -/usr/bin/bash: line 3: outdir/f1/A/f2/D/seq: No such file or directory -/usr/bin/bash: line 4: outdir/f1/A/f2/D/stderr: No such file or directory -/usr/bin/bash: line 5: outdir/f1/A/f2/D/stdout: No such file or directory -/usr/bin/bash: line 6: outdir/f1/B/f2/C/seq: No such file or directory -/usr/bin/bash: line 7: outdir/f1/B/f2/C/stderr: No such file or directory -/usr/bin/bash: line 8: outdir/f1/B/f2/C/stdout: No such file or directory -/usr/bin/bash: line 9: outdir/f1/B/f2/D/seq: No such file or directory -/usr/bin/bash: line 10: outdir/f1/B/f2/D/stderr: No such file or directory -/usr/bin/bash: line 11: outdir/f1/B/f2/D/stdout: No such file or directory +/usr/bin/bash: line 1: outdir/f1/A/f2/C/seq: No such file or directory +/usr/bin/bash: line 2: outdir/f1/A/f2/C/stderr: No such file or directory +/usr/bin/bash: line 3: outdir/f1/A/f2/C/stdout: No such file or directory +/usr/bin/bash: line 4: outdir/f1/A/f2/D/seq: No such file or directory +/usr/bin/bash: line 5: outdir/f1/A/f2/D/stderr: No such file or directory +/usr/bin/bash: line 6: outdir/f1/A/f2/D/stdout: No such file or directory +/usr/bin/bash: line 7: outdir/f1/B/f2/C/seq: No such file or directory +/usr/bin/bash: line 8: outdir/f1/B/f2/C/stderr: No such file or directory +/usr/bin/bash: line 9: outdir/f1/B/f2/C/stdout: No such file or directory +/usr/bin/bash: line 10: outdir/f1/B/f2/D/seq: No such file or directory +/usr/bin/bash: line 11: outdir/f1/B/f2/D/stderr: No such file or directory +/usr/bin/bash: line 12: outdir/f1/B/f2/D/stdout: No such file or directory /usr/bin/time -f %e parallel -N0 -j64 sleep 1 :::: num128 9 /usr/bin/time -f %e parallel -N0 sleep 1 :::: num128 @@ -634,7 +634,7 @@ parallel: Warning: This job was killed because it timed out: parallel: Warning: show_signals '' echo | parallel --termseq INT,200,TERM,100,KILL,25 \ -u --timeout 1 show_signals -/usr/bin/bash: show_signals: command not found +/usr/bin/bash: line 1: show_signals: command not found parallel --load 100% echo load is less than {} job per cpu ::: 1 load is less than 1 job per cpu parallel --noswap echo the system is not swapping ::: now @@ -692,6 +692,7 @@ This is input_file parallel -S $SERVER1 --trc {}.out cat {} ">"{}.out ::: input_file cat input_file.out This is input_file +rsync: [sender] link_stat "/home/parallel/input_file.out" failed: No such file or directory (2) echo common data > common_file parallel --basefile common_file -S $SERVER1 \ cat common_file\; echo {} ::: foo @@ -1026,11 +1027,11 @@ Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,_Signal,Command,V1,V2,Stdout, 2,:,000000000.000,0.000,0,12,0,0,"seq 10 13",10,13,outdir/1/10/2/13/stdout,outdir/1/10/2/13/stderr 3,:,000000000.000,0.000,0,15,0,0,"seq 10 14",10,14,outdir/1/10/2/14/stdout,outdir/1/10/2/14/stderr vendor://[[user][:password]@][host][:port]/[database[/table] -/usr/bin/bash: vendor://[[user][:password]@][host][:port]/[database[/table]: No such file or directory +/usr/bin/bash: line 1: vendor://[[user][:password]@][host][:port]/[database[/table]: No such file or directory sqlite3:///%2Ftmp%2Fmydatabase/mytable csv:///%2Ftmp/log.csv -/usr/bin/bash: sqlite3:///%2Ftmp%2Fmydatabase/mytable: No such file or directory -/usr/bin/bash: line 1: csv:///%2Ftmp/log.csv: No such file or directory +/usr/bin/bash: line 1: sqlite3:///%2Ftmp%2Fmydatabase/mytable: No such file or directory +/usr/bin/bash: line 2: csv:///%2Ftmp/log.csv: No such file or directory DBURL=sqlite3:///%2Ftmp%2Fmydatabase DBURLTABLE=$DBURL/mytable parallel --sqlandworker $DBURLTABLE echo ::: foo bar ::: baz quuz @@ -1103,40 +1104,43 @@ cat: num_%header: No such file or directory 999999 999999 9999999 126984 126984 888889 cat input_file | parallel command -/usr/bin/bash: This is input_file: command not found +/usr/bin/bash: line 1: This is input_file: command not found #!/bin/bash #!/usr/bin/parallel --shebang -r echo foo bar baz -/usr/bin/bash: foo: command not found -/usr/bin/bash: line 1: bar: command not found -/usr/bin/bash: line 2: baz: command not found +/usr/bin/bash: line 1: foo: command not found +/usr/bin/bash: line 2: bar: command not found +/usr/bin/bash: line 3: baz: command not found cat input_file | parallel command parallel command ::: foo bar -/usr/bin/bash: This is input_file: command not found -/usr/bin/bash: foo: command not found -/usr/bin/bash: bar: command not found +/usr/bin/bash: line 1: This is input_file: command not found +/usr/bin/bash: line 1: foo: command not found +/usr/bin/bash: line 1: bar: command not found cat input_file | command command foo bar -/usr/bin/bash: line 1: foo: command not found +/usr/bin/bash: line 2: foo: command not found #!/usr/bin/perl print "@ARGV\n" +Warning: unknown mime-type for "@ARGV\n" -- using "application/octet-stream" Error: no such file "@ARGV\n" parallel perl_echo ::: foo bar -/usr/bin/bash: perl_echo: command not found +/usr/bin/bash: line 1: perl_echo: command not found #!/usr/bin/parallel --shebang-wrap /usr/bin/perl print "@ARGV\n" +Warning: unknown mime-type for "@ARGV\n" -- using "application/octet-stream" Error: no such file "@ARGV\n" perl_echo foo bar -/usr/bin/bash: perl_echo: command not found +/usr/bin/bash: line 1: perl_echo: command not found #!/usr/bin/parallel --shebang-wrap /usr/bin/perl print "Arguments @ARGV\n"; +Warning: unknown mime-type for "Arguments @ARGV\n" -- using "application/octet-stream" Error: no such file "Arguments @ARGV\n" #!/usr/bin/parallel --shebang-wrap /usr/bin/python print 'Arguments', str(sys.argv) -/usr/bin/bash: -c: line 3: syntax error near unexpected token `(' -/usr/bin/bash: -c: line 3: ` print 'Arguments', str(sys.argv)' +/usr/bin/bash: -c: line 4: syntax error near unexpected token `(' +/usr/bin/bash: -c: line 4: ` print 'Arguments', str(sys.argv)' #!/usr/bin/parallel --shebang-wrap /bin/bash echo Arguments "$@" Arguments @@ -1145,21 +1149,22 @@ Arguments Arguments #!/usr/bin/parallel --shebang-wrap /usr/bin/tclsh puts "Arguments $argv" -/usr/bin/bash: line 2: puts: command not found +/usr/bin/bash: line 3: puts: command not found #!/usr/bin/parallel --shebang-wrap /usr/bin/Rscript --vanilla --slave args <- commandArgs(trailingOnly = TRUE) print(paste("Arguments ",args)) -/usr/bin/bash: -c: line 2: syntax error near unexpected token `(' -/usr/bin/bash: -c: line 2: ` args <- commandArgs(trailingOnly = TRUE)' +/usr/bin/bash: -c: line 3: syntax error near unexpected token `(' +/usr/bin/bash: -c: line 3: ` args <- commandArgs(trailingOnly = TRUE)' #!/usr/bin/parallel --shebang-wrap ARG={} /usr/bin/gnuplot print "Arguments ", system('echo $ARG') -/usr/bin/bash: -c: line 2: syntax error near unexpected token `(' -/usr/bin/bash: -c: line 2: ` print "Arguments ", system('echo $ARG')' +/usr/bin/bash: -c: line 3: syntax error near unexpected token `(' +/usr/bin/bash: -c: line 3: ` print "Arguments ", system('echo $ARG')' #!/usr/bin/parallel --shebang-wrap /usr/bin/ruby print "Arguments " puts ARGV +Warning: unknown mime-type for "Arguments " -- using "application/octet-stream" Error: no such file "Arguments " -/usr/bin/bash: line 3: puts: command not found +/usr/bin/bash: line 4: puts: command not found #!/usr/bin/parallel --shebang-wrap /usr/bin/octave printf ("Arguments"); arg_list = argv (); @@ -1167,13 +1172,13 @@ Error: no such file "Arguments " printf (" %s", arg_list{i}); endfor printf ("\n"); -/usr/bin/bash: -c: line 2: syntax error near unexpected token `"Arguments"' -/usr/bin/bash: -c: line 2: ` printf ("Arguments");' +/usr/bin/bash: -c: line 3: syntax error near unexpected token `"Arguments"' +/usr/bin/bash: -c: line 3: ` printf ("Arguments");' #!/usr/bin/parallel --shebang-wrap /usr/bin/clisp (format t "~&~S~&" 'Arguments) (format t "~&~S~&" *args*) -/usr/bin/bash: -c: line 2: unexpected EOF while looking for matching `'' -/usr/bin/bash: -c: line 4: syntax error: unexpected end of file +/usr/bin/bash: -c: line 3: unexpected EOF while looking for matching `'' +/usr/bin/bash: -c: line 5: syntax error: unexpected end of file #!/usr/bin/parallel --shebang-wrap /usr/bin/php Arguments -/usr/bin/bash: line 1: ?php: No such file or directory -/usr/bin/bash: -c: line 3: syntax error near unexpected token `array_slice' -/usr/bin/bash: -c: line 3: ` foreach(array_slice($argv,1) as $v)' +/usr/bin/bash: line 2: ?php: No such file or directory +/usr/bin/bash: -c: line 4: syntax error near unexpected token `array_slice' +/usr/bin/bash: -c: line 4: ` foreach(array_slice($argv,1) as $v)' #!/usr/bin/parallel --shebang-wrap /usr/bin/node var myArgs = process.argv.slice(2); console.log('Arguments ', myArgs); -/usr/bin/bash: -c: line 0: syntax error near unexpected token `(' -/usr/bin/bash: -c: line 0: ` var myArgs = process.argv.slice(2);' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `(' +/usr/bin/bash: -c: line 1: ` var myArgs = process.argv.slice(2);' #!/usr/bin/parallel --shebang-wrap /usr/bin/lua io.write "Arguments" for a = 1, #arg do @@ -1199,14 +1204,14 @@ Arguments io.write(arg[a]) end print("") -/usr/bin/bash: line 2: io.write: command not found -/usr/bin/bash: -c: line 3: syntax error near unexpected token `=' -/usr/bin/bash: -c: line 3: ` for a = 1, #arg do' +/usr/bin/bash: line 3: io.write: command not found +/usr/bin/bash: -c: line 4: syntax error near unexpected token `=' +/usr/bin/bash: -c: line 4: ` for a = 1, #arg do' #!/usr/bin/parallel --shebang-wrap ARGV={} /usr/bin/csharp var argv = Environment.GetEnvironmentVariable("ARGV"); print("Arguments "+argv); -/usr/bin/bash: -c: line 2: syntax error near unexpected token `(' -/usr/bin/bash: -c: line 2: ` var argv = Environment.GetEnvironmentVariable("ARGV");' +/usr/bin/bash: -c: line 3: syntax error near unexpected token `(' +/usr/bin/bash: -c: line 3: ` var argv = Environment.GetEnvironmentVariable("ARGV");' sem 'sleep 1; echo The first finished' && echo The first is now running in the background && sem 'sleep 1; echo The second finished' && diff --git a/testsuite/wanted-results/sem01 b/testsuite/wanted-results/sem01 index 8cca93d7..2acac743 100644 --- a/testsuite/wanted-results/sem01 +++ b/testsuite/wanted-results/sem01 @@ -110,12 +110,10 @@ par_exit 30 environment: line 1: PID Power failure bash -c 'kill -'$1' par_exit 31 Bash exit value 159 par_exit 31 Sem exit value 159 par_exit 31 environment: line 1: PID Bad system call (core dumped) bash -c 'kill -'$1' $$' -par_exit 32 Bash exit value 160 -par_exit 32 Sem exit value 160 -par_exit 32 environment: line 1: PID Unknown signal 32 bash -c 'kill -'$1' $$' -par_exit 33 Bash exit value 161 -par_exit 33 Sem exit value 161 -par_exit 33 environment: line 1: PID Unknown signal 33 bash -c 'kill -'$1' $$' +par_exit 32 Bash exit value 0 +par_exit 32 Sem exit value 0 +par_exit 33 Bash exit value 0 +par_exit 33 Sem exit value 0 par_exit 34 Bash exit value 162 par_exit 34 Sem exit value 162 par_exit 34 environment: line 1: PID Real-time signal 0 bash -c 'kill -'$1' $$' diff --git a/testsuite/wanted-results/sql01 b/testsuite/wanted-results/sql01 index dd2a1b0d..34a61c29 100644 --- a/testsuite/wanted-results/sql01 +++ b/testsuite/wanted-results/sql01 @@ -55,30 +55,23 @@ Yes it does ### Test -r dburl pg://nongood@127.0.0.3:2227/ databasedriver pg user nongood password host 127.0.0.3 port 2227 database nongood query -psql: error: could not connect to server: Connection refused - Is the server running on host "127.0.0.3" and accepting - TCP/IP connections on port 2227? -psql: error: could not connect to server: Connection refused - Is the server running on host "127.0.0.3" and accepting - TCP/IP connections on port 2227? -psql: error: could not connect to server: Connection refused - Is the server running on host "127.0.0.3" and accepting - TCP/IP connections on port 2227? +psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused + Is the server running on that host and accepting TCP/IP connections? +psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused + Is the server running on that host and accepting TCP/IP connections? +psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused + Is the server running on that host and accepting TCP/IP connections? ### Test --retries=s dburl pg://nongood@127.0.0.3:2227/ databasedriver pg user nongood password host 127.0.0.3 port 2227 database nongood query -psql: error: could not connect to server: Connection refused - Is the server running on host "127.0.0.3" and accepting - TCP/IP connections on port 2227? -psql: error: could not connect to server: Connection refused - Is the server running on host "127.0.0.3" and accepting - TCP/IP connections on port 2227? -psql: error: could not connect to server: Connection refused - Is the server running on host "127.0.0.3" and accepting - TCP/IP connections on port 2227? -psql: error: could not connect to server: Connection refused - Is the server running on host "127.0.0.3" and accepting - TCP/IP connections on port 2227? +psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused + Is the server running on that host and accepting TCP/IP connections? +psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused + Is the server running on that host and accepting TCP/IP connections? +psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused + Is the server running on that host and accepting TCP/IP connections? +psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused + Is the server running on that host and accepting TCP/IP connections? ### Test --help -h Usage: sql [options] dburl [sqlcommand] diff --git a/testsuite/wanted-results/sql02 b/testsuite/wanted-results/sql02 index ca08ade2..a3d96a9a 100644 --- a/testsuite/wanted-results/sql02 +++ b/testsuite/wanted-results/sql02 @@ -37,7 +37,7 @@ bytes 3072 Current command: sqlite3 foo -sqltest.sqlite3: SQLite 3.x database, last written using SQLite version 3031001 +sqltest.sqlite3: SQLite 3.x database, last written using SQLite version 3037002, file counter 1, database pages 2, cookie 0x1, schema 4, UTF-8, version-valid-for 1 n|t 1|Line 1 2|Line 2 diff --git a/testsuite/wanted-results/test19 b/testsuite/wanted-results/test19 index c6b61950..2026ebbc 100644 --- a/testsuite/wanted-results/test19 +++ b/testsuite/wanted-results/test19 @@ -76,11 +76,11 @@ ls: tmp/parallel.file*: No such file or directory OK Input for ssh -l vagrant one-server -- exec mkdir -p ./. --l vagrant one-server rsync --server -lDrRze.iLsfxC . ./. +-l vagrant one-server rsync --server -lDrRze.iLsfxCIvu . ./. -l vagrant one-server -- exec perl -X -e GNU_Parallel_worker,eval+pack+q/H10000000/,join+q//,@ARGV hex --l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file. +-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxCIvu . './parallel.file. newlineX.out' --l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file. +-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxCIvu . './parallel.file. newlineX.out2' -l vagrant one-server -- exec sh -c 'rm -f '"'"'./tmp/parallel.file. newlineX'"'"' 2>/dev/null;rmdir ./tmp/ ./ 2>/dev/null;' @@ -89,11 +89,11 @@ newlineX.out'"'"' 2>/dev/null;rmdir ./tmp/ ./ 2>/dev/null;' -l vagrant one-server -- exec sh -c 'rm -f '"'"'./tmp/parallel.file. newlineX.out2'"'"' 2>/dev/null;rmdir ./tmp/ ./ 2>/dev/null;' -l vagrant one-server -- exec mkdir -p ./. --l vagrant one-server rsync --server -lDrRze.iLsfxC . ./. +-l vagrant one-server rsync --server -lDrRze.iLsfxCIvu . ./. -l vagrant one-server -- exec perl -X -e GNU_Parallel_worker,eval+pack+q/H10000000/,join+q//,@ARGV hex --l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file. +-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxCIvu . './parallel.file. newlineX.out' --l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file. +-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxCIvu . './parallel.file. newlineX.out2' -l vagrant one-server -- exec sh -c 'rm -f '"'"'./tmp/parallel.file. newlineX'"'"' 2>/dev/null;rmdir ./tmp/ ./ 2>/dev/null;'