testsuite: Make some tests more stable.

This commit is contained in:
Ole Tange 2018-12-29 21:04:58 +01:00
parent ad5ae61713
commit 9fc4ad53af
19 changed files with 772 additions and 1013 deletions

View file

@ -113,6 +113,8 @@ E.g. by doing:
B<--env> is supported to export only the variable, or alias with the
given name. Multiple B<--env>s can be given.
B<--session> is supported.
=over 8
=item aliases
@ -165,6 +167,8 @@ E.g. by doing:
B<--env> is supported to export only the variable, alias, function, or
array with the given name. Multiple B<--env>s can be given.
B<--session> is supported.
=over 8
=item aliases
@ -289,6 +293,8 @@ E.g. by doing:
B<--env> is supported to export only the variable, or alias with the
given name. Multiple B<--env>s can be given.
B<--session> is supported.
=over 8
=item aliases
@ -343,6 +349,8 @@ E.g. by doing:
B<--env> is supported to export only the variable, alias, function, or
array with the given name. Multiple B<--env>s can be given.
B<--session> is supported.
=over 8
=item aliases
@ -400,6 +408,8 @@ E.g. by doing:
B<--env> is supported to export only the variable, alias, function, or
array with the given name. Multiple B<--env>s can be given.
B<--session> is supported.
=over 8
=item aliases
@ -462,6 +472,8 @@ E.g. by doing:
B<--env> is supported to export only the variable, alias, function, or
array with the given name. Multiple B<--env>s can be given.
B<--session> is supported.
=over 8
=item aliases
@ -524,6 +536,8 @@ E.g. by doing:
B<--env> is supported to export only the variable, alias, function, or
array with the given name. Multiple B<--env>s can be given.
B<--session> is supported.
=over 8
=item aliases
@ -579,6 +593,8 @@ E.g. by doing:
B<--env> is supported to export only the variable, or alias with the
given name. Multiple B<--env>s can be given.
B<--session> is supported.
=over 8
=item aliases
@ -679,6 +695,8 @@ E.g. by doing:
B<--env> is supported to export only the variable, alias, function, or
array with the given name. Multiple B<--env>s can be given.
B<--session> is supported.
=over 8
=item aliases

View file

@ -11817,10 +11817,10 @@ sub insert_records {
my $table = $self->table();
# For SQL encode the command with \257 space as split points
my $command = join("\257 ",@$command_ref);
my $v_cols = join ",", map { "V$_" } (1..$self->max_number_of_args());
my @v_cols = map { ", V$_" } (1..$self->max_number_of_args());
# Two extra value due to $seq, Exitval, Send
my $v_vals = join ",", map { "?" } (1..$self->max_number_of_args()+4);
$self->run("INSERT INTO $table (Seq,Command,Exitval,Send,$v_cols) ".
$self->run("INSERT INTO $table (Seq,Command,Exitval,Send @v_cols) ".
"VALUES ($v_vals);", $seq, $command, -1000,
0, @$record_ref[1..$#$record_ref]);
}
@ -11829,8 +11829,8 @@ sub get_record {
my $self = shift;
my @retval;
my $table = $self->table();
my $v_cols = join ",", map { "V$_" } (1..$self->max_number_of_args());
my $v = $self->get("SELECT Seq, Command, $v_cols FROM $table ".
my @v_cols = map { ", V$_" } (1..$self->max_number_of_args());
my $v = $self->get("SELECT Seq, Command @v_cols FROM $table ".
"WHERE Exitval = -1000 ORDER BY Seq LIMIT 1;");
if($v->[0]) {
my $val_ref = $v->[0];

View file

@ -36,7 +36,7 @@ short: testlocalshort
true
testlocalshort: ../src/parallel tests-to-run/*local* wanted-results/*local* prereqlocal installparallel
time bash Start.sh local mem'|'100s
TRIES=1 time bash Start.sh local mem'|'100s
prereqlocal: installparallel
tcsh -c echo tcsh installed || (echo tcsh is required for testsuite; /bin/false)

View file

@ -154,9 +154,11 @@ _EOF
par_k() {
echo '### Test -k'
ulimit -n 50
(echo "sleep 3; echo begin"; seq 1 30 |
parallel -kq echo "sleep 1; echo {}";
echo "echo end") | stdout nice parallel -k -j0 |
(echo "sleep 3; echo begin";
seq 1 30 |
parallel -j1 -kq echo "sleep 1; echo {}";
echo "echo end") |
stdout nice parallel -k -j0 |
grep -Ev 'No more file handles.|Raising ulimit -n'
}

View file

@ -148,5 +148,5 @@ export -f $(compgen -A function | egrep 'p_|par_')
# Tested that -j0 in parallel is fastest (up to 15 jobs)
# more than 3 jobs: sqlite locks
compgen -A function | grep par_ | LC_ALL=C sort |
stdout parallel --timeout 200 -vj3 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
stdout parallel --timeout 300 -vj3 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
:::: - ::: \$MYSQL \$PG \$SQLITE

View file

@ -127,4 +127,6 @@ compgen -A function | grep par_ | sort |
stdout parallel -vj5 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
:::: - ::: \$MYSQL \$PG \$SQLITE | perl -pe 's/tbl\d+/TBL99999/gi;' |
perl -pe 's/(from TBL99999 order) .*/$1/g' |
perl -pe "s/$hostname/hostname/g"
perl -pe 's/ *\b'"$hostname"'\b */hostname/g' |
grep -v -- --------------- |
perl -pe 's/ *\bhost\b */host/g'

View file

@ -1,8 +1,6 @@
#!/bin/bash
echo '### test --env _'
echo 'Both test that variables are copied,'
echo 'but also that they are NOT copied, if ignored'
echo '### test --env _, env_parallel for different shells'
#
## par_*_man = tests from the man page
@ -516,6 +514,7 @@ par_tcsh_man() {
env_parallel -k --env myarray echo \$'{myarray[{}]}' ::: 1 2 3 4
env_parallel -k --env myarray -S server echo \$'{myarray[{}]}' ::: 1 2 3 4
echo 'Segmentation faults? Are you running bsd-csh version 20110502-3?'
env_parallel --argsep --- env_parallel -k echo ::: multi level --- env_parallel
env_parallel ::: true false true false
@ -1705,118 +1704,6 @@ _EOF
ssh ash@lo "$myscript"
}
__ash_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
. `which env_parallel.ash`;
bigvar="$(perl -e 'print "x"x130000')"
env_parallel echo ::: OK_bigvar
bigvar="$(perl -e 'print "x"x65000')"
env_parallel -S lo echo ::: OK_bigvar_remote
bigvar="$(perl -e 'print "\""x65000')"
env_parallel echo ::: OK_bigvar_quote
bigvar="$(perl -e 'print "\""x32000')"
env_parallel -S lo echo ::: OK_bigvar_quote_remote
# Functions not supported in ash
# bigvar=u
# eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };'
# env_parallel echo ::: OK_bigfunc
# env_parallel -S lo echo ::: OK_bigfunc_remote
#
# eval 'bigfunc() { a="'"$(perl -e 'print "\""x122000')"'"; };'
# env_parallel echo ::: OK_bigfunc_quote
# env_parallel -S lo echo ::: OK_bigfunc_quote_remote
# bigfunc() { true; }
echo Rest should fail
bigvar="$(perl -e 'print "x"x131000')"
env_parallel echo ::: fail_bigvar
bigvar="$(perl -e 'print "x"x65000')"
env_parallel -S lo echo ::: fail_bigvar_remote
bigvar="$(perl -e 'print "\""x66000')"
env_parallel echo ::: fail_bigvar_quote
bigvar="$(perl -e 'print "\""x33000')"
env_parallel -S lo echo ::: fail_bigvar_quote_remote
# Functions not supported in ash
# bigvar=u
# eval 'bigfunc() { a="'"$(perl -e 'print "x"x1230000')"'"; };'
# env_parallel echo ::: fail_bigfunc
# env_parallel -S lo echo ::: fail_bigfunc_remote
#
# eval 'bigfunc() { a="'"$(perl -e 'print "\""x123000')"'"; };'
# env_parallel echo ::: fail_bigfunc_quote
# env_parallel -S lo echo ::: fail_bigfunc_quote_remote
#
# bigfunc() { true; }
_EOF
)
ssh ash@lo "$myscript"
}
__bash_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
. `which env_parallel.bash`;
repeat() {
bigvar="$(perl -e 'print "x"x110000')"
env_parallel echo ::: OK_bigvar
bigvar="$(perl -e 'print "x"x55000')"
env_parallel -S lo echo ::: OK_bigvar_remote
bigvar="$(perl -e 'print "\""x55000')"
env_parallel echo ::: OK_bigvar_quote
bigvar="$(perl -e 'print "\""x27000')"
env_parallel -S lo echo ::: OK_bigvar_quote_remote
bigvar=u
eval 'bigfunc() { a="'"$(perl -e 'print "x"x110000')"'"; };'
env_parallel echo ::: OK_bigfunc
eval 'bigfunc() { a="'"$(perl -e 'print "x"x55000')"'"; };'
env_parallel -S lo echo ::: OK_bigfunc_remote
eval 'bigfunc() { a="'"$(perl -e 'print "\""x110000')"'"; };'
env_parallel echo ::: OK_bigfunc_quote
eval 'bigfunc() { a="'"$(perl -e 'print "\""x55000')"'"; };'
env_parallel -S lo echo ::: OK_bigfunc_quote_remote
bigfunc() { true; }
echo Rest should fail
bigvar="$(perl -e 'print "x"x127000')"
env_parallel echo ::: fail_bigvar
bigvar="$(perl -e 'print "x"x64000')"
env_parallel -S lo echo ::: fail_bigvar_remote
bigvar="$(perl -e 'print "\""x64000')"
env_parallel echo ::: fail_bigvar_quote
bigvar="$(perl -e 'print "\""x32000')"
env_parallel -S lo echo ::: fail_bigvar_quote_remote
bigvar=u
eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };'
env_parallel echo ::: fail_bigfunc
eval 'bigfunc() { a="'"$(perl -e 'print "x"x61000')"'"; };'
env_parallel -S lo echo ::: fail_bigfunc_remote
eval 'bigfunc() { a="'"$(perl -e 'print "\""x127000')"'"; };'
env_parallel echo ::: fail_bigfunc_quote
eval 'bigfunc() { a="'"$(perl -e 'print "\""x64000')"'"; };'
env_parallel -S lo echo ::: fail_bigfunc_quote_remote
bigfunc() { true; }
_EOF
)
ssh bash@lo "$myscript"
}
par_bash_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
@ -1961,60 +1848,6 @@ _EOF
ssh dash@lo "$myscript"
}
__dash_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
. `which env_parallel.dash`;
bigvar="$(perl -e 'print "x"x130000')"
env_parallel echo ::: OK_bigvar
bigvar="$(perl -e 'print "x"x65000')"
env_parallel -S lo echo ::: OK_bigvar_remote
bigvar="$(perl -e 'print "\""x65000')"
env_parallel echo ::: OK_bigvar_quote
bigvar="$(perl -e 'print "\""x32000')"
env_parallel -S lo echo ::: OK_bigvar_quote_remote
# Functions not supported
# bigvar=u
# eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };'
# env_parallel echo ::: OK_bigfunc
# env_parallel -S lo echo ::: OK_bigfunc_remote
#
# eval 'bigfunc() { a="'"$(perl -e 'print "\""x122000')"'"; };'
# env_parallel echo ::: OK_bigfunc_quote
# env_parallel -S lo echo ::: OK_bigfunc_quote_remote
# bigfunc() { true; }
echo Rest should fail
bigvar="$(perl -e 'print "x"x131000')"
env_parallel echo ::: fail_bigvar
bigvar="$(perl -e 'print "x"x65000')"
env_parallel -S lo echo ::: fail_bigvar_remote
bigvar="$(perl -e 'print "\""x66000')"
env_parallel echo ::: fail_bigvar_quote
bigvar="$(perl -e 'print "\""x33000')"
env_parallel -S lo echo ::: fail_bigvar_quote_remote
# Functions not supported
# bigvar=u
# eval 'bigfunc() { a="'"$(perl -e 'print "x"x1230000')"'"; };'
# env_parallel echo ::: fail_bigfunc
# env_parallel -S lo echo ::: fail_bigfunc_remote
#
# eval 'bigfunc() { a="'"$(perl -e 'print "\""x123000')"'"; };'
# env_parallel echo ::: fail_bigfunc_quote
# env_parallel -S lo echo ::: fail_bigfunc_quote_remote
#
# bigfunc() { true; }
_EOF
)
ssh dash@lo "$myscript"
}
par_fish_environment_too_big() {
echo Not implemented
}
@ -2090,124 +1923,6 @@ _EOF
ssh ksh@lo "$myscript"
}
__ksh_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
len_var=100+50-25
len_var_remote=100-50+25+12+6+3
len_var_quote=100-50+25-12-6+3-2
len_var_quote_remote=100-50-25+12+6-3
len_fun=100+50+25+12+6-3
len_fun_remote=100-50+25+12-6+3
len_fun_quote=100+50-25-12
len_fun_quote_remote=100-50+25+12-6
. `which env_parallel.ksh`;
repeat() {
# Repeat input string n*1000 times
perl -e 'print ((shift)x(eval "1000*(".shift.")"))' "$@"
}
bigvar=$(repeat x $len_var)
env_parallel echo ::: OK_bigvar
bigvar=$(repeat x $len_var_remote)
env_parallel -S lo echo ::: OK_bigvar_remote
bigvar=$(repeat \" $len_var_quote)
env_parallel echo ::: OK_bigvar_quote
bigvar=$(repeat \" $len_var_quote_remote)
env_parallel -S lo echo ::: OK_bigvar_quote_remote
bigvar=u
eval 'bigfunc() { a="'"$(repeat x $len_fun)"'"; };'
env_parallel echo ::: OK_bigfunc
eval 'bigfunc() { a="'"$(repeat x $len_fun_remote)"'"; };'
env_parallel -S lo echo ::: OK_bigfunc_remote
eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote)"'"; };'
env_parallel echo ::: OK_bigfunc_quote
eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote_remote)"'"; };'
env_parallel -S lo echo ::: OK_bigfunc_quote_remote
bigfunc() { true; }
echo Rest should fail
bigvar=$(repeat x $len_var+10)
env_parallel echo ::: fail_bigvar
bigvar=$(repeat x $len_var_remote+10)
env_parallel -S lo echo ::: fail_bigvar_remote
bigvar=$(repeat \" $len_var_quote+10)
env_parallel echo ::: fail_bigvar_quote
bigvar=$(repeat \" $len_var_quote_remote+10)
env_parallel -S lo echo ::: fail_bigvar_quote_remote
bigvar=u
eval 'bigfunc() { a="'"$(repeat x $len_fun+10)"'"; };'
env_parallel echo ::: fail_bigfunc
eval 'bigfunc() { a="'"$(repeat x $len_fun_remote+10)"'"; };'
env_parallel -S lo echo ::: fail_bigfunc_remote
eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote+10)"'"; };'
env_parallel echo ::: fail_bigfunc_quote
eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote+10)"'"; };'
env_parallel -S lo echo ::: fail_bigfunc_quote_remote
bigfunc() { true; }
_EOF
)
ssh ksh@lo "$myscript"
}
__ksh_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
. `which env_parallel.ksh`;
bigvar="$(perl -e 'print "x"x119000')"
env_parallel echo ::: OK_bigvar
env_parallel -S lo echo ::: OK_bigvar_remote
bigvar="$(perl -e 'print "\""x119000')"
env_parallel echo ::: OK_bigvar_quote
env_parallel -S lo echo ::: OK_bigvar_quote_remote
bigvar=u
eval 'bigfunc() { a="'"$(perl -e 'print "x"x119000')"'"; };'
env_parallel echo ::: OK_bigfunc
env_parallel -S lo echo ::: OK_bigfunc_remote
eval 'bigfunc() { a="'"$(perl -e 'print "\""x119000')"'"; };'
env_parallel echo ::: OK_bigfunc_quote
env_parallel -S lo echo ::: OK_bigfunc_quote_remote
bigfunc() { true; }
echo Rest should fail
bigvar="$(perl -e 'print "x"x130000')"
env_parallel echo ::: fail_bigvar
env_parallel -S lo echo ::: fail_bigvar_remote
bigvar="$(perl -e 'print "\""x128000')"
env_parallel echo ::: fail_bigvar_quote
env_parallel -S lo echo ::: fail_bigvar_quote_remote
bigvar=u
eval 'bigfunc() { a="'"$(perl -e 'print "x"x129000')"'"; };'
env_parallel echo ::: fail_bigfunc
env_parallel -S lo echo ::: fail_bigfunc_remote
eval 'bigfunc() { a="'"$(perl -e 'print "\""x130000')"'"; };'
env_parallel echo ::: fail_bigfunc_quote
env_parallel -S lo echo ::: fail_bigfunc_quote_remote
bigfunc() { true; }
_EOF
)
ssh ksh@lo "$myscript"
}
par_mksh_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
@ -2251,23 +1966,24 @@ par_mksh_environment_too_big() {
echo Rest should fail
bigvar=$(repeat x $len_var+10)
# Add 10 or 100. It differs a bit from system to system
bigvar=$(repeat x $len_var+20)
env_parallel echo ::: fail_bigvar
bigvar=$(repeat x $len_var_remote+10)
env_parallel -S lo echo ::: fail_bigvar_remote
bigvar=$(repeat \" $len_var_quote+10)
bigvar=$(repeat \" $len_var_quote+20)
env_parallel echo ::: fail_bigvar_quote
bigvar=$(repeat \" $len_var_quote_remote+10)
bigvar=$(repeat \" $len_var_quote_remote+20)
env_parallel -S lo echo ::: fail_bigvar_quote_remote
bigvar=u
eval 'bigfunc() { a="'"$(repeat x $len_fun+10)"'"; };'
eval 'bigfunc() { a="'"$(repeat x $len_fun+20)"'"; };'
env_parallel echo ::: fail_bigfunc
eval 'bigfunc() { a="'"$(repeat x $len_fun_remote+10)"'"; };'
eval 'bigfunc() { a="'"$(repeat x $len_fun_remote+20)"'"; };'
env_parallel -S lo echo ::: fail_bigfunc_remote
eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote+10)"'"; };'
eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote+20)"'"; };'
env_parallel echo ::: fail_bigfunc_quote
eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote+10)"'"; };'
env_parallel -S lo echo ::: fail_bigfunc_quote_remote
@ -2278,105 +1994,6 @@ _EOF
ssh mksh@lo "$myscript"
}
__mksh_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
. `which env_parallel.mksh`;
bigvar="$(perl -e 'print "x"x110000')"
env_parallel echo ::: OK_bigvar
env_parallel -S lo echo ::: OK_bigvar_remote
bigvar="$(perl -e 'print "\""x110000')"
env_parallel echo ::: OK_bigvar_quote
env_parallel -S lo echo ::: OK_bigvar_quote_remote
bigvar=u
eval 'bigfunc() { a="'"$(perl -e 'print "x"x110000')"'"; };'
env_parallel echo ::: OK_bigfunc
env_parallel -S lo echo ::: OK_bigfunc_remote
eval 'bigfunc() { a="'"$(perl -e 'print "\""x110000')"'"; };'
env_parallel echo ::: OK_bigfunc_quote
env_parallel -S lo echo ::: OK_bigfunc_quote_remote
bigfunc() { true; }
echo Rest should fail
bigvar="$(perl -e 'print "x"x130000')"
env_parallel echo ::: fail_bigvar
env_parallel -S lo echo ::: fail_bigvar_remote
bigvar="$(perl -e 'print "\""x130000')"
env_parallel echo ::: fail_bigvar_quote
env_parallel -S lo echo ::: fail_bigvar_quote_remote
bigvar=u
eval 'bigfunc() { a="'"$(perl -e 'print "x"x129000')"'"; };'
env_parallel echo ::: fail_bigfunc
env_parallel -S lo echo ::: fail_bigfunc_remote
eval 'bigfunc() { a="'"$(perl -e 'print "\""x130000')"'"; };'
env_parallel echo ::: fail_bigfunc_quote
env_parallel -S lo echo ::: fail_bigfunc_quote_remote
bigfunc() { true; }
_EOF
)
ssh mksh@lo "$myscript"
}
__sh_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
. `which env_parallel.sh`;
bigvar="$(perl -e 'print "x"x130000')"
env_parallel echo ::: OK_bigvar
bigvar="$(perl -e 'print "x"x90000')"
env_parallel -S lo echo ::: OK_bigvar_remote
bigvar="$(perl -e 'print "\""x65000')"
env_parallel echo ::: OK_bigvar_quote
bigvar="$(perl -e 'print "\""x45000')"
env_parallel -S lo echo ::: OK_bigvar_quote_remote
# Functions not supported
# bigvar=u
# eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };'
# env_parallel echo ::: OK_bigfunc
# env_parallel -S lo echo ::: OK_bigfunc_remote
#
# eval 'bigfunc() { a="'"$(perl -e 'print "\""x122000')"'"; };'
# env_parallel echo ::: OK_bigfunc_quote
# env_parallel -S lo echo ::: OK_bigfunc_quote_remote
# bigfunc() { true; }
echo Rest should fail
bigvar="$(perl -e 'print "x"x131000')"
env_parallel echo ::: fail_bigvar
env_parallel -S lo echo ::: fail_bigvar_remote
bigvar="$(perl -e 'print "\""x66000')"
env_parallel echo ::: fail_bigvar_quote
env_parallel -S lo echo ::: fail_bigvar_quote_remote
# Functions not supported
# bigvar=u
# eval 'bigfunc() { a="'"$(perl -e 'print "x"x1230000')"'"; };'
# env_parallel echo ::: fail_bigfunc
# env_parallel -S lo echo ::: fail_bigfunc_remote
#
# eval 'bigfunc() { a="'"$(perl -e 'print "\""x123000')"'"; };'
# env_parallel echo ::: fail_bigfunc_quote
# env_parallel -S lo echo ::: fail_bigfunc_quote_remote
#
# bigfunc() { true; }
_EOF
)
ssh sh@lo "$myscript"
}
par_sh_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
@ -3104,7 +2721,45 @@ _EOF
}
par_fish_env_parallel_session() {
echo Not implemented
myscript=$(cat <<'_EOF'
. (which env_parallel.fish)
echo '### Test env_parallel --session'
alias aliasbefore='echo before'
set varbefore 'before'
function funcbefore
echo 'before' "$argv"
end
set arraybefore array before
env_parallel --session
# stuff defined
env_parallel aliasbefore ::: must_fail
env_parallel -S lo aliasbefore ::: must_fail
env_parallel funcbefore ::: must_fail
env_parallel -S lo funcbefore ::: must_fail
env_parallel echo '$varbefore' ::: no_before
env_parallel -S lo echo '$varbefore' ::: no_before
env_parallel echo '$arraybefore' ::: no_before
env_parallel -S lo echo '$arraybefore' ::: no_before
alias aliasafter='echo after'
set varafter 'after'
function funcafter
echo 'after' "$argv"
end
set arrayafter array after
env_parallel aliasafter ::: aliasafter_OK
env_parallel -S lo aliasafter ::: aliasafter_OK
env_parallel funcafter ::: funcafter_OK
env_parallel -S lo funcafter ::: funcafter_OK
env_parallel echo '$varafter' ::: varafter_OK
env_parallel -S lo echo '$varafter' ::: varafter_OK
env_parallel echo '$arrayafter' ::: arrayafter_OK
env_parallel -S lo echo '$arrayafter' ::: arrayafter_OK
set -e PARALLEL_IGNORED_NAMES
_EOF
)
ssh fish@lo "$myscript"
}
par_ksh_env_parallel_session() {

View file

@ -147,7 +147,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 75000`
a=`rand | perl -pe 's/\0//g'| head -c 70000`
env_parallel -Slo echo should not ::: fail 2>&1
a=`rand | perl -pe 's/\0//g'| head -c 80000`
env_parallel -Slo echo should ::: fail 2>/dev/null || echo OK
@ -156,15 +156,39 @@ par_env_parallel_big_env() {
par_no_route_to_host() {
echo '### no route to host with | and -j0 causes inf loop'
via_parallel() {
seq 11 | stdout parallel -j0 -S 192.168.1.199 echo
seq 11 | stdout parallel -j0 -S $1 echo
}
export -f via_parallel
raw() {
stdout ssh 192.168.1.199 echo
stdout ssh $1 echo
}
export -f raw
parallel -k ::: raw via_parallel
# Random hosts that there is no route to
findhosts() {
ip='$(($RANDOM%256)).$(($RANDOM%256)).$(($RANDOM%256)).$(($RANDOM%256))'
stdout parallel --timeout 2 -j0 ssh $ip echo ::: {1..10000} |
perl -ne 's/ssh:.* host (\d+\.\d+\.\d+\.\d+) .* No route .*/$1/ and print; $|=1'
}
# Retry if really fails this fast
filterhosts() {
stdout parallel --timeout 2 -j5 ssh {} echo |
perl -ne 's/ssh:.* host (\d+\.\d+\.\d+\.\d+) .* No route .*/$1/ and print; $|=1'
}
(
# Cache a list of hosts that fail fast with 'No route'
renice 10 -p $$ >/dev/null
findhosts | filterhosts | filterhosts |
filterhosts | filterhosts | head > /tmp/filtered.$$
mv /tmp/filtered.$$ /tmp/filtered.hosts
) &
(
# We just need one to complete
stdout parallel --halt now,done=1 -j0 raw :::: /tmp/filtered.hosts
stdout parallel --halt now,done=1 -j0 via_parallel :::: /tmp/filtered.hosts
) | perl -pe 's/(\d+\.\d+\.\d+\.\d+)/i.p.n.r/' | puniq
}
export -f $(compgen -A function | grep par_)

View file

@ -108,7 +108,7 @@ echo '### Must not quote';
echo '### Test bug #35820: sem breaks if $HOME is not writable'
echo 'Workaround: use another writable dir';
rm -rf /tmp/.parallel;
rm -rf /tmp/.parallel || echo /tmp/.parallel wrong owner?;
HOME=/tmp sem echo OK;
HOME=/tmp sem --wait;
ssh lo 'HOME=/usr/this/should/fail stdout sem echo should fail'

View file

@ -27,8 +27,8 @@ par_interactive sleep 0.1; echo opt-p 2 ?...n
par_interactive sleep 0.1; echo opt-p 3 ?...y
par_interactive spawn /tmp/parallel-script-for-expect
par_k ### Test -k
par_k parallel: Warning: Only enough file handles to run 8 jobs in parallel.
par_k parallel: Warning: Running 'parallel -j0 -N 8 --pipe parallel -j0' or
par_k parallel: Warning: Only enough file handles to run 9 jobs in parallel.
par_k parallel: Warning: Running 'parallel -j0 -N 9 --pipe parallel -j0' or
par_k parallel: Warning: raising 'ulimit -n' or 'nofile' in /etc/security/limits.conf
par_k parallel: Warning: or /proc/sys/fs/file-max may help.
par_k begin
@ -325,10 +325,10 @@ par_results_compress 0
par_results_compress 1
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-tmpdir/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-tmpdir/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-tmpdir/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-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/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-tmpdir/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-tmpdir/tmpfile",
@ -353,10 +353,10 @@ 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-tmpdir/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-tmpdir/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-tmpdir/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-tmpdir/tmpfile,
par_results_csv --header : --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/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-tmpdir/tmpfile,
par_results_csv --header : --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
@ -381,15 +381,15 @@ 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-tmpdir/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-tmpdir/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-tmpdir/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-tmpdir/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-tmpdir/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-tmpdir/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-tmpdir/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-tmpdir/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-tmpdir/tmpfile",
par_results_csv --tag --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/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-tmpdir/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-tmpdir/tmpfile",
@ -439,15 +439,15 @@ 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-tmpdir/tmpfile,
par_results_csv --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/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-tmpdir/tmpfile,
par_results_csv --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
@ -531,9 +531,9 @@ par_slow_total_jobs 2
par_slow_total_jobs parallel: Warning: Reading X arguments took longer than XX seconds.
par_sockets_cores_threads ### Test --number-of-sockets/cores/threads
par_sockets_cores_threads 1
par_sockets_cores_threads 2
par_sockets_cores_threads 4
par_sockets_cores_threads 8
par_sockets_cores_threads 4
par_sockets_cores_threads 2
par_sockets_cores_threads ### Test --use-sockets-instead-of-threads
par_sockets_cores_threads threads done
par_sockets_cores_threads sockets done

File diff suppressed because it is too large Load diff

View file

@ -90,14 +90,14 @@ par_tee_ssh 2
par_tee_ssh 3
par_tee_ssh 3
par_wd_no_such_dir ### --wd no-such-dir - csh
par_wd_no_such_dir mkdir: cannot create directory '/no-such-dir': Permission denied
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_wd_no_such_dir ### --wd no-such-dir - tcsh
par_wd_no_such_dir mkdir: cannot create directory '/no-such-dir': Permission denied
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_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 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

View file

@ -1,6 +1,4 @@
### test --env _
Both test that variables are copied,
but also that they are NOT copied, if ignored
### test --env _, env_parallel for different shells
par_zsh_underscore ### zsh
par_zsh_underscore ### Testing of --env _
par_zsh_underscore variables in aliases in and arrays in functions work
@ -318,6 +316,7 @@ par_tcsh_man arrays
par_tcsh_man with=&"'
par_tcsh_man work,
par_tcsh_man too
par_tcsh_man Segmentation faults? Are you running bsd-csh version 20110502-3?
par_tcsh_man multi
par_tcsh_man level
par_tcsh_man env_parallel
@ -699,13 +698,49 @@ par_mksh_environment_too_big OK_bigfunc_remote
par_mksh_environment_too_big OK_bigfunc_quote
par_mksh_environment_too_big OK_bigfunc_quote_remote
par_mksh_environment_too_big Rest should fail
par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar
par_mksh_environment_too_big mksh: /usr/bin/perl: Argument list too long
par_mksh_environment_too_big env_parallel: Error: Your environment is too big.
par_mksh_environment_too_big env_parallel: Error: You can try 3 different approaches:
par_mksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set
par_mksh_environment_too_big env_parallel: Error: variables or define functions.
par_mksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy.
par_mksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once:
par_mksh_environment_too_big env_parallel: Error: env_parallel --record-env
par_mksh_environment_too_big env_parallel: Error: And then use '--env _'
par_mksh_environment_too_big env_parallel: Error: For details see: man env_parallel
par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote
par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote
par_mksh_environment_too_big mksh: /usr/bin/perl: Argument list too long
par_mksh_environment_too_big env_parallel: Error: Your environment is too big.
par_mksh_environment_too_big env_parallel: Error: You can try 3 different approaches:
par_mksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set
par_mksh_environment_too_big env_parallel: Error: variables or define functions.
par_mksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy.
par_mksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once:
par_mksh_environment_too_big env_parallel: Error: env_parallel --record-env
par_mksh_environment_too_big env_parallel: Error: And then use '--env _'
par_mksh_environment_too_big env_parallel: Error: For details see: man env_parallel
par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote
par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc
par_mksh_environment_too_big mksh: /usr/bin/perl: Argument list too long
par_mksh_environment_too_big env_parallel: Error: Your environment is too big.
par_mksh_environment_too_big env_parallel: Error: You can try 3 different approaches:
par_mksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set
par_mksh_environment_too_big env_parallel: Error: variables or define functions.
par_mksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy.
par_mksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once:
par_mksh_environment_too_big env_parallel: Error: env_parallel --record-env
par_mksh_environment_too_big env_parallel: Error: And then use '--env _'
par_mksh_environment_too_big env_parallel: Error: For details see: man env_parallel
par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_remote
par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote
par_mksh_environment_too_big mksh: /usr/bin/perl: Argument list too long
par_mksh_environment_too_big env_parallel: Error: Your environment is too big.
par_mksh_environment_too_big env_parallel: Error: You can try 3 different approaches:
par_mksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set
par_mksh_environment_too_big env_parallel: Error: variables or define functions.
par_mksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy.
par_mksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once:
par_mksh_environment_too_big env_parallel: Error: env_parallel --record-env
par_mksh_environment_too_big env_parallel: Error: And then use '--env _'
par_mksh_environment_too_big env_parallel: Error: For details see: man env_parallel
par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote_remote
par_mksh_env_parallel_session ### Test env_parallel --session
par_mksh_env_parallel_session /bin/mksh: aliasbefore: not found
@ -881,9 +916,9 @@ par_ksh_man work,
par_ksh_man too
par_ksh_man This may never work
par_ksh_man https://unix.stackexchange.com/questions/457031/extract-full-function-definitions
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `(' unexpected
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `(' unexpected
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `(' unexpected
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `{' unmatched
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `{' unmatched
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `{' unmatched
par_ksh_man exit value 2 should be 2
par_ksh_man Unknown option: no-such-option
par_ksh_man exit value 255 should be 255
@ -1017,29 +1052,31 @@ par_fish_underscore variables in aliases and arrays in functions work
par_fish_underscore variables in aliases and arrays in functions work
par_fish_underscore variables in aliases and arrays in functions work
par_fish_underscore variables in aliases and arrays in functions work
par_fish_underscore myfunc work
par_fish_underscore ^
par_fish_underscore myfunc work
par_fish_underscore ^
par_fish_underscore variables in aliases and arrays in functions work
par_fish_underscore variables in aliases and arrays in functions work
par_fish_underscore not_copied_alias 'error=OK'
par_fish_underscore ^
par_fish_underscore not_copied_func 'error=OK'
par_fish_underscore ^
par_fish_underscore error=OK
par_fish_underscore error=OK
par_fish_underscore myfunc work
par_fish_underscore ^
par_fish_underscore myfunc work
par_fish_underscore ^
par_fish_underscore myfunc work
par_fish_underscore ^
par_fish_underscore myfunc work
par_fish_underscore ^
par_fish_underscore myfunc work
par_fish_underscore aliases and arrays in functions work
par_fish_underscore aliases and arrays in functions work
par_fish_underscore aliases functions work
par_fish_underscore aliases functions work
par_fish_underscore myecho $myarray functions $argv
par_fish_underscore ^
par_fish_underscore in function “myfuncâ€<C3A2>
par_fish_underscore called on standard input
par_fish_underscore with parameter list “workâ€<C3A2>
par_fish_underscore
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
par_fish_underscore myfunc work
par_fish_underscore myecho $myarray functions $argv
par_fish_underscore ^
par_fish_underscore in function “myfuncâ€<C3A2>
par_fish_underscore called on standard input
par_fish_underscore with parameter list “workâ€<C3A2>
par_fish_underscore
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
par_fish_underscore myfunc work
par_fish_underscore ^
@ -1067,10 +1104,14 @@ par_fish_man variables with = & " ! ' work
par_fish_man variables with = & " ! ' work
par_fish_man multiline
par_fish_man variables with = & " ! ' work
par_fish_man multiline\n variables with = & " ! ' work
par_fish_man multiline\n variables with = & " ! ' work
par_fish_man multiline\n variables with = & " ! ' work
par_fish_man multiline\n variables with = & " ! ' work
par_fish_man multiline
par_fish_man variables with = & " ! ' work
par_fish_man multiline
par_fish_man variables with = & " ! ' work
par_fish_man multiline
par_fish_man variables with = & " ! ' work
par_fish_man multiline
par_fish_man variables with = & " ! ' work
par_fish_man arrays with = & " ! ' work, too
par_fish_man arrays
par_fish_man with = & " ! '
@ -1094,8 +1135,6 @@ par_fish_man env_parallel
par_fish_man exit value 2 should be 2
par_fish_man Unknown option: no-such-option
par_fish_man exit value 255 should be 255 `sleep 1`
par_fish_funky Fish is broken
par_fish_funky setenv: Too many arguments
par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported
par_fish_funky 3 arg alias_works
par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported
@ -1107,7 +1146,7 @@ par_fish_funky
par_fish_funky
par_fish_funky
par_fish_funky Funky-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7F>ƒ„…†‡ˆ‰ŠŒ<E280B9>Ž<EFBFBD><C5BD>“”•˜™šœ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky
par_fish_funky Funkyenv--funkyenv
par_fish_funky Funkyenv-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7F>ƒ„…†‡ˆ‰ŠŒ<E280B9>Ž<EFBFBD><C5BD>“”•˜™šœ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funkyenv
par_fish_funky
par_fish_funky
par_fish_funky
@ -1122,15 +1161,42 @@ par_fish_funky
par_fish_funky
par_fish_funky
par_fish_funky Funky-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7F>ƒ„…†‡ˆ‰ŠŒ<E280B9>Ž<EFBFBD><C5BD>“”•˜™šœ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky
par_fish_funky Funkyenv--funkyenv
par_fish_funky Funkyenv-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7F>ƒ„…†‡ˆ‰ŠŒ<E280B9>Ž<EFBFBD><C5BD>“”•˜™šœ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funkyenv
par_fish_funky
par_fish_funky
par_fish_funky
par_fish_funky
par_fish_funky '   !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7F>ƒ„…†‡ˆ‰ŠŒ<E280B9>Ž<EFBFBD><C5BD>“”•˜™šœ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
par_fish_environment_too_big Not implemented
par_fish_env_parallel_session Not implemented
par_fish_env_parallel Fish is broken
par_fish_env_parallel_session ### Test env_parallel --session
par_fish_env_parallel_session fish: Unknown command 'aliasbefore must_fail'
par_fish_env_parallel_session fish:
par_fish_env_parallel_session aliasbefore must_fail
par_fish_env_parallel_session ^
par_fish_env_parallel_session fish: Unknown command 'aliasbefore must_fail'
par_fish_env_parallel_session fish:
par_fish_env_parallel_session aliasbefore must_fail
par_fish_env_parallel_session ^
par_fish_env_parallel_session fish: Unknown command 'funcbefore must_fail'
par_fish_env_parallel_session fish:
par_fish_env_parallel_session funcbefore must_fail
par_fish_env_parallel_session ^
par_fish_env_parallel_session fish: Unknown command 'funcbefore must_fail'
par_fish_env_parallel_session fish:
par_fish_env_parallel_session funcbefore must_fail
par_fish_env_parallel_session ^
par_fish_env_parallel_session no_before
par_fish_env_parallel_session no_before
par_fish_env_parallel_session no_before
par_fish_env_parallel_session no_before
par_fish_env_parallel_session after aliasafter_OK
par_fish_env_parallel_session after aliasafter_OK
par_fish_env_parallel_session after funcafter_OK
par_fish_env_parallel_session after funcafter_OK
par_fish_env_parallel_session after varafter_OK
par_fish_env_parallel_session after varafter_OK
par_fish_env_parallel_session array after arrayafter_OK
par_fish_env_parallel_session array after arrayafter_OK
par_fish_env_parallel bug #50435: Remote fifo broke in 20150522
par_fish_env_parallel TODO fix env_parallel --fifo
par_fish_env_parallel parallel: Error: Command line too long (XXX >= XXX) at input 0: $PARALLEL_TMP
@ -1371,16 +1437,16 @@ par_csh_funky 3 arg alias_works
par_csh_funky
par_csh_funky myvar works
par_csh_funky space special chars problem
par_csh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<EFBFBD><EFBFBD><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-funky alias_var_works
par_csh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€Â<EFBFBD>ÃÂÃÄÃ…ÆÇÈÉÊÃÂÃÂŒÃÂ<EFBFBD>ÃÂŽÃÂ<EFBFBD>ÃÂ<EFBFBD>ÃÂÃÂÓÔÕÃÂ×ØÙÚÃÂÃÂœÃÂ<EFBFBD>ÞßàáâãäÃ¥æçèéêëìíîïðñòóôõö÷øùúûüýþÿÀÃ<EFBFBD>ÃÂÃÄÅÆÇÈÉÊÃÂÌÃÂ<EFBFBD>ÎÃÂ<EFBFBD>ÃÂ<EFBFBD>ÃÂÃÂÓÔÕÃÂ×ØÙÚÃÂÜÃÂ<EFBFBD>Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works
par_csh_funky func_echo: Command not found.
par_csh_funky 3 arg alias_works_over_ssh
par_csh_funky
par_csh_funky myvar works
par_csh_funky space special chars problem
par_csh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<EFBFBD><EFBFBD><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-funky alias_var_works_over_ssh
par_csh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€Â<EFBFBD>ÃÂÃÄÃ…ÆÇÈÉÊÃÂÃÂŒÃÂ<EFBFBD>ÃÂŽÃÂ<EFBFBD>ÃÂ<EFBFBD>ÃÂÃÂÓÔÕÃÂ×ØÙÚÃÂÃÂœÃÂ<EFBFBD>ÞßàáâãäÃ¥æçèéêëìíîïðñòóôõö÷øùúûüýþÿÀÃ<EFBFBD>ÃÂÃÄÅÆÇÈÉÊÃÂÌÃÂ<EFBFBD>ÎÃÂ<EFBFBD>ÃÂ<EFBFBD>ÃÂÃÂÓÔÕÃÂ×ØÙÚÃÂÜÃÂ<EFBFBD>Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works_over_ssh
par_csh_funky func_echo: Command not found.
par_csh_funky
par_csh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<EFBFBD>
par_csh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\€\Â<>\Â\\Â\ƒ\Â\„\Â\…\Â\†\Â\‡\Â\ˆ\Â\‰\Â\Š\Â\\Â\Œ\Â\<5C>\Â\Ž\Â\<5C>\Â\<5C>\Â\\Â\\Â\“\Â\”\Â\•\Â\\Â\—\Â\˜\Â\™\Â\š\Â\\Â\œ\Â\<5C>\Â\ž\Â\Ÿ\Â\ \Â\¡\Â\¢\Â\£\Â\¤\Â\¥\Â\¦\Â\§\Â\¨\Â\©\Â\ª\Â\«\Â\¬\Â\­\Â\®\Â\¯\Â\°\Â\±\Â\²\Â\³\Â\´\Â\µ\Â\¶\Â\·\Â\¸\Â\¹\Â\º\Â\»\Â\¼\Â\½\Â\¾\Â\¿\À\Ã<>\Ã\\Ã\ƒ\Ã\„\Ã\…\Ã\†\Ã\‡\Ã\ˆ\Ã\‰\Ã\Š\Ã\\Ã\Œ\Ã\<5C>\Ã\Ž\Ã\<5C>\Ã\<5C>\Ã\\Ã\\Ã\“\Ã\”\Ã\•\Ã\\Ã\—\Ã\˜\Ã\™\Ã\š\Ã\\Ã\œ\Ã\<5C>\Ã\ž\Ã\Ÿ\Ã\ \Ã\¡\Ã\¢\Ã\£\Ã\¤\Ã\¥\Ã\¦\Ã\§\Ã\¨\Ã\©\Ã\ª\Ã\«\Ã\¬\Ã\­\Ã\®\Ã\¯\Ã\°\Ã\±\Ã\²\Ã\³\Ã\´\Ã\µ\Ã\¶\Ã\·\Ã\¸\Ã\¹\Ã\º\Ã\»\Ã\¼\Ã\½\Ã\¾\Ã\¿
par_csh_environment_too_big Not implemented
par_csh_env_parallel_session Not implemented
par_csh_env_parallel bug #50435: Remote fifo broke in 20150522

View file

@ -23,12 +23,11 @@ par_path_remote_bash /bin:/usr/bin:/tmp OK
par_path_remote_bash
par_path_remote_csh bug #47695: How to set $PATH on remote? csh
par_path_remote_csh logged in
par_path_remote_csh CSH Path before: /bin:/usr/bin with no parallel
par_path_remote_csh parallel: Command not found.
par_path_remote_csh CSH Path before: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games with no parallel
par_path_remote_csh /usr/local/bin/parallel
par_path_remote_csh ^^^^^^^^ Not found is OK
par_path_remote_csh parallel: Warning: Removed lo.
par_path_remote_csh parallel: Error: Cannot run any jobs.
par_path_remote_csh Right now it seems csh does not respect /bin:/usr/bin:/tmp if set from Perl
par_path_remote_csh /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/tmp OK
par_path_remote_csh Right now it seems csh does not respect /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/tmp if set from Perl
par_path_remote_csh Done
par_retries_1 ### Test of --retries - it should run 13 jobs in total
par_retries_1 13

View file

@ -55,13 +55,16 @@ par_propagate_env FOO=test_csh_filter
par_propagate_env HOME=~
par_propagate_env ** bug #41805 done
par_no_route_to_host ### no route to host with | and -j0 causes inf loop
par_no_route_to_host ssh: connect to host 192.168.1.199 port 22: No route to host
par_no_route_to_host parallel: Warning: ssh to 192.168.1.199 only allows for 0 simultaneous logins.
par_no_route_to_host ssh: connect to host i.p.n.r port 22: No route to host
par_no_route_to_host parallel: This job finished:
par_no_route_to_host raw i.p.n.r
par_no_route_to_host parallel: Warning: ssh to i.p.n.r only allows for 0 simultaneous logins.
par_no_route_to_host parallel: Warning: You may raise this by changing
par_no_route_to_host parallel: Warning: /etc/ssh/sshd_config:MaxStartups and MaxSessions on 192.168.1.199.
par_no_route_to_host parallel: Warning: /etc/ssh/sshd_config:MaxStartups and MaxSessions on i.p.n.r.
par_no_route_to_host parallel: Warning: You can also try --sshdelay 0.1
par_no_route_to_host parallel: Warning: Using only -1 connections to avoid race conditions.
par_no_route_to_host parallel: Error: Cannot run any jobs.
par_no_route_to_host via_parallel i.p.n.r
par_ksh_embed --embed
par_ksh_embed Redirect the output to a file and add your changes at the end:
par_ksh_embed /usr/local/bin/parallel --embed > new_script

View file

@ -39,7 +39,7 @@ https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
To silence this citation notice: run 'parallel --citation' once.
10 files to edit
[?2004h[?1049h[?1h=[?2004h[?12h[?12l[?25l"file1" [New File] [>c]10;?]11;?~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 0,0-1All[?25h[?25lE173: 9 more files to edit[?2004h0,0-1All[?25h[?2004l[?2004l[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
[?2004h[?1049h[?1h=[?2004h[?12h[?12l[?25l"file1" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?25h[?25lE173: 9 more files to edit[?2004h[?25h[?2004l[?2004l[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
If you use programs that use GNU Parallel to process data for an article in a
scientific publication, please cite:

View file

@ -237,7 +237,7 @@ echo a b | wc -w
2
echo '### Test bug #35820: sem breaks if $HOME is not writable'
### Test bug #35820: sem breaks if $HOME is not writable
echo 'Workaround: use another writable dir'; rm -rf /tmp/.parallel; HOME=/tmp sem echo OK; HOME=/tmp sem --wait; ssh lo 'HOME=/usr/this/should/fail stdout sem echo should fail'
echo 'Workaround: use another writable dir'; rm -rf /tmp/.parallel || echo /tmp/.parallel wrong owner?; HOME=/tmp sem echo OK; HOME=/tmp sem --wait; ssh lo 'HOME=/usr/this/should/fail stdout sem echo should fail'
Workaround: use another writable dir
OK
parallel: Error: Cannot change into non-executable dir /usr/this/should/fail/.parallel/semaphores: No such file or directory

View file

@ -7,6 +7,8 @@ par_env_newline_backslash_bash 8
par_env_newline_backslash_csh ### Test --env for \n and \\ - single and double (*csh only) - no output is good but csh fails
par_env_newline_backslash_csh 2 2\ \92V2=\ \92
par_env_newline_backslash_csh 2 2\\ \92V2=\\ \92
par_env_newline_backslash_csh 2 Unmatched ".
par_env_newline_backslash_csh 2 Unmatched '"'.
par_env_newline_backslash_onall_bash ### Test --env for \n and \\ - single and double --onall (bash only) - no output is good
par_env_newline_backslash_onall_bash 16
par_env_newline_backslash_onall_bash 16
@ -15,7 +17,6 @@ par_env_newline_backslash_onall_bash 8 10
par_env_newline_backslash_onall_bash 8 10V2=
par_env_newline_backslash_onall_bash 8 2\\ \92V2=\\ \92
par_env_newline_backslash_onall_csh ### Test --env for \n and \\ - single and double --onall (*csh only) - no output is good but csh fails
par_env_newline_backslash_onall_csh 8 Unmatched '"'.
par_space ### Test --env - https://savannah.gnu.org/bugs/?37351
par_space a 2 spaces b 1
par_space a 2 spaces b 1

View file

@ -61,8 +61,8 @@ echo '### Check that 4 processes are really used'
echo '### --version must have higher priority than retired options'
### --version must have higher priority than retired options
$NICEPAR --version -g -Y -U -W -T | tail
GNU parallel 20181202
Copyright (C) 2007-2018 Ole Tange and Free Software Foundation, Inc.
GNU parallel 20181223
Copyright (C) 2007-2019 Ole Tange and Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
GNU parallel comes with no warranty.