echo '### Test bug #43376: {%} and {#} with --pipe' ### Test bug #43376: {%} and {#} with --pipe echo foo | parallel -q --pipe -k echo {#} 1 echo foo | parallel --pipe -k echo {%} 1 echo foo | parallel -q --pipe -k echo {%} 1 echo foo | parallel --pipe -k echo {#} 1 echo '**' ** echo '### {} as part of the command' ### {} as part of the command echo p /bin/ls | parallel l{= s/p/s/ =} /bin/ls echo /bin/ls-p | parallel --colsep '-' l{=2 s/p/s/ =} {1} /bin/ls echo s /bin/ls | parallel l{} /bin/ls echo /bin/ls | parallel ls {} /bin/ls echo ls /bin/ls | parallel {} /bin/ls echo ls /bin/ls | parallel /bin/ls echo '**' ** echo '### bug #43817: Some JP char cause problems in positional replacement strings' ### bug #43817: Some JP char cause problems in positional replacement strings parallel -k echo ::: '�<�>' '�<1 $_=2�>' 'ワ' �<�> �<1 $_=2�> ワ parallel -k echo {1} ::: '�<�>' '�<1 $_=2�>' 'ワ' �<�> �<1 $_=2�> ワ parallel -Xj1 echo ::: '�<�>' '�<1 $_=2�>' 'ワ' �<�> �<1 $_=2�> ワ parallel -Xj1 echo {1} ::: '�<�>' '�<1 $_=2�>' 'ワ' �<�> echo '**' ** echo '### --rpl % that is a substring of longer --rpl %D' ### --rpl % that is a substring of longer --rpl %D parallel --rpl '{+.} s:.*\.::' --rpl '%' --rpl '%D $_=::shell_quote(::dirname($_));' --rpl '%B s:.*/::;s:\.[^/.]+$::;' --rpl '%E s:.*\.::' 'echo {}=%;echo %D={//};echo %B={/.};echo %E={+.};echo %D/%B.%E={}' ::: a.b/c.d/e.f a.b/c.d/e.f=a.b/c.d/e.f a.b/c.d=a.b/c.d e=e f=f a.b/c.d/e.f=a.b/c.d/e.f echo '**' ** echo '### Disk full' ### Disk full cat /dev/zero >$SMALLDISK/out; parallel --tmpdir $SMALLDISK echo ::: OK; rm $SMALLDISK/out cat: write error: No space left on device parallel: Error: Output is incomplete. parallel: Error: Cannot append to buffer file in /mnt/ram. parallel: Error: Is the disk full? parallel: Error: Change $TMPDIR with --tmpdir or use --compress. Warning: unable to close filehandle properly: No space left on device during global destruction. echo '**' ** echo '### PARALLEL_TMUX not found' ### PARALLEL_TMUX not found PARALLEL_TMUX=not-existing parallel --tmux echo ::: 1 parallel: Error: not-existing not found in $PATH. echo '**' ** echo '### bug #44995: parallel echo {#} ::: 1 2 ::: 1 2' ### bug #44995: parallel echo {#} ::: 1 2 ::: 1 2 parallel -k echo {#} ::: 1 2 ::: 1 2 1 2 3 4 echo '**' ** echo 'bug #46016: --joblog should not log when --dryrun' bug #46016: --joblog should not log when --dryrun parallel --dryrun --joblog - echo ::: Only_this echo Only_this echo '**' ** echo 'bug #47002: --tagstring with -d \n\n' bug #47002: --tagstring with -d \n\n (seq 3;echo;seq 4) | parallel -k -d '\n\n' --tagstring {%} echo ABC';'echo 1 ABC 1 1 1 2 1 3 2 ABC 2 1 2 2 2 3 2 4 2 echo '**' ** echo 'bug #47290: xargs: Warning: a NUL character occurred in the input' bug #47290: xargs: Warning: a NUL character occurred in the input perl -e 'print "foo\0not printed"' | parallel echo foo\0not printed parallel: Warning: A NUL character in the input was replaced with \0. parallel: Warning: NUL cannot be passed through in the argument list. parallel: Warning: Did you mean to use the --null option? echo '**' ** echo '### Test --max-procs and -P: Number of processes' ### Test --max-procs and -P: Number of processes seq 1 10 | parallel -k --max-procs +0 echo max proc max proc 1 max proc 2 max proc 3 max proc 4 max proc 5 max proc 6 max proc 7 max proc 8 max proc 9 max proc 10 seq 1 10 | parallel -k -P 200% echo 200% proc 200% proc 1 200% proc 2 200% proc 3 200% proc 4 200% proc 5 200% proc 6 200% proc 7 200% proc 8 200% proc 9 200% proc 10 echo '### Test --max-chars and -s: Max number of chars in a line' ### Test --max-chars and -s: Max number of chars in a line (echo line 1;echo line 1;echo line 2) | parallel -k --max-chars 25 -X echo line 1 line 1 line 2 (echo line 1;echo line 1;echo line 2) | parallel -k -s 25 -X echo line 1 line 1 line 2 echo '### Test --no-run-if-empty and -r: This should give no output' ### Test --no-run-if-empty and -r: This should give no output echo " " | parallel -r echo echo " " | parallel --no-run-if-empty echo echo '### Test --help and -h: Help output (just check we get the same amount of lines)' ### Test --help and -h: Help output (just check we get the same amount of lines) echo Output from -h and --help Output from -h and --help parallel -h | wc -l 37 parallel --help | wc -l 37 echo '### Test --version: Version output (just check we get the same amount of lines)' ### Test --version: Version output (just check we get the same amount of lines) parallel --version | wc -l 10 echo '### Test --verbose and -t' ### Test --verbose and -t (echo b; echo c; echo f) | parallel -k -t echo {}ar 2>&1 >/dev/null echo bar echo car echo far (echo b; echo c; echo f) | parallel -k --verbose echo {}ar 2>&1 >/dev/null echo bar echo car echo far echo '### Test --show-limits' ### Test --show-limits (echo b; echo c; echo f) | parallel -k --show-limits echo {}ar Maximal size of command: 131049 Maximal used size of command: 131049 Execution of will continue now, and it will try to read its input and run commands; if this is not what you wanted to happen, please press CTRL-D or CTRL-C bar car far (echo b; echo c; echo f) | parallel -j1 -kX --show-limits -s 100 echo {}ar Maximal size of command: 131049 Maximal used size of command: 100 Execution of will continue now, and it will try to read its input and run commands; if this is not what you wanted to happen, please press CTRL-D or CTRL-C bar car far echo '### Test 0-arguments' ### Test 0-arguments seq 1 2 | parallel -k -n0 echo n0 n0 n0 seq 1 2 | parallel -k -L0 echo L0 L0 L0 seq 1 2 | parallel -k -N0 echo N0 N0 N0 echo '### Because of --tollef -l, then -l0 == -l1, sorry' ### Because of --tollef -l, then -l0 == -l1, sorry seq 1 2 | parallel -k -l0 echo l0 l0 1 l0 2 echo '### Test replace {}' ### Test replace {} seq 1 2 | parallel -k -N0 echo replace {} curlies replace curlies replace curlies echo '### Test arguments on commandline' ### Test arguments on commandline parallel -k -N0 echo args on cmdline ::: 1 2 args on cmdline args on cmdline echo '### Test --nice locally' ### Test --nice locally parallel --nice 1 -vv 'PAR=a bash -c "echo \$PAR {}"' ::: b PAR=a bash -c "echo \$PAR b" a b ### 1 .par file from --files expected 0 par_0_no_newline A single zero without \n should not be ignored par_0_no_newline 0 par_END ### Test -i and --replace: Replace with argument par_END replace par_END replace par_END replace par_END replace par_END replace par_END replace par_END replace par_END replace par_END replace par_END ### Test -E: Artificial end-of-file par_END include this par_END include this par_END ### Test -e and --eof: Artificial end-of-file par_END include this par_END include this par_END include this par_END include this par_PARALLEL_ENV ### PARALLEL_ENV as variable par_PARALLEL_ENV OK as variable par_PARALLEL_ENV ### PARALLEL_ENV as file par_PARALLEL_ENV OK as file par_PARALLEL_ENV ### PARALLEL_ENV as fifo par_PARALLEL_ENV OK as fifo par_X_eta_div_zero ### bug #34422: parallel -X --eta crashes with div by zero par_X_eta_div_zero Computers / CPU cores / Max jobs to run par_X_eta_div_zero 0:local / 0 / 0 par_append_joblog ### can you append to a joblog using + par_append_joblog 1 par_append_joblog 1 par_append_joblog 3 /tmp/parallel_append_joblog par_argfile ### Test -a and --arg-file: Read input from file instead of stdin par_argfile 1 par_argfile 2 par_argfile 3 par_argfile 4 par_argfile 5 par_argfile 6 par_argfile 7 par_argfile 8 par_argfile 9 par_argfile 10 par_argfile 1 par_argfile 2 par_argfile 3 par_argfile 4 par_argfile 5 par_argfile 6 par_argfile 7 par_argfile 8 par_argfile 9 par_argfile 10 par_basic_halt parallel: This job failed: par_basic_halt false par_basic_halt parallel: This job succeeded: par_basic_halt true par_basic_halt parallel: Error: --halt must have 'never', 'soon', or 'now'. par_basic_halt parallel: Error: --halt soon must be followed by ,success or ,fail. par_basic_halt parallel: Error: --halt now must be followed by ,success or ,fail. par_blocking_redir 0 0 0 par_blocking_redir 0 0 0 par_blocking_redir 1 9 54 par_blocking_redir 3 3 6 par_blocking_redir Test stderr par_blocking_redir Test stdout par_blocking_redir bug #52740: Bash redirection with process substitution blocks par_blocking_redir stderr par_blocking_redir stderr par_blocking_redir stdout par_blocking_redir stdout par_colsep_0 bug --colsep 0 par_colsep_0 OK par_colsep_0 OK par_csv col1"x3"-new par_csv line col2-new2 par_csv line col3-col 4 par_csv 2"x3" board-Value with ,-Column 3 par_csv_pipe Only pass full records to tail par_csv_pipe Too small block size par_csv_pipe parallel: Warning: A record was longer than 10000. Increasing to --blocksize 13001. par_csv_pipe parallel: Warning: A record was longer than 13001. Increasing to --blocksize 16903. par_csv_pipe 2000" par_csv_pipe 3000" par_csv_pipe 4000" par_csv_pipe 5000" par_csv_pipe 6000" par_csv_pipe 7000" par_csv_pipe 8000" par_csv_pipe 9000" par_csv_pipe 10000" par_csv_pipe 11000" par_csv_pipe More records in single block par_csv_pipe 9000" par_csv_pipe 11000" par_delimiter ### Test --delimiter and -d: Delimiter instead of newline par_delimiter # Yes there is supposed to be an extra newline for -d N par_delimiter This is line 1 par_delimiter This is line 2 par_delimiter This is line 3 par_delimiter par_delimiter This is line 1 par_delimiter This is line 2 par_delimiter This is line 3 par_delimiter par_delimiter delimiter NUL line 1 par_delimiter line 2 par_delimiter line 3 par_delimiter delimiter TAB line 1 par_delimiter line 2 par_delimiter line 3 par_distribute_args_at_EOF ### Test distribute arguments at EOF to 2 jobslots par_distribute_args_at_EOF 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 par_distribute_args_at_EOF 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 par_distribute_args_at_EOF 66 67 68 69 70 71 72 73 74 75 76 77 78 79 par_distribute_args_at_EOF 80 81 82 83 84 85 86 87 88 89 90 91 92 par_distribute_args_at_EOF ### Test distribute arguments at EOF to 5 jobslots par_distribute_args_at_EOF 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 par_distribute_args_at_EOF 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 par_distribute_args_at_EOF 66 67 68 69 70 71 par_distribute_args_at_EOF 72 73 74 75 76 77 par_distribute_args_at_EOF 78 79 80 81 82 83 par_distribute_args_at_EOF 84 85 86 87 88 89 par_distribute_args_at_EOF 90 91 92 par_distribute_args_at_EOF ### Test distribute arguments at EOF to infinity jobslots par_distribute_args_at_EOF 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 par_distribute_args_at_EOF 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 par_distribute_args_at_EOF 66 par_distribute_args_at_EOF 67 par_distribute_args_at_EOF 68 par_distribute_args_at_EOF 69 par_distribute_args_at_EOF 70 par_distribute_args_at_EOF 71 par_distribute_args_at_EOF 72 par_distribute_args_at_EOF 73 par_distribute_args_at_EOF 74 par_distribute_args_at_EOF 75 par_distribute_args_at_EOF 76 par_distribute_args_at_EOF 77 par_distribute_args_at_EOF 78 par_distribute_args_at_EOF 79 par_distribute_args_at_EOF 80 par_distribute_args_at_EOF 81 par_distribute_args_at_EOF 82 par_distribute_args_at_EOF 83 par_distribute_args_at_EOF 84 par_distribute_args_at_EOF 85 par_distribute_args_at_EOF 86 par_distribute_args_at_EOF 87 par_distribute_args_at_EOF 88 par_distribute_args_at_EOF 89 par_distribute_args_at_EOF 90 par_distribute_args_at_EOF 91 par_distribute_args_at_EOF 92 par_distribute_args_at_EOF ### Test -N is not broken by distribution - single line par_distribute_args_at_EOF 1 2 3 4 5 6 7 8 9 par_distribute_args_at_EOF ### Test -N is not broken by distribution - two lines par_distribute_args_at_EOF 1 2 3 4 5 6 7 8 9 10 par_distribute_args_at_EOF 11 12 13 14 15 16 17 18 19 par_dryrun_append_joblog --dry-run should not append to joblog par_dryrun_append_joblog 1 par_dryrun_append_joblog 2 par_dryrun_append_joblog 3 par_dryrun_append_joblog echo 1 par_dryrun_append_joblog echo 2 par_dryrun_append_joblog echo 3 par_dryrun_append_joblog echo 4 par_dryrun_append_joblog 4 par_empty bug #: par_empty true par_empty_command bug #54647: parset ignores empty lines par_empty_command par_empty_command Empty: par_empty_command B: B par_empty_input_on_stdin https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910470 par_empty_input_on_stdin This should give no output par_empty_line ### Test bug: empty line for | sh with -k par_empty_line a par_empty_line b par_exit_val ### Test bug #45619: "--halt" erroneous error exit code (should give 0) par_exit_val 0 par_exit_val ### Test exit val - true par_exit_val 0 par_exit_val ### Test exit val - false par_exit_val 1 par_expansion_in_colsep ### bug #36260: {n} expansion in --colsep files fails for empty fields if all following fields are also empty par_expansion_in_colsep AB par_extglob env_parallel par_file_ending_in_newline ### Hans found a bug giving unitialized variable par_file_ending_in_newline gzip /tmp/parallel_f1 par_file_ending_in_newline gzip '/tmp/parallel_f2 par_file_ending_in_newline ' par_halt_on_error_division_by_zero ### --halt-on-error soon,fail=100% with no input should not give division by zero par_halt_on_error_division_by_zero 0 par_halt_one_job # Halt soon if there is a single job par_halt_one_job should run 0 1 = job 1 2 par_halt_one_job 1 par_halt_one_job 2 par_halt_one_job parallel: This job failed: par_halt_one_job echo 2;exit 1 par_halt_one_job should run 1 = job 1 par_halt_one_job 1 par_halt_one_job parallel: This job failed: par_halt_one_job echo 1;exit 1 par_halt_one_job should run 0 1 = job 1 2 par_halt_one_job 1 par_halt_one_job 2 par_halt_one_job parallel: This job failed: par_halt_one_job echo 2;exit 1 par_halt_one_job parallel: Starting no more jobs. Waiting for 0 jobs to finish. par_halt_one_job should run 1 = job 1 par_halt_one_job 1 par_halt_one_job parallel: This job failed: par_halt_one_job echo 1;exit 1 par_halt_one_job parallel: Starting no more jobs. Waiting for 0 jobs to finish. par_inefficient_L bug #37325: Inefficiency of --pipe -L par_inefficient_L 276 276 996 par_inefficient_L FOO par_inefficient_L 248 248 992 par_inefficient_L FOO par_inefficient_L 248 248 992 par_inefficient_L FOO par_inefficient_L 244 244 993 par_inefficient_L FOO par_inefficient_L 200 200 1000 par_inefficient_L FOO par_inefficient_L 200 200 1000 par_inefficient_L FOO par_inefficient_L 200 200 1000 par_inefficient_L FOO par_inefficient_L 200 200 1000 par_inefficient_L FOO par_inefficient_L 184 184 920 par_inefficient_L FOO par_jobslot_repl bug #46232: {%} with --bar/--eta/--shuf or --halt xx% broken par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl bug #46231: {%} with --pipepart broken. Should give 1+2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_jobslot_repl 2 par_jobslot_repl 1 par_linebuffer_files ### bug #48658: --linebuffer --files par_linebuffer_files 10 par_link_files_as_only_arg bug #50685: single ::::+ does not work par_link_files_as_only_arg 1 1 1 par_link_files_as_only_arg 2 2 2 par_link_files_as_only_arg 3 3 3 par_locale_quoting ### quoting in different locales par_locale_quoting £`/tmp/test£` par_locale_quoting $LC_ALL £`/tmp/test£` par_locale_quoting echo $LC_ALL '£`/tmp/test£`' par_locale_quoting zh_HK.big5hkscs £`/tmp/test£` par_long_cmd_mem_use ### Test long commands do not take up all memory par_long_cmd_mem_use 1 par_long_cmd_mem_use 10 par_long_cmd_mem_use 100 par_long_cmd_mem_use 11 par_long_cmd_mem_use 12 par_long_cmd_mem_use 13 par_long_cmd_mem_use 14 par_long_cmd_mem_use 15 par_long_cmd_mem_use 16 par_long_cmd_mem_use 17 par_long_cmd_mem_use 18 par_long_cmd_mem_use 19 par_long_cmd_mem_use 2 par_long_cmd_mem_use 20 par_long_cmd_mem_use 21 par_long_cmd_mem_use 22 par_long_cmd_mem_use 23 par_long_cmd_mem_use 24 par_long_cmd_mem_use 25 par_long_cmd_mem_use 26 par_long_cmd_mem_use 27 par_long_cmd_mem_use 28 par_long_cmd_mem_use 29 par_long_cmd_mem_use 3 par_long_cmd_mem_use 30 par_long_cmd_mem_use 31 par_long_cmd_mem_use 32 par_long_cmd_mem_use 33 par_long_cmd_mem_use 34 par_long_cmd_mem_use 35 par_long_cmd_mem_use 36 par_long_cmd_mem_use 37 par_long_cmd_mem_use 38 par_long_cmd_mem_use 39 par_long_cmd_mem_use 4 par_long_cmd_mem_use 40 par_long_cmd_mem_use 41 par_long_cmd_mem_use 42 par_long_cmd_mem_use 43 par_long_cmd_mem_use 44 par_long_cmd_mem_use 45 par_long_cmd_mem_use 46 par_long_cmd_mem_use 47 par_long_cmd_mem_use 48 par_long_cmd_mem_use 49 par_long_cmd_mem_use 5 par_long_cmd_mem_use 50 par_long_cmd_mem_use 51 par_long_cmd_mem_use 52 par_long_cmd_mem_use 53 par_long_cmd_mem_use 54 par_long_cmd_mem_use 55 par_long_cmd_mem_use 56 par_long_cmd_mem_use 57 par_long_cmd_mem_use 58 par_long_cmd_mem_use 59 par_long_cmd_mem_use 6 par_long_cmd_mem_use 60 par_long_cmd_mem_use 61 par_long_cmd_mem_use 62 par_long_cmd_mem_use 63 par_long_cmd_mem_use 64 par_long_cmd_mem_use 65 par_long_cmd_mem_use 66 par_long_cmd_mem_use 67 par_long_cmd_mem_use 68 par_long_cmd_mem_use 69 par_long_cmd_mem_use 7 par_long_cmd_mem_use 70 par_long_cmd_mem_use 71 par_long_cmd_mem_use 72 par_long_cmd_mem_use 73 par_long_cmd_mem_use 74 par_long_cmd_mem_use 75 par_long_cmd_mem_use 76 par_long_cmd_mem_use 77 par_long_cmd_mem_use 78 par_long_cmd_mem_use 79 par_long_cmd_mem_use 8 par_long_cmd_mem_use 80 par_long_cmd_mem_use 81 par_long_cmd_mem_use 82 par_long_cmd_mem_use 83 par_long_cmd_mem_use 84 par_long_cmd_mem_use 85 par_long_cmd_mem_use 86 par_long_cmd_mem_use 87 par_long_cmd_mem_use 88 par_long_cmd_mem_use 89 par_long_cmd_mem_use 9 par_long_cmd_mem_use 90 par_long_cmd_mem_use 91 par_long_cmd_mem_use 92 par_long_cmd_mem_use 93 par_long_cmd_mem_use 94 par_long_cmd_mem_use 95 par_long_cmd_mem_use 96 par_long_cmd_mem_use 97 par_long_cmd_mem_use 98 par_long_cmd_mem_use 99 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 1 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 10 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 100 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 11 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 12 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 13 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 14 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 15 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 16 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 17 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 18 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 19 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 2 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 20 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 21 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 22 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 23 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 24 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 25 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 26 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 27 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 28 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 29 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 3 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 30 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 31 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 32 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 33 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 34 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 35 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 36 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 37 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 38 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 39 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 4 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 40 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 41 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 42 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 43 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 44 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 45 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 46 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 47 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 48 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 49 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 5 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 50 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 51 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 52 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 53 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 54 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 55 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 56 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 57 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 58 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 59 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 6 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 60 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 61 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 62 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 63 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 64 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 65 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 66 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 67 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 68 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 69 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 7 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 70 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 71 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 72 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 73 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 74 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 75 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 76 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 77 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 78 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 79 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 8 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 80 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 81 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 82 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 83 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 84 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 85 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 86 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 87 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 88 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 89 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 9 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 90 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 91 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 92 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 93 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 94 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 95 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 96 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 97 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 98 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 99 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 par_maxargs line 3 par_maxargs line 1 line 1 par_maxargs line 2 par_maxargs line 1 par_maxargs line 2 par_maxargs line 3 par_maxargs line 1 line 1 par_maxargs line 2 par_maxargs line 1 par_maxargs line 2 par_maxargs line 3 par_maxargs line 1 line 1 par_maxargs line 2 par_maxargs line 1 par_maxargs line 2 par_maxargs line 3 par_maxargs line 1 par_maxargs line 2 par_maxargs line 3 par_maxargs line 1 line 1 par_maxargs line 2 par_maxargs line 1 line 1 par_maxargs line 2 par_maxargs line 1 par_maxargs line 2 par_maxargs line 3 par_maxargs line 1 line 1 par_maxargs line 2 par_newline_in_command Command with newline and positional replacement strings par_newline_in_command O K 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 parallel: Error: Command line too long (1000002 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... par_parcat_args_stdin bug #51690: parcat: read args from stdin par_parcat_args_stdin OK1 par_parcat_args_stdin OK2 par_parcat_rm bug #51691: parcat --rm remove fifo when opened par_parcat_rm OK1 par_parcat_rm OK file removed par_perlexpr_repl ### {= and =} in different groups separated by space par_perlexpr_repl b par_perlexpr_repl b par_perlexpr_repl bb par_perlexpr_repl bb par_perlexpr_repl b{= b par_perlexpr_repl b{=b par_perlexpr_repl b {=a par_perlexpr_repl {=a par_perlexpr_repl {= a par_perlexpr_repl {= a =} par_perlexpr_repl ### bug #45842: Do not evaluate {= =} twice par_perlexpr_repl 1 par_perlexpr_repl 2 par_perlexpr_repl 3 par_perlexpr_repl 4 par_perlexpr_repl 1 par_perlexpr_repl 2 par_perlexpr_repl 3 par_perlexpr_repl 4 par_perlexpr_repl 1 2 par_perlexpr_repl 3 4 par_perlexpr_repl 5 6 par_perlexpr_repl 7 8 par_perlexpr_repl 9 10 par_perlexpr_repl 11 12 par_perlexpr_repl 13 14 par_perlexpr_repl 15 16 par_perlexpr_repl 17 18 par_perlexpr_repl 19 20 par_perlexpr_repl 21 22 par_perlexpr_repl 23 24 par_perlexpr_repl 1 par_perlexpr_repl 2 par_perlexpr_repl 3 par_perlexpr_repl 4 par_perlexpr_repl 5 par_perlexpr_repl 6 par_perlexpr_repl 7 par_perlexpr_repl 8 par_perlexpr_repl 9 par_perlexpr_repl 10 par_perlexpr_repl 11 par_perlexpr_repl 12 par_perlexpr_repl ### bug #45939: {2} in {= =} fails par_perlexpr_repl OK par_perlexpr_repl OK-OK par_perlexpr_with_newline Perl expression spanning 2 lines par_pipe_N1_regexp bug #55131: --regexp --recstart hangs par_pipe_N1_regexp These should give the same par_pipe_N1_regexp JOB1 par_pipe_N1_regexp begin par_pipe_N1_regexp end par_pipe_N1_regexp END par_pipe_N1_regexp JOB2 par_pipe_N1_regexp begin par_pipe_N1_regexp aend par_pipe_N1_regexp END par_pipe_N1_regexp JOB3 par_pipe_N1_regexp begin par_pipe_N1_regexp bend par_pipe_N1_regexp END par_pipe_N1_regexp JOB4 par_pipe_N1_regexp begin par_pipe_N1_regexp cend par_pipe_N1_regexp END par_pipe_N1_regexp JOB1 par_pipe_N1_regexp begin par_pipe_N1_regexp end par_pipe_N1_regexp END par_pipe_N1_regexp JOB2 par_pipe_N1_regexp begin par_pipe_N1_regexp aend par_pipe_N1_regexp END par_pipe_N1_regexp JOB3 par_pipe_N1_regexp begin par_pipe_N1_regexp bend par_pipe_N1_regexp END par_pipe_N1_regexp JOB4 par_pipe_N1_regexp begin par_pipe_N1_regexp cend par_pipe_N1_regexp END par_pipe_no_command ### --pipe without command par_pipe_no_command parallel: Error: --pipe/--pipepart must have a command to pipe into (e.g. 'cat'). par_pipe_recend bug #54328: --pipe --recend blocks par_pipe_recend 00000000: 31 1 par_pipe_recend 00000000: 0a . par_pipe_recend 00000000: 32 2 par_pipe_recend 00000000: 0a . par_pipe_recend 00000000: 33 3 par_pipe_recend 00000000: 0a . par_pipe_recend 00000000: 31 1 par_pipe_recend 00000000: 0a . par_pipe_recend 00000000: 32 2 par_pipe_recend 00000000: 0a . par_pipe_recend 00000000: 33 3 par_pipe_recend 00000000: 0a . par_pipe_record_size_in_lines bug #34958: --pipe with record size measured in lines par_pipe_record_size_in_lines 1 par_pipe_record_size_in_lines 2 par_pipe_record_size_in_lines 3 par_pipe_record_size_in_lines 4 par_pipe_record_size_in_lines 5 par_pipe_record_size_in_lines 6 par_pipe_record_size_in_lines 7 par_pipe_record_size_in_lines 8 par_pipe_record_size_in_lines bug 34958-1 par_pipe_record_size_in_lines 9 par_pipe_record_size_in_lines 10 par_pipe_record_size_in_lines bug 34958-1 par_pipe_record_size_in_lines 1 par_pipe_record_size_in_lines 2 par_pipe_record_size_in_lines 3 par_pipe_record_size_in_lines 4 par_pipe_record_size_in_lines 5 par_pipe_record_size_in_lines 6 par_pipe_record_size_in_lines 7 par_pipe_record_size_in_lines 8 par_pipe_record_size_in_lines bug 34958-2 par_pipe_record_size_in_lines 9 par_pipe_record_size_in_lines 10 par_pipe_record_size_in_lines bug 34958-2 par_pipe_tag_v pipe with --tag -v par_pipe_tag_v foo cat par_pipe_tag_v foo 1 par_pipe_tag_v foo 2 par_pipe_tag_v foo 3 par_pipe_tag_v foo /tmp/tmpfile.par par_pipe_to_func ### bug #45998: --pipe to function broken par_pipe_to_func 1 par_pipe_to_func pipefunc OK par_pipe_to_func 1 par_pipe_to_func pipefunc and more OK par_pipe_to_func and more OK par_pipepart_block_bigger_2G ### Test that --pipepart can have blocks > 2GB par_pipepart_block_bigger_2G 1 1 4 par_pipepart_header ### bug #44614: --pipepart --header off by one par_pipepart_header foo par_pipepart_header 1 par_pipepart_header 2 par_pipepart_header 3 par_pipepart_header foo par_pipepart_header 4 par_pipepart_header 5 par_pipepart_header 6 par_pipepart_header foo par_pipepart_header 7 par_pipepart_header 8 par_pipepart_header 9 par_pipepart_header foo par_pipepart_header 10 par_pipepart_header foo par_pipepart_header 1 par_pipepart_header 2 par_pipepart_header 3 par_pipepart_header foo par_pipepart_header 4 par_pipepart_header 5 par_pipepart_header 6 par_pipepart_header 7 par_pipepart_header 8 par_pipepart_header 9 par_pipepart_header 10 par_pipepart_recend_recstart bug #52343: --recend/--recstart does wrong thing with --pipepart par_pipepart_recend_recstart a par_pipepart_recend_recstart 1 par_pipepart_recend_recstart 2 par_pipepart_recend_recstart 3 par_pipepart_recend_recstart 4 par_pipepart_recend_recstart 5 par_pipepart_recend_recstart a par_pipepart_recend_recstart 6 par_pipepart_recend_recstart 7 par_pipepart_recend_recstart 8 par_pipepart_recend_recstart 9 par_pipepart_recend_recstart 10 par_pipepart_recend_recstart parallel: Warning: A record was longer than 1. Increasing to --blocksize 3. par_pipepart_recend_recstart parallel: Warning: A record was longer than 3. Increasing to --blocksize 5. par_pipepart_recend_recstart parallel: Warning: A record was longer than 5. Increasing to --blocksize 8. par_pipepart_recend_recstart parallel: Warning: A record was longer than 8. Increasing to --blocksize 12. par_pipepart_recend_recstart a par_pipepart_recend_recstart 1 par_pipepart_recend_recstart 2 par_pipepart_recend_recstart 3 par_pipepart_recend_recstart 4 par_pipepart_recend_recstart 5 par_pipepart_recend_recstart a par_pipepart_recend_recstart 6 par_pipepart_recend_recstart 7 par_pipepart_recend_recstart 8 par_pipepart_recend_recstart 9 par_pipepart_recend_recstart 10 par_pipepart_roundrobin ### bug #45769: --round-robin --pipepart gives wrong results par_pipepart_roundrobin 2 par_python_children ### bug #49970: Python child process dies if --env is used par_quote ### Test -q par_quote a b par_quote h i par_quote ### Test -q {#} par_quote 1 par_quote 2 par_quote 1 par_quote 2 par_quote {\#} a par_quote {\#} b par_read_from_stdin ### Test empty line as input par_read_from_stdin empty input line par_read_from_stdin ### Tests if (cat | sh) works par_read_from_stdin a 1 par_read_from_stdin a 10 par_read_from_stdin a 11 par_read_from_stdin a 12 par_read_from_stdin a 13 par_read_from_stdin a 14 par_read_from_stdin a 15 par_read_from_stdin a 16 par_read_from_stdin a 17 par_read_from_stdin a 18 par_read_from_stdin a 19 par_read_from_stdin a 2 par_read_from_stdin a 20 par_read_from_stdin a 21 par_read_from_stdin a 22 par_read_from_stdin a 23 par_read_from_stdin a 24 par_read_from_stdin a 25 par_read_from_stdin a 3 par_read_from_stdin a 4 par_read_from_stdin a 5 par_read_from_stdin a 6 par_read_from_stdin a 7 par_read_from_stdin a 8 par_read_from_stdin a 9 par_read_from_stdin b 1 par_read_from_stdin b 10 par_read_from_stdin b 11 par_read_from_stdin b 12 par_read_from_stdin b 13 par_read_from_stdin b 14 par_read_from_stdin b 15 par_read_from_stdin b 16 par_read_from_stdin b 17 par_read_from_stdin b 18 par_read_from_stdin b 19 par_read_from_stdin b 2 par_read_from_stdin b 20 par_read_from_stdin b 21 par_read_from_stdin b 22 par_read_from_stdin b 23 par_read_from_stdin b 24 par_read_from_stdin b 25 par_read_from_stdin b 3 par_read_from_stdin b 4 par_read_from_stdin b 5 par_read_from_stdin b 6 par_read_from_stdin b 7 par_read_from_stdin b 8 par_read_from_stdin b 9 par_read_from_stdin ### Test if xargs-mode works par_read_from_stdin a 1 par_read_from_stdin a 10 par_read_from_stdin a 11 par_read_from_stdin a 12 par_read_from_stdin a 13 par_read_from_stdin a 14 par_read_from_stdin a 15 par_read_from_stdin a 16 par_read_from_stdin a 17 par_read_from_stdin a 18 par_read_from_stdin a 19 par_read_from_stdin a 2 par_read_from_stdin a 20 par_read_from_stdin a 21 par_read_from_stdin a 22 par_read_from_stdin a 23 par_read_from_stdin a 24 par_read_from_stdin a 25 par_read_from_stdin a 3 par_read_from_stdin a 4 par_read_from_stdin a 5 par_read_from_stdin a 6 par_read_from_stdin a 7 par_read_from_stdin a 8 par_read_from_stdin a 9 par_read_from_stdin b 1 par_read_from_stdin b 10 par_read_from_stdin b 11 par_read_from_stdin b 12 par_read_from_stdin b 13 par_read_from_stdin b 14 par_read_from_stdin b 15 par_read_from_stdin b 16 par_read_from_stdin b 17 par_read_from_stdin b 18 par_read_from_stdin b 19 par_read_from_stdin b 2 par_read_from_stdin b 20 par_read_from_stdin b 21 par_read_from_stdin b 22 par_read_from_stdin b 23 par_read_from_stdin b 24 par_read_from_stdin b 25 par_read_from_stdin b 3 par_read_from_stdin b 4 par_read_from_stdin b 5 par_read_from_stdin b 6 par_read_from_stdin b 7 par_read_from_stdin b 8 par_read_from_stdin b 9 par_results ### --results test.csv par_results a par_results b par_results c par_retries_replacement_string 11 par_retries_replacement_string 22 par_retries_replacement_string 22 par_retries_replacement_string 33 par_retries_replacement_string 33 par_retries_replacement_string 33 par_sem_quote ### sem --quote should not add empty argument par_sem_quote echo par_sem_quote par_shard ### --shard par_shard OK par_shard OK par_shard OK par_shard OK par_shard OK par_shard 10 1 par_shard 10 2 par_shard 10 3 par_shard 10 4 par_shard 10 5 par_shard 10 6 par_shard 10 7 par_shard 10 8 par_shard 10 9 par_shard 9 0 par_shard 9 1 par_shard 9 2 par_shard 9 3 par_shard 9 4 par_shard 9 5 par_shard 9 6 par_shard 9 7 par_shard 9 8 par_shard 9 9 par_shard *** broken par_shard parallel: Error: --tee requres --jobs to be higher. Try --jobs 0. par_shard parallel: Error: --tee requres --jobs to be higher. Try --jobs 0. 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 980 981 5881 par_slow_pipe_regexp 25021 25021 150125 par_slow_pipe_regexp ### These should give same output par_slow_pipe_regexp 6e72d7f86f6a423b9a7fa97630587815 - par_slow_pipe_regexp 6e72d7f86f6a423b9a7fa97630587815 - par_space_envvar ### bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu' par_space_envvar echo 'space in envvar OK' par_space_envvar space in envvar OK par_tagstring_pipe bug #50228: --pipe --tagstring broken par_tagstring_pipe 1 1000 1000 3893 par_tagstring_pipe 2 1000 1000 5000 par_tagstring_pipe 3 1000 1000 5000 par_tee 1 a 1 par_tee 1 a 1000000 1000000 6888896 par_tee 1 b 2 par_tee 1 b 1000000 1000000 6888896 par_tee 2 a 3 par_tee 2 a 1000000 1000000 6888896 par_tee 2 b 4 par_tee 2 b 1000000 1000000 6888896 par_tee 3 a 5 par_tee 3 a 1000000 1000000 6888896 par_tee 3 b 6 par_tee 3 b 1000000 1000000 6888896 par_tee 4 a 7 par_tee 4 a 1000000 1000000 6888896 par_tee 4 b 8 par_tee 4 b 1000000 1000000 6888896 par_tee 5 a 9 par_tee 5 a 1000000 1000000 6888896 par_tee 5 b 10 par_tee 5 b 1000000 1000000 6888896 par_tee 1 -l 181902 par_tee 1 -c 1228633 par_tee 2 -l 181902 par_tee 2 -c 1228633 par_tee 3 -l 122854 par_tee 3 -c 815297 par_tee 4 -l 122853 par_tee 4 -c 815290 par_tee 5 -l 122853 par_tee 5 -c 815290 par_tee_too_many_args ### Fail if there are more arguments than --jobs par_tee_too_many_args 1 1 par_tee_too_many_args 1 10 par_tee_too_many_args 1 11 par_tee_too_many_args 2 2 par_tee_too_many_args 3 3 par_tee_too_many_args 4 4 par_tee_too_many_args parallel: Error: --tee requres --jobs to be higher. Try --jobs 0. par_test_L_context_replace ### Test -N context replace par_test_L_context_replace a1b a2b a3b a4b a5b a6b a7b a8b a9b a10b par_test_L_context_replace a11b a12b a13b a14b a15b a16b a17b a18b a19b par_test_L_context_replace ### Test -L context replace par_test_L_context_replace a1b a2b a3b a4b a5b a6b a7b a8b a9b a10b par_test_L_context_replace a11b a12b a13b a14b a15b a16b a17b a18b a19b par_test_X_with_multiple_source ### Test {} multiple times in different commands par_test_X_with_multiple_source echo 1 2 3 4 5 6 7 8 9 10 ; echo 1 2 3 4 5 6 7 8 9 10 par_test_X_with_multiple_source 1 2 3 4 5 6 7 8 9 10 par_test_X_with_multiple_source 1 2 3 4 5 6 7 8 9 10 par_test_X_with_multiple_source ### Test of -X {1}-{2} with multiple input sources par_test_X_with_multiple_source a-b par_test_X_with_multiple_source a-c par_test_X_with_multiple_source b-c par_test_X_with_multiple_source a-d par_test_X_with_multiple_source b-f par_test_X_with_multiple_source a-d par_test_X_with_multiple_source a-e par_test_X_with_multiple_source a-f par_test_X_with_multiple_source b-d par_test_X_with_multiple_source b-e par_test_X_with_multiple_source b-f par_test_X_with_multiple_source c-d par_test_X_with_multiple_source c-e par_test_X_with_multiple_source c-f par_test_X_with_multiple_source ### Test of -X {}-{.} with multiple input sources par_test_X_with_multiple_source a-a b-b par_test_X_with_multiple_source a-a c-c a-a d-d par_test_X_with_multiple_source b-b c-c b-b d-d par_test_X_with_multiple_source a-a d-d a-a e-e a-a f-f b-b d-d b-b e-e par_test_X_with_multiple_source b-b f-f c-c d-d c-c e-e c-c f-f par_test_X_with_multiple_source a-a d-d par_test_X_with_multiple_source a-a e-e par_test_X_with_multiple_source a-a f-f par_test_X_with_multiple_source b-b d-d par_test_X_with_multiple_source b-b e-e par_test_X_with_multiple_source b-b f-f par_test_X_with_multiple_source c-c d-d par_test_X_with_multiple_source c-c e-e par_test_X_with_multiple_source c-c f-f par_test_r_with_pipe ### Test of -r with --pipe - the first should give an empty line. The second should not. par_test_r_with_pipe 1 par_test_r_with_pipe 0 par_test_tty ### Test --tty par_test_tty /dev/tty par_test_tty /dev/tty par_test_tty /dev/tty par_test_tty /dev/tty par_test_tty /dev/tty par_testquote ash "#&/ par_testquote ash ()*=?' par_testquote bash "#&/ par_testquote bash ()*=?' par_testquote csh "#&/ par_testquote csh ()*=?' par_testquote dash "#&/ par_testquote dash ()*=?' par_testquote fdsh "#&/ par_testquote fdsh ()*=?' par_testquote fish "#&/ par_testquote fish ()*=?' par_testquote fizsh "#&/ par_testquote fizsh ()*=?' par_testquote ksh "#&/ par_testquote ksh ()*=?' par_testquote ksh93 "#&/ par_testquote ksh93 ()*=?' par_testquote mksh "#&/ par_testquote mksh ()*=?' par_testquote posh "#&/ par_testquote posh ()*=?' par_testquote rbash "#&/ par_testquote rbash ()*=?' par_testquote rc "#&/ par_testquote rc ()*=?' par_testquote rzsh "#&/ par_testquote rzsh ()*=?' par_testquote sash "#&/ par_testquote sash ()*=?' par_testquote sh "#&/ par_testquote sh ()*=?' par_testquote static-sh "#&/ par_testquote static-sh ()*=?' par_testquote tcsh "#&/ par_testquote tcsh ()*=?' par_testquote yash "#&/ par_testquote yash ()*=?' par_testquote zsh "#&/ par_testquote zsh ()*=?' par_total_from_joblog bug #47086: [PATCH] Initialize total_completed from joblog par_total_from_joblog 0 par_total_from_joblog 1 par_total_from_joblog 2 par_total_from_joblog 3 par_total_from_joblog parallel: This job failed: par_total_from_joblog echo 3;exit 1 par_total_from_joblog 4 par_total_from_joblog 5 par_totaljob_repl {##} bug #45841: Replacement string for total no of jobs par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 1 par_totaljob_repl 2 par_totaljob_repl 3 par_totaljob_repl 4 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 10 par_totaljob_repl 1 2 2 2 2 2 2 2 par_totaljob_repl 2 2 2 2 2 2 2 2 par_totaljob_repl 1 3 3 3 3 3 3 3 par_totaljob_repl 2 3 3 3 3 3 3 3 par_totaljob_repl 3 3 par_totaljob_repl 1 15 15 par_totaljob_repl 2 14 14 par_totaljob_repl 3 14 14 par_totaljob_repl 4 14 14 par_totaljob_repl 5 14 14 par_totaljob_repl 6 14 14 par_totaljob_repl 7 14 14 par_totaljob_repl 8 14 par_tricolonplus ### bug #48745: :::+ bug par_tricolonplus 11 1 21 a aa par_tricolonplus 11 1 21 b bb par_tricolonplus 11 1 21 c cc par_tricolonplus 22 2 22 a aa par_tricolonplus 22 2 22 b bb par_tricolonplus 22 2 22 c cc par_tricolonplus 33 3 23 a aa par_tricolonplus 33 3 23 b bb par_tricolonplus 33 3 23 c cc par_tricolonplus 1 21 a aa par_tricolonplus 1 21 a bb par_tricolonplus 1 21 a cc par_tricolonplus 1 22 b aa par_tricolonplus 1 22 b bb par_tricolonplus 1 22 b cc par_tricolonplus 1 23 c aa par_tricolonplus 1 23 c bb par_tricolonplus 1 23 c cc par_tricolonplus 2 21 a aa par_tricolonplus 2 21 a bb par_tricolonplus 2 21 a cc par_tricolonplus 2 22 b aa par_tricolonplus 2 22 b bb par_tricolonplus 2 22 b cc par_tricolonplus 2 23 c aa par_tricolonplus 2 23 c bb par_tricolonplus 2 23 c cc par_tricolonplus 3 21 a aa par_tricolonplus 3 21 a bb par_tricolonplus 3 21 a cc par_tricolonplus 3 22 b aa par_tricolonplus 3 22 b bb par_tricolonplus 3 22 b cc par_tricolonplus 3 23 c aa par_tricolonplus 3 23 c bb par_tricolonplus 3 23 c cc par_tricolonplus 1 21 a aa par_tricolonplus 1 21 a bb par_tricolonplus 1 21 a cc par_tricolonplus 1 22 b aa par_tricolonplus 1 22 b bb par_tricolonplus 1 22 b cc par_tricolonplus 1 23 c aa par_tricolonplus 1 23 c bb par_tricolonplus 1 23 c cc par_tricolonplus 2 21 a aa par_tricolonplus 2 21 a bb par_tricolonplus 2 21 a cc par_tricolonplus 2 22 b aa par_tricolonplus 2 22 b bb par_tricolonplus 2 22 b cc par_tricolonplus 2 23 c aa par_tricolonplus 2 23 c bb par_tricolonplus 2 23 c cc par_tricolonplus 3 21 a aa par_tricolonplus 3 21 a bb par_tricolonplus 3 21 a cc par_tricolonplus 3 22 b aa par_tricolonplus 3 22 b bb par_tricolonplus 3 22 b cc par_tricolonplus 3 23 c aa par_tricolonplus 3 23 c bb par_tricolonplus 3 23 c cc par_wd_3dot_local bug #45993: --wd ... should also work when run locally par_wd_3dot_local parallel: Error: Cannot change into non-executable dir /bi: No such file or directory par_wd_3dot_local /bin par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local OK par_wd_3dot_local / par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local OK par_wd_3dot_local /tmp par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local OK par_wd_3dot_local ~/.parallel/tmp/hostname-0-0 par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local OK par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local OK par_wd_dotdotdot ### parallel --wd ... should clean up par_wd_dotdotdot 1 == 1 par_wd_dotdotdot ### $OLDPWD should be the dir in which parallel starts par_wd_dotdotdot /tmp foo par_xapply ### Test bug #43284: {%} and {#} with --xapply par_xapply a 1 1 b par_xapply 1 par_xapply ### bug #47501: --xapply for some input sources par_xapply a aa A AA par_xapply a aa B BB par_xapply b bb A AA par_xapply b bb B BB par_xapply c cc A AA par_xapply c cc B BB par_xargs_compat xargs compatibility par_xargs_compat ### Test -L -l and --max-lines par_xargs_compat a_b par_xargs_compat c par_xargs_compat a_b c par_xargs_compat a_b c par_xargs_compat ### xargs -L1 echo par_xargs_compat a_b par_xargs_compat c par_xargs_compat a_b par_xargs_compat c par_xargs_compat a_b par_xargs_compat c par_xargs_compat Lines ending in space should continue on next line par_xargs_compat ### xargs -L1 echo par_xargs_compat a_b c par_xargs_compat d par_xargs_compat a_b c par_xargs_compat d par_xargs_compat a_b c par_xargs_compat d par_xargs_compat ### xargs -L2 echo par_xargs_compat a_b c d par_xargs_compat e par_xargs_compat a_b c d par_xargs_compat e par_xargs_compat a_b c d par_xargs_compat e par_xargs_compat ### xargs -l echo par_xargs_compat a_b c par_xargs_compat d par_xargs_compat e par_xargs_compat a_b c par_xargs_compat d par_xargs_compat e par_xargs_compat a_b c par_xargs_compat d par_xargs_compat e par_xargs_compat ### xargs -l2 echo par_xargs_compat a_b c d par_xargs_compat e par_xargs_compat a_b c d par_xargs_compat e par_xargs_compat a_b c d par_xargs_compat e par_xargs_compat ### xargs -l1 echo par_xargs_compat a_b c par_xargs_compat d par_xargs_compat e par_xargs_compat a_b c par_xargs_compat d par_xargs_compat e par_xargs_compat a_b c par_xargs_compat d par_xargs_compat e par_xargs_compat ### xargs --max-lines=2 echo par_xargs_compat a_b c d par_xargs_compat e par_xargs_compat a_b c d par_xargs_compat e par_xargs_compat a_b c d par_xargs_compat e par_xargs_compat ### xargs --max-lines echo par_xargs_compat a_b c par_xargs_compat d par_xargs_compat e par_xargs_compat a_b c par_xargs_compat d par_xargs_compat e par_xargs_compat a_b c par_xargs_compat d par_xargs_compat e par_xargs_compat ### test too long args par_xargs_compat parallel: Error: Command line too long (1000005 >= 131049) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... par_xargs_compat xargs: argument line too long par_xargs_compat 1 2 par_xargs_compat 3 4 par_xargs_compat 5 6 par_xargs_compat 7 8 par_xargs_compat 9 10 par_xargs_compat parallel: Error: Command line too long (1000007 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... par_xargs_compat 1 2 par_xargs_compat 3 4 par_xargs_compat 5 6 par_xargs_compat 7 8 par_xargs_compat 9 10 par_xargs_compat xargs: argument line too long par_xargs_compat 1 2 par_xargs_compat 3 4 par_xargs_compat 5 6 par_xargs_compat 7 8 par_xargs_compat 9 10 par_xargs_compat parallel: Error: Command line too long (1000007 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... par_xargs_compat ### Test -x par_xargs_compat 1 2 par_xargs_compat 3 4 par_xargs_compat 5 6 par_xargs_compat 7 8 par_xargs_compat 9 10 par_xargs_compat parallel: Error: Command line too long (10 >= 10) at input 0: 12345 par_xargs_compat 1 2 par_xargs_compat 3 4 par_xargs_compat 5 6 par_xargs_compat 7 8 par_xargs_compat 9 10 par_xargs_compat parallel: Error: Command line too long (10 >= 10) at input 0: 12345 par_xargs_compat 1 2 par_xargs_compat 3 4 par_xargs_compat 5 6 par_xargs_compat 7 8 par_xargs_compat xargs: argument line too long par_xargs_compat 1 2 par_xargs_compat 12 par_xargs_compat 1234 par_xargs_compat 13 par_xargs_compat 14 par_xargs_compat 15 par_xargs_compat 3 4 par_xargs_compat 5 6 par_xargs_compat 7 8 par_xargs_compat 9 10 par_xargs_compat 1 2 par_xargs_compat 12 par_xargs_compat 1234 par_xargs_compat 13 par_xargs_compat 14 par_xargs_compat 15 par_xargs_compat 3 4 par_xargs_compat 5 6 par_xargs_compat 7 8 par_xargs_compat 9 10 par_xargs_compat 1 2 par_xargs_compat 12 par_xargs_compat 1234 par_xargs_compat 13 par_xargs_compat 14 par_xargs_compat 15 par_xargs_compat 3 4 par_xargs_compat 5 6 par_xargs_compat 7 8 par_xargs_compat 9 10