Fixed bug #60221: --results foo.json fails.

Fixed --controlmaster.
This commit is contained in:
Ole Tange 2022-03-09 23:03:26 +01:00
parent 4c187c7729
commit 7f73c0fb2c
18 changed files with 505 additions and 446 deletions

5
README
View file

@ -125,9 +125,8 @@ publication please cite:
Tange, O. (2022, February 22). GNU Parallel 20220222 ('Donetsk Luhansk'). Tange, O. (2022, February 22). GNU Parallel 20220222 ('Donetsk Luhansk').
Zenodo. https://doi.org/10.5281/zenodo.6213471 Zenodo. https://doi.org/10.5281/zenodo.6213471
Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free
2016, 2017, 2018, 2019, 2020, 2021 Ole Tange, http://ole.tange.dk and Software Foundation, Inc.
Free Software Foundation, Inc.
= New versions = = New versions =

View file

@ -266,6 +266,8 @@ Quote of the month:
New in this release: New in this release:
* --sshlogin user:password@host is now supported by using sshpass.
<<>> <<>>
* Bug fixes and man page updates: Many options now have a 'See also' section. * Bug fixes and man page updates: Many options now have a 'See also' section.

View file

@ -2790,7 +2790,7 @@ sub open_json_csv() {
::die_bug("Can't >/dev/null in csv: $!"); ::die_bug("Can't >/dev/null in csv: $!");
$Global::fh{1} = $fd; $Global::fh{1} = $fd;
$Global::fh{2} = $fd; $Global::fh{2} = $fd;
} elsif($Global::csvsep) { } elsif($Global::csvsep or $Global::jsonout) {
if(not open($Global::csv_fh,">",$opt::results)) { if(not open($Global::csv_fh,">",$opt::results)) {
::error("Cannot open results file `$opt::results': ". ::error("Cannot open results file `$opt::results': ".
"$!."); "$!.");
@ -3545,7 +3545,7 @@ sub init_run_jobs() {
next; next;
} }
if($sshlogin->too_fast_remote_login()) { if($sshlogin->too_fast_remote_login()) {
# It has been too short since # It has been too short since last login
next; next;
} }
debug("run", $sshlogin->string(), debug("run", $sshlogin->string(),
@ -6473,7 +6473,13 @@ sub new($$) {
if($s =~ s/([^@]+)@//) { if($s =~ s/([^@]+)@//) {
my $userpw = $1; my $userpw = $1;
# user[:pass] # user[:pass]
if($userpw =~ s/:(.*)//) { $password = $1; } if($userpw =~ s/:(.*)//) {
$password = $1;
if(not ::which("sshpass")) {
::error("--sshlogin with password requires sshpass installed");
::wait_and_exit(255);
}
}
$user = $userpw; $user = $userpw;
} }
@ -6499,7 +6505,6 @@ sub new($$) {
} else { } else {
$sshcommand ||= $opt::ssh || $ENV{'PARALLEL_SSH'} || "ssh"; $sshcommand ||= $opt::ssh || $ENV{'PARALLEL_SSH'} || "ssh";
} }
# An SSHLogin is always in the hostgroup of its $string-name # An SSHLogin is always in the hostgroup of its $string-name
$hostgroups{$string} = 1; $hostgroups{$string} = 1;
@Global::hostgroups{keys %hostgroups} = values %hostgroups; @Global::hostgroups{keys %hostgroups} = values %hostgroups;
@ -6566,6 +6571,32 @@ sub sshcmd($) {
if($self->{'port'}) { push @local, '-p',$self->{'port'}; } if($self->{'port'}) { push @local, '-p',$self->{'port'}; }
# [-l user] # [-l user]
if($self->{'user'}) { push @local, '-l',$self->{'user'}; } if($self->{'user'}) { push @local, '-l',$self->{'user'}; }
if($opt::controlmaster) {
# Use control_path to make ssh faster
my $control_path = $self->control_path_dir()."/ssh-%r@%h:%p";
push @local, "-S", $control_path;
if(not $self->{'control_path'}{$control_path}++) {
# Master is not running for this control_path
# Start it
my $pid = fork();
if($pid) {
$Global::sshmaster{$pid} ||= 1;
} else {
$SIG{'TERM'} = undef;
# Run a sleep that outputs data, so it will discover
# if the ssh connection closes.
my $sleep = ::Q('$|=1;while(1){sleep 1;print "foo\n"}');
# Ignore the 'foo' being printed
open(STDOUT,">","/dev/null");
# STDERR >/dev/null to ignore
open(STDERR,">","/dev/null");
open(STDIN,"<","/dev/null");
exec(@local, "-MT", $self->{'host'}, "--",
"perl", "-e", $sleep);
}
}
}
return "@local"; return "@local";
} }
@ -8615,7 +8646,7 @@ sub openoutputfiles($) {
} }
# Return immediately because we do not need setting filenames # Return immediately because we do not need setting filenames
return; return;
} elsif($opt::results and not $Global::csvsep) { } elsif($opt::results and not $Global::csvsep and not $Global::jsonout) {
# If --results, but not --results *.csv/*.tsv # If --results, but not --results *.csv/*.tsv
my $out = $self->{'commandline'}->results_out(); my $out = $self->{'commandline'}->results_out();
my $seqname; my $seqname;
@ -10579,10 +10610,9 @@ sub print($) {
$self->starttime(), sprintf("%0.3f",$self->runtime()), $self->starttime(), sprintf("%0.3f",$self->runtime()),
$self->transfersize(), $self->returnsize(), $self->transfersize(), $self->returnsize(),
$self->exitstatus(), $self->exitsignal(), $cmd, $self->exitstatus(), $self->exitsignal(), $cmd,
# \@$record_ref[1..$#$record_ref],
(join ",", (join ",",
map { '"'.jsonquote($_).'"' } @$record_ref[1..$#$record_ref], map { '"'.jsonquote($_).'"' } @$record_ref[1..$#$record_ref],
), ),
jsonquote($self->{'output'}{1}), jsonquote($self->{'output'}{1}),
jsonquote($self->{'output'}{2}) jsonquote($self->{'output'}{2})
); );

View file

@ -3313,10 +3313,12 @@ See also: B<--no-run-if-empty> B<{}> B<--colsep>
=item B<-u> =item B<-u>
Ungroup output. Output is printed as soon as possible and bypasses Ungroup output.
GNU B<parallel> internal processing. This may cause output from
different commands to be mixed thus should only be used if you do not Output is printed as soon as possible and bypasses GNU B<parallel>
care about the output. Compare these: internal processing. This may cause output from different commands to
be mixed thus should only be used if you do not care about the
output. Compare these:
seq 4 | parallel -j0 \ seq 4 | parallel -j0 \
'sleep {};echo -n start{};sleep {};echo {}end' 'sleep {};echo -n start{};sleep {};echo {}end'

View file

@ -855,6 +855,17 @@ par_results() {
rm -r $tmp "$tmp"-dir rm -r $tmp "$tmp"-dir
} }
par_results_json() {
echo "### --results test.json"
tmp=$(mktemp -d)
parallel -k --results "$tmp"/foo.json seq ::: 2 3 ::: 4 5
cat "$tmp"/foo.json | perl -pe 's/\d+\.\d{3}/9.999/g'
rm -r $tmp
parallel -k --results -.json seq ::: 2 3 ::: 4 5 |
perl -pe 's/\d+\.\d{3}/9.999/g'
}
par_testquote() { par_testquote() {
testquote() { testquote() {
printf '"#&/\n()*=?'"'" | printf '"#&/\n()*=?'"'" |

View file

@ -20,6 +20,41 @@ par_load_blocks() {
grep -Ev 'processes took|Consider adjusting -j' grep -Ev 'processes took|Consider adjusting -j'
} }
par_round_robin_blocks() {
echo "bug #49664: --round-robin does not complete"
seq 20000000 | parallel -j8 --block 10M --round-robin --pipe wc -c | wc -l
}
par_test_diff_roundrobin_k() {
echo '### test there is difference on -k'
. $(which env_parallel.bash)
mytest() {
K=$1
doit() {
# Sleep random time ever 1k line
# to mix up which process gets the next block
perl -ne '$t++ % 1000 or select(undef, undef, undef, rand()/10);print' |
md5sum
}
export -f doit
seq 1000000 |
parallel --block 65K --pipe $K --roundrobin doit |
sort
}
export -f mytest
parset a,b,c mytest ::: -k -k ''
# a == b and a != c or error
if [ "$a" == "$b" ]; then
if [ "$a" != "$c" ]; then
echo OK
else
echo error a c
fi
else
echo error a b
fi
}
par_compress_prg_fails() { par_compress_prg_fails() {
echo '### bug #44546: If --compress-program fails: fail' echo '### bug #44546: If --compress-program fails: fail'
doit() { doit() {

View file

@ -8,6 +8,40 @@
# Each should be taking 1-3s and be possible to run in parallel # Each should be taking 1-3s and be possible to run in parallel
# I.e.: No race conditions, no logins # I.e.: No race conditions, no logins
par_commandline_with_newline() {
echo 'bug #51299: --retry-failed with command with newline'
echo 'The format must remain the same'
(
parallel --jl - 'false "command
with
newlines"' ::: a b | sort
echo resume
parallel --resume --jl - 'false "command
with
newlines"' ::: a b c | sort
echo resume-failed
parallel --resume-failed --jl - 'false "command
with
newlines"' ::: a b c d | sort
echo retry-failed
parallel --retry-failed --jl - 'false "command
with
newlines"' ::: a b c d e | sort
) | perl -pe 's/\0/<null>/g;s/\d+/./g'
}
par_compute_command_len() {
echo "### Computing length of command line"
seq 1 2 | parallel -k -N2 echo {1} {2}
parallel --xapply -k -a <(seq 11 12) -a <(seq 1 3) echo
parallel -k -C %+ echo '"{1}_{3}_{2}_{4}"' ::: 'a% c %%b' 'a%c% b %d'
parallel -k -C %+ echo {4} ::: 'a% c %%b'
}
par_skip_first_line() { par_skip_first_line() {
tmpdir=$(mktemp) tmpdir=$(mktemp)
(echo `seq 10000`;echo MyHeader; seq 10) | (echo `seq 10000`;echo MyHeader; seq 10) |
@ -29,14 +63,6 @@ par_long_input() {
parallel --colsep '\t' echo {-5} {-3//} {-2/.} '{=-1 s/.*\.// =}' parallel --colsep '\t' echo {-5} {-3//} {-2/.} '{=-1 s/.*\.// =}'
} }
par_plus_slot_replacement() {
echo '### show {slot} {0%} {0#}'
parallel -k --plus 'sleep 0.{%};echo {slot}=$PARALLEL_JOBSLOT={%}' ::: A B C
parallel -j15 -k --plus 'echo Seq: {0#} {#}' ::: {1..100} | sort
parallel -j15 -k --plus 'sleep 0.{}; echo Slot: {0%} {%}' ::: {1..100} |
sort -u
}
par_recend_recstart_hash() { par_recend_recstart_hash() {
echo "### bug #59843: --regexp --recstart '#' fails" echo "### bug #59843: --regexp --recstart '#' fails"
(echo '#rec1'; echo 'bar'; echo '#rec2') | (echo '#rec1'; echo 'bar'; echo '#rec2') |
@ -50,7 +76,7 @@ par_recend_recstart_hash() {
} }
par_sqlandworker_uninstalled_dbd() { par_sqlandworker_uninstalled_dbd() {
echo 'bug #56096: dbi-csv no such column' echo '### bug #56096: dbi-csv no such column'
mkdir -p /tmp/parallel-bug-56096 mkdir -p /tmp/parallel-bug-56096
sudo mv /usr/share/perl5/DBD/CSV.pm /usr/share/perl5/DBD/CSV.pm.gone sudo mv /usr/share/perl5/DBD/CSV.pm /usr/share/perl5/DBD/CSV.pm.gone
parallel --sqlandworker csv:///%2Ftmp%2Fparallel-bug-56096/mytable echo ::: must_fail parallel --sqlandworker csv:///%2Ftmp%2Fparallel-bug-56096/mytable echo ::: must_fail
@ -58,6 +84,14 @@ par_sqlandworker_uninstalled_dbd() {
parallel --sqlandworker csv:///%2Ftmp%2Fparallel-bug-56096/mytable echo ::: works parallel --sqlandworker csv:///%2Ftmp%2Fparallel-bug-56096/mytable echo ::: works
} }
par_uninstalled_sshpass() {
echo '### sshpass must be installed for --sshlogin user:pass@host'
sshpass=$(command -v sshpass)
sudo mv "$sshpass" "$sshpass".hidden
parallel -S user:pass@host echo ::: must fail
sudo mv "$sshpass".hidden "$sshpass"
}
par_results_compress() { par_results_compress() {
tmpdir=$(mktemp) tmpdir=$(mktemp)
rm -r "$tmpdir" rm -r "$tmpdir"

View file

@ -25,7 +25,7 @@ par_bin() {
parallel --pipe --colsep '\t' --bin 2 wc | sort parallel --pipe --colsep '\t' --bin 2 wc | sort
} }
par_shard_a() { par_shard() {
echo '### --shard' echo '### --shard'
# Each of the 5 lines should match: # Each of the 5 lines should match:
# ##### ##### ###### # ##### ##### ######
@ -40,9 +40,7 @@ par_shard_a() {
} }
shard_on_col 1 shard_on_col 1
shard_on_col 2 shard_on_col 2
}
par_shard_b() {
echo '### --shard' echo '### --shard'
shard_on_col_name() { shard_on_col_name() {
colname=$1 colname=$1
@ -53,9 +51,7 @@ par_shard_b() {
} }
shard_on_col_name A 1 shard_on_col_name A 1
shard_on_col_name B 2 shard_on_col_name B 2
}
par_shard_c() {
echo '### --shard' echo '### --shard'
shard_on_col_expr() { shard_on_col_expr() {
colexpr="$1" colexpr="$1"
@ -66,9 +62,7 @@ par_shard_c() {
} }
shard_on_col_expr '1 $_%=3' 1 shard_on_col_expr '1 $_%=3' 1
shard_on_col_expr '2 $_%=3' 2 shard_on_col_expr '2 $_%=3' 2
}
par_shard_d() {
shard_on_col_name_expr() { shard_on_col_name_expr() {
colexpr="$1" colexpr="$1"
col=$2 col=$2
@ -88,36 +82,6 @@ par_shard_d() {
perl -pe 's/(.*\d{5,}){3}/OK/' perl -pe 's/(.*\d{5,}){3}/OK/'
} }
par_test_diff_roundrobin_k() {
echo '### test there is difference on -k'
. $(which env_parallel.bash)
mytest() {
K=$1
doit() {
# Sleep random time ever 1k line
# to mix up which process gets the next block
perl -ne '$t++ % 1000 or select(undef, undef, undef, rand()/10);print' |
md5sum
}
export -f doit
seq 1000000 |
parallel --block 65K --pipe $K --roundrobin doit |
sort
}
export -f mytest
parset a,b,c mytest ::: -k -k ''
# a == b and a != c or error
if [ "$a" == "$b" ]; then
if [ "$a" != "$c" ]; then
echo OK
else
echo error a c
fi
else
echo error a b
fi
}
par_load_from_PARALLEL() { par_load_from_PARALLEL() {
echo "### Test reading load from PARALLEL" echo "### Test reading load from PARALLEL"
export PARALLEL="--load 300%" export PARALLEL="--load 300%"
@ -468,11 +432,6 @@ par_max_length_len_128k() {
) | perl -pe 's/(\d\d+)\d\d\d/${1}xxx/g' ) | perl -pe 's/(\d\d+)\d\d\d/${1}xxx/g'
} }
par_round_robin_blocks() {
echo "bug #49664: --round-robin does not complete"
seq 20000000 | parallel -j8 --block 10M --round-robin --pipe wc -c | wc -l
}
par_plus_dyn_repl() { par_plus_dyn_repl() {
echo "Dynamic replacement strings defined by --plus" echo "Dynamic replacement strings defined by --plus"

View file

@ -232,12 +232,12 @@ par_sshdelay() {
perl -ne 'print($_ > 1.30 ? "OK\n" : "Not OK\n")' perl -ne 'print($_ > 1.30 ? "OK\n" : "Not OK\n")'
} }
par_compute_command_len() { par_plus_slot_replacement() {
echo "### Computing length of command line" echo '### show {slot} {0%} {0#}'
seq 1 2 | parallel -k -N2 echo {1} {2} parallel -k --plus 'sleep 0.{%};echo {slot}=$PARALLEL_JOBSLOT={%}' ::: A B C
parallel --xapply -k -a <(seq 11 12) -a <(seq 1 3) echo parallel -j15 -k --plus 'echo Seq: {0#} {#}' ::: {1..100} | sort
parallel -k -C %+ echo '"{1}_{3}_{2}_{4}"' ::: 'a% c %%b' 'a%c% b %d' parallel -j15 -k --plus 'sleep 0.{}; echo Slot: {0%} {%}' ::: {1..100} |
parallel -k -C %+ echo {4} ::: 'a% c %%b' sort -u
} }
par_replacement_slashslash() { par_replacement_slashslash() {
@ -468,31 +468,6 @@ par_sqlworker_hostname() {
perl -pe "s/$hostname/<hostname>/g" perl -pe "s/$hostname/<hostname>/g"
} }
par_commandline_with_newline() {
echo 'bug #51299: --retry-failed with command with newline'
echo 'The format must remain the same'
(
parallel --jl - 'false "command
with
newlines"' ::: a b | sort
echo resume
parallel --resume --jl - 'false "command
with
newlines"' ::: a b c | sort
echo resume-failed
parallel --resume-failed --jl - 'false "command
with
newlines"' ::: a b c d | sort
echo retry-failed
parallel --retry-failed --jl - 'false "command
with
newlines"' ::: a b c d e | sort
) | perl -pe 's/\0/<null>/g;s/\d+/./g'
}
par_delay_human_readable() { par_delay_human_readable() {
# Test that you can use d h m s in --delay # Test that you can use d h m s in --delay
parallel --delay 0.1s echo ::: a b c parallel --delay 0.1s echo ::: a b c

View file

@ -160,8 +160,6 @@ par_big_var_func_name() {
perl -pe 's/\d{10,}.\d+ //g' perl -pe 's/\d{10,}.\d+ //g'
} }
#macsshlogin=ota@mac
#macsshlogin=macosx.p
macsshlogin=$(parallel --halt now,success=1 ssh {} echo {} ::: ota@mac macosx.p) macsshlogin=$(parallel --halt now,success=1 ssh {} echo {} ::: ota@mac macosx.p)
scp /usr/local/bin/parallel $macsshlogin:bin/ scp /usr/local/bin/parallel $macsshlogin:bin/
@ -171,4 +169,5 @@ export -f $(compgen -A function | grep par_)
compgen -A function | compgen -A function |
grep par_ | grep par_ |
LC_ALL=C sort | LC_ALL=C sort |
env_parallel --timeout 3000% --tag -k -S 6/$macsshlogin 'PATH=$HOME/bin:$PATH; {}' env_parallel --timeout 3000% --tag -k -S 6/$macsshlogin 'PATH=$HOME/bin:$PATH; {}' |
perl -pe 's/(\d+)\d\d\d/${1}XXX/g'

View file

@ -50,9 +50,10 @@ par_filter_hosts_no_ssh_nxserver() {
par_controlmaster_is_faster() { par_controlmaster_is_faster() {
echo '### bug #41964: --controlmaster not seems to reuse OpenSSH connections to the same host' echo '### bug #41964: --controlmaster not seems to reuse OpenSSH connections to the same host'
echo '-M should finish first - eventhough there are 2x jobs'
(parallel -S $SSHLOGIN1 true ::: {1..20}; (parallel -S $SSHLOGIN1 true ::: {1..20};
echo No --controlmaster - finish last) & echo No --controlmaster - finish last) &
(parallel -M -S $SSHLOGIN1 true ::: {1..20}; (parallel -M -S $SSHLOGIN1 true ::: {1..40};
echo With --controlmaster - finish first) & echo With --controlmaster - finish first) &
wait wait
} }

View file

@ -902,6 +902,15 @@ par_results c
par_results_arg_256 ### bug #42089: --results with arg > 256 chars (should be 1 char shorter) par_results_arg_256 ### bug #42089: --results with arg > 256 chars (should be 1 char shorter)
par_results_arg_256 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 par_results_arg_256 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
par_results_arg_256 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 par_results_arg_256 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345
par_results_json ### --results test.json
par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": "" }
par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": "" }
par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": "" }
par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": "" }
par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": "" }
par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": "" }
par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": "" }
par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": "" }
par_resume_k ### --resume -k par_resume_k ### --resume -k
par_resume_k job0id par_resume_k job0id
par_resume_k job1id par_resume_k job1id

View file

@ -901,6 +901,8 @@ par_retries_all_fail 5
par_retries_all_fail 6 par_retries_all_fail 6
par_retries_all_fail 7 par_retries_all_fail 7
par_retries_all_fail 8 par_retries_all_fail 8
par_round_robin_blocks bug #49664: --round-robin does not complete
par_round_robin_blocks 8
par_sem_2jobs ### Test semaphore 2 jobs running simultaneously par_sem_2jobs ### Test semaphore 2 jobs running simultaneously
par_sem_2jobs job1a 1 par_sem_2jobs job1a 1
par_sem_2jobs job2a 2 par_sem_2jobs job2a 2
@ -967,6 +969,8 @@ par_sockets_cores_threads ### Test --use-sockets-instead-of-threads
par_sockets_cores_threads threads done par_sockets_cores_threads threads done
par_sockets_cores_threads sockets done par_sockets_cores_threads sockets done
par_sockets_cores_threads Threads should complete first on machines with less than 8 sockets par_sockets_cores_threads Threads should complete first on machines with less than 8 sockets
par_test_diff_roundrobin_k ### test there is difference on -k
par_test_diff_roundrobin_k OK
par_tmp_full ### Test --tmpdir running full. bug #40733 was caused by this par_tmp_full ### Test --tmpdir running full. bug #40733 was caused by this
par_tmp_full parallel: Error: Output is incomplete. par_tmp_full parallel: Error: Output is incomplete.
par_tmp_full parallel: Error: Cannot append to buffer file in /tmp/shm/parallel. par_tmp_full parallel: Error: Cannot append to buffer file in /tmp/shm/parallel.

View file

@ -86,6 +86,37 @@ par_bug37042 ### Bug introduce by fixing bug #37042
par_bug37042 abc par_bug37042 abc
par_bug43654 bug #43654: --bar with command not using {} - only last output line par_bug43654 bug #43654: --bar with command not using {} - only last output line
par_bug43654 par_bug43654 100% 1:0=0s 1  par_bug43654 par_bug43654 100% 1:0=0s 1 
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 "command<null>with<null>newlines" a
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" b
par_commandline_with_newline Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_commandline_with_newline resume
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" a
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" b
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" 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 "command<null>with<null>newlines" a
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" b
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" c
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" 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 "command<null>with<null>newlines" a
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" b
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" c
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" d
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" e
par_commandline_with_newline Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_compute_command_len ### Computing length of command line
par_compute_command_len 1 2
par_compute_command_len 11 1
par_compute_command_len 12 2
par_compute_command_len 11 3
par_compute_command_len a_b_c_
par_compute_command_len a_b_c_d
par_compute_command_len
par_empty_string_command_line ### Test of ignore-empty string on ::: par_empty_string_command_line ### Test of ignore-empty string on :::
par_empty_string_command_line foo par_empty_string_command_line foo
par_empty_string_command_line ole par_empty_string_command_line ole
@ -377,125 +408,6 @@ par_pipepart_block 17-20
par_pipepart_block 18-20 par_pipepart_block 18-20
par_pipepart_block 19-20 par_pipepart_block 19-20
par_pipepart_block 20-20 par_pipepart_block 20-20
par_plus_slot_replacement ### show {slot} {0%} {0#}
par_plus_slot_replacement 1=1=1
par_plus_slot_replacement 2=2=2
par_plus_slot_replacement 3=3=3
par_plus_slot_replacement Seq: 001 1
par_plus_slot_replacement Seq: 002 2
par_plus_slot_replacement Seq: 003 3
par_plus_slot_replacement Seq: 004 4
par_plus_slot_replacement Seq: 005 5
par_plus_slot_replacement Seq: 006 6
par_plus_slot_replacement Seq: 007 7
par_plus_slot_replacement Seq: 008 8
par_plus_slot_replacement Seq: 009 9
par_plus_slot_replacement Seq: 010 10
par_plus_slot_replacement Seq: 011 11
par_plus_slot_replacement Seq: 012 12
par_plus_slot_replacement Seq: 013 13
par_plus_slot_replacement Seq: 014 14
par_plus_slot_replacement Seq: 015 15
par_plus_slot_replacement Seq: 016 16
par_plus_slot_replacement Seq: 017 17
par_plus_slot_replacement Seq: 018 18
par_plus_slot_replacement Seq: 019 19
par_plus_slot_replacement Seq: 020 20
par_plus_slot_replacement Seq: 021 21
par_plus_slot_replacement Seq: 022 22
par_plus_slot_replacement Seq: 023 23
par_plus_slot_replacement Seq: 024 24
par_plus_slot_replacement Seq: 025 25
par_plus_slot_replacement Seq: 026 26
par_plus_slot_replacement Seq: 027 27
par_plus_slot_replacement Seq: 028 28
par_plus_slot_replacement Seq: 029 29
par_plus_slot_replacement Seq: 030 30
par_plus_slot_replacement Seq: 031 31
par_plus_slot_replacement Seq: 032 32
par_plus_slot_replacement Seq: 033 33
par_plus_slot_replacement Seq: 034 34
par_plus_slot_replacement Seq: 035 35
par_plus_slot_replacement Seq: 036 36
par_plus_slot_replacement Seq: 037 37
par_plus_slot_replacement Seq: 038 38
par_plus_slot_replacement Seq: 039 39
par_plus_slot_replacement Seq: 040 40
par_plus_slot_replacement Seq: 041 41
par_plus_slot_replacement Seq: 042 42
par_plus_slot_replacement Seq: 043 43
par_plus_slot_replacement Seq: 044 44
par_plus_slot_replacement Seq: 045 45
par_plus_slot_replacement Seq: 046 46
par_plus_slot_replacement Seq: 047 47
par_plus_slot_replacement Seq: 048 48
par_plus_slot_replacement Seq: 049 49
par_plus_slot_replacement Seq: 050 50
par_plus_slot_replacement Seq: 051 51
par_plus_slot_replacement Seq: 052 52
par_plus_slot_replacement Seq: 053 53
par_plus_slot_replacement Seq: 054 54
par_plus_slot_replacement Seq: 055 55
par_plus_slot_replacement Seq: 056 56
par_plus_slot_replacement Seq: 057 57
par_plus_slot_replacement Seq: 058 58
par_plus_slot_replacement Seq: 059 59
par_plus_slot_replacement Seq: 060 60
par_plus_slot_replacement Seq: 061 61
par_plus_slot_replacement Seq: 062 62
par_plus_slot_replacement Seq: 063 63
par_plus_slot_replacement Seq: 064 64
par_plus_slot_replacement Seq: 065 65
par_plus_slot_replacement Seq: 066 66
par_plus_slot_replacement Seq: 067 67
par_plus_slot_replacement Seq: 068 68
par_plus_slot_replacement Seq: 069 69
par_plus_slot_replacement Seq: 070 70
par_plus_slot_replacement Seq: 071 71
par_plus_slot_replacement Seq: 072 72
par_plus_slot_replacement Seq: 073 73
par_plus_slot_replacement Seq: 074 74
par_plus_slot_replacement Seq: 075 75
par_plus_slot_replacement Seq: 076 76
par_plus_slot_replacement Seq: 077 77
par_plus_slot_replacement Seq: 078 78
par_plus_slot_replacement Seq: 079 79
par_plus_slot_replacement Seq: 080 80
par_plus_slot_replacement Seq: 081 81
par_plus_slot_replacement Seq: 082 82
par_plus_slot_replacement Seq: 083 83
par_plus_slot_replacement Seq: 084 84
par_plus_slot_replacement Seq: 085 85
par_plus_slot_replacement Seq: 086 86
par_plus_slot_replacement Seq: 087 87
par_plus_slot_replacement Seq: 088 88
par_plus_slot_replacement Seq: 089 89
par_plus_slot_replacement Seq: 090 90
par_plus_slot_replacement Seq: 091 91
par_plus_slot_replacement Seq: 092 92
par_plus_slot_replacement Seq: 093 93
par_plus_slot_replacement Seq: 094 94
par_plus_slot_replacement Seq: 095 95
par_plus_slot_replacement Seq: 096 96
par_plus_slot_replacement Seq: 097 97
par_plus_slot_replacement Seq: 098 98
par_plus_slot_replacement Seq: 099 99
par_plus_slot_replacement Seq: 100 100
par_plus_slot_replacement Slot: 01 1
par_plus_slot_replacement Slot: 02 2
par_plus_slot_replacement Slot: 03 3
par_plus_slot_replacement Slot: 04 4
par_plus_slot_replacement Slot: 05 5
par_plus_slot_replacement Slot: 06 6
par_plus_slot_replacement Slot: 07 7
par_plus_slot_replacement Slot: 08 8
par_plus_slot_replacement Slot: 09 9
par_plus_slot_replacement Slot: 10 10
par_plus_slot_replacement Slot: 11 11
par_plus_slot_replacement Slot: 12 12
par_plus_slot_replacement Slot: 13 13
par_plus_slot_replacement Slot: 14 14
par_plus_slot_replacement Slot: 15 15
par_profiles_with_space ### bug #42902: profiles containing arguments with space par_profiles_with_space ### bug #42902: profiles containing arguments with space
par_profiles_with_space /bin/bash=/bin/bash par_profiles_with_space /bin/bash=/bin/bash
par_profiles_with_space echo '/bin/bash=/bin/bash' par_profiles_with_space echo '/bin/bash=/bin/bash'
@ -894,7 +806,7 @@ par_sql_colsep b B 1 11 b B 2 22 b B 3 33
par_sql_colsep b B 4 44 b B 5 55 b B 6 66 par_sql_colsep b B 4 44 b B 5 55 b B 6 66
par_sql_colsep c C 1 11 c C 2 22 c C 3 33 par_sql_colsep c C 1 11 c C 2 22 c C 3 33
par_sql_colsep c C 4 44 c C 5 55 c C 6 66 par_sql_colsep c C 4 44 c C 5 55 c C 6 66
par_sqlandworker_uninstalled_dbd bug #56096: dbi-csv no such column 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 parallel: Error: CSV not supported. Are you missing a perl DBD::CSV module?
par_sqlandworker_uninstalled_dbd works par_sqlandworker_uninstalled_dbd works
par_test_E ### Test -E par_test_E ### Test -E
@ -1086,3 +998,5 @@ par_trailing_space_line_continuation ### Test of trailing space continuation wit
par_trailing_space_line_continuation foo ole par_trailing_space_line_continuation foo ole
par_trailing_space_line_continuation foo ole par_trailing_space_line_continuation foo ole
par_trailing_space_line_continuation foo ole par_trailing_space_line_continuation foo ole
par_uninstalled_sshpass ### sshpass must be installed for --sshlogin user:pass@host
par_uninstalled_sshpass parallel: Error: --sshlogin with password requires sshpass installed

View file

@ -1674,99 +1674,97 @@ par_race_condition1 7
par_race_condition1 8 par_race_condition1 8
par_race_condition1 9 par_race_condition1 9
par_race_condition1 10 par_race_condition1 10
par_round_robin_blocks bug #49664: --round-robin does not complete par_shard ### --shard
par_round_robin_blocks 8 par_shard OK
par_shard_a ### --shard par_shard OK
par_shard_a OK par_shard OK
par_shard_a OK par_shard OK
par_shard_a OK par_shard OK
par_shard_a OK par_shard 10 1
par_shard_a OK par_shard 10 2
par_shard_a 10 1 par_shard 10 3
par_shard_a 10 2 par_shard 10 4
par_shard_a 10 3 par_shard 10 5
par_shard_a 10 4 par_shard 10 6
par_shard_a 10 5 par_shard 10 7
par_shard_a 10 6 par_shard 10 8
par_shard_a 10 7 par_shard 10 9
par_shard_a 10 8 par_shard 9 0
par_shard_a 10 9 par_shard 9 1
par_shard_a 9 0 par_shard 9 2
par_shard_a 9 1 par_shard 9 3
par_shard_a 9 2 par_shard 9 4
par_shard_a 9 3 par_shard 9 5
par_shard_a 9 4 par_shard 9 6
par_shard_a 9 5 par_shard 9 7
par_shard_a 9 6 par_shard 9 8
par_shard_a 9 7 par_shard 9 9
par_shard_a 9 8 par_shard ### --shard
par_shard_a 9 9 par_shard 10 1
par_shard_b ### --shard par_shard 10 2
par_shard_b 10 1 par_shard 10 3
par_shard_b 10 2 par_shard 10 4
par_shard_b 10 3 par_shard 10 5
par_shard_b 10 4 par_shard 10 6
par_shard_b 10 5 par_shard 10 7
par_shard_b 10 6 par_shard 10 8
par_shard_b 10 7 par_shard 10 9
par_shard_b 10 8 par_shard 9 0
par_shard_b 10 9 par_shard 9 1
par_shard_b 9 0 par_shard 9 2
par_shard_b 9 1 par_shard 9 3
par_shard_b 9 2 par_shard 9 4
par_shard_b 9 3 par_shard 9 5
par_shard_b 9 4 par_shard 9 6
par_shard_b 9 5 par_shard 9 7
par_shard_b 9 6 par_shard 9 8
par_shard_b 9 7 par_shard 9 9
par_shard_b 9 8 par_shard ### --shard
par_shard_b 9 9 par_shard 10 1
par_shard_c ### --shard par_shard 10 2
par_shard_c 10 1 par_shard 10 3
par_shard_c 10 2 par_shard 10 4
par_shard_c 10 3 par_shard 10 5
par_shard_c 10 4 par_shard 10 6
par_shard_c 10 5 par_shard 10 7
par_shard_c 10 6 par_shard 10 8
par_shard_c 10 7 par_shard 10 9
par_shard_c 10 8 par_shard 2 c1
par_shard_c 10 9 par_shard 9 0
par_shard_c 2 c1 par_shard 9 1
par_shard_c 9 0 par_shard 9 2
par_shard_c 9 1 par_shard 9 3
par_shard_c 9 2 par_shard 9 4
par_shard_c 9 3 par_shard 9 5
par_shard_c 9 4 par_shard 9 6
par_shard_c 9 5 par_shard 9 7
par_shard_c 9 6 par_shard 9 8
par_shard_c 9 7 par_shard 9 9
par_shard_c 9 8 par_shard 2 c2
par_shard_c 9 9 par_shard 10 1
par_shard_c 2 c2 par_shard 10 2
par_shard_d 10 1 par_shard 10 3
par_shard_d 10 2 par_shard 10 4
par_shard_d 10 3 par_shard 10 5
par_shard_d 10 4 par_shard 10 6
par_shard_d 10 5 par_shard 10 7
par_shard_d 10 6 par_shard 10 8
par_shard_d 10 7 par_shard 10 9
par_shard_d 10 8 par_shard 2 c1
par_shard_d 10 9 par_shard 9 0
par_shard_d 2 c1 par_shard 9 1
par_shard_d 9 0 par_shard 9 2
par_shard_d 9 1 par_shard 9 3
par_shard_d 9 2 par_shard 9 4
par_shard_d 9 3 par_shard 9 5
par_shard_d 9 4 par_shard 9 6
par_shard_d 9 5 par_shard 9 7
par_shard_d 9 6 par_shard 9 8
par_shard_d 9 7 par_shard 9 9
par_shard_d 9 8 par_shard 2 c2
par_shard_d 9 9 par_shard *** broken
par_shard_d 2 c2 par_shard parallel: Error: --shard requires --jobs to be higher than the number of
par_shard_d *** broken par_shard parallel: Error: arguments. Increase --jobs.
par_shard_d parallel: Error: --shard requires --jobs to be higher than the number of
par_shard_d parallel: Error: arguments. Increase --jobs.
par_sighup ### Test SIGHUP par_sighup ### Test SIGHUP
par_sighup 1 par_sighup 1
par_sighup 10 par_sighup 10
@ -1845,5 +1843,3 @@ par_test_detected_shell test_known_shell_pipe static-sh Global::shell /usr/bin/s
par_test_detected_shell test_known_shell_pipe tcsh Global::shell /usr/bin/tcsh par_test_detected_shell test_known_shell_pipe tcsh Global::shell /usr/bin/tcsh
par_test_detected_shell test_known_shell_pipe yash Global::shell /usr/bin/yash par_test_detected_shell test_known_shell_pipe yash Global::shell /usr/bin/yash
par_test_detected_shell test_known_shell_pipe zsh Global::shell /usr/bin/zsh par_test_detected_shell test_known_shell_pipe zsh Global::shell /usr/bin/zsh
par_test_diff_roundrobin_k ### test there is difference on -k
par_test_diff_roundrobin_k OK

View file

@ -22,37 +22,6 @@ par_children_receive_sig parallel: Warning: This job was killed because it timed
par_children_receive_sig parallel: Warning: show_signals '' par_children_receive_sig parallel: Warning: show_signals ''
par_children_receive_sig Got INT par_children_receive_sig Got INT
par_children_receive_sig Got TERM 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 "command<null>with<null>newlines" a
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" b
par_commandline_with_newline Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_commandline_with_newline resume
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" a
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" b
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" 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 "command<null>with<null>newlines" a
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" b
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" c
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" 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 "command<null>with<null>newlines" a
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" b
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" c
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" d
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" e
par_commandline_with_newline Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_compute_command_len ### Computing length of command line
par_compute_command_len 1 2
par_compute_command_len 11 1
par_compute_command_len 12 2
par_compute_command_len 11 3
par_compute_command_len a_b_c_
par_compute_command_len a_b_c_d
par_compute_command_len
par_delay ### Test --delay par_delay ### Test --delay
par_delay More than 3.3 secs: OK par_delay More than 3.3 secs: OK
par_delay_halt_soon bug #59893: --halt soon doesn't work with --delay par_delay_halt_soon bug #59893: --halt soon doesn't work with --delay
@ -401,6 +370,125 @@ par_pipe_regexp_non_quoted Start
par_pipe_regexp_non_quoted Start this line is a false Start line par_pipe_regexp_non_quoted Start this line is a false Start line
par_pipe_regexp_non_quoted End this line is a false End line par_pipe_regexp_non_quoted End this line is a false End line
par_pipe_regexp_non_quoted End par_pipe_regexp_non_quoted End
par_plus_slot_replacement ### show {slot} {0%} {0#}
par_plus_slot_replacement 1=1=1
par_plus_slot_replacement 2=2=2
par_plus_slot_replacement 3=3=3
par_plus_slot_replacement Seq: 001 1
par_plus_slot_replacement Seq: 002 2
par_plus_slot_replacement Seq: 003 3
par_plus_slot_replacement Seq: 004 4
par_plus_slot_replacement Seq: 005 5
par_plus_slot_replacement Seq: 006 6
par_plus_slot_replacement Seq: 007 7
par_plus_slot_replacement Seq: 008 8
par_plus_slot_replacement Seq: 009 9
par_plus_slot_replacement Seq: 010 10
par_plus_slot_replacement Seq: 011 11
par_plus_slot_replacement Seq: 012 12
par_plus_slot_replacement Seq: 013 13
par_plus_slot_replacement Seq: 014 14
par_plus_slot_replacement Seq: 015 15
par_plus_slot_replacement Seq: 016 16
par_plus_slot_replacement Seq: 017 17
par_plus_slot_replacement Seq: 018 18
par_plus_slot_replacement Seq: 019 19
par_plus_slot_replacement Seq: 020 20
par_plus_slot_replacement Seq: 021 21
par_plus_slot_replacement Seq: 022 22
par_plus_slot_replacement Seq: 023 23
par_plus_slot_replacement Seq: 024 24
par_plus_slot_replacement Seq: 025 25
par_plus_slot_replacement Seq: 026 26
par_plus_slot_replacement Seq: 027 27
par_plus_slot_replacement Seq: 028 28
par_plus_slot_replacement Seq: 029 29
par_plus_slot_replacement Seq: 030 30
par_plus_slot_replacement Seq: 031 31
par_plus_slot_replacement Seq: 032 32
par_plus_slot_replacement Seq: 033 33
par_plus_slot_replacement Seq: 034 34
par_plus_slot_replacement Seq: 035 35
par_plus_slot_replacement Seq: 036 36
par_plus_slot_replacement Seq: 037 37
par_plus_slot_replacement Seq: 038 38
par_plus_slot_replacement Seq: 039 39
par_plus_slot_replacement Seq: 040 40
par_plus_slot_replacement Seq: 041 41
par_plus_slot_replacement Seq: 042 42
par_plus_slot_replacement Seq: 043 43
par_plus_slot_replacement Seq: 044 44
par_plus_slot_replacement Seq: 045 45
par_plus_slot_replacement Seq: 046 46
par_plus_slot_replacement Seq: 047 47
par_plus_slot_replacement Seq: 048 48
par_plus_slot_replacement Seq: 049 49
par_plus_slot_replacement Seq: 050 50
par_plus_slot_replacement Seq: 051 51
par_plus_slot_replacement Seq: 052 52
par_plus_slot_replacement Seq: 053 53
par_plus_slot_replacement Seq: 054 54
par_plus_slot_replacement Seq: 055 55
par_plus_slot_replacement Seq: 056 56
par_plus_slot_replacement Seq: 057 57
par_plus_slot_replacement Seq: 058 58
par_plus_slot_replacement Seq: 059 59
par_plus_slot_replacement Seq: 060 60
par_plus_slot_replacement Seq: 061 61
par_plus_slot_replacement Seq: 062 62
par_plus_slot_replacement Seq: 063 63
par_plus_slot_replacement Seq: 064 64
par_plus_slot_replacement Seq: 065 65
par_plus_slot_replacement Seq: 066 66
par_plus_slot_replacement Seq: 067 67
par_plus_slot_replacement Seq: 068 68
par_plus_slot_replacement Seq: 069 69
par_plus_slot_replacement Seq: 070 70
par_plus_slot_replacement Seq: 071 71
par_plus_slot_replacement Seq: 072 72
par_plus_slot_replacement Seq: 073 73
par_plus_slot_replacement Seq: 074 74
par_plus_slot_replacement Seq: 075 75
par_plus_slot_replacement Seq: 076 76
par_plus_slot_replacement Seq: 077 77
par_plus_slot_replacement Seq: 078 78
par_plus_slot_replacement Seq: 079 79
par_plus_slot_replacement Seq: 080 80
par_plus_slot_replacement Seq: 081 81
par_plus_slot_replacement Seq: 082 82
par_plus_slot_replacement Seq: 083 83
par_plus_slot_replacement Seq: 084 84
par_plus_slot_replacement Seq: 085 85
par_plus_slot_replacement Seq: 086 86
par_plus_slot_replacement Seq: 087 87
par_plus_slot_replacement Seq: 088 88
par_plus_slot_replacement Seq: 089 89
par_plus_slot_replacement Seq: 090 90
par_plus_slot_replacement Seq: 091 91
par_plus_slot_replacement Seq: 092 92
par_plus_slot_replacement Seq: 093 93
par_plus_slot_replacement Seq: 094 94
par_plus_slot_replacement Seq: 095 95
par_plus_slot_replacement Seq: 096 96
par_plus_slot_replacement Seq: 097 97
par_plus_slot_replacement Seq: 098 98
par_plus_slot_replacement Seq: 099 99
par_plus_slot_replacement Seq: 100 100
par_plus_slot_replacement Slot: 01 1
par_plus_slot_replacement Slot: 02 2
par_plus_slot_replacement Slot: 03 3
par_plus_slot_replacement Slot: 04 4
par_plus_slot_replacement Slot: 05 5
par_plus_slot_replacement Slot: 06 6
par_plus_slot_replacement Slot: 07 7
par_plus_slot_replacement Slot: 08 8
par_plus_slot_replacement Slot: 09 9
par_plus_slot_replacement Slot: 10 10
par_plus_slot_replacement Slot: 11 11
par_plus_slot_replacement Slot: 12 12
par_plus_slot_replacement Slot: 13 13
par_plus_slot_replacement Slot: 14 14
par_plus_slot_replacement Slot: 15 15
par_prefix_for_L_n_N_s Must give xxx000 args par_prefix_for_L_n_N_s Must give xxx000 args
par_prefix_for_L_n_N_s 1000 par_prefix_for_L_n_N_s 1000
par_prefix_for_L_n_N_s 1000 par_prefix_for_L_n_N_s 1000

View file

@ -1,100 +1,100 @@
par_big_func 1 3824 91776 par_big_func 1 3XXX 91XXX
par_big_func 1 3824 91776 par_big_func 1 3XXX 91XXX
par_big_func 1 3824 91776 par_big_func 1 3XXX 91XXX
par_big_func 1 1864 44676 par_big_func 1 1XXX 44XXX
par_big_func_name 1 820 19680 par_big_func_name 1 820 19XXX
par_big_func_name 1 820 19680 par_big_func_name 1 820 19XXX
par_big_func_name 1 820 19680 par_big_func_name 1 820 19XXX
par_big_func_name 1 820 19680 par_big_func_name 1 820 19XXX
par_big_func_name 1 820 19680 par_big_func_name 1 820 19XXX
par_big_func_name 1 820 19680 par_big_func_name 1 820 19XXX
par_big_func_name 1 80 1920 par_big_func_name 1 80 1XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 816 19584 par_big_var_func_name 1 816 19XXX
par_big_var_func_name 1 280 6660 par_big_var_func_name 1 280 6XXX
par_many_args 1 3148 6296 par_many_args 1 3XXX 6XXX
par_many_args 1 3148 6296 par_many_args 1 3XXX 6XXX
par_many_args 1 3148 6296 par_many_args 1 3XXX 6XXX
par_many_args 1 3148 6296 par_many_args 1 3XXX 6XXX
par_many_args 1 3148 6296 par_many_args 1 3XXX 6XXX
par_many_args 1 3148 6296 par_many_args 1 3XXX 6XXX
par_many_args 1 1112 2224 par_many_args 1 1XXX 2XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 232 5568 par_many_func 1 232 5XXX
par_many_func 1 172 4100 par_many_func 1 172 4XXX
par_many_var 1 980 23520 par_many_var 1 980 23XXX
par_many_var 1 980 23520 par_many_var 1 980 23XXX
par_many_var 1 980 23520 par_many_var 1 980 23XXX
par_many_var 1 980 23520 par_many_var 1 980 23XXX
par_many_var 1 980 23520 par_many_var 1 980 23XXX
par_many_var 1 980 23520 par_many_var 1 980 23XXX
par_many_var 1 788 18884 par_many_var 1 788 18XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 264 6336 par_many_var_big_func 1 264 6XXX
par_many_var_big_func 1 68 1604 par_many_var_big_func 1 68 1XXX
par_many_var_func 1 2480 59520 par_many_var_func 1 2XXX 59XXX
par_many_var_func 1 2480 59520 par_many_var_func 1 2XXX 59XXX
par_many_var_func 1 1708 40964 par_many_var_func 1 1XXX 40XXX

View file

@ -1,4 +1,5 @@
par_controlmaster_is_faster ### bug #41964: --controlmaster not seems to reuse OpenSSH connections to the same host par_controlmaster_is_faster ### bug #41964: --controlmaster not seems to reuse OpenSSH connections to the same host
par_controlmaster_is_faster -M should finish first - eventhough there are 2x jobs
par_controlmaster_is_faster With --controlmaster - finish first par_controlmaster_is_faster With --controlmaster - finish first
par_controlmaster_is_faster No --controlmaster - finish last par_controlmaster_is_faster No --controlmaster - finish last
par_filter_hosts_different_errors ### --filter-hosts - OK, non-such-user, connection refused, wrong host par_filter_hosts_different_errors ### --filter-hosts - OK, non-such-user, connection refused, wrong host