par_bin ### Test --bin par_bin 2 2 4 par_bin 2 2 4 par_bin 3 3 6 par_bin 3 3 7 par_bin 2 4 8 par_bin 2 4 8 par_bin 3 6 13 par_bin 3 6 13 par_bin ### Test --bin with expression that gives 1..n par_bin 0 0 0 par_bin 0 0 0 par_bin 5 10 21 par_bin 5 10 21 par_bin ### Test --bin with expression that gives 0..n-1 par_bin 0 0 0 par_bin 0 0 0 par_bin 5 10 21 par_bin 5 10 21 par_children_receive_sig ### Do children receive --termseq signals par_children_receive_sig parallel: Warning: This job was killed because it timed out: par_children_receive_sig parallel: Warning: show_signals '' par_children_receive_sig Got TERM par_children_receive_sig Got TERM par_children_receive_sig Got TERM par_children_receive_sig parallel: Warning: This job was killed because it timed out: par_children_receive_sig parallel: Warning: show_signals '' par_children_receive_sig Got INT par_children_receive_sig Got TERM par_commandline_with_newline bug #51299: --retry-failed with command with newline par_commandline_with_newline The format must remain the same par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" a par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" b par_commandline_with_newline Seq Host Starttime JobRuntime Send Receive Exitval Signal Command par_commandline_with_newline resume par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" a par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" b par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" c par_commandline_with_newline Seq Host Starttime JobRuntime Send Receive Exitval Signal Command par_commandline_with_newline resume-failed par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" a par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" b par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" c par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" d par_commandline_with_newline Seq Host Starttime JobRuntime Send Receive Exitval Signal Command par_commandline_with_newline retry-failed par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" a par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" b par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" c par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" d par_commandline_with_newline . : ... ... . . . . false "commandwithnewlines" e par_commandline_with_newline Seq Host Starttime JobRuntime Send Receive Exitval Signal Command par_delay_human_readable a par_delay_human_readable b par_delay_human_readable c par_delay_human_readable a par_delay_human_readable b par_delay_human_readable c 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_do_not_export_PARALLEL_ENV ### Do not export $PARALLEL_ENV to children par_do_not_export_PARALLEL_ENV Should be 0 par_do_not_export_PARALLEL_ENV 1 0 1 par_do_not_export_PARALLEL_ENV Should give 60k and not overflow par_do_not_export_PARALLEL_ENV 1 1 60001 par_dryrun_timeout_ungroup bug #51039: --dry-run --timeout 1.4m -u breaks par_dryrun_timeout_ungroup 1000 2000 8893 par_exitval_signal ### Test --joblog with exitval and Test --joblog with signal -- timing dependent par_exitval_signal exitval=128+6 OK par_exitval_signal signal OK 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_kill_int_twice ### Are children killed if GNU Parallel receives INT twice? There should be no sleep at the end par_kill_int_twice bash-+-perl---bash---sleep par_kill_int_twice `-pstree par_kill_int_twice bash---pstree par_kill_term ### Are children killed if GNU Parallel receives TERM? There should be no sleep at the end par_kill_term bash-+-perl---bash---sleep par_kill_term `-pstree par_kill_term bash---pstree par_lb_mem_usage 1 par_lb_mem_usage 1 par_lb_mem_usage 2 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_multiline_commands bug #50781: joblog format with multiline commands par_multiline_commands 1 par_multiline_commands finish 1 par_multiline_commands 2 par_multiline_commands finish 2 par_multiline_commands parallel: Warning: This job was killed because it timed out: par_multiline_commands parallel: Warning: sleep 4; echo 4; par_multiline_commands echo finish 4 par_multiline_commands parallel: Warning: Command lines contain newline. Forcing --null. par_multiline_commands 4 par_multiline_commands finish 4 par_pipepart_block ### --pipepart --block -# (# < 0) par_pipepart_block 1 par_pipepart_block 2 par_pipepart_block 3 par_pipepart_block 4 par_pipepart_block 5 par_pipepart_block 6 par_pipepart_block 7 par_pipepart_block 8 par_pipepart_block 9 par_pipepart_block 10 par_pipepart_block 11 par_pipepart_block 12 par_pipepart_block 13 par_pipepart_block 14 par_pipepart_block 15 par_pipepart_block 16 par_pipepart_block 17 par_pipepart_block 18 par_pipepart_block 19 par_pipepart_block 20 par_pipepart_block 1-2 par_pipepart_block 2-2 par_pipepart_block 1-4 par_pipepart_block 2-4 par_pipepart_block 3-4 par_pipepart_block 4-4 par_pipepart_block 1-20 par_pipepart_block 2-20 par_pipepart_block 3-20 par_pipepart_block 4-20 par_pipepart_block 5-20 par_pipepart_block 6-20 par_pipepart_block 7-20 par_pipepart_block 8-20 par_pipepart_block 9-20 par_pipepart_block 10-20 par_pipepart_block 11-20 par_pipepart_block 12-20 par_pipepart_block 13-20 par_pipepart_block 14-20 par_pipepart_block 15-20 par_pipepart_block 16-20 par_pipepart_block 17-20 par_pipepart_block 18-20 par_pipepart_block 19-20 par_pipepart_block 20-20 par_resume_k ### --resume -k par_resume_k job0id par_resume_k job1id par_resume_k job2id par_resume_k job3id par_resume_k job0id par_resume_k job5id par_resume_k try 2 = nothing par_resume_k two extra par_resume_k job6id par_resume_k job7id 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 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 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 2 c1 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 2 c2 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 2 c1 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 2 c2 par_shard *** broken par_shard parallel: Error: --shard requires --jobs to be higher than the number of par_shard parallel: Error: arguments. Increase --jobs. par_shard parallel: Error: --shard requires --jobs to be higher than the number of par_shard parallel: Error: arguments. Increase --jobs. par_slow_args_generation ### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834 par_slow_args_generation 1 par_slow_args_generation 2 par_slow_args_generation 3 par_sqlandworker_uninstalled_dbd bug #56096: dbi-csv no such column par_sqlandworker_uninstalled_dbd parallel: Error: CSV not supported. Are you missing a perl DBD::CSV module? par_sqlandworker_uninstalled_dbd works par_sqlworker_hostname bug #50901: --sqlworker should use hostname in the joblog instead of : par_sqlworker_hostname 1 par_sqlworker_hostname 2 par_sqlworker_hostname 3 par_sqlworker_hostname host par_sqlworker_hostname par_sqlworker_hostname par_sqlworker_hostname par_tee_with_premature_close --tee --pipe should send all data to all commands par_tee_with_premature_close even if a command closes stdin before reading everything par_tee_with_premature_close tee with --output-error=warn-nopipe support par_tee_with_premature_close 1000000 1000000 6888896 par_tee_with_premature_close 1 par_tee_with_premature_close 2 par_tee_with_premature_close 3 par_tee_with_premature_close 4 par_tee_with_premature_close 5 par_tee_with_premature_close 6 par_tee_with_premature_close 7 par_tee_with_premature_close 8 par_tee_with_premature_close 9 par_tee_with_premature_close 10 par_tee_with_premature_close 999991 par_tee_with_premature_close 999992 par_tee_with_premature_close 999993 par_tee_with_premature_close 999994 par_tee_with_premature_close 999995 par_tee_with_premature_close 999996 par_tee_with_premature_close 999997 par_tee_with_premature_close 999998 par_tee_with_premature_close 999999 par_tee_with_premature_close 1000000 par_tee_with_premature_close tee without --output-error=warn-nopipe support par_tee_with_premature_close OK 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_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_wrong_slot_rpl_resume ### bug #47644: Wrong slot number replacement when resuming par_wrong_slot_rpl_resume 1 0 par_wrong_slot_rpl_resume 2 1 par_wrong_slot_rpl_resume 3 2 par_wrong_slot_rpl_resume 4 3 par_wrong_slot_rpl_resume 1 4 par_wrong_slot_rpl_resume 2 5 par_wrong_slot_rpl_resume 3 6 par_wrong_slot_rpl_resume 4 7 par_wrong_slot_rpl_resume 1 8 par_wrong_slot_rpl_resume 2 9 par_wrong_slot_rpl_resume 3 10 par_wrong_slot_rpl_resume 4 11 par_wrong_slot_rpl_resume 1 12 par_wrong_slot_rpl_resume 2 13 par_wrong_slot_rpl_resume 3 14 par_wrong_slot_rpl_resume 4 15 par_wrong_slot_rpl_resume 1 16 par_wrong_slot_rpl_resume 2 17 par_wrong_slot_rpl_resume 3 18 par_wrong_slot_rpl_resume 4 19 par_wrong_slot_rpl_resume 1 20