mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-24 06:57:55 +00:00
parallel: Restrict TMPDIR and other env dirs to safe charset.
This commit is contained in:
parent
e51adc7d7f
commit
b06698bee1
|
@ -282,6 +282,8 @@ https://www.redhat.com/sysadmin/perl-scripts
|
|||
|
||||
https://bioinformaticsworkbook.org/Appendix/GNUparallel/GNU_parallel_examples.html#gsc.tab=0
|
||||
|
||||
|
||||
|
||||
<<>>
|
||||
|
||||
GNU Parallel - For people who live life in the parallel lane.
|
||||
|
|
30
src/parallel
30
src/parallel
|
@ -2058,7 +2058,8 @@ sub options_completion_hash() {
|
|||
("skip-first-line|skipfirstline".
|
||||
"[Do not use the first line of input]"
|
||||
=> \$opt::skip_first_line),
|
||||
"bug" => \$opt::bug,
|
||||
"_bug" => \$opt::_bug,
|
||||
"_unsafe" => \$opt::_unsafe,
|
||||
# --pipe
|
||||
("pipe|spreadstdin".
|
||||
"[Spread input to jobs on stdin (standard input)]" => \$opt::pipe),
|
||||
|
@ -2207,7 +2208,7 @@ sub parse_options(@) {
|
|||
if($opt::nokeeporder) { $opt::keeporder = undef; }
|
||||
|
||||
if(@opt::v) { $Global::verbose = $#opt::v+1; } # Convert -v -v to v=2
|
||||
if($opt::bug) { ::die_bug("test-bug"); }
|
||||
if($opt::_bug) { ::die_bug("test-bug"); }
|
||||
$Global::debug = $opt::D;
|
||||
#
|
||||
## Shell
|
||||
|
@ -2719,16 +2720,34 @@ sub check_invalid_option_combinations() {
|
|||
::wait_and_exit(255);
|
||||
}
|
||||
}
|
||||
sub unsafe_warn {
|
||||
# use --_unsafe to only generate a warning
|
||||
if($opt::_unsafe) { ::warning(@_); } else { ::error(@_); exit(255); }
|
||||
}
|
||||
sub test_safe_chars {
|
||||
my $var = shift;
|
||||
if($ENV{$var} =~ m{^[-a-z0-9_+,.%:/= ]*$}i) {
|
||||
# OK
|
||||
} else {
|
||||
unsafe_warn("\$$var can only contain [-a-z0-9_+,.%:/= ].");
|
||||
}
|
||||
}
|
||||
if($ENV{'TMPDIR'} =~ /\n/) {
|
||||
if(defined $opt::files) {
|
||||
::warning("--files do not work if \$TMPDIR contains newline.");
|
||||
::warning("Use --files0 when \$TMPDIR contains newline.");
|
||||
} elsif($Global::cshell
|
||||
and
|
||||
(defined $opt::cat or defined $opt::fifo)) {
|
||||
::warning("--cat/--fifo fails under csh ".
|
||||
"if \$TMPDIR contains newline.");
|
||||
}
|
||||
} elsif($ENV{'TMPDIR'} =~ /\257/) {
|
||||
unsafe_warn("\$TMPDIR with \\257 (\257) is not supported.");
|
||||
} else{
|
||||
test_safe_chars('TMPDIR');
|
||||
}
|
||||
map { test_safe_chars($_); } qw(PARALLEL_HOME XDG_CONFIG_DIRS
|
||||
PARALLEL_REMOTE_TMPDIR XDG_CACHE_HOME);
|
||||
}
|
||||
|
||||
sub init_globals() {
|
||||
|
@ -2852,6 +2871,7 @@ sub init_globals() {
|
|||
$Global::job_already_run = '';
|
||||
$ENV{'TMPDIR'} ||= "/tmp";
|
||||
$ENV{'PARALLEL_REMOTE_TMPDIR'} ||= "/tmp";
|
||||
# bug #55398: set $OLDPWD when using --wd
|
||||
$ENV{'OLDPWD'} = $ENV{'PWD'};
|
||||
if(not $ENV{HOME}) {
|
||||
# $ENV{HOME} is sometimes not set if called from PHP
|
||||
|
@ -7800,7 +7820,7 @@ sub loadavg($) {
|
|||
# As the command can take long to run if run remote
|
||||
# save it to a tmp file before moving it to the correct file
|
||||
::debug("load", "Update load\n");
|
||||
my $file = $self->{'loadavg_file'};
|
||||
my $file = ::Q($self->{'loadavg_file'});
|
||||
# tmpfile on same filesystem as $file
|
||||
my $tmpfile = $file.$$;
|
||||
$ENV{'SSHPASS'} = $self->{'password'};
|
||||
|
@ -10714,7 +10734,7 @@ sub start($) {
|
|||
::shell_quote_scalar_default(
|
||||
"testfun() { rm $name; }; export -f testfun; ".
|
||||
"perl -MIPC::Open3 -e ".
|
||||
::shell_quote_scalar_default($script)
|
||||
::Q(::Q($script))
|
||||
);
|
||||
my $redefine_eval;
|
||||
# Redirect STDERR temporarily,
|
||||
|
|
|
@ -3856,6 +3856,65 @@ https://github.com/beomagi/parallelium
|
|||
(Last checked: 2023-01)
|
||||
|
||||
|
||||
=head2 DIFFERENCES BETWEEN forkrun AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
|
||||
=over
|
||||
|
||||
=item I1 - - - - - I7
|
||||
|
||||
=item - - - - - -
|
||||
|
||||
=item - O2 O3 - O5 - - - - O10
|
||||
|
||||
=item E1 - - E4 - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
|
||||
B<forkrun> blocks if it receives fewer jobs than slots:
|
||||
|
||||
echo | forkrun -p 2 echo
|
||||
|
||||
or when it gets some specific commands e.g.:
|
||||
|
||||
f() { seq "$@" | pv -qL 3; }
|
||||
seq 10 | forkrun f
|
||||
|
||||
It is not clear why.
|
||||
|
||||
It is faster than GNU B<parallel> (overhead: 1.2 ms/job vs 3 ms/job),
|
||||
but way slower than B<parallel-bash> (0.059 ms/job).
|
||||
|
||||
Running jobs cannot be stopped by pressing CTRL-C.
|
||||
|
||||
B<-k> is supposed to keep the order but fails on the MIX testing
|
||||
example below. If used with B<-k> it caches output in RAM.
|
||||
|
||||
If B<forkrun> is killed, it leaves temporary files in
|
||||
B</tmp/.forkrun.*> that has to be cleaned up manually.
|
||||
|
||||
=head3 EXAMPLES
|
||||
|
||||
1$ time find ./ -type f |
|
||||
forkrun -l512 -- sha256sum 2>/dev/null | wc -l
|
||||
1$ time find ./ -type f |
|
||||
parallel -j28 -m -- sha256sum 2>/dev/null | wc -l
|
||||
|
||||
2$ time find ./ -type f |
|
||||
forkrun -l512 -k -- sha256sum 2>/dev/null | wc -l
|
||||
2$ time find ./ -type f |
|
||||
parallel -j28 -k -m -- sha256sum 2>/dev/null | wc -l
|
||||
|
||||
https://github.com/jkool702/forkrun
|
||||
(Last checked: 2023-02)
|
||||
|
||||
|
||||
=head2 Todo
|
||||
|
||||
http://code.google.com/p/push/ (cannot compile)
|
||||
|
|
|
@ -14,9 +14,22 @@ MAX_SEC_PER_TEST=900
|
|||
export TIMEOUT=$MAX_SEC_PER_TEST
|
||||
|
||||
run_once() {
|
||||
replace_tmpdir() {
|
||||
# Replace $TMPDIR with TMP
|
||||
perl -0 -pe 'BEGIN{ ($a,$b,$c) = (shift,shift,shift);
|
||||
$a =~ s/'"'"'$//s; $b =~ s/'"'"'$//s; $c =~ s/'"'"'$//s; }
|
||||
s:""+:":g;
|
||||
s:('"'"'?)(\Q$a\E|\Q$b\E|\Q$c\E)('"'"'?)([/a-z0-9]*)('"'"'?):/TMP$4:gi;
|
||||
s/\0/\n/g' "$TMPDIR" "$qTMPDIR" "$qqTMPDIR" |
|
||||
perl -ne '/Use --files0 when $TMPDIR contains newline./ or print'
|
||||
}
|
||||
export qqTMPDIR=$(< /dev/null parallel -0 --shellquote --shellquote ::: "$TMPDIR")
|
||||
export qTMPDIR=$(< /dev/null parallel -0 --shellquote ::: "$TMPDIR")
|
||||
export -f replace_tmpdir
|
||||
script=$1
|
||||
base=`basename "$script" .sh`
|
||||
if diff -Naur wanted-results/"$base" actual-results/"$base" >/dev/null; then
|
||||
# There is no diff: Last time worked - no need to try again
|
||||
true skip
|
||||
else
|
||||
(
|
||||
|
@ -24,7 +37,8 @@ run_once() {
|
|||
export testsuitedir
|
||||
cd "$TMPDIR"
|
||||
bash "$testsuitedir/$script" |
|
||||
perl -pe 's:'$HOME':~:g' > "$testsuitedir"/actual-results/"$base"
|
||||
perl -pe 's:'$HOME':~:g' |
|
||||
replace_tmpdir > "$testsuitedir"/actual-results/"$base"
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
@ -34,13 +48,35 @@ run_test() {
|
|||
script="$1"
|
||||
base=`basename "$script" .sh`
|
||||
# Force spaces and < into TMPDIR - this will expose bugs
|
||||
export TMPDIR=/tmp/"$base-tmp"/'
|
||||
`touch /tmp/tripwire` <"'"'"/tmp
|
||||
# ASCII [^-,+=a-zA-Z0-9] = all special chars (175 is not supported)
|
||||
fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
|
||||
(pack "c*",2..42,127..174,47,176..255)."\@<?[]|~\\}{"')"
|
||||
fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
|
||||
(pack "c*",2..42,127..174,47,176..255)."\@<?[]|~\\}{"')"
|
||||
fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
|
||||
(pack "c*",127..174,47,176..255)."\@<?[]|~\\}{"')"
|
||||
fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
|
||||
(pack "c*",34,39,176..255)."\@<?[]|~\\}{"')"
|
||||
semiok_fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
|
||||
"\@<?[]|~\\}{"')"
|
||||
fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
|
||||
(pack "c*",2..10,34,39)."\@<?[]|~\\"')"
|
||||
export PARALLEL="--_unsafe";
|
||||
# OK
|
||||
# fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
|
||||
# (pack "c*",34,39)."\@<?[]|~\\"')"
|
||||
# export PARALLEL="--_unsafe";
|
||||
|
||||
# OK
|
||||
# fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
|
||||
# ""')"
|
||||
export TMPDIR=/tmp/"$base-tmp"/"$fancychars"/tmp
|
||||
rm -rf "$TMPDIR"
|
||||
mkdir -p "$TMPDIR"
|
||||
# Clean before. May be owned by other users
|
||||
sudo rm -f /tmp/*.{tmx,pac,arg,all,log,swp,loa,ssh,df,pip,tmb,chr,tms,par} ||
|
||||
printf "%s\0" /tmp/*.par | sudo parallel -0 -X rm
|
||||
rm -f /tmp/tripwire
|
||||
# Force running once
|
||||
echo >> actual-results/"$base"
|
||||
if [ "$TRIES" = "3" ] ; then
|
||||
|
@ -52,6 +88,7 @@ run_test() {
|
|||
if [ -e /tmp/tripwire ] ; then
|
||||
echo '!!!'
|
||||
echo '!!! /tmp/tripwire TRIPPED !!!'
|
||||
echo '!!! Quoting of TMPDIR failed !!!'
|
||||
echo '!!!'
|
||||
exit 1
|
||||
fi
|
||||
|
|
|
@ -95,6 +95,7 @@ par_env_parallel() {
|
|||
# (a)sh does not support 'export -f' so any function exported
|
||||
# must be unset
|
||||
|
||||
unset replace_tmpdir
|
||||
unset run_once
|
||||
unset run_test
|
||||
unset TMPDIR
|
||||
|
|
|
@ -145,6 +145,7 @@ EOF
|
|||
'sleep 0.{#}; cat t1.{#} t2.{%}' ::: 1 2 ::: a b
|
||||
echo should give no files
|
||||
ls t[12].*
|
||||
rm "$tmp1" "$tmp2"
|
||||
}
|
||||
|
||||
par_resume_k() {
|
||||
|
@ -732,6 +733,7 @@ par_wd_3dot_local() {
|
|||
parallel --wd ... 'pwd; echo "$OLDPWD"; echo' ::: OK
|
||||
parallel --wd . 'pwd; echo "$OLDPWD"; echo' ::: OK
|
||||
) |
|
||||
replace_tmpdir |
|
||||
perl -pe 's:/mnt/4tb::; s:/home/tange:~:;' |
|
||||
perl -pe 's:parallel./:parallel/:;' |
|
||||
perl -pe 's/'`hostname`'/hostname/g; s/\d+/0/g'
|
||||
|
@ -773,7 +775,8 @@ par_parcat_rm() {
|
|||
par_linebuffer_files() {
|
||||
echo '### bug #48658: --linebuffer --files'
|
||||
|
||||
stdout parallel --files --linebuffer 'sleep .1;seq {};sleep .1' ::: {1..10} | wc -l
|
||||
stdout parallel --files --linebuffer 'sleep .1;seq {};sleep .1' ::: {1..10} |
|
||||
replace_tmpdir | perl -pe 's:/par......par:/parXXXXX.par:'
|
||||
}
|
||||
|
||||
par_halt_one_job() {
|
||||
|
@ -812,7 +815,8 @@ par_pipe_tag_v() {
|
|||
seq 3 | parallel -v --pipe --tagstring foo cat
|
||||
# This should only give the filename
|
||||
seq 3 | parallel -v --pipe --tagstring foo --files cat |
|
||||
perl -pe 's:/tmp/par.*.par:/tmp/tmpfile.par:'
|
||||
replace_tmpdir |
|
||||
perl -pe 's:/par.*.par:/tmpfile.par:'
|
||||
}
|
||||
|
||||
par_dryrun_append_joblog() {
|
||||
|
@ -896,9 +900,10 @@ par_testquote() {
|
|||
export -f testquote
|
||||
# "sash script" does not work
|
||||
# "sash -f script" does, but is currently not supported by GNU Parallel
|
||||
parallel --tag -k testquote ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rc rzsh "sash -f" sh static-sh tcsh yash zsh
|
||||
# "fdsh" is currently not supported by GNU Parallel:
|
||||
# It gives ioctl(): Interrupted system call
|
||||
parallel --tag -k testquote ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rc rzsh "sash -f" sh static-sh tcsh yash zsh
|
||||
parallel --tag -k testquote ::: fdsh
|
||||
}
|
||||
|
||||
par_locale_quoting() {
|
||||
|
|
|
@ -295,10 +295,11 @@ par_failing_compressor() {
|
|||
parallel -k {tag} {lb} {files} --compress --compress-program {comp} --decompress-program {decomp} doit ::: C={comp},D={decomp} \
|
||||
,,, tag --tag -k \
|
||||
,,, lb --line-buffer -k \
|
||||
,,, files --files -k \
|
||||
,,, files --files0 -k \
|
||||
,,, comp 'cat;true' 'cat;false' \
|
||||
,,, decomp 'cat;true' 'cat;false' |
|
||||
perl -pe 's:/.*par......par:/tmpfile:'
|
||||
replace_tmpdir |
|
||||
perl -pe 's:/par......par:/tmpfile:'
|
||||
}
|
||||
|
||||
par_fifo_under_csh() {
|
||||
|
@ -315,92 +316,97 @@ par_fifo_under_csh() {
|
|||
|
||||
par_parset() {
|
||||
echo '### test parset'
|
||||
. `which env_parallel.bash`
|
||||
(
|
||||
. `which env_parallel.bash`
|
||||
|
||||
echo 'Put output into $myarray'
|
||||
parset myarray -k seq 10 ::: 14 15 16
|
||||
echo "${myarray[1]}"
|
||||
echo 'Put output into $myarray'
|
||||
parset myarray -k seq 10 ::: 14 15 16
|
||||
echo "${myarray[1]}"
|
||||
|
||||
echo 'Put output into vars "$seq, $pwd, $ls"'
|
||||
parset "seq pwd ls" -k ::: "seq 10" pwd ls
|
||||
echo "$seq"
|
||||
echo 'Put output into vars "$seq, $pwd, $ls"'
|
||||
parset "seq pwd ls" -k ::: "seq 10" pwd ls
|
||||
echo "$seq"
|
||||
|
||||
echo 'Put output into vars ($seq, $pwd, $ls)':
|
||||
into_vars=(seq pwd ls)
|
||||
parset "${into_vars[*]}" -k ::: "seq 5" pwd ls
|
||||
echo "$seq"
|
||||
echo 'Put output into vars ($seq, $pwd, $ls)':
|
||||
into_vars=(seq pwd ls)
|
||||
parset "${into_vars[*]}" -k ::: "seq 5" pwd ls
|
||||
echo "$seq"
|
||||
|
||||
echo 'The commands to run can be an array'
|
||||
cmd=("echo '<<joe \"double space\" cartoon>>'" "pwd")
|
||||
parset data -k ::: "${cmd[@]}"
|
||||
echo "${data[0]}"
|
||||
echo "${data[1]}"
|
||||
echo 'The commands to run can be an array'
|
||||
cmd=("echo '<<joe \"double space\" cartoon>>'" "pwd")
|
||||
parset data -k ::: "${cmd[@]}"
|
||||
echo "${data[0]}"
|
||||
echo "${data[1]}"
|
||||
|
||||
echo 'You cannot pipe into parset, but must use a tempfile'
|
||||
seq 10 > /tmp/parset_input_$$
|
||||
parset res -k echo :::: /tmp/parset_input_$$
|
||||
echo "${res[0]}"
|
||||
echo "${res[9]}"
|
||||
rm /tmp/parset_input_$$
|
||||
echo 'You cannot pipe into parset, but must use a tempfile'
|
||||
seq 10 > /tmp/parset_input_$$
|
||||
parset res -k echo :::: /tmp/parset_input_$$
|
||||
echo "${res[0]}"
|
||||
echo "${res[9]}"
|
||||
rm /tmp/parset_input_$$
|
||||
|
||||
echo 'or process substitution'
|
||||
parset res -k echo :::: <(seq 0 10)
|
||||
echo "${res[0]}"
|
||||
echo "${res[9]}"
|
||||
echo 'or process substitution'
|
||||
parset res -k echo :::: <(seq 0 10)
|
||||
echo "${res[0]}"
|
||||
echo "${res[9]}"
|
||||
|
||||
echo 'Commands with newline require -0'
|
||||
parset var -k -0 ::: 'echo "line1
|
||||
echo 'Commands with newline require -0'
|
||||
parset var -k -0 ::: 'echo "line1
|
||||
line2"' 'echo "command2"'
|
||||
echo "${var[0]}"
|
||||
echo "${var[0]}"
|
||||
) | replace_tmpdir
|
||||
}
|
||||
|
||||
par_parset2() {
|
||||
. `which env_parallel.bash`
|
||||
echo '### parset into array'
|
||||
parset arr1 echo ::: foo bar baz
|
||||
echo ${arr1[0]} ${arr1[1]} ${arr1[2]}
|
||||
(
|
||||
. `which env_parallel.bash`
|
||||
|
||||
echo '### parset into vars with comma'
|
||||
parset comma3,comma2,comma1 echo ::: baz bar foo
|
||||
echo $comma1 $comma2 $comma3
|
||||
parset arr1 echo ::: foo bar baz
|
||||
echo ${arr1[0]} ${arr1[1]} ${arr1[2]}
|
||||
|
||||
echo '### parset into vars with space'
|
||||
parset 'space3 space2 space1' echo ::: baz bar foo
|
||||
echo $space1 $space2 $space3
|
||||
echo '### parset into vars with comma'
|
||||
parset comma3,comma2,comma1 echo ::: baz bar foo
|
||||
echo $comma1 $comma2 $comma3
|
||||
|
||||
echo '### parset with newlines'
|
||||
parset 'newline3 newline2 newline1' seq ::: 3 2 1
|
||||
echo "$newline1"
|
||||
echo "$newline2"
|
||||
echo "$newline3"
|
||||
echo '### parset into vars with space'
|
||||
parset 'space3 space2 space1' echo ::: baz bar foo
|
||||
echo $space1 $space2 $space3
|
||||
|
||||
echo '### parset into indexed array vars'
|
||||
parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo
|
||||
echo ${myarray[*]}
|
||||
echo ${myarray[4]} ${myarray[5]} ${myarray[5]}
|
||||
echo '### parset with newlines'
|
||||
parset 'newline3 newline2 newline1' seq ::: 3 2 1
|
||||
echo "$newline1"
|
||||
echo "$newline2"
|
||||
echo "$newline3"
|
||||
|
||||
echo '### env_parset'
|
||||
alias myecho='echo myecho "$myvar" "${myarr[1]}"'
|
||||
myvar="myvar"
|
||||
myarr=("myarr 0" "myarr 1" "myarr 2")
|
||||
mynewline="`echo newline1;echo newline2;`"
|
||||
env_parset arr1 myecho ::: foo bar baz
|
||||
echo "${arr1[0]} ${arr1[1]} ${arr1[2]}"
|
||||
env_parset comma3,comma2,comma1 myecho ::: baz bar foo
|
||||
echo "$comma1 $comma2 $comma3"
|
||||
env_parset 'space3 space2 space1' myecho ::: baz bar foo
|
||||
echo "$space1 $space2 $space3"
|
||||
env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1
|
||||
echo "$newline1"
|
||||
echo "$newline2"
|
||||
echo "$newline3"
|
||||
env_parset 'myarray[6],myarray[5],myarray[4]' myecho ::: baz bar foo
|
||||
echo "${myarray[*]}"
|
||||
echo "${myarray[4]} ${myarray[5]} ${myarray[5]}"
|
||||
echo '### parset into indexed array vars'
|
||||
parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo
|
||||
echo ${myarray[*]}
|
||||
echo ${myarray[4]} ${myarray[5]} ${myarray[5]}
|
||||
|
||||
echo 'bug #52507: parset arr1 -v echo ::: fails'
|
||||
parset arr1 -v seq ::: 1 2 3
|
||||
echo "${arr1[2]}"
|
||||
echo '### env_parset'
|
||||
alias myecho='echo myecho "$myvar" "${myarr[1]}"'
|
||||
myvar="myvar"
|
||||
myarr=("myarr 0" "myarr 1" "myarr 2")
|
||||
mynewline="`echo newline1;echo newline2;`"
|
||||
env_parset arr1 myecho ::: foo bar baz
|
||||
echo "${arr1[0]} ${arr1[1]} ${arr1[2]}"
|
||||
env_parset comma3,comma2,comma1 myecho ::: baz bar foo
|
||||
echo "$comma1 $comma2 $comma3"
|
||||
env_parset 'space3 space2 space1' myecho ::: baz bar foo
|
||||
echo "$space1 $space2 $space3"
|
||||
env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1
|
||||
echo "$newline1"
|
||||
echo "$newline2"
|
||||
echo "$newline3"
|
||||
env_parset 'myarray[6],myarray[5],myarray[4]' myecho ::: baz bar foo
|
||||
echo "${myarray[*]}"
|
||||
echo "${myarray[4]} ${myarray[5]} ${myarray[5]}"
|
||||
|
||||
echo 'bug #52507: parset arr1 -v echo ::: fails'
|
||||
parset arr1 -v seq ::: 1 2 3
|
||||
echo "${arr1[2]}"
|
||||
) | replace_tmpdir
|
||||
}
|
||||
|
||||
par_perlexpr_repl() {
|
||||
|
@ -664,12 +670,13 @@ par_results_csv() {
|
|||
|
||||
doit() {
|
||||
parallel -k $@ --results -.csv echo ::: H2 22 23 ::: H1 11 12 \
|
||||
2> >(grep -v TMPDIR)
|
||||
2> >(grep -v TMPDIR) |
|
||||
replace_tmpdir
|
||||
}
|
||||
export -f doit
|
||||
parallel -k --tag doit ::: '--header :' '' \
|
||||
::: --tag '' ::: --files '' ::: --compress '' |
|
||||
perl -pe 's:/.*par......par:/tmpfile:g;s/\d+\.\d+/999.999/g'
|
||||
::: --tag '' ::: --files0 '' ::: --compress '' |
|
||||
perl -pe 's:/par......par:/tmpfile:g;s/\d+\.\d+/999.999/g'
|
||||
}
|
||||
|
||||
par_kill_children_timeout() {
|
||||
|
@ -692,7 +699,9 @@ par_kill_children_timeout() {
|
|||
|
||||
par_tmux_fg() {
|
||||
echo 'bug #50107: --tmux --fg should also write how to access it'
|
||||
stdout parallel --tmux --fg sleep ::: 3 | perl -pe 's:/tmp.*tms.....:tmpfile:'
|
||||
stdout parallel --tmux --fg sleep ::: 3 |
|
||||
replace_tmpdir |
|
||||
perl -pe 's:/tms.....:tmpfile:'
|
||||
}
|
||||
|
||||
|
||||
|
@ -768,5 +777,4 @@ compgen -A function | grep par_ | LC_ALL=C sort |
|
|||
perl -pe 's/,31,0/,15,0/' |
|
||||
# Replace $PWD with . even if given as ~/...
|
||||
perl -pe 's:~:'"$HOME"':g' |
|
||||
perl -pe 's:'"$PWD"':.:g' |
|
||||
perl -pe 's:'"$HOME"':~:g'
|
||||
|
|
|
@ -39,32 +39,38 @@ par_plus() {
|
|||
|
||||
par_file_rpl() {
|
||||
echo '### file as replacement string'
|
||||
TMPDIR=/tmp/parallel-local-1s/" "/bar
|
||||
mkdir -p "$TMPDIR"
|
||||
tmp="$(mktemp)"
|
||||
(
|
||||
echo contest1
|
||||
echo contest2
|
||||
echo content1
|
||||
echo content2
|
||||
echo File name "$tmp"
|
||||
) > "$tmp"
|
||||
(
|
||||
# {filename}
|
||||
echo '# {filename}'
|
||||
parallel -k --header 0 echo {"$tmp"} :::: "$tmp"
|
||||
# Conflict: both {filename} and {/regexp/rpl}
|
||||
|
||||
echo '# Conflict: both {filename} and {/regexp/rpl}'
|
||||
parallel -k --plus echo {"$tmp"} :::: "$tmp"
|
||||
echo '# --header 0 --plus'
|
||||
parallel -k --header 0 --plus echo {"$tmp"} :::: "$tmp"
|
||||
tmpd="$(mktemp -d)"
|
||||
cd "$tmpd"
|
||||
# Conflict: both {filename} and {n}
|
||||
|
||||
echo '# Conflict: both {filename} and {n}'
|
||||
seq 1 > 1
|
||||
seq 2 > 2
|
||||
seq 3 > 3
|
||||
parallel -k echo {1} :::: 3 2 1
|
||||
parallel -k --header 0 echo {1} :::: 3 2 1
|
||||
# Conflict: both {filename} and {=expr=}
|
||||
|
||||
echo '# Conflict: both {filename} and {=expr=}'
|
||||
seq 3 > =chop=
|
||||
parallel -k echo {=chop=} ::: =chop=
|
||||
parallel -k --header 0 echo {=chop=} ::: =chop=
|
||||
rm -rf "$tmpd"
|
||||
) | perl -pe 's/tmp\.\w+/tmp.XXXXXX/g'
|
||||
) | replace_tmpdir | perl -pe 's/tmp\.\w+/tmp.XXXXXX/g'
|
||||
rm "$tmp"
|
||||
}
|
||||
|
||||
|
@ -403,8 +409,9 @@ par_profiles_with_space() {
|
|||
echo '### bug #42902: profiles containing arguments with space'
|
||||
echo "--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' " > ~/.parallel/FULLPATH;
|
||||
parallel -JFULLPATH echo FULLPATH ::: $0
|
||||
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' -v" parallel echo FULLPATH ::: $0
|
||||
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' -v" parallel echo FULLPATH ::: "$0"
|
||||
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: . |
|
||||
replace_tmpdir |
|
||||
perl -pe 's:parallel./:parallel/:'
|
||||
}
|
||||
|
||||
|
|
|
@ -123,29 +123,36 @@ par_exit_code() {
|
|||
export -f in_shell_run_command
|
||||
|
||||
runit() {
|
||||
doit() {
|
||||
s=100
|
||||
rm -f /tmp/mysleep
|
||||
cp /bin/sleep /tmp/mysleep
|
||||
|
||||
parallel -kj500% --argsep ,, --tag in_shell_run_command {1} {2} \
|
||||
,, "$@" ,, \
|
||||
"/tmp/mysleep "$s \
|
||||
"parallel --halt-on-error now,fail=1 /tmp/mysleep ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 /tmp/mysleep ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 /bin/true ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 exit ::: "$s \
|
||||
"true;/tmp/mysleep "$s \
|
||||
"parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 'true;/bin/true' ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 'true;exit' ::: "$s
|
||||
}
|
||||
echo '# Ideally the command should return the same'
|
||||
echo '# with or without parallel'
|
||||
# These give the same exit code prepended with 'true;' or not
|
||||
OK="ash csh dash fish fizsh ksh2020 posh rc sash sh tcsh"
|
||||
# These do not give the same exit code prepended with 'true;' or not
|
||||
BAD="bash fdsh ksh93 mksh static-sh yash zsh"
|
||||
s=100
|
||||
rm -f /tmp/mysleep
|
||||
cp /bin/sleep /tmp/mysleep
|
||||
|
||||
echo '# Ideally the command should return the same'
|
||||
echo '# with or without parallel'
|
||||
echo '# but fish 2.4.0 returns 1 while X.X.X returns 0'
|
||||
parallel -kj500% --argsep ,, --tag in_shell_run_command {1} {2} \
|
||||
,, $OK $BAD ,, \
|
||||
"/tmp/mysleep "$s \
|
||||
"parallel --halt-on-error now,fail=1 /tmp/mysleep ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 /tmp/mysleep ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 /bin/true ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 exit ::: "$s \
|
||||
"true;/tmp/mysleep "$s \
|
||||
"parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 'true;/bin/true' ::: "$s \
|
||||
"parallel --halt-on-error now,done=1 'true;exit' ::: "$s
|
||||
BAD="bash ksh93 mksh static-sh yash zsh"
|
||||
doit $OK $BAD
|
||||
# fdsh does not like weird TMPDIR with \n
|
||||
BROKEN="fdsh"
|
||||
TMPDIR=/tmp
|
||||
cd /tmp
|
||||
doit $BROKEN
|
||||
}
|
||||
export -f runit
|
||||
|
||||
|
|
|
@ -42,10 +42,12 @@ par_parcat_mixing() {
|
|||
|
||||
par_tmux_termination() {
|
||||
echo '### --tmux test - check termination'
|
||||
TMPDIR=/tmp
|
||||
doit() {
|
||||
perl -e 'map {printf "$_%o%c\n",$_,$_}1..255' |
|
||||
stdout parallel --tmux 'sleep 0.2;echo {}' :::: - ::: a b |
|
||||
perl -pe 's:(/tmp\S*/tms).....:$1XXXXX:;'
|
||||
replace_tmpdir |
|
||||
perl -pe 's:(/tms).....:$1XXXXX:;'
|
||||
}
|
||||
export -f doit
|
||||
stdout parallel --timeout 120 doit ::: 1
|
||||
|
@ -117,9 +119,9 @@ par_delay_Xauto() {
|
|||
doit() {
|
||||
perl -e '$a=shift;
|
||||
$m = -M $a < 0.0000001;
|
||||
`touch $a`;
|
||||
system "touch", $a;
|
||||
print "$m\n";
|
||||
exit $m;' $1;
|
||||
exit $m;' "$1";
|
||||
}
|
||||
export -f doit
|
||||
before=`date +%s`
|
||||
|
|
|
@ -34,7 +34,7 @@ par_sshpass_with_password() {
|
|||
echo OK | parallel -S withpassword:@lo:22 echo
|
||||
}
|
||||
|
||||
par_ssh_ssh() {
|
||||
par_--ssh_ssh_in_ssh() {
|
||||
echo '### bug #61894: Pack ssh code in eval protection'
|
||||
echo Unquoted ssh should work
|
||||
parallel --ssh 'ssh lo ssh' -S lo 'hostname;echo' ::: OK
|
||||
|
@ -190,7 +190,7 @@ par_trc_dashdashdashspace() {
|
|||
parallel --nonall -k -S csh@lo,sh@lo 'ls ./?--- ./---? || echo OK' | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_onall_transfer() {
|
||||
par_--onall_--transfer() {
|
||||
echo '### bug #46519: --onall ignores --transfer'
|
||||
touch bug46519.{a,b,c}; rm -f bug46519.?? bug46519.???
|
||||
parallel --onall --tf bug46519.{} --trc bug46519.{}{} --trc bug46519.{}{}{} -S csh@lo,sh@lo 'ls bug46519.{}; touch bug46519.{}{} bug46519.{}{}{}' ::: a b c
|
||||
|
@ -205,7 +205,7 @@ par_--onall_--plus() {
|
|||
parallel -S bash@lo --nonall --plus echo {host}
|
||||
}
|
||||
|
||||
par_remote_load() {
|
||||
par__remote_load() {
|
||||
echo '### Test --load remote'
|
||||
ssh parallel@lo 'seq 10 | parallel --nice 19 --timeout 15 -j0 -qN0 perl -e while\(1\)\{\ \}' &
|
||||
sleep 1
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
# /tmp/parallel-local-ssh2 will by default be owned by me and should be writable by *@localhost
|
||||
chmod 777 "$TMPDIR" 2>/dev/null
|
||||
|
||||
par_obey_servers_capacity_slf_reload() {
|
||||
par__obey_servers_capacity_slf_reload() {
|
||||
echo "### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded"
|
||||
# Pre-20141106 Would reset the number of jobs run on all sshlogin if --slf changed
|
||||
# Thus must take at least 25 sec to run
|
||||
|
@ -19,7 +19,7 @@ par_obey_servers_capacity_slf_reload() {
|
|||
rm /tmp/parallel.bug43518
|
||||
}
|
||||
|
||||
par_filter_hosts_slf() {
|
||||
par_z_filter_hosts_slf() {
|
||||
echo '### --filter-hosts --slf <()'
|
||||
parallel --nonall --filter-hosts --slf <(echo localhost) echo OK
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ unset run_once
|
|||
|
||||
# SSH only allowed to localhost/lo
|
||||
|
||||
par_sshloginfile() {
|
||||
par_z_sshloginfile() {
|
||||
echo '### --slf with mIxEd cAsE'
|
||||
tmp=$(mktemp)
|
||||
(
|
||||
|
@ -21,7 +21,7 @@ par_sshloginfile() {
|
|||
rm -f "$tmp"
|
||||
}
|
||||
|
||||
par_nonall_results() {
|
||||
par_--nonall_results() {
|
||||
echo '### --results --onall'
|
||||
tmp="$TMPDIR"/onall
|
||||
mkdir -p "$tmp"
|
||||
|
@ -31,7 +31,7 @@ par_nonall_results() {
|
|||
parallel --results "$tmp"/rplnoslash/{} --onall -Scsh@lo,sh@lo ::: id pwd
|
||||
parallel --results "$tmp"/rpl1slash/{1}/ --onall -Scsh@lo,sh@lo ::: id pwd
|
||||
parallel --results "$tmp"/rpl1noslash/{1} --onall -Scsh@lo,sh@lo ::: id pwd
|
||||
find "$tmp"
|
||||
find "$tmp" -print0 | replace_tmpdir
|
||||
rm -r "$tmp"
|
||||
echo '### --results --nonall'
|
||||
tmp="$TMPDIR"/nonall
|
||||
|
@ -42,7 +42,7 @@ par_nonall_results() {
|
|||
parallel --results "$tmp"/rplnoslash/{} --nonall -Scsh@lo,sh@lo pwd
|
||||
parallel --results "$tmp"/rpl1slash/{1}/ --nonall -Scsh@lo,sh@lo pwd
|
||||
parallel --results "$tmp"/rpl1noslash/{1} --nonall -Scsh@lo,sh@lo pwd
|
||||
find "$tmp"
|
||||
find "$tmp" -print0 | replace_tmpdir
|
||||
rm -r "$tmp"
|
||||
}
|
||||
|
||||
|
@ -131,38 +131,57 @@ par_bigvar_rc() {
|
|||
parallel --env A,B,C -k echo '"'"'${}|wc'"'"' ::: A B C'
|
||||
}
|
||||
|
||||
par_tmux_different_shells() {
|
||||
par_--tmux_different_shells() {
|
||||
echo '### Test tmux works on different shells'
|
||||
(stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux echo ::: 1 2 3 4; echo $?) |
|
||||
grep -v 'attach';
|
||||
(stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux false ::: 1 2 3 4; echo $?) |
|
||||
grep -v 'attach';
|
||||
short_TMPDIR() {
|
||||
# TMPDIR must be short for -M
|
||||
export TMPDIR=/tmp/ssh/'
|
||||
`touch /tmp/tripwire`
|
||||
'
|
||||
TMPDIR=/tmp
|
||||
mkdir -p "$TMPDIR"
|
||||
}
|
||||
short_TMPDIR
|
||||
(
|
||||
stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux echo ::: 1 2 3 4; echo $?
|
||||
stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux false ::: 1 2 3 4; echo $?
|
||||
|
||||
export PARTMUX='parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux ';
|
||||
stdout ssh zsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output';
|
||||
stdout ssh zsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output';
|
||||
stdout ssh parallel@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $?' | grep -v 'See output';
|
||||
stdout ssh parallel@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $?' | grep -v 'See output';
|
||||
stdout ssh tcsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output';
|
||||
stdout ssh tcsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output';
|
||||
echo "# command is currently too long for csh. Maybe it can be fixed?";
|
||||
stdout ssh csh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output';
|
||||
stdout ssh csh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output'
|
||||
export PARTMUX='parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux ';
|
||||
stdout ssh zsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status'
|
||||
stdout ssh zsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status'
|
||||
stdout ssh parallel@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $?'
|
||||
stdout ssh parallel@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $?'
|
||||
stdout ssh tcsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status'
|
||||
stdout ssh tcsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status'
|
||||
echo "# command is currently too long for csh. Maybe it can be fixed?";
|
||||
stdout ssh csh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status'
|
||||
stdout ssh csh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status'
|
||||
) | replace_tmpdir | perl -pe 's/tms...../tmsXXXXX/g'
|
||||
}
|
||||
|
||||
par_tmux_length() {
|
||||
par_--tmux_length() {
|
||||
echo '### works'
|
||||
stdout parallel -Sparallel@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ |
|
||||
perl -pe 's:/tmp/.*tms.....::'
|
||||
stdout parallel -Sparallel@lo --tmux echo ::: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
|
||||
perl -pe 's:/tmp/.*tms.....::'
|
||||
short_TMPDIR() {
|
||||
# TMPDIR must be short for -M
|
||||
export TMPDIR=/tmp/ssh/'
|
||||
`touch /tmp/tripwire`
|
||||
'
|
||||
TMPDIR=/tmp
|
||||
mkdir -p "$TMPDIR"
|
||||
}
|
||||
short_TMPDIR
|
||||
(
|
||||
stdout parallel -Sparallel@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@
|
||||
stdout parallel -Sparallel@lo --tmux echo ::: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
echo '### These blocked due to length'
|
||||
stdout parallel -Slo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'attach'
|
||||
stdout parallel -Scsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'attach'
|
||||
stdout parallel -Stcsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'attach'
|
||||
stdout parallel -Szsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'attach'
|
||||
stdout parallel -Scsh@lo --tmux echo ::: 111111111111111111111111111111111111111111111111111111111 | grep -v 'attach'
|
||||
echo '### These blocked due to length'
|
||||
stdout parallel -Slo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@
|
||||
stdout parallel -Scsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@
|
||||
stdout parallel -Stcsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@
|
||||
stdout parallel -Szsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@
|
||||
stdout parallel -Scsh@lo --tmux echo ::: 111111111111111111111111111111111111111111111111111111111
|
||||
) | replace_tmpdir |
|
||||
perl -pe 's:tms.....:tmsXXXXX:'
|
||||
}
|
||||
|
||||
par_transfer_return_multiple_inputs() {
|
||||
|
@ -176,12 +195,12 @@ par_transfer_return_multiple_inputs() {
|
|||
rm /tmp/file1 /tmp/file2 /tmp/file1.a /tmp/file2.b
|
||||
}
|
||||
|
||||
par_csh_nice() {
|
||||
par_z_csh_nice() {
|
||||
echo '### bug #44143: csh and nice'
|
||||
parallel --nice 1 -S csh@lo setenv B {}\; echo '$B' ::: OK
|
||||
}
|
||||
|
||||
par_multiple_hosts_repeat_arg() {
|
||||
par_z_multiple_hosts_repeat_arg() {
|
||||
echo '### bug #45575: -m and multiple hosts repeats first args'
|
||||
seq 1 3 | parallel -X -S 2/lo,2/: -k echo
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
# SSH only allowed to localhost/lo
|
||||
|
||||
|
||||
|
||||
par_ssh_cmd_with_newline() {
|
||||
echo '### Check --ssh with \n works'
|
||||
ssh=$(mktemp)
|
||||
|
@ -17,15 +18,25 @@ par_ssh_cmd_with_newline() {
|
|||
|
||||
par_controlmaster() {
|
||||
echo '### Check -M works if TMPDIR contains space'
|
||||
short_TMPDIR() {
|
||||
# TMPDIR must be short for -M
|
||||
export TMPDIR=/tmp/ssh/'
|
||||
`touch /tmp/tripwire`
|
||||
'
|
||||
TMPDIR=/tmp
|
||||
mkdir -p "$TMPDIR"
|
||||
}
|
||||
short_TMPDIR
|
||||
|
||||
(
|
||||
seq 1 3 | parallel -j10 --retries 3 -k -M -S sh@lo echo
|
||||
seq 1 3 | parallel -j10 --retries 3 -k -M -S sh@lo echo
|
||||
)
|
||||
echo Part2
|
||||
parallel -j1 -k -M -S sh@lo echo ::: OK
|
||||
stdout parallel -j1 -k -M -S sh@lo echo ::: OK | replace_tmpdir
|
||||
}
|
||||
|
||||
par_autossh() {
|
||||
par_--ssh_autossh() {
|
||||
echo '### --ssh autossh'
|
||||
(
|
||||
export PARALLEL_SSH=autossh; export AUTOSSH_PORT=0
|
||||
|
@ -54,12 +65,21 @@ par_input_loss_pipe() {
|
|||
seq 10000 | xargs | parallel --pipe -S 8/localhost cat 2>/dev/null | wc
|
||||
}
|
||||
|
||||
par_controlmaster_eats() {
|
||||
par_--controlmaster_eats() {
|
||||
echo 'bug #36707: --controlmaster eats jobs'
|
||||
short_TMPDIR() {
|
||||
# TMPDIR must be short for -M
|
||||
export TMPDIR=/tmp/ssh/'
|
||||
`touch /tmp/tripwire`
|
||||
'
|
||||
TMPDIR=/tmp
|
||||
mkdir -p "$TMPDIR"
|
||||
}
|
||||
short_TMPDIR
|
||||
seq 2 | parallel -k --controlmaster --sshlogin lo echo OK{}
|
||||
}
|
||||
|
||||
par_lsh() {
|
||||
par_--ssh_lsh() {
|
||||
echo '### --ssh lsh'
|
||||
parallel --ssh 'lsh -c aes256-ctr' -S lo echo ::: OK
|
||||
echo OK | parallel --ssh 'lsh -c aes256-ctr' --pipe -S csh@lo cat
|
||||
|
@ -85,7 +105,7 @@ par_env_parallel_onall() {
|
|||
env_parallel -Slo --nonall doit works
|
||||
}
|
||||
|
||||
par_command_len_shellquote() {
|
||||
par_--shellquote_command_len() {
|
||||
echo '### test quoting will not cause a crash if too long'
|
||||
# echo "'''" | parallel --shellquote --shellquote --shellquote --shellquote
|
||||
|
||||
|
|
|
@ -184,7 +184,7 @@ par_sshlogin_replacement() {
|
|||
parallel -S '5//usr/bin/ssh '$SSHLOGIN1 --plus echo {sshlogin} {} {host} ::: and
|
||||
}
|
||||
|
||||
par_timeout_onall() {
|
||||
par_onall_timeout() {
|
||||
echo '### --timeout --onall on remote machines: 2*slept 1, 2 jobs failed'
|
||||
parallel -j0 --timeout 6 --onall -S localhost,$SSHLOGIN1 'sleep {}; echo slept {}' ::: 1 8 9
|
||||
echo jobs failed: $?
|
||||
|
|
|
@ -10,7 +10,7 @@ echo '### test --env _, env_parallel for different shells'
|
|||
## par_*_man = tests from the man page
|
||||
#
|
||||
|
||||
par_ash_man() {
|
||||
par__man_ash() {
|
||||
echo '### ash'
|
||||
|
||||
myscript=$(cat <<'_EOF'
|
||||
|
@ -67,7 +67,7 @@ _EOF
|
|||
ssh ash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_bash_man() {
|
||||
par__man_bash() {
|
||||
echo '### bash'
|
||||
|
||||
myscript=$(cat <<'_EOF'
|
||||
|
@ -139,7 +139,7 @@ _EOF
|
|||
ssh bash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_csh_man() {
|
||||
par__man_csh() {
|
||||
echo '### csh'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### From man env_parallel"
|
||||
|
@ -183,7 +183,7 @@ _EOF
|
|||
stdout ssh csh@lo "$myscript" | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_dash_man() {
|
||||
par__man_dash() {
|
||||
echo '### dash'
|
||||
|
||||
myscript=$(cat <<'_EOF'
|
||||
|
@ -240,7 +240,7 @@ _EOF
|
|||
ssh dash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_fish_man() {
|
||||
par__man_fish() {
|
||||
echo '### fish'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### From man env_parallel"
|
||||
|
@ -298,7 +298,7 @@ _EOF
|
|||
ssh fish@lo "$myscript" | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_ksh_man() {
|
||||
par__man_ksh() {
|
||||
echo '### ksh'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### From man env_parallel"
|
||||
|
@ -365,7 +365,7 @@ _EOF
|
|||
ssh ksh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_mksh_man() {
|
||||
par__man_mksh() {
|
||||
echo '### mksh'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### From man env_parallel"
|
||||
|
@ -430,7 +430,7 @@ _EOF
|
|||
ssh mksh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_sh_man() {
|
||||
par__man_sh() {
|
||||
echo '### sh'
|
||||
|
||||
myscript=$(cat <<'_EOF'
|
||||
|
@ -487,7 +487,7 @@ _EOF
|
|||
ssh sh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_tcsh_man() {
|
||||
par__man_tcsh() {
|
||||
echo '### tcsh'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### From man env_parallel"
|
||||
|
@ -531,7 +531,7 @@ _EOF
|
|||
ssh -tt tcsh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_zsh_man() {
|
||||
par__man_zsh() {
|
||||
echo '### zsh'
|
||||
# eval is needed make aliases work
|
||||
myscript=$(cat <<'_EOF'
|
||||
|
@ -605,7 +605,7 @@ _EOF
|
|||
}
|
||||
|
||||
|
||||
par_ash_underscore() {
|
||||
par_--env_underscore_ash() {
|
||||
echo '### ash'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### Testing of --env _"
|
||||
|
@ -653,7 +653,7 @@ _EOF
|
|||
ssh ash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_bash_underscore() {
|
||||
par_--env_underscore_bash() {
|
||||
echo '### bash'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### Testing of --env _"
|
||||
|
@ -702,7 +702,7 @@ _EOF
|
|||
stdout ssh bash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_csh_underscore() {
|
||||
par_--env_underscore_csh() {
|
||||
echo '### csh'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### Testing of --env _"
|
||||
|
@ -737,7 +737,7 @@ _EOF
|
|||
ssh -tt csh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_dash_underscore() {
|
||||
par_--env_underscore_dash() {
|
||||
echo '### dash'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### Testing of --env _"
|
||||
|
@ -785,7 +785,7 @@ _EOF
|
|||
ssh dash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_fish_underscore() {
|
||||
par_--env_underscore_fish() {
|
||||
echo '### fish'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "Fish is broken"
|
||||
|
@ -849,7 +849,7 @@ _EOF
|
|||
perl -ne '/fish:|fish\(/ and next; print'
|
||||
}
|
||||
|
||||
par_ksh_underscore() {
|
||||
par_--env_underscore_ksh() {
|
||||
echo '### ksh'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### Testing of --env _"
|
||||
|
@ -897,7 +897,7 @@ _EOF
|
|||
ssh ksh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_mksh_underscore() {
|
||||
par_--env_underscore_mksh() {
|
||||
echo '### mksh'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### Testing of --env _"
|
||||
|
@ -945,7 +945,7 @@ _EOF
|
|||
ssh mksh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_sh_underscore() {
|
||||
par_--env_underscore_sh() {
|
||||
echo '### sh'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### Testing of --env _"
|
||||
|
@ -993,7 +993,7 @@ _EOF
|
|||
ssh sh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_tcsh_underscore() {
|
||||
par_--env_underscore_tcsh() {
|
||||
echo '### tcsh'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### Testing of --env _"
|
||||
|
@ -1028,7 +1028,7 @@ _EOF
|
|||
ssh -tt tcsh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_zsh_underscore() {
|
||||
par_--env_underscore_zsh() {
|
||||
echo '### zsh'
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo "### Testing of --env _"
|
||||
|
@ -1086,7 +1086,7 @@ _EOF
|
|||
# + remote, locally
|
||||
# + variables, variables with funky content, arrays, assoc array, functions, aliases
|
||||
|
||||
par_ash_funky() {
|
||||
par_funky_ash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.ash`;
|
||||
|
||||
|
@ -1119,7 +1119,7 @@ _EOF
|
|||
ssh ash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_bash_funky() {
|
||||
par_funky_bash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.bash`;
|
||||
|
||||
|
@ -1152,7 +1152,7 @@ _EOF
|
|||
ssh bash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_csh_funky() {
|
||||
par_funky_csh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
set myvar = "myvar works"
|
||||
set funky = "`perl -e 'print pack q(c*), 2..255'`"
|
||||
|
@ -1185,7 +1185,7 @@ _EOF
|
|||
stdout ssh csh@lo "$myscript" | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_dash_funky() {
|
||||
par_funky_dash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.dash`;
|
||||
|
||||
|
@ -1218,7 +1218,7 @@ _EOF
|
|||
ssh dash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_fish_funky() {
|
||||
par_funky_fish() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
env_parallel --session
|
||||
set myvar "myvar works"
|
||||
|
@ -1264,7 +1264,7 @@ _EOF
|
|||
ssh fish@lo "$myscript"
|
||||
}
|
||||
|
||||
par_ksh_funky() {
|
||||
par_funky_ksh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.ksh`;
|
||||
|
||||
|
@ -1296,7 +1296,7 @@ _EOF
|
|||
ssh ksh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_mksh_funky() {
|
||||
par_funky_mksh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.mksh`;
|
||||
|
||||
|
@ -1329,7 +1329,7 @@ _EOF
|
|||
ssh mksh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_sh_funky() {
|
||||
par_funky_sh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.sh`;
|
||||
|
||||
|
@ -1362,7 +1362,7 @@ _EOF
|
|||
ssh sh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_tcsh_funky() {
|
||||
par_funky_tcsh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
# funky breaks with different LC_ALL
|
||||
setenv LC_ALL C
|
||||
|
@ -1397,7 +1397,7 @@ _EOF
|
|||
ssh tcsh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_zsh_funky() {
|
||||
par_funky_zsh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
|
||||
. `which env_parallel.zsh`;
|
||||
|
@ -1429,7 +1429,7 @@ _EOF
|
|||
ssh zsh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_ash_env_parallel() {
|
||||
par_env_parallel_ash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.ash`;
|
||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||
|
@ -1454,7 +1454,7 @@ _EOF
|
|||
ssh ash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_bash_env_parallel() {
|
||||
par_env_parallel_bash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||
# Due to $PARALLEL_TMP being transferred
|
||||
|
@ -1479,7 +1479,7 @@ _EOF
|
|||
ssh bash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_csh_env_parallel() {
|
||||
par_env_parallel_csh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||
# Due to $PARALLEL_TMP being transferred
|
||||
|
@ -1491,7 +1491,7 @@ _EOF
|
|||
ssh csh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_dash_env_parallel() {
|
||||
par_env_parallel_dash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.dash`;
|
||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||
|
@ -1516,7 +1516,7 @@ _EOF
|
|||
ssh dash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_fish_env_parallel() {
|
||||
par_env_parallel_fish() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||
# Due to $PARALLEL_TMP being transferred
|
||||
|
@ -1535,7 +1535,7 @@ _EOF
|
|||
ssh fish@lo "$myscript"
|
||||
}
|
||||
|
||||
par_ksh_env_parallel() {
|
||||
par_env_parallel_ksh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.ksh`;
|
||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||
|
@ -1560,7 +1560,7 @@ _EOF
|
|||
ssh ksh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_mksh_env_parallel() {
|
||||
par_env_parallel_mksh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.mksh`;
|
||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||
|
@ -1585,7 +1585,7 @@ _EOF
|
|||
ssh mksh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_sh_env_parallel() {
|
||||
par_env_parallel_sh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.sh`;
|
||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||
|
@ -1610,7 +1610,7 @@ _EOF
|
|||
ssh sh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_tcsh_env_parallel() {
|
||||
par_env_parallel_tcsh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||
# Due to $PARALLEL_TMP being transferred
|
||||
|
@ -1623,7 +1623,7 @@ _EOF
|
|||
ssh tcsh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_zsh_env_parallel() {
|
||||
par_env_parallel_zsh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||
# Due to $PARALLEL_TMP being transferred
|
||||
|
@ -1647,7 +1647,7 @@ _EOF
|
|||
ssh zsh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_ash_environment_too_big() {
|
||||
par_environment_too_big_ash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50815: env_parallel should warn if the environment is too big'
|
||||
len_var=63
|
||||
|
@ -1717,7 +1717,7 @@ _EOF
|
|||
ssh ash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_bash_environment_too_big() {
|
||||
par_environment_too_big_bash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50815: env_parallel should warn if the environment is too big'
|
||||
len_overhead=-$( (shopt;alias;typeset -f;typeset -p) | wc -c)/1000
|
||||
|
@ -1788,11 +1788,11 @@ _EOF
|
|||
ssh bash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_csh_environment_too_big() {
|
||||
par_environment_too_big_csh() {
|
||||
echo Not implemented
|
||||
}
|
||||
|
||||
par_dash_environment_too_big() {
|
||||
par_environment_too_big_dash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50815: env_parallel should warn if the environment is too big'
|
||||
len_var=63
|
||||
|
@ -1862,12 +1862,12 @@ _EOF
|
|||
ssh dash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_fish_environment_too_big() {
|
||||
par_environment_too_big_fish() {
|
||||
echo Not implemented
|
||||
}
|
||||
|
||||
|
||||
par_ksh_environment_too_big() {
|
||||
par_environment_too_big_ksh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50815: env_parallel should warn if the environment is too big'
|
||||
len_functions=-$(functions|wc -c)/1000
|
||||
|
@ -1939,7 +1939,7 @@ _EOF
|
|||
ssh ksh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_mksh_environment_too_big() {
|
||||
par_environment_too_big_mksh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50815: env_parallel should warn if the environment is too big'
|
||||
len_var=47
|
||||
|
@ -2010,7 +2010,7 @@ _EOF
|
|||
ssh mksh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_sh_environment_too_big() {
|
||||
par_environment_too_big_sh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50815: env_parallel should warn if the environment is too big'
|
||||
len_var=63
|
||||
|
@ -2080,11 +2080,11 @@ _EOF
|
|||
ssh sh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_tcsh_environment_too_big() {
|
||||
par_environment_too_big_tcsh() {
|
||||
echo Not implemented
|
||||
}
|
||||
|
||||
par_zsh_environment_too_big() {
|
||||
par_environment_too_big_zsh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'bug #50815: env_parallel should warn if the environment is too big'
|
||||
. `which env_parallel.zsh`;
|
||||
|
@ -2136,7 +2136,7 @@ _EOF
|
|||
ssh zsh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_ash_parset() {
|
||||
par_parset_ash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'parset'
|
||||
. `which env_parallel.ash`
|
||||
|
@ -2199,7 +2199,7 @@ _EOF
|
|||
ssh ash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_bash_parset() {
|
||||
par_parset_bash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'parset'
|
||||
. `which env_parallel.bash`
|
||||
|
@ -2257,11 +2257,11 @@ _EOF
|
|||
ssh bash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_csh_parset() {
|
||||
par_parset_csh() {
|
||||
echo Not implemented
|
||||
}
|
||||
|
||||
par_dash_parset() {
|
||||
par_parset_dash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'parset'
|
||||
. `which env_parallel.dash`
|
||||
|
@ -2324,11 +2324,11 @@ _EOF
|
|||
ssh dash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_fish_parset() {
|
||||
par_parset_fish() {
|
||||
echo Not implemented
|
||||
}
|
||||
|
||||
par_ksh_parset() {
|
||||
par_parset_ksh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'parset'
|
||||
. `which env_parallel.ksh`
|
||||
|
@ -2386,7 +2386,7 @@ _EOF
|
|||
ssh ksh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_mksh_parset() {
|
||||
par_parset_mksh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'parset'
|
||||
. `which env_parallel.mksh`
|
||||
|
@ -2446,7 +2446,7 @@ _EOF
|
|||
ssh mksh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_sh_parset() {
|
||||
par_parset_sh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'parset'
|
||||
. `which env_parallel.sh`
|
||||
|
@ -2532,11 +2532,11 @@ _EOF
|
|||
ssh sh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_tcsh_parset() {
|
||||
par_parset_tcsh() {
|
||||
echo Not implemented
|
||||
}
|
||||
|
||||
par_zsh_parset() {
|
||||
par_parset_zsh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo 'parset'
|
||||
. `which env_parallel.zsh`
|
||||
|
@ -2605,7 +2605,7 @@ _EOF
|
|||
|
||||
### env_parallel_session
|
||||
|
||||
par_ash_env_parallel_session() {
|
||||
par_env_parallel_--session_ash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.ash`
|
||||
echo '### Test env_parallel --session'
|
||||
|
@ -2706,7 +2706,7 @@ _EOF
|
|||
ssh ash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_bash_env_parallel_session() {
|
||||
par_env_parallel_--session_bash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
echo '### Test env_parallel --session / --end-session'
|
||||
. `which env_parallel.bash`
|
||||
|
@ -2798,11 +2798,11 @@ _EOF
|
|||
ssh bash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_csh_env_parallel_session() {
|
||||
par_env_parallel_--session_csh() {
|
||||
echo Not implemented
|
||||
}
|
||||
|
||||
par_dash_env_parallel_session() {
|
||||
par_env_parallel_--session_dash() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.dash`
|
||||
echo '### Test env_parallel --session'
|
||||
|
@ -2903,7 +2903,7 @@ _EOF
|
|||
ssh dash@lo "$myscript"
|
||||
}
|
||||
|
||||
par_fish_env_parallel_session() {
|
||||
par_env_parallel_--session_fish() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. (which env_parallel.fish)
|
||||
|
||||
|
@ -2945,7 +2945,7 @@ _EOF
|
|||
ssh fish@lo "$myscript" 2>&1
|
||||
}
|
||||
|
||||
par_ksh_env_parallel_session() {
|
||||
par_env_parallel_--session_ksh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.ksh`
|
||||
echo '### Test env_parallel --session'
|
||||
|
@ -3035,7 +3035,7 @@ _EOF
|
|||
ssh ksh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_mksh_env_parallel_session() {
|
||||
par_env_parallel_--session_mksh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.mksh`
|
||||
echo '### Test env_parallel --session'
|
||||
|
@ -3125,7 +3125,7 @@ _EOF
|
|||
ssh mksh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_sh_env_parallel_session() {
|
||||
par_env_parallel_--session_sh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.sh`
|
||||
echo '### Test env_parallel --session'
|
||||
|
@ -3219,11 +3219,11 @@ _EOF
|
|||
ssh sh@lo "$myscript"
|
||||
}
|
||||
|
||||
par_tcsh_env_parallel_session() {
|
||||
par_env_parallel_--session_tcsh() {
|
||||
echo Not implemented
|
||||
}
|
||||
|
||||
par_zsh_env_parallel_session() {
|
||||
par_env_parallel_--session_zsh() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
. `which env_parallel.zsh`
|
||||
eval "`cat <<"_EOS";
|
||||
|
@ -3321,7 +3321,7 @@ export -f $(compgen -A function | grep par_)
|
|||
|
||||
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
|
||||
#compgen -A function | grep par_ | sort |
|
||||
compgen -A function | grep par_ | LC_ALL=C sort -r |
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
# parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1'
|
||||
# 2019-07-14 200% too high for 16 GB/4 thread
|
||||
parallel --joblog /tmp/jl-`basename $0` -j75% --retries 2 --tag -k '{} 2>&1' |
|
||||
|
|
|
@ -70,13 +70,13 @@ _EOS
|
|||
uniq
|
||||
}
|
||||
|
||||
par_keep_order() {
|
||||
par_z_keep_order() {
|
||||
echo '### Test --keep-order'
|
||||
seq 0 2 |
|
||||
parallel --keep-order -j100% -S 1/:,2/parallel@lo -q perl -e 'sleep 1;print "job{}\n";exit({})'
|
||||
}
|
||||
|
||||
par_keeporder() {
|
||||
par_z_keeporder() {
|
||||
echo '### Test --keeporder'
|
||||
seq 0 2 |
|
||||
parallel --keeporder -j100% -S 1/:,2/parallel@lo -q perl -e 'sleep 1;print "job{}\n";exit({})'
|
||||
|
@ -87,7 +87,7 @@ par_load_csh() {
|
|||
parallel --load 100% -S csh@lo echo ::: a
|
||||
}
|
||||
|
||||
par_bar_m() {
|
||||
par_z_bar_m() {
|
||||
echo '### test --bar -m'
|
||||
stdout parallel --bar -P 2 -m sleep ::: 1 1 2 2 3 3 |
|
||||
perl -pe 's/\r/\n/g'|
|
||||
|
@ -125,7 +125,7 @@ par_retries_4() {
|
|||
retries 4 48 49
|
||||
}
|
||||
|
||||
par_csh_environment_variables_set() {
|
||||
par_z_csh_environment_variables_set() {
|
||||
echo '### Check $PARALLEL_PID $PARALLEL_SEQ are set in csh'
|
||||
parallel -S csh@localhost 'echo $PARALLEL_PID $PARALLEL_SEQ {}| wc -w' ::: a
|
||||
}
|
||||
|
|
|
@ -152,7 +152,7 @@ par_propagate_env() {
|
|||
par_env_parallel_big_env() {
|
||||
echo '### bug #54128: command too long when exporting big env'
|
||||
. `which env_parallel.bash`
|
||||
a=`rand | perl -pe 's/\0//g'| head -c 20000`
|
||||
a=`rand | perl -pe 's/\0//g'| head -c 15000`
|
||||
env_parallel -Slo echo should not ::: fail 2>&1
|
||||
a=`rand | perl -pe 's/\0//g'| head -c 25000`
|
||||
env_parallel -Slo echo should ::: fail 2>/dev/null || echo OK
|
||||
|
|
|
@ -25,3 +25,11 @@ echo perl |
|
|||
grep -v '\$' |
|
||||
grep -v '] read(6' |
|
||||
grep -v input-files/perllib
|
||||
|
||||
par_make_deb_package() {
|
||||
echo '### Test make .deb package';
|
||||
cd ~/privat/parallel/packager/debian;
|
||||
stdout make | grep 'To install the GNU Parallel Debian package, run:'
|
||||
}
|
||||
|
||||
par_make_deb_package
|
||||
|
|
|
@ -67,10 +67,6 @@ echo "### bug #35268: shell_quote doesn't treats [] brackets correctly"
|
|||
stdout parallel echo ::: '/tmp/foo[123]';
|
||||
rm /tmp/foo1
|
||||
|
||||
echo '### Test make .deb package';
|
||||
cd ~/privat/parallel/packager/debian;
|
||||
stdout make | grep 'To install the GNU Parallel Debian package, run:'
|
||||
|
||||
echo '### Test basic --arg-sep'
|
||||
parallel -k echo ::: a b
|
||||
|
||||
|
|
|
@ -232,6 +232,8 @@ EOF
|
|||
}
|
||||
|
||||
par_shebang_wrap_clisp() {
|
||||
# clisp cannot handle dirs w/ shell wildcards
|
||||
TMPDIR=/tmp
|
||||
script="$TMPDIR"/shebang_wrap_clisp
|
||||
cat <<'EOF' > "$script"
|
||||
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/clisp
|
||||
|
|
|
@ -52,8 +52,8 @@ echo '### bug #42041: Implement $PARALLEL_JOBSLOT'
|
|||
|
||||
echo '### bug #42363: --pipepart and --fifo/--cat does not work'
|
||||
seq 100 > /tmp/bug42363;
|
||||
parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo wc | perl -pe 's:(/tmp.*par).....:${1}XXXXX:';
|
||||
parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat wc | perl -pe 's:(/tmp.*par).....:${1}XXXXX:';
|
||||
parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo 'cat {} | wc';
|
||||
parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat 'cat {} | wc';
|
||||
rm /tmp/bug42363
|
||||
|
||||
echo '### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile'
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
|
||||
par_tmux_filter() {
|
||||
# /tmp/parallel-local7/tmsOU2Ig
|
||||
perl -pe 's:(/tmp.*/tms).....:$1XXXXX:;s/ p\d+/pID/;'
|
||||
replace_tmpdir |
|
||||
perl -pe 's:/tms.....:/tmsXXXXX:;s/ p\d+/pID/;'
|
||||
}
|
||||
export -f par_tmux_filter
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@ EOF
|
|||
# Each should generate at least 2 commands
|
||||
|
||||
par_many_args() {
|
||||
export PARALLEL="--_unsafe"
|
||||
rm -f ~/.parallel/tmp/sshlogin/*/linelen
|
||||
pecho() { perl -e 'print "@ARGV\n"' "$@"; }
|
||||
export -f pecho
|
||||
|
@ -84,6 +85,7 @@ par_many_var() {
|
|||
}
|
||||
|
||||
par_many_var_func() {
|
||||
export PARALLEL="--_unsafe"
|
||||
export LC_ALL=C
|
||||
rm -f ~/.parallel/tmp/sshlogin/*/linelen
|
||||
gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; }
|
||||
|
@ -97,6 +99,7 @@ par_many_var_func() {
|
|||
}
|
||||
|
||||
par_many_func() {
|
||||
export PARALLEL="--_unsafe"
|
||||
export LC_ALL=C
|
||||
rm -f ~/.parallel/tmp/sshlogin/*/linelen
|
||||
gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; }
|
||||
|
@ -109,6 +112,7 @@ par_many_func() {
|
|||
}
|
||||
|
||||
par_big_func() {
|
||||
export PARALLEL="--_unsafe"
|
||||
export LC_ALL=C
|
||||
rm -f ~/.parallel/tmp/sshlogin/*/linelen
|
||||
gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; }
|
||||
|
@ -164,6 +168,7 @@ par_big_var_func_name() {
|
|||
grep 18XXX
|
||||
}
|
||||
|
||||
export PARALLEL="--_unsafe"
|
||||
macsshlogin=$(parallel --halt now,success=1 ssh {} echo {} ::: ota@mac macosx.p)
|
||||
|
||||
scp /usr/local/bin/parallel $macsshlogin:bin/
|
||||
|
|
|
@ -52,11 +52,15 @@ par_controlmaster_is_faster() {
|
|||
echo '### bug #41964: --controlmaster not seems to reuse OpenSSH connections to the same host'
|
||||
echo '-M should finish first - eventhough there are 2x jobs'
|
||||
export SSHLOGIN1=sh@lo
|
||||
nl="$(printf "\n\n.")"
|
||||
export TMPDIR="/tmp/ctrl_master/$nl'$nl"
|
||||
mkdir -p "$TMPDIR"
|
||||
(parallel -S $SSHLOGIN1 true ::: {1..20};
|
||||
echo No --controlmaster - finish last) &
|
||||
(parallel -M -S $SSHLOGIN1 true ::: {1..40};
|
||||
echo With --controlmaster - finish first) &
|
||||
wait
|
||||
rm -r "/tmp/ctrl_master"
|
||||
}
|
||||
|
||||
par_workdir_in_HOME() {
|
||||
|
|
|
@ -12,104 +12,107 @@ cleanup
|
|||
touch ~/.parallel/will-cite
|
||||
echo '### test parallel_tutorial'
|
||||
|
||||
TMPDIR=/tmp/parllel-tutorial
|
||||
mkdir -p "$TMPDIR"
|
||||
cd "$TMPDIR"
|
||||
pwd=$(pwd)
|
||||
# If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
|
||||
testsuitedir=${testsuitedir:-$pwd}
|
||||
srcdir=$(echo "$testsuitedir" | perl -pe 's=$ENV{HOME}==')
|
||||
|
||||
export SERVER1=parallel@lo
|
||||
export SERVER2=csh@lo
|
||||
export PARALLEL=-k
|
||||
perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' "$testsuitedir"/../src/parallel_tutorial.pod |
|
||||
egrep -v 'curl|tty|parallel_tutorial|interactive|example.(com|net)|shellquote|works' |
|
||||
perl -pe 's/username@//;s/user@//;
|
||||
s/zenity/zenity --timeout=15/;
|
||||
s:/usr/bin/time:/usr/bin/time -f %e:;
|
||||
s:ignored_vars:ignored_vars|sort:;
|
||||
# Remove \n to join all joblogs into the previous block
|
||||
s:cat /tmp/log\n:cat /tmp/log;:;
|
||||
# Remove import (python code)
|
||||
s:import.*::;
|
||||
# When parallelized: Sleep to make sure the abc-files are made
|
||||
/%head1/ and $_.="sleep .3\n\n"x10;
|
||||
egrep -v 'curl|tty|parallel_tutorial|interactive|example.(com|net)|shellquote|works' |
|
||||
perl -pe 's/username@//;s/user@//;
|
||||
s/zenity/zenity --timeout=15/;
|
||||
s:/usr/bin/time:/usr/bin/time -f %e:;
|
||||
s:ignored_vars:ignored_vars|sort:;
|
||||
# Remove \n to join all joblogs into the previous block
|
||||
s:cat /tmp/log\n:cat /tmp/log;:;
|
||||
# Remove import (python code)
|
||||
s:import.*::;
|
||||
# When parallelized: Sleep to make sure the abc-files are made
|
||||
/%head1/ and $_.="sleep .3\n\n"x10;
|
||||
' |
|
||||
stdout parallel --joblog /tmp/jl-`basename $0` -j6 -vd'\n\n' |
|
||||
perl -pe '$|=1;
|
||||
# --pipe --roundrobin wc
|
||||
s: \d{6} \d{6} \d{7}: 999999 999999 9999999:;
|
||||
# --tmux
|
||||
s:(/tmp\S+)(tms).....:$1$2XXXXX:;
|
||||
# --files
|
||||
s:(/tmp\S+par).....(\....):$1XXXXX$2:;
|
||||
# --eta --progress
|
||||
s/ETA.*//g; s/local:.*//g;
|
||||
# Sat Apr 4 11:55:40 CEST 2015
|
||||
s/... ... .. ..:..:.. \D+ ..../DATE OUTPUT/;
|
||||
# Timestamp from --joblog
|
||||
s/\d{10}.\d{3}\s+..\d+/TIMESTAMP\t9.999/g;
|
||||
# Version
|
||||
s/20[0-3]\d{5}/VERSION/g;
|
||||
# [123] [abc] [ABC]
|
||||
s/^[123] [abc] [ABC]$/123 abc ABC/g;
|
||||
# Remote script
|
||||
s/(PARALLEL_PID\D+)\d+/${1}000000/g;
|
||||
# sql timing
|
||||
s/,[a-z]*,\d+.\d+,\d+.\d+/,:,000000000.000,0.000/g;
|
||||
# /usr/bin/time -f %e
|
||||
s/^(\d+)\.\d+$/$1/;
|
||||
# --workdir ...
|
||||
s:parallel/tmp/aspire-\d+-1:TMPWORKDIR:g;
|
||||
# .../privat/parallel2/
|
||||
s='$srcdir'==;
|
||||
# + cat ... | (Bash outputs these in random order)
|
||||
s/\+ cat.*\n//;
|
||||
# + echo ... | (Bash outputs these in random order)
|
||||
s/\+ echo.*\n//;
|
||||
# + wc ... (Bash outputs these in random order)
|
||||
s/\+ wc.*\n//;
|
||||
# + command_X | (Bash outputs these in random order)
|
||||
s/.*command_[ABC].*\n//;
|
||||
# Due to multiple jobs "Second started" often ends up wrong
|
||||
s/Second started\n//;
|
||||
s/The second finished\n//;
|
||||
# Due to multiple jobs "tried 2" often ends up wrong
|
||||
s/tried 2\n//;
|
||||
# Due to order is often mixed up
|
||||
s/echo \d; exit \d\n/echo X; exit X\n/;
|
||||
# Race condition causes outdir to sometime exist
|
||||
s/(std(out|err)|seq): Permission denied/$1: No such file or directory/;
|
||||
# Race condition
|
||||
s/^4-(middle|end)\n//;
|
||||
# Base 64 string with quotes
|
||||
s:['"'"'"\\+/a-z.0-9=]{50,}(\s['"'"'"\\+/a-z.0-9=]*)*:BASE64:ig;
|
||||
# Timings are often off
|
||||
s/^(\d)$/9/;
|
||||
s/^(\d\d)$/99/;
|
||||
# Remove variable names - they vary
|
||||
s/^[A-Z][A-Z0-9_]*\s$//;
|
||||
# Fails often due to race
|
||||
s/cat: input_file: No such file or directory\n//;
|
||||
s{rsync: link_stat ".*/home/parallel/input_file.out" .*\n}{};
|
||||
s{rsync error: some files/attrs were not transferred .*\n}{};
|
||||
s{.* GtkDialog .*\n}{};
|
||||
s{tried 1}{};
|
||||
s/^\s*\n//;
|
||||
s/^Second done\n//;
|
||||
# Changed citation
|
||||
s/Tange, O. .* GNU Parallel .*//;
|
||||
s:https.//doi.org/10.5281/.*::;
|
||||
s/.software.tange_.*//;
|
||||
s/title.*= .*Parallel .*//;
|
||||
s/month.*= .*//;
|
||||
s/doi.*=.*//;
|
||||
s/url.*= .*doi.org.*//;
|
||||
s/.Feel free to use .nocite.*//;
|
||||
# tmpdir and files
|
||||
s:/tmp/parallel-tutorial-tmpdir/par-job-\S+:script:g;
|
||||
s:/tmp/par-job-\S+:script:g;
|
||||
s:par......par:tempfile:g;
|
||||
s:^tempfile\n::g;
|
||||
' | uniq
|
||||
stdout parallel --joblog /tmp/jl-`basename $0` -j6 -vd'\n\n' |
|
||||
replace_tmpdir |
|
||||
perl -pe '$|=1;
|
||||
# --pipe --roundrobin wc
|
||||
s: \d{6} \d{6} \d{7}: 999999 999999 9999999:;
|
||||
# --tmux
|
||||
s:(/TMP|/tmp)(/tms).....:$1$2XXXXX:;
|
||||
# --files
|
||||
s:(/TMP/par).....(\....):$1XXXXX$2:;
|
||||
# --eta --progress
|
||||
s/ETA.*//g; s/local:.*//g;
|
||||
# Sat Apr 4 11:55:40 CEST 2015
|
||||
s/... ... .. ..:..:.. \D+ ..../DATE OUTPUT/;
|
||||
# Timestamp from --joblog
|
||||
s/\d{10}.\d{3}\s+..\d+/TIMESTAMP\t9.999/g;
|
||||
# Version
|
||||
s/20[0-3]\d{5}/VERSION/g;
|
||||
# [123] [abc] [ABC]
|
||||
s/^[123] [abc] [ABC]$/123 abc ABC/g;
|
||||
# Remote script
|
||||
s/(PARALLEL_PID\D+)\d+/${1}000000/g;
|
||||
# sql timing
|
||||
s/,[a-z]*,\d+.\d+,\d+.\d+/,:,000000000.000,0.000/g;
|
||||
# /usr/bin/time -f %e
|
||||
s/^(\d+)\.\d+$/$1/;
|
||||
# --workdir ...
|
||||
s:parallel/tmp/aspire-\d+-1:TMPWORKDIR:g;
|
||||
# .../privat/parallel2/
|
||||
s='$srcdir'==;
|
||||
# + cat ... | (Bash outputs these in random order)
|
||||
s/\+ cat.*\n//;
|
||||
# + echo ... | (Bash outputs these in random order)
|
||||
s/\+ echo.*\n//;
|
||||
# + wc ... (Bash outputs these in random order)
|
||||
s/\+ wc.*\n//;
|
||||
# + command_X | (Bash outputs these in random order)
|
||||
s/.*command_[ABC].*\n//;
|
||||
# Due to multiple jobs "Second started" often ends up wrong
|
||||
s/Second started\n//;
|
||||
s/The second finished\n//;
|
||||
# Due to multiple jobs "tried 2" often ends up wrong
|
||||
s/tried 2\n//;
|
||||
# Due to order is often mixed up
|
||||
s/echo \d; exit \d\n/echo X; exit X\n/;
|
||||
# Race condition causes outdir to sometime exist
|
||||
s/(std(out|err)|seq): Permission denied/$1: No such file or directory/;
|
||||
# Race condition
|
||||
s/^4-(middle|end)\n//;
|
||||
# Base 64 string with quotes
|
||||
s:['"'"'"\\+/a-z.0-9=]{50,}(\s['"'"'"\\+/a-z.0-9=]*)*:BASE64:ig;
|
||||
# Timings are often off
|
||||
s/^(\d)$/9/;
|
||||
s/^(\d\d)$/99/;
|
||||
# Remove variable names - they vary
|
||||
s/^[A-Z][A-Z0-9_]*\s$//;
|
||||
# Fails often due to race
|
||||
s/cat: input_file: No such file or directory\n//;
|
||||
s{rsync: link_stat ".*/home/parallel/input_file.out" .*\n}{};
|
||||
s{rsync error: some files/attrs were not transferred .*\n}{};
|
||||
s{.* GtkDialog .*\n}{};
|
||||
s{tried 1}{};
|
||||
s/^\s*\n//;
|
||||
s/^Second done\n//;
|
||||
# Changed citation
|
||||
s/Tange, O. .* GNU Parallel .*//;
|
||||
s:https.//doi.org/10.5281/.*::;
|
||||
s/.software.tange_.*//;
|
||||
s/title.*= .*Parallel .*//;
|
||||
s/month.*= .*//;
|
||||
s/doi.*=.*//;
|
||||
s/url.*= .*doi.org.*//;
|
||||
s/.Feel free to use .nocite.*//;
|
||||
# tmpdir and files
|
||||
s:/tmp/parallel-tutorial-tmpdir/par-job-\S+:script:g;
|
||||
s:/tmp/par-job-\S+:script:g;
|
||||
s:par......par:tempfile:g;
|
||||
s:^tempfile\n::g;
|
||||
' | uniq
|
||||
|
||||
echo "### 3+3 .par files (from --files), 1 .tms-file from tmux attach"
|
||||
find {"$TMPDIR",/var/tmp}/{fif,tms,par[^a]}* -mmin -10 -type f -print0 2>/dev/null |
|
||||
|
|
|
@ -102,8 +102,9 @@ sql --tablesize :sqlunittest | wc -l
|
|||
sql --table-size :sqlunittest | wc -l
|
||||
|
||||
echo "### Test --debug"
|
||||
sql --debug :sqlunittest "SELECT 'Yes it does' as 'Test if --debug works';" |
|
||||
perl -pe 's:/tmp/...........sql:tmpfile:g'
|
||||
stdout sql --debug :sqlunittest "SELECT 'Yes it does' as 'Test if --debug works';" |
|
||||
replace_tmpdir |
|
||||
perl -pe 's:/...........sql:/tmpfile:g'
|
||||
|
||||
echo "### Test --version -V"
|
||||
sql --version | wc
|
||||
|
|
|
@ -11,7 +11,16 @@ SSHUSER2=vagrant
|
|||
SSHLOGIN1=$SSHUSER1@$SERVER1
|
||||
SSHLOGIN2=$SSHUSER2@$SERVER2
|
||||
|
||||
short_TMPDIR() {
|
||||
# TMPDIR must be short for -M
|
||||
export TMPDIR=/tmp/ssh/'
|
||||
`touch /tmp/tripwire`
|
||||
'
|
||||
mkdir -p "$TMPDIR"
|
||||
}
|
||||
|
||||
echo '### Test -M (--retries to avoid false errors)'
|
||||
|
||||
short_TMPDIR
|
||||
seq 1 30 | parallel -j5 --retries 3 -k -M -S $SSHLOGIN1,$SSHLOGIN2 echo 2>/dev/null
|
||||
seq 1 30 | parallel -j10 --retries 3 -k -M -S $SSHLOGIN1,$SSHLOGIN2 echo 2>/dev/null
|
||||
|
|
|
@ -7,6 +7,7 @@ par_PARALLEL_ENV OK as file
|
|||
par_PARALLEL_ENV ### PARALLEL_ENV as fifo
|
||||
par_PARALLEL_ENV OK as fifo
|
||||
par_PARALLEL_HOME_not_exist ### bug #62311: --pipepart + ::: fail
|
||||
par_PARALLEL_HOME_not_exist parallel: Warning: $PARALLEL_HOME can only contain [-a-z0-9_+,.%:/= ].
|
||||
par_PARALLEL_HOME_not_exist OK
|
||||
par_PARALLEL_HOME_not_exist Should warn:
|
||||
par_PARALLEL_HOME_not_exist parallel: Warning: $PARALLEL_HOME (/does-not-exist) does not exist.
|
||||
|
@ -14,6 +15,7 @@ par_PARALLEL_HOME_not_exist parallel: Warning: Using ~/.parallel
|
|||
par_PARALLEL_HOME_not_exist should
|
||||
par_PARALLEL_HOME_not_exist warn
|
||||
par_PARALLEL_HOME_with_+ bug #59453: PARALLEL_HOME with plus sign causes error: config not readable
|
||||
par_PARALLEL_HOME_with_+ parallel: Warning: $PARALLEL_HOME can only contain [-a-z0-9_+,.%:/= ].
|
||||
par_PARALLEL_HOME_with_+ Parallel_home_with+
|
||||
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
|
||||
|
@ -313,13 +315,23 @@ par_jobslot_jobnumber_pipe 1
|
|||
par_jobslot_jobnumber_pipe 1
|
||||
par_jobslot_jobnumber_pipe 1
|
||||
par_jobslot_jobnumber_pipe 1
|
||||
par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\"'", "V": [ "\"\u0000\\\"","\"" ], "Stdout": "\"\u0000\\\" \"\u000a", "Stderr": "" }
|
||||
par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\\\\'", "V": [ "\"\u0000\\\"","\\\\" ], "Stdout": "\"\u0000\\\" \\\\\u000a", "Stderr": "" }
|
||||
par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\"'", "V": [ "\"\u0000\\\","\" ], "Stdout": "\"\u0000\\\" \"\u000a", "Stderr": " }
|
||||
par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\\\\'", "V": [ "\"\u0000\\\","\\\\" ], "Stdout": "\"\u0000\\\" \\\\\u000a", "Stderr": " }
|
||||
par_l0_is_l1 ### Because of --tollef -l, then -l0 == -l1, sorry
|
||||
par_l0_is_l1 l0 1
|
||||
par_l0_is_l1 l0 2
|
||||
par_linebuffer_files ### bug #48658: --linebuffer --files
|
||||
par_linebuffer_files 21
|
||||
par_linebuffer_files parallel: Warning: Use --files0 when $TMPDIR contains newline.
|
||||
par_linebuffer_files /TMP/parXXXXX.par
|
||||
par_linebuffer_files /TMP/parXXXXX.par
|
||||
par_linebuffer_files /TMP/parXXXXX.par
|
||||
par_linebuffer_files /TMP/parXXXXX.par
|
||||
par_linebuffer_files /TMP/parXXXXX.par
|
||||
par_linebuffer_files /TMP/parXXXXX.par
|
||||
par_linebuffer_files /TMP/parXXXXX.par
|
||||
par_linebuffer_files /TMP/parXXXXX.par
|
||||
par_linebuffer_files /TMP/parXXXXX.par
|
||||
par_linebuffer_files /TMP/parXXXXX.par
|
||||
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
|
||||
|
@ -692,9 +704,8 @@ 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 parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_pipe_tag_v foo /tmp/parallel-local-0.3s-tmp/
|
||||
par_pipe_tag_v `touch /tmp/tripwire` <"'/tmp/tmpfile.par
|
||||
par_pipe_tag_v parallel: Warning: Use --files0 when $TMPDIR contains newline.
|
||||
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
|
||||
|
@ -918,14 +929,14 @@ par_results_arg_256 ### bug #42089: --results with arg > 256 chars (should be 1
|
|||
par_results_arg_256 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
|
||||
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_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 job0id
|
||||
par_resume_k job1id
|
||||
|
@ -965,10 +976,10 @@ par_sem_quote ### sem --quote should not add empty argument
|
|||
par_sem_quote echo
|
||||
par_sem_quote
|
||||
par_shellcompletion ### --shellcompletion
|
||||
par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac -
|
||||
par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac -
|
||||
par_shellcompletion 8da71392e279a12e88f00114d0a4bff0 -
|
||||
par_shellcompletion 8da71392e279a12e88f00114d0a4bff0 -
|
||||
par_shellcompletion 0097e98f494e6288b33f3201dda7ee11 -
|
||||
par_shellcompletion 0097e98f494e6288b33f3201dda7ee11 -
|
||||
par_shellcompletion 1655cb29ff14d0008866108c6b5262f7 -
|
||||
par_shellcompletion 1655cb29ff14d0008866108c6b5262f7 -
|
||||
par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks
|
||||
par_slow_pipe_regexp This should take a few ms, but took more than 2 hours
|
||||
par_slow_pipe_regexp 0 1 1
|
||||
|
@ -1094,6 +1105,8 @@ par_testquote yash "#&/
|
|||
par_testquote yash ()*=?'
|
||||
par_testquote zsh "#&/
|
||||
par_testquote zsh ()*=?'
|
||||
par_testquote fdsh "#&/
|
||||
par_testquote fdsh ()*=?'
|
||||
par_tmpl1 1.t1 /tmp/tmpl-1.1-111.111.t2
|
||||
par_tmpl1 Template1
|
||||
par_tmpl1 Xval: 1.1
|
||||
|
@ -1357,25 +1370,19 @@ par_version 11
|
|||
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 /tmp/parallel-local-0.0s-tmp/
|
||||
par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp
|
||||
par_wd_3dot_local /TMP
|
||||
par_wd_3dot_local OK
|
||||
par_wd_3dot_local /
|
||||
par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/
|
||||
par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp
|
||||
par_wd_3dot_local /TMP
|
||||
par_wd_3dot_local OK
|
||||
par_wd_3dot_local /tmp
|
||||
par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/
|
||||
par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp
|
||||
par_wd_3dot_local /TMP
|
||||
par_wd_3dot_local OK
|
||||
par_wd_3dot_local ~/.parallel/tmp/hostname-0-0
|
||||
par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/
|
||||
par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp
|
||||
par_wd_3dot_local /TMP
|
||||
par_wd_3dot_local OK
|
||||
par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/
|
||||
par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp
|
||||
par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/
|
||||
par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp
|
||||
par_wd_3dot_local /TMP
|
||||
par_wd_3dot_local /TMP
|
||||
par_wd_3dot_local OK
|
||||
par_wd_dotdotdot ### parallel --wd ... should clean up
|
||||
par_wd_dotdotdot 1 == 1
|
||||
|
|
|
@ -80,28 +80,28 @@ par_compress_prg_fails 1
|
|||
par_compress_prg_fails parallel: Error: false failed.
|
||||
par_compress_prg_fails parallel: Error: false failed.
|
||||
par_compress_prg_fails --files 1
|
||||
par_compress_prg_fails --files parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_compress_prg_fails --files parallel: Warning: Use --files0 when $TMPDIR contains newline.
|
||||
par_compress_prg_fails --files parallel: Error: false failed.
|
||||
par_compress_prg_fails --files parallel: Error: false failed.
|
||||
par_compress_prg_fails --tag 1
|
||||
par_compress_prg_fails --tag parallel: Error: false failed.
|
||||
par_compress_prg_fails --tag parallel: Error: false failed.
|
||||
par_compress_prg_fails --tag --files 1
|
||||
par_compress_prg_fails --tag --files parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_compress_prg_fails --tag --files parallel: Warning: Use --files0 when $TMPDIR contains newline.
|
||||
par_compress_prg_fails --tag --files parallel: Error: false failed.
|
||||
par_compress_prg_fails --tag --files parallel: Error: false failed.
|
||||
par_compress_prg_fails --line-buffer 1
|
||||
par_compress_prg_fails --line-buffer parallel: Error: false failed.
|
||||
par_compress_prg_fails --line-buffer parallel: Error: false failed.
|
||||
par_compress_prg_fails --line-buffer --files 1
|
||||
par_compress_prg_fails --line-buffer --files parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_compress_prg_fails --line-buffer --files parallel: Warning: Use --files0 when $TMPDIR contains newline.
|
||||
par_compress_prg_fails --line-buffer --files parallel: Error: false failed.
|
||||
par_compress_prg_fails --line-buffer --files parallel: Error: false failed.
|
||||
par_compress_prg_fails --line-buffer --tag 1
|
||||
par_compress_prg_fails --line-buffer --tag parallel: Error: false failed.
|
||||
par_compress_prg_fails --line-buffer --tag parallel: Error: false failed.
|
||||
par_compress_prg_fails --line-buffer --tag --files 1
|
||||
par_compress_prg_fails --line-buffer --tag --files parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_compress_prg_fails --line-buffer --tag --files parallel: Warning: Use --files0 when $TMPDIR contains newline.
|
||||
par_compress_prg_fails --line-buffer --tag --files parallel: Error: false failed.
|
||||
par_compress_prg_fails --line-buffer --tag --files parallel: Error: false failed.
|
||||
par_dryrun_timeout_ungroup bug #51039: --dry-run --timeout 1.4m -u breaks
|
||||
|
@ -110,24 +110,16 @@ par_failing_compressor Compress with failing (de)compressor
|
|||
par_failing_compressor Test --tag/--line-buffer/--files in all combinations
|
||||
par_failing_compressor Test working/failing compressor/decompressor in all combinations
|
||||
par_failing_compressor (-k is used as a dummy argument)
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true /TMP/tmpfile
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false /TMP/tmpfile
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true /TMP/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false /TMP/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
|
@ -146,24 +138,16 @@ par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
|
|||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true /TMP/tmpfile
|
||||
par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false /TMP/tmpfile
|
||||
par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true /TMP/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false /TMP/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
|
@ -182,24 +166,16 @@ par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
|
|||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor /TMP/tmpfile
|
||||
par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor /TMP/tmpfile
|
||||
par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor /TMP/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor /TMP/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
|
@ -218,24 +194,16 @@ par_failing_compressor C=cat;false,D=cat;false
|
|||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor /TMP/tmpfile
|
||||
par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor /TMP/tmpfile
|
||||
par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor /TMP/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmp/
|
||||
par_failing_compressor `touch /tmpfile
|
||||
par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor /TMP/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
|
||||
|
@ -799,8 +767,7 @@ par_parset 4
|
|||
par_parset 5
|
||||
par_parset The commands to run can be an array
|
||||
par_parset <<joe "double space" cartoon>>
|
||||
par_parset /tmp/parallel-local-10s-tmp/
|
||||
par_parset `touch /tmp/tripwire` <"'/tmp
|
||||
par_parset /TMP
|
||||
par_parset You cannot pipe into parset, but must use a tempfile
|
||||
par_parset 1
|
||||
par_parset 10
|
||||
|
@ -1125,24 +1092,16 @@ par_quote_special_results mkfs.f2fs 150+0 records out
|
|||
par_reload_slf_every_second ### --slf should reload every second
|
||||
par_reload_slf_every_second OK
|
||||
par_results_csv bug #: --results csv
|
||||
par_results_csv --header : --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||
par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --header : --tag --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --header : --tag --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --header : --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||
par_results_csv --header : --tag --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --tag --files `touch /tmpfile",
|
||||
par_results_csv --header : --tag --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --tag --files `touch /tmpfile",
|
||||
par_results_csv --header : --tag --files 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --tag --files `touch /tmpfile",
|
||||
par_results_csv --header : --tag --files 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --tag --files `touch /tmpfile",
|
||||
par_results_csv --header : --tag --files0 --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||
par_results_csv --header : --tag --files0 --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /TMP/tmpfile",
|
||||
par_results_csv --header : --tag --files0 --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /TMP/tmpfile",
|
||||
par_results_csv --header : --tag --files0 --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /TMP/tmpfile",
|
||||
par_results_csv --header : --tag --files0 --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /TMP/tmpfile",
|
||||
par_results_csv --header : --tag --files0 Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||
par_results_csv --header : --tag --files0 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /TMP/tmpfile",
|
||||
par_results_csv --header : --tag --files0 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /TMP/tmpfile",
|
||||
par_results_csv --header : --tag --files0 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /TMP/tmpfile",
|
||||
par_results_csv --header : --tag --files0 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /TMP/tmpfile",
|
||||
par_results_csv --header : --tag --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||
par_results_csv --header : --tag --compress 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
|
||||
par_results_csv --header : --tag --compress ",
|
||||
|
@ -1161,24 +1120,16 @@ par_results_csv --header : --tag 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,1
|
|||
par_results_csv --header : --tag ",
|
||||
par_results_csv --header : --tag 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
|
||||
par_results_csv --header : --tag ",
|
||||
par_results_csv --header : --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||
par_results_csv --header : --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --files --compress `touch /tmpfile",
|
||||
par_results_csv --header : --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --files --compress `touch /tmpfile",
|
||||
par_results_csv --header : --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --files --compress `touch /tmpfile",
|
||||
par_results_csv --header : --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --files --compress `touch /tmpfile",
|
||||
par_results_csv --header : --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||
par_results_csv --header : --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --files `touch /tmpfile",
|
||||
par_results_csv --header : --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --files `touch /tmpfile",
|
||||
par_results_csv --header : --files 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --files `touch /tmpfile",
|
||||
par_results_csv --header : --files 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --header : --files `touch /tmpfile",
|
||||
par_results_csv --header : --files0 --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||
par_results_csv --header : --files0 --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"/TMP/tmpfile",
|
||||
par_results_csv --header : --files0 --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"/TMP/tmpfile",
|
||||
par_results_csv --header : --files0 --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"/TMP/tmpfile",
|
||||
par_results_csv --header : --files0 --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"/TMP/tmpfile",
|
||||
par_results_csv --header : --files0 Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||
par_results_csv --header : --files0 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"/TMP/tmpfile",
|
||||
par_results_csv --header : --files0 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"/TMP/tmpfile",
|
||||
par_results_csv --header : --files0 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"/TMP/tmpfile",
|
||||
par_results_csv --header : --files0 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"/TMP/tmpfile",
|
||||
par_results_csv --header : --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||
par_results_csv --header : --compress 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
|
||||
par_results_csv --header : --compress ",
|
||||
|
@ -1197,44 +1148,26 @@ par_results_csv --header : 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23
|
|||
par_results_csv --header : ",
|
||||
par_results_csv --header : 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
|
||||
par_results_csv --header : ",
|
||||
par_results_csv --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||
par_results_csv --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --tag --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --tag --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --tag --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --tag --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --tag --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --tag --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --tag --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files --compress `touch /tmpfile",
|
||||
par_results_csv --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||
par_results_csv --tag --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files `touch /tmpfile",
|
||||
par_results_csv --tag --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files `touch /tmpfile",
|
||||
par_results_csv --tag --files 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files `touch /tmpfile",
|
||||
par_results_csv --tag --files 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files `touch /tmpfile",
|
||||
par_results_csv --tag --files 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files `touch /tmpfile",
|
||||
par_results_csv --tag --files 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files `touch /tmpfile",
|
||||
par_results_csv --tag --files 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files `touch /tmpfile",
|
||||
par_results_csv --tag --files 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files `touch /tmpfile",
|
||||
par_results_csv --tag --files 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --tag --files `touch /tmpfile",
|
||||
par_results_csv --tag --files0 --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||
par_results_csv --tag --files0 --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"H2 H1 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"H2 11 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"H2 12 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"22 H1 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"23 H1 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||
par_results_csv --tag --files0 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /TMP/tmpfile",
|
||||
par_results_csv --tag --files0 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /TMP/tmpfile",
|
||||
par_results_csv --tag --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||
par_results_csv --tag --compress 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 H2 H1
|
||||
par_results_csv --tag --compress ",
|
||||
|
@ -1273,44 +1206,26 @@ par_results_csv --tag 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 2
|
|||
par_results_csv --tag ",
|
||||
par_results_csv --tag 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
|
||||
par_results_csv --tag ",
|
||||
par_results_csv --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||
par_results_csv --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files --compress `touch /tmpfile",
|
||||
par_results_csv --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files --compress `touch /tmpfile",
|
||||
par_results_csv --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files --compress `touch /tmpfile",
|
||||
par_results_csv --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files --compress `touch /tmpfile",
|
||||
par_results_csv --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files --compress `touch /tmpfile",
|
||||
par_results_csv --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files --compress `touch /tmpfile",
|
||||
par_results_csv --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files --compress `touch /tmpfile",
|
||||
par_results_csv --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files --compress `touch /tmpfile",
|
||||
par_results_csv --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files --compress `touch /tmpfile",
|
||||
par_results_csv --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||
par_results_csv --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files `touch /tmpfile",
|
||||
par_results_csv --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files `touch /tmpfile",
|
||||
par_results_csv --files 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files `touch /tmpfile",
|
||||
par_results_csv --files 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files `touch /tmpfile",
|
||||
par_results_csv --files 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files `touch /tmpfile",
|
||||
par_results_csv --files 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files `touch /tmpfile",
|
||||
par_results_csv --files 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files `touch /tmpfile",
|
||||
par_results_csv --files 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files `touch /tmpfile",
|
||||
par_results_csv --files 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"/tmp/parallel-local-10s-tmp/
|
||||
par_results_csv --files `touch /tmpfile",
|
||||
par_results_csv --files0 --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||
par_results_csv --files0 --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"/TMP/tmpfile",
|
||||
par_results_csv --files0 --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"/TMP/tmpfile",
|
||||
par_results_csv --files0 --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"/TMP/tmpfile",
|
||||
par_results_csv --files0 --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"/TMP/tmpfile",
|
||||
par_results_csv --files0 --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"/TMP/tmpfile",
|
||||
par_results_csv --files0 --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"/TMP/tmpfile",
|
||||
par_results_csv --files0 --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"/TMP/tmpfile",
|
||||
par_results_csv --files0 --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"/TMP/tmpfile",
|
||||
par_results_csv --files0 --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"/TMP/tmpfile",
|
||||
par_results_csv --files0 Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||
par_results_csv --files0 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"/TMP/tmpfile",
|
||||
par_results_csv --files0 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"/TMP/tmpfile",
|
||||
par_results_csv --files0 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"/TMP/tmpfile",
|
||||
par_results_csv --files0 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"/TMP/tmpfile",
|
||||
par_results_csv --files0 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"/TMP/tmpfile",
|
||||
par_results_csv --files0 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"/TMP/tmpfile",
|
||||
par_results_csv --files0 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"/TMP/tmpfile",
|
||||
par_results_csv --files0 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"/TMP/tmpfile",
|
||||
par_results_csv --files0 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"/TMP/tmpfile",
|
||||
par_results_csv --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||
par_results_csv --compress 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1
|
||||
par_results_csv --compress ",
|
||||
|
@ -1423,8 +1338,7 @@ par_tmp_full parallel: Error: Cannot append to buffer file in /tmp/shm/parallel.
|
|||
par_tmp_full parallel: Error: Is the disk full?
|
||||
par_tmp_full parallel: Error: Change $TMPDIR with --tmpdir or use --compress.
|
||||
par_tmux_fg bug #50107: --tmux --fg should also write how to access it
|
||||
par_tmux_fg See output with: tmux -S '/tmp/parallel-local-10s-tmp/
|
||||
par_tmux_fg `touch tmpfile' attach
|
||||
par_tmux_fg See output with: tmux -S /TMPtmpfile attach
|
||||
par_tmux_fg open terminal failed: not a terminal
|
||||
par_totaljobs OK
|
||||
par_xargs_compat xargs compatibility
|
||||
|
|
|
@ -124,20 +124,19 @@ par_empty_string_command_line bar
|
|||
par_eof_on_command_line_input_source ### Test of eof string on :::
|
||||
par_eof_on_command_line_input_source foo
|
||||
par_file_rpl ### file as replacement string
|
||||
par_file_rpl contest1
|
||||
par_file_rpl contest2
|
||||
par_file_rpl File name /tmp/parallel-local-1s-tmp/
|
||||
par_file_rpl `touch /tmp/tripwire` <"'/tmp/tmp.XXXXXX
|
||||
par_file_rpl contest1
|
||||
par_file_rpl contest2
|
||||
par_file_rpl File name /parallel-local-1s-tmp/
|
||||
par_file_rpl `touch /tmp/tripwire` <"'/tmp/tmp.XXXXXX/parallel-local-1s-tmp/
|
||||
par_file_rpl `touch /parallel-local-1s-tmp/
|
||||
par_file_rpl `touch /tmp/tripwire` <"'/tmp/tmp.XXXXXX/tripwire` <"'/tmp/tmp.XXXXXX
|
||||
par_file_rpl contest1
|
||||
par_file_rpl contest2
|
||||
par_file_rpl File name /tmp/parallel-local-1s-tmp/
|
||||
par_file_rpl `touch /tmp/tripwire` <"'/tmp/tmp.XXXXXX
|
||||
par_file_rpl # {filename}
|
||||
par_file_rpl content1
|
||||
par_file_rpl content2
|
||||
par_file_rpl File name /TMP/tmp.XXXXXX
|
||||
par_file_rpl # Conflict: both {filename} and {/regexp/rpl}
|
||||
par_file_rpl content1
|
||||
par_file_rpl content2
|
||||
par_file_rpl File name /parallel-local-1s/ /bar/tmp.XXXXXX/parallel-local-1s/ /bar/tmp.XXXXXX
|
||||
par_file_rpl # --header 0 --plus
|
||||
par_file_rpl content1
|
||||
par_file_rpl content2
|
||||
par_file_rpl File name /TMP/tmp.XXXXXX
|
||||
par_file_rpl # Conflict: both {filename} and {n}
|
||||
par_file_rpl 1
|
||||
par_file_rpl 1
|
||||
par_file_rpl 2
|
||||
|
@ -150,6 +149,7 @@ par_file_rpl 1
|
|||
par_file_rpl 1
|
||||
par_file_rpl 1
|
||||
par_file_rpl 1
|
||||
par_file_rpl # Conflict: both {filename} and {=expr=}
|
||||
par_file_rpl =chop
|
||||
par_file_rpl =chop
|
||||
par_header ### Test --header with -N
|
||||
|
@ -492,8 +492,7 @@ par_profiles_with_space ### bug #42902: profiles containing arguments with space
|
|||
par_profiles_with_space /bin/bash=/bin/bash
|
||||
par_profiles_with_space echo '/bin/bash=/bin/bash'
|
||||
par_profiles_with_space /bin/bash=/bin/bash
|
||||
par_profiles_with_space With script in $PARALLEL /bin/bash=/tmp/parallel-local-1s-tmp/
|
||||
par_profiles_with_space `touch /tmp/tripwire` <"'/tmp
|
||||
par_profiles_with_space With script in $PARALLEL /bin/bash=/TMP
|
||||
par_pxz_complains bug #44250: pxz complains File format not recognized but decompresses anyway
|
||||
par_pxz_complains ls: cannot access '/OK-if-missing-file': No such file or directory
|
||||
par_pxz_complains can not seek in input: Illegal seek
|
||||
|
|
|
@ -37,7 +37,6 @@ par_bin 2 4 9
|
|||
par_exit_code bug #52207: Exit status 0 when child job is killed, even with "now,fail=1"
|
||||
par_exit_code # Ideally the command should return the same
|
||||
par_exit_code # with or without parallel
|
||||
par_exit_code # but fish 2.4.0 returns 1 while X.X.X returns 0
|
||||
par_exit_code ash /tmp/mysleep 100 137
|
||||
par_exit_code ash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code ash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
|
@ -158,16 +157,6 @@ par_exit_code bash parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 1
|
|||
par_exit_code bash parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137
|
||||
par_exit_code bash parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0
|
||||
par_exit_code bash parallel --halt-on-error now,done=1 'true;exit' ::: 100 100
|
||||
par_exit_code fdsh /tmp/mysleep 100 137
|
||||
par_exit_code fdsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 /bin/true ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code fdsh true;/tmp/mysleep 100 137
|
||||
par_exit_code fdsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100
|
||||
par_exit_code ksh93 /tmp/mysleep 100 0
|
||||
par_exit_code ksh93 parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code ksh93 parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
|
@ -218,6 +207,16 @@ par_exit_code zsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 10
|
|||
par_exit_code zsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137
|
||||
par_exit_code zsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0
|
||||
par_exit_code zsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100
|
||||
par_exit_code fdsh /tmp/mysleep 100 137
|
||||
par_exit_code fdsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 /bin/true ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code fdsh true;/tmp/mysleep 100 137
|
||||
par_exit_code fdsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100
|
||||
par_exit_code parallel: This job finished:
|
||||
par_exit_code runit
|
||||
par_groupby -N1 3 $_%=2 tsv \t ### test tsv | --colsep \t --groupby 3 $_%=2 -N1
|
||||
|
|
|
@ -44,20 +44,20 @@ par_print_before_halt_on_error ### What is printed before the jobs are killed
|
|||
par_print_before_halt_on_error -2 exit code 0
|
||||
par_print_before_halt_on_error -2 0.1 0.1
|
||||
par_print_before_halt_on_error -2 parallel: This job succeeded:
|
||||
par_print_before_halt_on_error -2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -2 > 0 ? exit shift : exit not shift;' 0.1
|
||||
par_print_before_halt_on_error -2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -2 > 0 ? exit shift : exit not shift;' 0.1
|
||||
par_print_before_halt_on_error -1 exit code 0
|
||||
par_print_before_halt_on_error -1 0.1 0.1
|
||||
par_print_before_halt_on_error -1 parallel: This job succeeded:
|
||||
par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 0.1
|
||||
par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 0.1
|
||||
par_print_before_halt_on_error -1 parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||
par_print_before_halt_on_error -1 parallel: This job succeeded:
|
||||
par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 1
|
||||
par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 1
|
||||
par_print_before_halt_on_error -1 parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||
par_print_before_halt_on_error -1 3.2 3.2
|
||||
par_print_before_halt_on_error -1 0 0
|
||||
par_print_before_halt_on_error -1 1 1
|
||||
par_print_before_halt_on_error -1 parallel: This job succeeded:
|
||||
par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 3.2
|
||||
par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 3.2
|
||||
par_print_before_halt_on_error 0 exit code 1
|
||||
par_print_before_halt_on_error 0 0.1 0.1
|
||||
par_print_before_halt_on_error 0 3.2 3.2
|
||||
|
@ -74,27 +74,26 @@ par_print_before_halt_on_error 0 8 8
|
|||
par_print_before_halt_on_error 1 exit code 1
|
||||
par_print_before_halt_on_error 1 0.1 0.1
|
||||
par_print_before_halt_on_error 1 parallel: This job failed:
|
||||
par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 1
|
||||
par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 1
|
||||
par_print_before_halt_on_error 1 parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||
par_print_before_halt_on_error 1 parallel: This job failed:
|
||||
par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 2
|
||||
par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 2
|
||||
par_print_before_halt_on_error 1 parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||
par_print_before_halt_on_error 1 3.2 3.2
|
||||
par_print_before_halt_on_error 1 0 0
|
||||
par_print_before_halt_on_error 1 1 1
|
||||
par_print_before_halt_on_error 1 2 2
|
||||
par_print_before_halt_on_error 1 parallel: This job failed:
|
||||
par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3.2
|
||||
par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3.2
|
||||
par_print_before_halt_on_error 1 parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||
par_print_before_halt_on_error 1 3 3
|
||||
par_print_before_halt_on_error 1 parallel: This job failed:
|
||||
par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3
|
||||
par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3
|
||||
par_print_before_halt_on_error 2 exit code 1
|
||||
par_print_before_halt_on_error 2 0.1 0.1
|
||||
par_print_before_halt_on_error 2 parallel: This job failed:
|
||||
par_print_before_halt_on_error 2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 2 > 0 ? exit shift : exit not shift;' 1
|
||||
par_print_before_halt_on_error 2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 2 > 0 ? exit shift : exit not shift;' 1
|
||||
par_sem_dir ### bug #58985: sem stall if .parallel/semaphores is chmod 0
|
||||
par_sem_dir parallel: Error: Semaphoredir must be writable: '~/.parallel/semaphores'
|
||||
par_tmux_termination ### --tmux test - check termination
|
||||
par_tmux_termination See output with: tmux -S '/tmp/parallel-local-race01-tmp/
|
||||
par_tmux_termination `touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach
|
||||
par_tmux_termination See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
|
|
|
@ -4,9 +4,66 @@ TODO
|
|||
par_--onall_--plus ### Test --plus is respected with --onall/--nonall
|
||||
par_--onall_--plus lo
|
||||
par_--onall_--plus lo
|
||||
par_--onall_--transfer ### bug #46519: --onall ignores --transfer
|
||||
par_--onall_--transfer bug46519.a
|
||||
par_--onall_--transfer bug46519.b
|
||||
par_--onall_--transfer bug46519.c
|
||||
par_--onall_--transfer bug46519.a
|
||||
par_--onall_--transfer bug46519.b
|
||||
par_--onall_--transfer bug46519.c
|
||||
par_--onall_--transfer bug46519.aa
|
||||
par_--onall_--transfer bug46519.aaa
|
||||
par_--onall_--transfer bug46519.bb
|
||||
par_--onall_--transfer bug46519.bbb
|
||||
par_--onall_--transfer bug46519.cc
|
||||
par_--onall_--transfer bug46519.ccc
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.aa': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.aaa': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.bb': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.bbb': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.cc': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.ccc': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.aa': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.aaa': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.bb': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.bbb': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.cc': No such file or directory
|
||||
par_--onall_--transfer ls: cannot access 'bug46519.ccc': No such file or directory
|
||||
par_--ssh_ssh_in_ssh ### bug #61894: Pack ssh code in eval protection
|
||||
par_--ssh_ssh_in_ssh Unquoted ssh should work
|
||||
par_--ssh_ssh_in_ssh aspire
|
||||
par_--ssh_ssh_in_ssh OK
|
||||
par_--ssh_ssh_in_ssh aspire
|
||||
par_--ssh_ssh_in_ssh OK
|
||||
par_--ssh_ssh_in_ssh aspire
|
||||
par_--ssh_ssh_in_ssh OK
|
||||
par_--ssh_ssh_in_ssh aspire
|
||||
par_--ssh_ssh_in_ssh OK
|
||||
par_PARALLEL_SSH_function ### use function as $PARALLEL_SSH
|
||||
par_PARALLEL_SSH_function Run through FOOSSH?
|
||||
par_PARALLEL_SSH_function FOOSSH
|
||||
par__remote_load ### Test --load remote
|
||||
par__remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par__remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par__remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par__remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par__remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par__remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par__remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par__remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par__remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par__remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par__remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par__remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par__remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par__remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par__remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par__remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par__remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par__remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par__remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par__remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par__remote_load OK
|
||||
par_csh_variable_newline ### Can csh propagate a variable containing \n
|
||||
par_csh_variable_newline 1
|
||||
par_csh_variable_newline 2
|
||||
|
@ -23,31 +80,6 @@ par_hgrp_agrp_comma uid=1004(csh) gid=1004(csh) groups=1004(csh)
|
|||
par_hgrp_agrp_comma uid=1007(tcsh) gid=1007(tcsh) groups=1007(tcsh)
|
||||
par_joblog_nonall ### bug #40001: --joblog and --nonall seem not to work together:
|
||||
par_joblog_nonall 3
|
||||
par_onall_transfer ### bug #46519: --onall ignores --transfer
|
||||
par_onall_transfer bug46519.a
|
||||
par_onall_transfer bug46519.b
|
||||
par_onall_transfer bug46519.c
|
||||
par_onall_transfer bug46519.a
|
||||
par_onall_transfer bug46519.b
|
||||
par_onall_transfer bug46519.c
|
||||
par_onall_transfer bug46519.aa
|
||||
par_onall_transfer bug46519.aaa
|
||||
par_onall_transfer bug46519.bb
|
||||
par_onall_transfer bug46519.bbb
|
||||
par_onall_transfer bug46519.cc
|
||||
par_onall_transfer bug46519.ccc
|
||||
par_onall_transfer ls: cannot access 'bug46519.aa': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.aaa': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.bb': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.bbb': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.cc': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.ccc': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.aa': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.aaa': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.bb': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.bbb': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.cc': No such file or directory
|
||||
par_onall_transfer ls: cannot access 'bug46519.ccc': No such file or directory
|
||||
par_pipe_unneeded_spawn ### Test bug #34241: --pipe should not spawn unneeded processes
|
||||
par_pipe_unneeded_spawn 1
|
||||
par_pipe_unneeded_spawn 2
|
||||
|
@ -57,28 +89,6 @@ par_pipe_unneeded_spawn 4
|
|||
par_pipe_unneeded_spawn Block_end
|
||||
par_pipe_unneeded_spawn 5
|
||||
par_pipe_unneeded_spawn Block_end
|
||||
par_remote_load ### Test --load remote
|
||||
par_remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par_remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par_remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par_remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par_remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par_remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par_remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par_remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par_remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par_remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par_remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par_remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par_remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par_remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par_remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par_remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par_remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par_remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par_remote_load parallel: Warning: This job was killed because it timed out:
|
||||
par_remote_load parallel: Warning: perl -e 'while(1){ }'
|
||||
par_remote_load OK
|
||||
par_remote_nice ### Test --nice remote
|
||||
par_remote_nice NI
|
||||
par_remote_nice 5
|
||||
|
@ -87,16 +97,6 @@ par_remote_nice 5
|
|||
par_ssh ### use --ssh
|
||||
par_ssh Run through BARSSH?
|
||||
par_ssh BARSSH
|
||||
par_ssh_ssh ### bug #61894: Pack ssh code in eval protection
|
||||
par_ssh_ssh Unquoted ssh should work
|
||||
par_ssh_ssh aspire
|
||||
par_ssh_ssh OK
|
||||
par_ssh_ssh aspire
|
||||
par_ssh_ssh OK
|
||||
par_ssh_ssh aspire
|
||||
par_ssh_ssh OK
|
||||
par_ssh_ssh aspire
|
||||
par_ssh_ssh OK
|
||||
par_sshlogin_with_comma ### --sshlogin with \,
|
||||
par_sshlogin_with_comma OK
|
||||
par_sshlogin_with_comma ### --sshlogin with ,,
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
par__obey_servers_capacity_slf_reload ### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded
|
||||
par__obey_servers_capacity_slf_reload OK
|
||||
par_cat_fifo_exit ### --cat and --fifo exit value in bash
|
||||
par_cat_fifo_exit true
|
||||
par_cat_fifo_exit 0
|
||||
|
@ -21,10 +23,6 @@ par_env_parallel_fifo data from stdin
|
|||
par_env_parallel_fifo transferred non-exported func
|
||||
par_env_parallel_fifo data from stdin
|
||||
par_env_parallel_fifo transferred non-exported func
|
||||
par_filter_hosts_slf ### --filter-hosts --slf <()
|
||||
par_filter_hosts_slf OK
|
||||
par_obey_servers_capacity_slf_reload ### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded
|
||||
par_obey_servers_capacity_slf_reload OK
|
||||
par_pipepart_remote ### bug #42999: --pipepart with remote does not work
|
||||
par_pipepart_remote 14 14 33
|
||||
par_pipepart_remote 11 11 33
|
||||
|
@ -101,3 +99,5 @@ par_wd_no_such_dir ### --wd no-such-dir - bash
|
|||
par_wd_no_such_dir mkdir: cannot create directory '/no-such-dir': Permission denied
|
||||
par_wd_no_such_dir parallel: Cannot chdir to /no-such-dir
|
||||
par_wd_no_such_dir Exit code 1
|
||||
par_z_filter_hosts_slf ### --filter-hosts --slf <()
|
||||
par_z_filter_hosts_slf OK
|
||||
|
|
|
@ -1,3 +1,184 @@
|
|||
par_--nonall_results ### --results --onall
|
||||
par_--nonall_results /TMP/onall
|
||||
par_--nonall_results /TMP/onall/noslashsh@lo
|
||||
par_--nonall_results /TMP/onall/noslashsh@lo/1
|
||||
par_--nonall_results /TMP/onall/noslashsh@lo/1/id
|
||||
par_--nonall_results /TMP/onall/noslashsh@lo/1/id/seq
|
||||
par_--nonall_results /TMP/onall/noslashsh@lo/1/id/stderr
|
||||
par_--nonall_results /TMP/onall/noslashsh@lo/1/id/stdout
|
||||
par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd
|
||||
par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd/seq
|
||||
par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd/stderr
|
||||
par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd/stdout
|
||||
par_--nonall_results /TMP/onall/rpl1noslash
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/idsh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/idcsh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/idcsh@lo
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/pwdsh@lo.err
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/idcsh@lo.err
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/pwdcsh@lo.err
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/idsh@lo
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/pwdcsh@lo
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/pwdsh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/pwdsh@lo
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/idsh@lo.err
|
||||
par_--nonall_results /TMP/onall/rpl1noslash/pwdcsh@lo.seq
|
||||
par_--nonall_results /TMP/onall/slash
|
||||
par_--nonall_results /TMP/onall/slash/sh@lo
|
||||
par_--nonall_results /TMP/onall/slash/sh@lo/1
|
||||
par_--nonall_results /TMP/onall/slash/sh@lo/1/id
|
||||
par_--nonall_results /TMP/onall/slash/sh@lo/1/id/seq
|
||||
par_--nonall_results /TMP/onall/slash/sh@lo/1/id/stderr
|
||||
par_--nonall_results /TMP/onall/slash/sh@lo/1/id/stdout
|
||||
par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd
|
||||
par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd/seq
|
||||
par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd/stderr
|
||||
par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd/stdout
|
||||
par_--nonall_results /TMP/onall/slash/csh@lo
|
||||
par_--nonall_results /TMP/onall/slash/csh@lo/1
|
||||
par_--nonall_results /TMP/onall/slash/csh@lo/1/id
|
||||
par_--nonall_results /TMP/onall/slash/csh@lo/1/id/seq
|
||||
par_--nonall_results /TMP/onall/slash/csh@lo/1/id/stderr
|
||||
par_--nonall_results /TMP/onall/slash/csh@lo/1/id/stdout
|
||||
par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd
|
||||
par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd/seq
|
||||
par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd/stderr
|
||||
par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd/stdout
|
||||
par_--nonall_results /TMP/onall/rplnoslash
|
||||
par_--nonall_results /TMP/onall/rplnoslash/idsh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rplnoslash/idcsh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rplnoslash/idcsh@lo
|
||||
par_--nonall_results /TMP/onall/rplnoslash/pwdsh@lo.err
|
||||
par_--nonall_results /TMP/onall/rplnoslash/idcsh@lo.err
|
||||
par_--nonall_results /TMP/onall/rplnoslash/pwdcsh@lo.err
|
||||
par_--nonall_results /TMP/onall/rplnoslash/idsh@lo
|
||||
par_--nonall_results /TMP/onall/rplnoslash/pwdcsh@lo
|
||||
par_--nonall_results /TMP/onall/rplnoslash/pwdsh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rplnoslash/pwdsh@lo
|
||||
par_--nonall_results /TMP/onall/rplnoslash/idsh@lo.err
|
||||
par_--nonall_results /TMP/onall/rplnoslash/pwdcsh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rpl1slash
|
||||
par_--nonall_results /TMP/onall/rpl1slash/id
|
||||
par_--nonall_results /TMP/onall/rpl1slash/id/sh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rpl1slash/id/csh@lo.err
|
||||
par_--nonall_results /TMP/onall/rpl1slash/id/csh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rpl1slash/id/sh@lo
|
||||
par_--nonall_results /TMP/onall/rpl1slash/id/csh@lo
|
||||
par_--nonall_results /TMP/onall/rpl1slash/id/sh@lo.err
|
||||
par_--nonall_results /TMP/onall/rpl1slash/pwd
|
||||
par_--nonall_results /TMP/onall/rpl1slash/pwd/sh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rpl1slash/pwd/csh@lo.err
|
||||
par_--nonall_results /TMP/onall/rpl1slash/pwd/csh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rpl1slash/pwd/sh@lo
|
||||
par_--nonall_results /TMP/onall/rpl1slash/pwd/csh@lo
|
||||
par_--nonall_results /TMP/onall/rpl1slash/pwd/sh@lo.err
|
||||
par_--nonall_results /TMP/onall/noslashcsh@lo
|
||||
par_--nonall_results /TMP/onall/noslashcsh@lo/1
|
||||
par_--nonall_results /TMP/onall/noslashcsh@lo/1/id
|
||||
par_--nonall_results /TMP/onall/noslashcsh@lo/1/id/seq
|
||||
par_--nonall_results /TMP/onall/noslashcsh@lo/1/id/stderr
|
||||
par_--nonall_results /TMP/onall/noslashcsh@lo/1/id/stdout
|
||||
par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd
|
||||
par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd/seq
|
||||
par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd/stderr
|
||||
par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd/stdout
|
||||
par_--nonall_results /TMP/onall/rplslash
|
||||
par_--nonall_results /TMP/onall/rplslash/id
|
||||
par_--nonall_results /TMP/onall/rplslash/id/sh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rplslash/id/csh@lo.err
|
||||
par_--nonall_results /TMP/onall/rplslash/id/csh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rplslash/id/sh@lo
|
||||
par_--nonall_results /TMP/onall/rplslash/id/csh@lo
|
||||
par_--nonall_results /TMP/onall/rplslash/id/sh@lo.err
|
||||
par_--nonall_results /TMP/onall/rplslash/pwd
|
||||
par_--nonall_results /TMP/onall/rplslash/pwd/sh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rplslash/pwd/csh@lo.err
|
||||
par_--nonall_results /TMP/onall/rplslash/pwd/csh@lo.seq
|
||||
par_--nonall_results /TMP/onall/rplslash/pwd/sh@lo
|
||||
par_--nonall_results /TMP/onall/rplslash/pwd/csh@lo
|
||||
par_--nonall_results /TMP/onall/rplslash/pwd/sh@lo.err
|
||||
par_--nonall_results ### --results --nonall
|
||||
par_--nonall_results /TMP/nonall
|
||||
par_--nonall_results /TMP/nonall/noslashsh@lo
|
||||
par_--nonall_results /TMP/nonall/noslashsh@lo/1
|
||||
par_--nonall_results /TMP/nonall/noslashsh@lo/1/seq
|
||||
par_--nonall_results /TMP/nonall/noslashsh@lo/1/stderr
|
||||
par_--nonall_results /TMP/nonall/noslashsh@lo/1/stdout
|
||||
par_--nonall_results /TMP/nonall/rpl1noslash
|
||||
par_--nonall_results /TMP/nonall/rpl1noslash/sh@lo.seq
|
||||
par_--nonall_results /TMP/nonall/rpl1noslash/csh@lo.err
|
||||
par_--nonall_results /TMP/nonall/rpl1noslash/csh@lo.seq
|
||||
par_--nonall_results /TMP/nonall/rpl1noslash/sh@lo
|
||||
par_--nonall_results /TMP/nonall/rpl1noslash/csh@lo
|
||||
par_--nonall_results /TMP/nonall/rpl1noslash/sh@lo.err
|
||||
par_--nonall_results /TMP/nonall/slash
|
||||
par_--nonall_results /TMP/nonall/slash/sh@lo
|
||||
par_--nonall_results /TMP/nonall/slash/sh@lo/1
|
||||
par_--nonall_results /TMP/nonall/slash/sh@lo/1/seq
|
||||
par_--nonall_results /TMP/nonall/slash/sh@lo/1/stderr
|
||||
par_--nonall_results /TMP/nonall/slash/sh@lo/1/stdout
|
||||
par_--nonall_results /TMP/nonall/slash/csh@lo
|
||||
par_--nonall_results /TMP/nonall/slash/csh@lo/1
|
||||
par_--nonall_results /TMP/nonall/slash/csh@lo/1/seq
|
||||
par_--nonall_results /TMP/nonall/slash/csh@lo/1/stderr
|
||||
par_--nonall_results /TMP/nonall/slash/csh@lo/1/stdout
|
||||
par_--nonall_results /TMP/nonall/rplnoslash
|
||||
par_--nonall_results /TMP/nonall/rplnoslash/sh@lo.seq
|
||||
par_--nonall_results /TMP/nonall/rplnoslash/csh@lo.err
|
||||
par_--nonall_results /TMP/nonall/rplnoslash/csh@lo.seq
|
||||
par_--nonall_results /TMP/nonall/rplnoslash/sh@lo
|
||||
par_--nonall_results /TMP/nonall/rplnoslash/csh@lo
|
||||
par_--nonall_results /TMP/nonall/rplnoslash/sh@lo.err
|
||||
par_--nonall_results /TMP/nonall/rpl1slash
|
||||
par_--nonall_results /TMP/nonall/rpl1slash/sh@lo.seq
|
||||
par_--nonall_results /TMP/nonall/rpl1slash/csh@lo.err
|
||||
par_--nonall_results /TMP/nonall/rpl1slash/csh@lo.seq
|
||||
par_--nonall_results /TMP/nonall/rpl1slash/sh@lo
|
||||
par_--nonall_results /TMP/nonall/rpl1slash/csh@lo
|
||||
par_--nonall_results /TMP/nonall/rpl1slash/sh@lo.err
|
||||
par_--nonall_results /TMP/nonall/noslashcsh@lo
|
||||
par_--nonall_results /TMP/nonall/noslashcsh@lo/1
|
||||
par_--nonall_results /TMP/nonall/noslashcsh@lo/1/seq
|
||||
par_--nonall_results /TMP/nonall/noslashcsh@lo/1/stderr
|
||||
par_--nonall_results /TMP/nonall/noslashcsh@lo/1/stdout
|
||||
par_--nonall_results /TMP/nonall/rplslash
|
||||
par_--nonall_results /TMP/nonall/rplslash/sh@lo.seq
|
||||
par_--nonall_results /TMP/nonall/rplslash/csh@lo.err
|
||||
par_--nonall_results /TMP/nonall/rplslash/csh@lo.seq
|
||||
par_--nonall_results /TMP/nonall/rplslash/sh@lo
|
||||
par_--nonall_results /TMP/nonall/rplslash/csh@lo
|
||||
par_--nonall_results /TMP/nonall/rplslash/sh@lo.err
|
||||
par_--tmux_different_shells ### Test tmux works on different shells
|
||||
par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
par_--tmux_different_shells 0
|
||||
par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
par_--tmux_different_shells 4
|
||||
par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach
|
||||
par_--tmux_different_shells 0
|
||||
par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach
|
||||
par_--tmux_different_shells 4
|
||||
par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach
|
||||
par_--tmux_different_shells 0
|
||||
par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach
|
||||
par_--tmux_different_shells 4
|
||||
par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach
|
||||
par_--tmux_different_shells 0
|
||||
par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach
|
||||
par_--tmux_different_shells 4
|
||||
par_--tmux_different_shells # command is currently too long for csh. Maybe it can be fixed?
|
||||
par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach
|
||||
par_--tmux_different_shells 0
|
||||
par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach
|
||||
par_--tmux_different_shells 4
|
||||
par_--tmux_length ### works
|
||||
par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
par_--tmux_length ### These blocked due to length
|
||||
par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
par_bigvar_csh ### csh
|
||||
par_bigvar_csh 3 big vars run remotely - length(base64) > 1000
|
||||
par_bigvar_csh 1 200 692
|
||||
|
@ -18,8 +199,6 @@ par_bigvar_rc 3 big vars run locally
|
|||
par_bigvar_rc 1 200 692
|
||||
par_bigvar_rc 1 200 692
|
||||
par_bigvar_rc 1 150 547
|
||||
par_csh_nice ### bug #44143: csh and nice
|
||||
par_csh_nice OK
|
||||
par_env_underscore ### --env _
|
||||
par_env_underscore OK FUBAR test
|
||||
par_env_underscore In csh this may fail with ignored_var: Undefined variable.
|
||||
|
@ -37,353 +216,6 @@ par_exporting_in_zsh Function export as function
|
|||
par_exporting_in_zsh myfunc ran OK
|
||||
par_exporting_in_zsh function from zsh to zsh OK
|
||||
par_exporting_in_zsh function from zsh to bash OK
|
||||
par_multiple_hosts_repeat_arg ### bug #45575: -m and multiple hosts repeats first args
|
||||
par_multiple_hosts_repeat_arg parallel: Warning: Using -X or -m with --sshlogin may fail.
|
||||
par_multiple_hosts_repeat_arg 1
|
||||
par_multiple_hosts_repeat_arg 2
|
||||
par_multiple_hosts_repeat_arg 3
|
||||
par_nonall_results ### --results --onall
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/id
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/id/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/id/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/id/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/pwd
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/pwd/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/pwd/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/pwd/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idsh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idcsh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idcsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdsh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idcsh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdcsh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdcsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdsh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idsh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdcsh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/id
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/id/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/id/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/id/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/pwd
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/pwd/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/pwd/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/pwd/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/id
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/id/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/id/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/id/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/pwd
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/pwd/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/pwd/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/pwd/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idsh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idcsh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idcsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdsh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idcsh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdcsh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdcsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdsh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idsh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdcsh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/sh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/csh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/csh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/sh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/csh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/sh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/sh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/csh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/csh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/sh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/csh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/sh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/id
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/id/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/id/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/id/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/pwd
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/pwd/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/pwd/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/pwd/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/sh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/csh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/csh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/sh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/csh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/sh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/sh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/csh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/csh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/sh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/csh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/sh@lo.err
|
||||
par_nonall_results ### --results --nonall
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashsh@lo/1
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashsh@lo/1/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashsh@lo/1/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashsh@lo/1/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/sh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/csh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/csh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/sh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/csh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/sh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/sh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/sh@lo/1
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/sh@lo/1/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/sh@lo/1/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/sh@lo/1/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/csh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/csh@lo/1
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/csh@lo/1/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/csh@lo/1/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/csh@lo/1/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/sh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/csh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/csh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/sh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/csh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/sh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/sh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/csh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/csh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/sh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/csh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/sh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashcsh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashcsh@lo/1
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashcsh@lo/1/seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashcsh@lo/1/stderr
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashcsh@lo/1/stdout
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/sh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/csh@lo.err
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/csh@lo.seq
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/sh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/csh@lo
|
||||
par_nonall_results /tmp/parallel-local-ssh4-tmp/
|
||||
par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/sh@lo.err
|
||||
par_sshloginfile ### --slf with mIxEd cAsE
|
||||
par_sshloginfile 1
|
||||
par_sshloginfile 2
|
||||
par_sshloginfile 3
|
||||
par_sshloginfile 4
|
||||
par_sshloginfile 5
|
||||
par_sshloginfile 6
|
||||
par_sshloginfile 7
|
||||
par_sshloginfile 8
|
||||
par_sshloginfile 9
|
||||
par_sshloginfile bash
|
||||
par_sshloginfile bash
|
||||
par_sshloginfile ksh
|
||||
par_sshloginfile ksh
|
||||
par_sshloginfile ksh
|
||||
par_sshloginfile ksh
|
||||
par_sshloginfile parallel
|
||||
par_sshloginfile parallel
|
||||
par_sshloginfile parallel
|
||||
par_tmux_different_shells ### Test tmux works on different shells
|
||||
par_tmux_different_shells See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/
|
||||
par_tmux_different_shells 0
|
||||
par_tmux_different_shells See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/
|
||||
par_tmux_different_shells 4
|
||||
par_tmux_different_shells 0
|
||||
par_tmux_different_shells 4
|
||||
par_tmux_different_shells 0
|
||||
par_tmux_different_shells 4
|
||||
par_tmux_different_shells 0
|
||||
par_tmux_different_shells 4
|
||||
par_tmux_different_shells # command is currently too long for csh. Maybe it can be fixed?
|
||||
par_tmux_different_shells 0
|
||||
par_tmux_different_shells 4
|
||||
par_tmux_length ### works
|
||||
par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/
|
||||
par_tmux_length `touch ' attach
|
||||
par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/
|
||||
par_tmux_length `touch ' attach
|
||||
par_tmux_length ### These blocked due to length
|
||||
par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/
|
||||
par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/
|
||||
par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/
|
||||
par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/
|
||||
par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/
|
||||
par_transfer_return_multiple_inputs ### bug #43746: --transfer and --return of multiple inputs {1} and {2}
|
||||
par_transfer_return_multiple_inputs ### and:
|
||||
par_transfer_return_multiple_inputs ### bug #44371: --trc with csh complains
|
||||
|
@ -407,3 +239,29 @@ par_warn_when_exporting_func /bin/tcsh parallel: Warning: Shell functions may no
|
|||
par_warn_when_exporting_func /bin/tcsh CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset myfunc
|
||||
par_warn_when_exporting_func /bin/zsh Run function in /bin/zsh
|
||||
par_warn_when_exporting_func /bin/zsh Function run: OK
|
||||
par_z_csh_nice ### bug #44143: csh and nice
|
||||
par_z_csh_nice OK
|
||||
par_z_multiple_hosts_repeat_arg ### bug #45575: -m and multiple hosts repeats first args
|
||||
par_z_multiple_hosts_repeat_arg parallel: Warning: Using -X or -m with --sshlogin may fail.
|
||||
par_z_multiple_hosts_repeat_arg 1
|
||||
par_z_multiple_hosts_repeat_arg 2
|
||||
par_z_multiple_hosts_repeat_arg 3
|
||||
par_z_sshloginfile ### --slf with mIxEd cAsE
|
||||
par_z_sshloginfile 1
|
||||
par_z_sshloginfile 2
|
||||
par_z_sshloginfile 3
|
||||
par_z_sshloginfile 4
|
||||
par_z_sshloginfile 5
|
||||
par_z_sshloginfile 6
|
||||
par_z_sshloginfile 7
|
||||
par_z_sshloginfile 8
|
||||
par_z_sshloginfile 9
|
||||
par_z_sshloginfile bash
|
||||
par_z_sshloginfile bash
|
||||
par_z_sshloginfile ksh
|
||||
par_z_sshloginfile ksh
|
||||
par_z_sshloginfile ksh
|
||||
par_z_sshloginfile ksh
|
||||
par_z_sshloginfile parallel
|
||||
par_z_sshloginfile parallel
|
||||
par_z_sshloginfile parallel
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -18,6 +18,18 @@ par_onall_basefile_cleanup tmp/onall--basefile--clean
|
|||
par_onall_basefile_cleanup tmp/onall--basefile--clean
|
||||
par_onall_basefile_cleanup rm: cannot remove 'tmp/onall--basefile--clean': No such file or directory
|
||||
par_onall_basefile_cleanup rm: cannot remove 'tmp/onall--basefile--clean': No such file or directory
|
||||
par_onall_timeout ### --timeout --onall on remote machines: 2*slept 1, 2 jobs failed
|
||||
par_onall_timeout slept 1
|
||||
par_onall_timeout parallel: Warning: This job was killed because it timed out:
|
||||
par_onall_timeout parallel: Warning: sleep 8; echo slept 8
|
||||
par_onall_timeout parallel: Warning: This job was killed because it timed out:
|
||||
par_onall_timeout parallel: Warning: sleep 9; echo slept 9
|
||||
par_onall_timeout slept 1
|
||||
par_onall_timeout parallel: Warning: This job was killed because it timed out:
|
||||
par_onall_timeout parallel: Warning: sleep 8; echo slept 8
|
||||
par_onall_timeout parallel: Warning: This job was killed because it timed out:
|
||||
par_onall_timeout parallel: Warning: sleep 9; echo slept 9
|
||||
par_onall_timeout jobs failed: 2
|
||||
par_read_sshloginfile_from_stdin ### Test read sshloginfile from STDIN
|
||||
par_read_sshloginfile_from_stdin /home/csh
|
||||
par_read_sshloginfile_from_stdin /home/parallel
|
||||
|
@ -127,18 +139,6 @@ par_test_pipe_onall parallel@lo 3
|
|||
par_test_pipe_onall parallel@lo 1
|
||||
par_test_pipe_onall parallel@lo 2
|
||||
par_test_pipe_onall parallel@lo 3
|
||||
par_timeout_onall ### --timeout --onall on remote machines: 2*slept 1, 2 jobs failed
|
||||
par_timeout_onall slept 1
|
||||
par_timeout_onall parallel: Warning: This job was killed because it timed out:
|
||||
par_timeout_onall parallel: Warning: sleep 8; echo slept 8
|
||||
par_timeout_onall parallel: Warning: This job was killed because it timed out:
|
||||
par_timeout_onall parallel: Warning: sleep 9; echo slept 9
|
||||
par_timeout_onall slept 1
|
||||
par_timeout_onall parallel: Warning: This job was killed because it timed out:
|
||||
par_timeout_onall parallel: Warning: sleep 8; echo slept 8
|
||||
par_timeout_onall parallel: Warning: This job was killed because it timed out:
|
||||
par_timeout_onall parallel: Warning: sleep 9; echo slept 9
|
||||
par_timeout_onall jobs failed: 2
|
||||
par_wd_braces ### Test --wd {}
|
||||
par_wd_braces wd1
|
||||
par_wd_braces wd2
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,23 +1,9 @@
|
|||
par_bar_m ### test --bar -m
|
||||
par_bar_m 0
|
||||
par_bar_m 50
|
||||
par_bar_m 100
|
||||
par_csh_environment_variables_set ### Check $PARALLEL_PID $PARALLEL_SEQ are set in csh
|
||||
par_csh_environment_variables_set 3
|
||||
par_filter_host_noise ### bug #63296: --filter-hosts option gets confused by output from SSH command
|
||||
par_filter_host_noise localhost OK
|
||||
par_filter_host_noise localhost Warning: Identity file id_rsa not accessible: No such file or directory.
|
||||
par_filter_host_noise localhost Warning: Permanently added 'localhost' (ED25519) to the list of known hosts.
par_filter_host_noise localhost
|
||||
par_filter_host_noise localhost OK
|
||||
par_filter_host_noise localhost Warning: Permanently added 'localhost' (ED25519) to the list of known hosts.
par_filter_host_noise localhost
|
||||
par_keep_order ### Test --keep-order
|
||||
par_keep_order job0
|
||||
par_keep_order job1
|
||||
par_keep_order job2
|
||||
par_keeporder ### Test --keeporder
|
||||
par_keeporder job0
|
||||
par_keeporder job1
|
||||
par_keeporder job2
|
||||
par_load_csh ### Gave Word too long.
|
||||
par_load_csh a
|
||||
par_path_remote_bash bug #47695: How to set $PATH on remote? Bash
|
||||
|
@ -42,3 +28,17 @@ par_retries_4 ### Test of --retries - it should run 49 jobs in total
|
|||
par_retries_4 OK
|
||||
par_transfer_special_char_names ### Test --return of weirdly named file
|
||||
par_transfer_special_char_names aa<${#}" b
|
||||
par_z_bar_m ### test --bar -m
|
||||
par_z_bar_m 0
|
||||
par_z_bar_m 50
|
||||
par_z_bar_m 100
|
||||
par_z_csh_environment_variables_set ### Check $PARALLEL_PID $PARALLEL_SEQ are set in csh
|
||||
par_z_csh_environment_variables_set 3
|
||||
par_z_keep_order ### Test --keep-order
|
||||
par_z_keep_order job0
|
||||
par_z_keep_order job1
|
||||
par_z_keep_order job2
|
||||
par_z_keeporder ### Test --keeporder
|
||||
par_z_keeporder job0
|
||||
par_z_keeporder job1
|
||||
par_z_keeporder job2
|
||||
|
|
Binary file not shown.
|
@ -45,25 +45,25 @@ echo '### bug #42041: Implement $PARALLEL_JOBSLOT'
|
|||
2
|
||||
echo '### bug #42363: --pipepart and --fifo/--cat does not work'
|
||||
### bug #42363: --pipepart and --fifo/--cat does not work
|
||||
seq 100 > /tmp/bug42363; parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo wc | perl -pe 's:(/tmp.*par).....:${1}XXXXX:'; parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat wc | perl -pe 's:(/tmp.*par).....:${1}XXXXX:'; rm /tmp/bug42363
|
||||
14 14 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
9 9 28 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
14 14 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
9 9 28 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX'
|
||||
seq 100 > /tmp/bug42363; parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo 'cat {} | wc'; parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat 'cat {} | wc'; rm /tmp/bug42363
|
||||
14 14 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
9 9 28
|
||||
14 14 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
11 11 33
|
||||
9 9 28
|
||||
echo '### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile'
|
||||
### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile
|
||||
parallel --pipepart -a /etc/passwd -L 1 should not be run
|
||||
|
@ -166,7 +166,7 @@ Send Receive Exitval
|
|||
0 332 0
|
||||
0 336 0
|
||||
Send Receive Exitval
|
||||
parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
parallel: Warning: Use --files0 when $TMPDIR contains newline.
|
||||
echo '### --files --tag'
|
||||
### --files --tag
|
||||
seq 100 111 | parallel --files --tag --joblog /dev/stderr seq {} '|' pv -qL100 2>&1 >/dev/null | cut -f 5-7 | sort
|
||||
|
@ -183,7 +183,7 @@ parallel: Warning: --files do not work if $TMPDIR contains newline.
|
|||
0 332 0
|
||||
0 336 0
|
||||
Send Receive Exitval
|
||||
parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
parallel: Warning: Use --files0 when $TMPDIR contains newline.
|
||||
echo '### --pipe'
|
||||
### --pipe
|
||||
seq 1000 | parallel --joblog /dev/stderr --block 1111 --pipe pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort
|
||||
|
@ -224,7 +224,7 @@ Send Receive Exitval
|
|||
1108 1108 0
|
||||
569 569 0
|
||||
Send Receive Exitval
|
||||
parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
parallel: Warning: Use --files0 when $TMPDIR contains newline.
|
||||
echo '### --files --pipe --tag'
|
||||
### --files --pipe --tag
|
||||
seq 1000 | parallel --joblog /dev/stderr --block 1111 --files --pipe --tag pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort
|
||||
|
@ -233,7 +233,7 @@ parallel: Warning: --files do not work if $TMPDIR contains newline.
|
|||
1108 1108 0
|
||||
569 569 0
|
||||
Send Receive Exitval
|
||||
parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
parallel: Warning: Use --files0 when $TMPDIR contains newline.
|
||||
echo '### --pipe --round-robin'
|
||||
### --pipe --round-robin
|
||||
seq 1000 | parallel --joblog /dev/stderr --block 1111 -j2 --pipe --round-robin pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort
|
||||
|
|
|
@ -250,11 +250,11 @@ ole
|
|||
echo '### Test --recstart + --recend'; cat /tmp/blocktest | parallel --block 1M -k --recstart 44 --recend "44" -j10 --pipe sort -n |md5sum
|
||||
### Test --recstart + --recend
|
||||
fb1560edff4b891a213ce2205b2c1bcb -
|
||||
echo '### Race condition bug - 1 - would block'; seq 1 80 | nice parallel -j0 'seq 1 10| parallel --block 1 --recend "" --pipe cat;true' >/dev/null
|
||||
echo '### Race condition bug - 1 - would block'; seq 1 80 | nice parallel -j0 'seq 1 10| parallel --block 1 --recend " --pipe cat;true' >/dev/null
|
||||
### Race condition bug - 1 - would block
|
||||
echo '### Race condition bug - 2 - would block'; seq 1 100 | nice parallel -j100 --block 1 --recend "" --pipe cat >/dev/null
|
||||
echo '### Race condition bug - 2 - would block'; seq 1 100 | nice parallel -j100 --block 1 --recend " --pipe cat >/dev/null
|
||||
### Race condition bug - 2 - would block
|
||||
echo '### Test --block size=1'; seq 1 10| TMPDIR=/tmp parallel --block 1 --files --recend "" --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {}
|
||||
echo '### Test --block size=1'; seq 1 10| TMPDIR=/tmp parallel --block 1 --files --recend " --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {}
|
||||
### Test --block size=1
|
||||
|
||||
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
echo '### tmux-1.9'
|
||||
### tmux-1.9
|
||||
seq 510 512 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||
See output with: tmux-1.9 -S '/tmp/parallel-local7-tmp/
|
||||
`touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach
|
||||
See output with: tmux-1.9 -S /TMP/tmsXXXXX attach
|
||||
0
|
||||
seq 0000 10 510 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||
See output with: tmux-1.9 -S '/tmp/parallel-local7-tmp/
|
||||
`touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach
|
||||
See output with: tmux-1.9 -S /TMP/tmsXXXXX attach
|
||||
0
|
||||
echo '### tmux-1.9 fails' seq 512 10 2000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||
See output with: tmux-1.9 -S '/tmp/parallel-local7-tmp/
|
||||
`touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach
|
||||
See output with: tmux-1.9 -S /TMP/tmsXXXXX attach
|
||||
0
|
||||
seq 2001 10 3000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||
parallel: Error: Command line too long (2012 >= 523) at input 0: 2001
|
||||
|
@ -65,22 +62,19 @@ parallel: Error: Command line too long (6 >= -1264) at input 0: 0
|
|||
echo '### tmux-1.9 0..255 ascii'
|
||||
### tmux-1.9 0..255 ascii
|
||||
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } 0..$_),"\n" } 0..255' | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux --timeout 5 echo | par_tmux_filter; echo $?
|
||||
See output with: tmux-1.9 -S '/tmp/parallel-local7-tmp/
|
||||
`touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach
|
||||
See output with: tmux-1.9 -S /TMP/tmsXXXXX attach
|
||||
0
|
||||
echo '### Test output ascii'
|
||||
### Test output ascii
|
||||
rm -f /tmp/paralocal7-ascii*; perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } $_-10..$_),"\n" } 1..255' | stdout parallel --tmux echo {}'>>/tmp/paralocal7-ascii{%}' | par_tmux_filter; sort /tmp/paralocal7-ascii* | md5sum
|
||||
See output with: tmux -S '/tmp/parallel-local7-tmp/
|
||||
`touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach
|
||||
See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
053c7e8e945ef7641fc63bc309ac069d -
|
||||
echo '### Test critical lengths. Must not block'
|
||||
### Test critical lengths. Must not block
|
||||
seq 140 260 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
||||
parallel: Error: Command line too long (150 >= -1264) at input 0: 140
|
||||
seq 140 260 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
||||
See output with: tmux-1.9 -S '/tmp/parallel-local7-tmp/
|
||||
`touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach
|
||||
See output with: tmux-1.9 -S /TMP/tmsXXXXX attach
|
||||
seq 560 850 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
||||
parallel: Error: Command line too long (568 >= -1264) at input 0: 560
|
||||
seq 560 850 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
par_big_func 1 3XXX 91XXX
|
||||
par_big_func 1 3XXX 91XXX
|
||||
par_big_func 1 3XXX 91XXX
|
||||
par_big_func 1 1XXX 46XXX
|
||||
par_big_func 1 3XXX 90XXX
|
||||
par_big_func 1 3XXX 90XXX
|
||||
par_big_func 1 3XXX 90XXX
|
||||
par_big_func 1 1XXX 47XXX
|
||||
par_big_func_name 18XXX
|
||||
par_big_func_name 18XXX
|
||||
par_big_func_name 18XXX
|
||||
|
@ -32,40 +32,41 @@ par_many_args 1 3XXX 6XXX
|
|||
par_many_args 1 3XXX 6XXX
|
||||
par_many_args 1 3XXX 6XXX
|
||||
par_many_args 1 1XXX 3XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 200 4XXX
|
||||
par_many_func 1 68 1XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 196 4XXX
|
||||
par_many_func 1 4 68
|
||||
par_many_var 22XXX
|
||||
par_many_var 22XXX
|
||||
par_many_var 22XXX
|
||||
|
|
|
@ -148,10 +148,10 @@ num1000000
|
|||
num128
|
||||
num30000
|
||||
num8
|
||||
outdir
|
||||
tsv-file.tsv
|
||||
foo
|
||||
/tmp/parallel-tutorial-tmp/
|
||||
`touch /tmp/tripwire` <"'/tmp
|
||||
/TMP
|
||||
my_func() {
|
||||
echo in my_func $1
|
||||
}
|
||||
|
@ -385,6 +385,8 @@ pre-A-post
|
|||
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
|
||||
/usr/bin/bash: -c: line 1: `set a="num8"; if( { test -d "$a" } ) echo "$a is a dir"'
|
||||
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
|
||||
/usr/bin/bash: -c: line 1: `set a="outdir"; if( { test -d "$a" } ) echo "$a is a dir"'
|
||||
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
|
||||
/usr/bin/bash: -c: line 1: `set a="tsv-file.tsv"; if( { test -d "$a" } ) echo "$a is a dir"'
|
||||
parallel --tag echo foo-{} ::: A B C
|
||||
A foo-A
|
||||
|
@ -440,13 +442,7 @@ echo C
|
|||
1-middle
|
||||
1-end
|
||||
parallel --files echo ::: A B C
|
||||
/tmp/parallel-tutorial-tmp/
|
||||
`touch /tmp/tripwire` <"'/tmp/tempfile
|
||||
/tmp/parallel-tutorial-tmp/
|
||||
`touch /tmp/tripwire` <"'/tmp/tempfile
|
||||
/tmp/parallel-tutorial-tmp/
|
||||
`touch /tmp/tripwire` <"'/tmp/tempfile
|
||||
parallel: Warning: --files do not work if $TMPDIR contains newline.
|
||||
/TMP/tempfile
|
||||
parallel --tmpdir /var/tmp --files echo ::: A B C
|
||||
/var/tmp/tempfile
|
||||
parallel --results outdir echo ::: A B C
|
||||
|
@ -516,8 +512,7 @@ parallel: Warning: or increasing /proc/sys/fs/file-max
|
|||
parallel --shuf echo ::: 1 2 3 ::: a b c ::: A B C
|
||||
123 abc ABC
|
||||
seq 10 20 | parallel --tmux 'echo start {}; sleep {}; echo done {}'
|
||||
See output with: tmux -S '/tmp/parallel-tutorial-tmp/
|
||||
`touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach
|
||||
See output with: tmux -S /TMP/tmsXXXXX attach
|
||||
tmux -S /tmp/tmsXXXXX attach
|
||||
no sessions
|
||||
parallel --delay 2.5 echo Starting {}\;date ::: 1 2 3
|
||||
|
@ -705,12 +700,11 @@ This is input_file
|
|||
cat common_file\; echo {} ::: foo
|
||||
common data
|
||||
foo
|
||||
parallel -S $SERVER1 pwd ::: ""
|
||||
parallel --workdir . -S $SERVER1 pwd ::: ""
|
||||
parallel --workdir ... -S $SERVER1 pwd ::: ""
|
||||
parallel -S $SERVER1 pwd ::: "
|
||||
parallel --workdir . -S $SERVER1 pwd ::: "
|
||||
parallel --workdir ... -S $SERVER1 pwd ::: "
|
||||
/home/parallel
|
||||
/tmp/parallel-tutorial-tmp/
|
||||
`touch /tmp/tripwire` <"'/tmp
|
||||
/TMP
|
||||
/home/parallel/.TMPWORKDIR
|
||||
parallel -S $SERVER1 --sshdelay 0.2 echo ::: 1 2 3
|
||||
9
|
||||
|
@ -792,11 +786,14 @@ foo bar baz
|
|||
in my_func baz
|
||||
parallel --record-env
|
||||
cat ~/.parallel/ignored_vars|sort
|
||||
BASH_FUNC_replace_tmpdir%%
|
||||
BASH_FUNC_run_once%%
|
||||
BASH_FUNC_run_test%%
|
||||
_
|
||||
mysqlrootpass
|
||||
oracle_password
|
||||
qTMPDIR
|
||||
qqTMPDIR
|
||||
testsuitedir
|
||||
withpassword
|
||||
# The function is only copied if using Bash
|
||||
|
@ -1213,7 +1210,7 @@ Arguments
|
|||
io.write(" ")
|
||||
io.write(arg[a])
|
||||
end
|
||||
print("")
|
||||
print(")
|
||||
/usr/bin/bash: line 3: io.write: command not found
|
||||
/usr/bin/bash: -c: line 4: syntax error near unexpected token `='
|
||||
/usr/bin/bash: -c: line 4: ` for a = 1, #arg do'
|
||||
|
|
|
@ -47,9 +47,7 @@ def 3
|
|||
### Test --debug
|
||||
dburl mysql://tange:tange@localhost:3306/tange
|
||||
databasedriver mysql user tange password tange host localhost port 3306 database tange query
|
||||
[ | ((sleep 1; rm '/tmp/sql01-tmp/
|
||||
`touch /tmp/tripwire` <"'"'"'tmpfile') & mysql --defaults-extra-file='/tmp/sql01-tmp/
|
||||
`touch /tmp/tripwire` <"'"'"'tmpfile' --host=localhost --user=tange --port=3306 tange)]
|
||||
[ | ((sleep 1; rm /TMP/tmpfile') & mysql --defaults-extra-file=/TMP/tmpfile' --host=localhost --user=tange --port=3306 tange)]
|
||||
Test if --debug works
|
||||
Yes it does
|
||||
### Test --version -V
|
||||
|
|
Loading…
Reference in a new issue