Fixed bug #50435: Remote fifo broke in 20150522.

Fixed bug #50441: env_parallel --pipe in csh does not work.
Fixed test bug #50386: --fifo does not export function, --cat does.
This commit is contained in:
Ole Tange 2017-03-04 16:03:14 +01:00
parent 180ed0dd32
commit 06e2dd958d
17 changed files with 383 additions and 252 deletions

View file

@ -61,7 +61,7 @@ env_parallel() {
}
_remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV)$' |
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' |
# Filter names matching --env
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
# Vars set by /bin/sh

View file

@ -48,7 +48,8 @@ env_parallel() {
}
_remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV)$' |
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' |
# Filter names matching --env
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
grep -vFf <(readonly) |
grep -Ev '^(BASHOPTS|BASHPID|EUID|GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|PPID|SHELLOPTS|UID|USERNAME|BASH_[A-Z_]+)$'

View file

@ -28,7 +28,7 @@
set _parallel_exit_CODE=0
if ("`alias env_parallel`" == '') then
# Activate alias
alias env_parallel 'setenv PARALLEL "\!*"; source `which env_parallel.csh`'
alias env_parallel '(setenv PARALLEL "\!*"; source `which env_parallel.csh`)'
else
# Get the --env variables if set
# --env _ should be ignored
@ -71,7 +71,7 @@ else
rm $_tMpscRIpt
# Get the scalar and array variable names
set _vARnAmES=(`set | awk -e '{print $1}' |grep -vE '^(#|_|killring|prompt2|command)$' | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$`)
set _vARnAmES=(`set | awk -e '{print $1}' |grep -vE '^(#|_|killring|prompt2|command)$' | grep -Ev '^(PARALLEL_TMP)$' | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$`)
# Make a tmpfile for the variable definitions
set _tMpvARfILe=`tempfile`

View file

@ -61,7 +61,7 @@ env_parallel() {
}
_remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV)$' |
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' |
# Filter names matching --env
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
# Vars set by /bin/sh

View file

@ -94,6 +94,7 @@ function env_parallel
# Replace \001 with \002 because \001 is used by env_parallel
# Convert \n to \001
functions -n | perl -pe 's/,/\n/g' | \
grep -Ev '^(PARALLEL_TMP)$' | \
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ | \
while read d; functions $d; end | \
perl -pe 's/\001/\002/g and not $printed++ and print STDERR
@ -105,6 +106,7 @@ function env_parallel
# Ignore read only vars
# Execute 'set' of the content
eval (set -L | \
grep -Ev '^(PARALLEL_TMP)$' | \
grep -E "^$_grep_REGEXP " | grep -vE "^$_ignore_UNDERSCORE " | \
perl -ne 'chomp;
($name,$val)=split(/ /,$_,2);
@ -119,6 +121,7 @@ function env_parallel
#
begin;
for v in (set -n | \
grep -Ev '^(PARALLEL_TMP)$' | \
grep -E "^$_grep_REGEXP\$" | grep -vE "^$_ignore_UNDERSCORE\$");
# Separate variables with the string: \000
# array_name1 val1\0

View file

@ -51,7 +51,7 @@ env_parallel() {
}
_remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV)$' |
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' |
# Filter names matching --env
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
# Vars set by /bin/sh

View file

@ -49,7 +49,10 @@ env_parallel() {
_remove_bad_NAMES() {
_tmp_READONLY="$(mktemp)"
readonly > "$_tmp_READONLY"
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
# Do not transfer vars and funcs from env_parallel
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' |
# Filter names matching --env
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
grep -vFf $_tmp_READONLY |
grep -Ev '^(PIPESTATUS)'
rm $_tmp_READONLY

View file

@ -61,7 +61,7 @@ env_parallel() {
}
_remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV)$' |
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' |
# Filter names matching --env
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
# Vars set by /bin/sh

View file

@ -28,7 +28,7 @@
set _parallel_exit_CODE=0
if ("`alias env_parallel`" == '') then
# Activate alias
alias env_parallel 'setenv PARALLEL "\!*"; source `which env_parallel.tcsh`'
alias env_parallel '(setenv PARALLEL "\!*"; source `which env_parallel.tcsh`)'
else
# Get the --env variables if set
# --env _ should be ignored
@ -71,7 +71,7 @@ else
rm $_tMpscRIpt
# Get the scalar and array variable names
set _vARnAmES=(`set | awk -e '{print $1}' |grep -vE '^(#|_|killring|prompt2|command)$' | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$`)
set _vARnAmES=(`set | awk -e '{print $1}' |grep -vE '^(#|_|killring|prompt2|command)$' | grep -Ev '^(PARALLEL_TMP)$' | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$`)
# Make a tmpfile for the variable definitions
set _tMpvARfILe=`tempfile`

View file

@ -48,7 +48,8 @@ env_parallel() {
}
_remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV)$' |
grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' |
# Filter names matching --env
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
grep -v '=' |
grep -Ev '^([-?#!$*@_0]|zsh_eval_context|ZSH_EVAL_CONTEXT|LINENO|IFS|commands|functions|options|aliases|EUID|EGID|UID|GID)$' |

View file

@ -6788,8 +6788,20 @@ sub empty_input_wrapper {
}
});
::debug("run",'Empty wrap: perl -e '.::shell_quote_scalar($script)."\n");
return 'perl -e '.::shell_quote_scalar($script)." ".
$Global::shell." -c ".::shell_quote_scalar($command);
if($Global::cshell
and
length $command > 499) {
# csh does not like words longer than 1000 (499 quoted)
# $command = "perl -e '".base64_zip_eval()."' ".
# join" ",string_zip_base64(
# 'exec "'.::perl_quote_scalar($command).'"');
return 'perl -e '.::shell_quote_scalar($script)." ".
base64_wrap("exec \"$Global::shell\",'-c',\"".
::perl_quote_scalar($command).'"');
} else {
return 'perl -e '.::shell_quote_scalar($script)." ".
$Global::shell." -c ".::shell_quote_scalar($command);
}
}
sub filter_through_compress {

View file

@ -7,11 +7,10 @@
par_testhalt() {
testhalt() {
echo '### testhalt --halt '$1;
# Append "00$_" so we can see the original value
(yes 0 | head -n 10; seq 10) |
stdout parallel -kj4 --halt $1 'sleep {= $_=0.2*($_+1+seq()) =}; exit {}'; echo $?;
stdout parallel -kj4 --halt $1 'sleep {= $_=0.3*($_+1+seq()) =}; exit {}'; echo $?;
(seq 10; yes 0 | head -n 10) |
stdout parallel -kj4 --halt $1 'sleep {= $_=0.2*($_+1+seq()) =}; exit {}'; echo $?;
stdout parallel -kj4 --halt $1 'sleep {= $_=0.3*($_+1+seq()) =}; exit {}'; echo $?;
};
export -f testhalt;

View file

@ -3,18 +3,15 @@
# /tmp/parallel-local-ssh2 will by default be owned by me and should be writable by *@localhost
chmod 777 "$TMPDIR" 2>/dev/null
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | stdout parallel -vj300% --retries 3 -k --joblog /tmp/jl-`basename $0` -L1
EOF
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
echo -e '1/lo\n1/csh@lo\n1/tcsh@lo\n1/parallel@lo\n' > /tmp/parallel.bug43518;
parallel --delay 0.1 -N0 echo 1/: '>>' /tmp/parallel.bug43518 ::: {1..100} &
seq 30 | stdout /usr/bin/time -f %e parallel --slf /tmp/parallel.bug43518 'sleep {=$_=$_%3?0:10=}.{%}' |
perl -ne '$_ > 25 and print "OK\n"';
echo -e '1/lo\n1/csh@lo\n1/tcsh@lo\n1/parallel@lo\n' > /tmp/parallel.bug43518
parallel --delay 0.1 -N0 echo 1/: '>>' /tmp/parallel.bug43518 ::: {1..100} &
seq 30 |
stdout /usr/bin/time -f %e parallel --slf /tmp/parallel.bug43518 'sleep {=$_=$_%3?0:10=}.{%}' |
perl -ne '$_ > 25 and print "OK\n"'
rm /tmp/parallel.bug43518
}
@ -33,39 +30,41 @@ par_wd_no_such_dir() {
echo '### --wd no-such-dir - bash'
stdout parallel --wd /no-such-dir -S parallel@localhost echo ::: "ERROR IF PRINTED"
echo Exit code $?
}
}
par_csh_newline_var() {
echo '### bug #42725: csh with \n in variables'
not_csh() { echo This is not csh/tcsh; };
export -f not_csh;
parallel --env not_csh -S csh@lo not_csh ::: 1;
parallel --env not_csh -S tcsh@lo not_csh ::: 1;
not_csh() { echo This is not csh/tcsh; }
export -f not_csh
parallel --env not_csh -S csh@lo not_csh ::: 1
parallel --env not_csh -S tcsh@lo not_csh ::: 1
parallel --env not_csh -S parallel@lo not_csh ::: 1
}
par_pipepart_remote() {
echo '### bug #42999: --pipepart with remote does not work'
seq 100 > /tmp/bug42999; chmod 600 /tmp/bug42999;
parallel --sshdelay 0.3 --pipepart --block 31 -a /tmp/bug42999 -k -S parallel@lo wc;
parallel --sshdelay 0.2 --pipepart --block 31 -a /tmp/bug42999 -k --fifo -S parallel@lo wc | perl -pe 's:(/tmp\S+par)\S+:${1}XXXXX:' ;
parallel --sshdelay 0.1 --pipepart --block 31 -a /tmp/bug42999 -k --cat -S parallel@lo wc | perl -pe 's:(/tmp\S+par)\S+:${1}XXXXX:' ;
seq 100 > /tmp/bug42999; chmod 600 /tmp/bug42999
parallel --sshdelay 0.3 --pipepart --block 31 -a /tmp/bug42999 -k -S parallel@lo wc
parallel --sshdelay 0.2 --pipepart --block 31 -a /tmp/bug42999 -k --fifo -S parallel@lo wc |
perl -pe 's:(/tmp\S+par)\S+:${1}XXXXX:'
parallel --sshdelay 0.1 --pipepart --block 31 -a /tmp/bug42999 -k --cat -S parallel@lo wc |
perl -pe 's:(/tmp\S+par)\S+:${1}XXXXX:'
rm /tmp/bug42999
}
par_cat_incorrect_exit_csh() {
echo '### --cat gives incorrect exit value in csh'
echo false | parallel --pipe --cat -Scsh@lo 'cat {}; false' ; echo $?;
echo false | parallel --pipe --cat -Stcsh@lo 'cat {}; false' ; echo $?;
echo true | parallel --pipe --cat -Scsh@lo 'cat {}; true' ; echo $?;
echo true | parallel --pipe --cat -Stcsh@lo 'cat {}; true' ; echo $?;
echo false | parallel --pipe --cat -Scsh@lo 'cat {}; false' ; echo $?
echo false | parallel --pipe --cat -Stcsh@lo 'cat {}; false' ; echo $?
echo true | parallel --pipe --cat -Scsh@lo 'cat {}; true' ; echo $?
echo true | parallel --pipe --cat -Stcsh@lo 'cat {}; true' ; echo $?
}
par_cat_fifo_exit() {
echo '### --cat and --fifo exit value in bash'
echo true | parallel --pipe --fifo -Slo 'cat {}; true' ; echo $?;
echo false | parallel --pipe --fifo -Slo 'cat {}; false' ; echo $?;
echo true | parallel --pipe --fifo -Slo 'cat {}; true' ; echo $?
echo false | parallel --pipe --fifo -Slo 'cat {}; false' ; echo $?
}
par_env_parallel_fifo() {
@ -74,8 +73,10 @@ par_env_parallel_fifo() {
myfunc() {
echo transferred non-exported func;
}
echo | env_parallel --pipe --tmpdir /tmp -S lo --fifo 'cat {};myfunc'
echo | env_parallel --pipe --tmpdir /tmp -S lo --cat 'cat {};myfunc'
echo data from stdin |
env_parallel --pipe -S lo --fifo 'cat {};myfunc'
echo data from stdin |
env_parallel --pipe -S lo --cat 'cat {};myfunc'
}
export -f $(compgen -A function | grep par_)

View file

@ -858,6 +858,82 @@ _EOF
ssh tcsh@lo "$myscript" 2>&1 | sort
}
par_bash_env_parallel_fifo() {
myscript=$(cat <<'_EOF'
echo 'bug #50435: Remote fifo broke in 20150522'
# Due to $PARALLEL_TMP being transferred
OK=OK
echo data from stdin | env_parallel --pipe -S lo --fifo 'cat {} && echo $OK'
echo data from stdin | env_parallel --pipe -S lo --cat 'cat {} && echo $OK'
_EOF
)
# Order is often different. Dunno why. So sort
ssh bash@lo "$myscript" 2>&1 | sort
}
par_zsh_env_parallel_fifo() {
myscript=$(cat <<'_EOF'
echo 'bug #50435: Remote fifo broke in 20150522'
# Due to $PARALLEL_TMP being transferred
OK=OK
echo data from stdin | env_parallel --pipe -S lo --fifo 'cat {} && echo $OK'
echo data from stdin | env_parallel --pipe -S lo --cat 'cat {} && echo $OK'
_EOF
)
# Order is often different. Dunno why. So sort
ssh zsh@lo "$myscript" 2>&1 | sort
}
par_ksh_env_parallel_fifo() {
myscript=$(cat <<'_EOF'
. `which env_parallel.ksh`;
echo 'bug #50435: Remote fifo broke in 20150522'
# Due to $PARALLEL_TMP being transferred
OK=OK
echo data from stdin | env_parallel --pipe -S lo --fifo 'cat {} && echo $OK'
echo data from stdin | env_parallel --pipe -S lo --cat 'cat {} && echo $OK'
_EOF
)
# Order is often different. Dunno why. So sort
ssh ksh@lo "$myscript" 2>&1 | sort
}
par_fish_env_parallel_fifo() {
myscript=$(cat <<'_EOF'
echo 'bug #50435: Remote fifo broke in 20150522'
# Due to $PARALLEL_TMP being transferred
set OK OK
echo data from stdin | env_parallel --pipe -S lo --fifo 'cat {}; and echo $OK'
echo data from stdin | env_parallel --pipe -S lo --cat 'cat {}; and echo $OK'
_EOF
)
ssh fish@lo "$myscript"
}
par_csh_env_parallel_fifo() {
myscript=$(cat <<'_EOF'
echo 'bug #50435: Remote fifo broke in 20150522'
# Due to $PARALLEL_TMP being transferred
set OK=OK
echo data from stdin | env_parallel --pipe -S lo --fifo 'cat {} && echo $OK'
echo data from stdin | env_parallel --pipe -S lo --cat 'cat {} && echo $OK'
_EOF
)
ssh csh@lo "$myscript"
}
par_tcsh_env_parallel_fifo() {
myscript=$(cat <<'_EOF'
echo 'bug #50435: Remote fifo broke in 20150522'
# Due to $PARALLEL_TMP being transferred
set OK=OK
echo data from stdin | env_parallel --pipe -S lo --fifo 'cat {} && echo $OK'
echo data from stdin | env_parallel --pipe -S lo --cat 'cat {} && echo $OK'
_EOF
)
# Order is often different. Dunno why. So sort
ssh tcsh@lo "$myscript" 2>&1 | sort
}
export -f $(compgen -A function | grep par_)
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'

View file

@ -7,7 +7,7 @@ par_memfree Free mem: 1k
par_memfree parallel: SIGTERM received. No new jobs will be started.
par_memfree parallel: Waiting for these 0 jobs to finish. Send SIGTERM again to stop now.
par_memory_leak ### Test for memory leaks
par_memory_leak Of 30 runs of 1 job at least one should be bigger than a 3000 job run
par_memory_leak Of 100 runs of 1 job at least one should be bigger than a 3000 job run
par_memory_leak Good: No memleak detected.
par_race_condition1 ### Test race condition on 8 CPU (my laptop)
par_race_condition1 1
@ -22,473 +22,475 @@ par_race_condition1 9
par_race_condition1 10
par_testhalt ### testhalt --halt now,fail=0
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 1
par_testhalt sleep 3.9; exit 1
par_testhalt 0
par_testhalt parallel: This job failed:
par_testhalt sleep 0.6; exit 1
par_testhalt sleep 0.9; exit 1
par_testhalt 0
par_testhalt ### testhalt --halt now,fail=1
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 1
par_testhalt sleep 3.9; exit 1
par_testhalt 1
par_testhalt parallel: This job failed:
par_testhalt sleep 0.6; exit 1
par_testhalt sleep 0.9; exit 1
par_testhalt 1
par_testhalt ### testhalt --halt now,fail=2
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 1
par_testhalt sleep 3.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 2
par_testhalt sleep 4.5; exit 2
par_testhalt 2
par_testhalt parallel: This job failed:
par_testhalt sleep 0.6; exit 1
par_testhalt sleep 0.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 1; exit 2
par_testhalt sleep 1.5; exit 2
par_testhalt 2
par_testhalt ### testhalt --halt now,fail=30%
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 1
par_testhalt sleep 3.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 2
par_testhalt sleep 4.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 3.4; exit 3
par_testhalt sleep 5.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 3.8; exit 4
par_testhalt sleep 5.7; exit 4
par_testhalt parallel: This job failed:
par_testhalt sleep 4.2; exit 5
par_testhalt sleep 6.3; exit 5
par_testhalt parallel: This job failed:
par_testhalt sleep 4.6; exit 6
par_testhalt sleep 6.9; exit 6
par_testhalt 30
par_testhalt parallel: This job failed:
par_testhalt sleep 0.6; exit 1
par_testhalt sleep 0.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 1; exit 2
par_testhalt sleep 1.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 1.4; exit 3
par_testhalt sleep 2.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 1.8; exit 4
par_testhalt sleep 2.7; exit 4
par_testhalt parallel: This job failed:
par_testhalt sleep 2.2; exit 5
par_testhalt sleep 3.3; exit 5
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 6
par_testhalt sleep 3.9; exit 6
par_testhalt 30
par_testhalt ### testhalt --halt now,fail=70%
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 1
par_testhalt sleep 3.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 2
par_testhalt sleep 4.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 3.4; exit 3
par_testhalt sleep 5.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 3.8; exit 4
par_testhalt sleep 5.7; exit 4
par_testhalt parallel: This job failed:
par_testhalt sleep 4.2; exit 5
par_testhalt sleep 6.3; exit 5
par_testhalt parallel: This job failed:
par_testhalt sleep 4.6; exit 6
par_testhalt sleep 6.9; exit 6
par_testhalt parallel: This job failed:
par_testhalt sleep 5; exit 7
par_testhalt sleep 7.5; exit 7
par_testhalt parallel: This job failed:
par_testhalt sleep 5.4; exit 8
par_testhalt sleep 8.1; exit 8
par_testhalt parallel: This job failed:
par_testhalt sleep 5.8; exit 9
par_testhalt sleep 8.7; exit 9
par_testhalt parallel: This job failed:
par_testhalt sleep 6.2; exit 10
par_testhalt sleep 9.3; exit 10
par_testhalt 50
par_testhalt parallel: This job failed:
par_testhalt sleep 0.6; exit 1
par_testhalt sleep 0.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 1; exit 2
par_testhalt sleep 1.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 1.4; exit 3
par_testhalt sleep 2.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 1.8; exit 4
par_testhalt sleep 2.7; exit 4
par_testhalt parallel: This job failed:
par_testhalt sleep 2.2; exit 5
par_testhalt sleep 3.3; exit 5
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 6
par_testhalt sleep 3.9; exit 6
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 7
par_testhalt sleep 4.5; exit 7
par_testhalt parallel: This job failed:
par_testhalt sleep 3.4; exit 8
par_testhalt sleep 5.1; exit 8
par_testhalt parallel: This job failed:
par_testhalt sleep 3.8; exit 9
par_testhalt sleep 5.7; exit 9
par_testhalt parallel: This job failed:
par_testhalt sleep 4.2; exit 10
par_testhalt sleep 6.3; exit 10
par_testhalt 50
par_testhalt ### testhalt --halt now,success=0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.4; exit 0
par_testhalt sleep 0.6; exit 0
par_testhalt 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0
par_testhalt sleep 3.6; exit 0
par_testhalt 0
par_testhalt ### testhalt --halt now,success=1
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.4; exit 0
par_testhalt sleep 0.6; exit 0
par_testhalt 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0
par_testhalt sleep 3.6; exit 0
par_testhalt 0
par_testhalt ### testhalt --halt now,success=2
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.9; exit 0
par_testhalt 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0
par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0
par_testhalt sleep 3.9; exit 0
par_testhalt 0
par_testhalt ### testhalt --halt now,success=30%
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1; exit 0
par_testhalt sleep 0.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.4; exit 0
par_testhalt sleep 1.5; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.1; exit 0
par_testhalt 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0
par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0
par_testhalt sleep 3.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0
par_testhalt sleep 4.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3; exit 0
par_testhalt sleep 4.5; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.2; exit 0
par_testhalt sleep 4.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.4; exit 0
par_testhalt sleep 5.1; exit 0
par_testhalt 0
par_testhalt ### testhalt --halt now,success=70%
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1; exit 0
par_testhalt sleep 0.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.6; exit 0
par_testhalt sleep 1.5; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.2; exit 0
par_testhalt 50
par_testhalt sleep 2.1; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0
par_testhalt sleep 2.7; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.4; exit 0
par_testhalt sleep 3.3; exit 0
par_testhalt 50
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4; exit 0
par_testhalt sleep 3.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.5; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 5.1; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 5.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 5.7; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 6.3; exit 0
par_testhalt 50
par_testhalt ### testhalt --halt soon,fail=0
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 1
par_testhalt sleep 3.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 2
par_testhalt sleep 4.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 3.4; exit 3
par_testhalt sleep 5.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 3.8; exit 4
par_testhalt sleep 5.7; exit 4
par_testhalt 0
par_testhalt parallel: This job failed:
par_testhalt sleep 0.6; exit 1
par_testhalt sleep 0.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 1; exit 2
par_testhalt sleep 1.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 1.4; exit 3
par_testhalt sleep 2.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 1.8; exit 4
par_testhalt sleep 2.7; exit 4
par_testhalt 0
par_testhalt ### testhalt --halt soon,fail=1
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 1
par_testhalt sleep 3.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 2
par_testhalt sleep 4.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 3.4; exit 3
par_testhalt sleep 5.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 3.8; exit 4
par_testhalt sleep 5.7; exit 4
par_testhalt 1
par_testhalt parallel: This job failed:
par_testhalt sleep 0.6; exit 1
par_testhalt sleep 0.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 1; exit 2
par_testhalt sleep 1.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 1.4; exit 3
par_testhalt sleep 2.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 1.8; exit 4
par_testhalt sleep 2.7; exit 4
par_testhalt 1
par_testhalt ### testhalt --halt soon,fail=2
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 1
par_testhalt sleep 3.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 2
par_testhalt sleep 4.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 3.4; exit 3
par_testhalt sleep 5.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 3.8; exit 4
par_testhalt sleep 5.7; exit 4
par_testhalt parallel: This job failed:
par_testhalt sleep 4.2; exit 5
par_testhalt sleep 6.3; exit 5
par_testhalt 2
par_testhalt parallel: This job failed:
par_testhalt sleep 0.6; exit 1
par_testhalt sleep 0.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 1; exit 2
par_testhalt sleep 1.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 1.4; exit 3
par_testhalt sleep 2.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 1.8; exit 4
par_testhalt sleep 2.7; exit 4
par_testhalt parallel: This job failed:
par_testhalt sleep 2.2; exit 5
par_testhalt sleep 3.3; exit 5
par_testhalt 2
par_testhalt ### testhalt --halt soon,fail=30%
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 1
par_testhalt sleep 3.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 2
par_testhalt sleep 4.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 3.4; exit 3
par_testhalt sleep 5.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 3.8; exit 4
par_testhalt sleep 5.7; exit 4
par_testhalt parallel: This job failed:
par_testhalt sleep 4.2; exit 5
par_testhalt sleep 6.3; exit 5
par_testhalt parallel: This job failed:
par_testhalt sleep 4.6; exit 6
par_testhalt sleep 6.9; exit 6
par_testhalt parallel: This job failed:
par_testhalt sleep 5; exit 7
par_testhalt sleep 7.5; exit 7
par_testhalt parallel: This job failed:
par_testhalt sleep 5.4; exit 8
par_testhalt sleep 8.1; exit 8
par_testhalt parallel: This job failed:
par_testhalt sleep 5.8; exit 9
par_testhalt sleep 8.7; exit 9
par_testhalt 30
par_testhalt parallel: This job failed:
par_testhalt sleep 0.6; exit 1
par_testhalt sleep 0.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 1; exit 2
par_testhalt sleep 1.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 1.4; exit 3
par_testhalt sleep 2.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 1.8; exit 4
par_testhalt sleep 2.7; exit 4
par_testhalt parallel: This job failed:
par_testhalt sleep 2.2; exit 5
par_testhalt sleep 3.3; exit 5
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 6
par_testhalt sleep 3.9; exit 6
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 7
par_testhalt sleep 4.5; exit 7
par_testhalt parallel: This job failed:
par_testhalt sleep 3.4; exit 8
par_testhalt sleep 5.1; exit 8
par_testhalt parallel: This job failed:
par_testhalt sleep 3.8; exit 9
par_testhalt sleep 5.7; exit 9
par_testhalt 30
par_testhalt ### testhalt --halt soon,fail=70%
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 1
par_testhalt sleep 3.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 2
par_testhalt sleep 4.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 3.4; exit 3
par_testhalt sleep 5.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 3.8; exit 4
par_testhalt sleep 5.7; exit 4
par_testhalt parallel: This job failed:
par_testhalt sleep 4.2; exit 5
par_testhalt sleep 6.3; exit 5
par_testhalt parallel: This job failed:
par_testhalt sleep 4.6; exit 6
par_testhalt sleep 6.9; exit 6
par_testhalt parallel: This job failed:
par_testhalt sleep 5; exit 7
par_testhalt sleep 7.5; exit 7
par_testhalt parallel: This job failed:
par_testhalt sleep 5.4; exit 8
par_testhalt sleep 8.1; exit 8
par_testhalt parallel: This job failed:
par_testhalt sleep 5.8; exit 9
par_testhalt sleep 8.7; exit 9
par_testhalt parallel: This job failed:
par_testhalt sleep 6.2; exit 10
par_testhalt sleep 9.3; exit 10
par_testhalt 50
par_testhalt parallel: This job failed:
par_testhalt sleep 0.6; exit 1
par_testhalt sleep 0.9; exit 1
par_testhalt parallel: This job failed:
par_testhalt sleep 1; exit 2
par_testhalt sleep 1.5; exit 2
par_testhalt parallel: This job failed:
par_testhalt sleep 1.4; exit 3
par_testhalt sleep 2.1; exit 3
par_testhalt parallel: This job failed:
par_testhalt sleep 1.8; exit 4
par_testhalt sleep 2.7; exit 4
par_testhalt parallel: This job failed:
par_testhalt sleep 2.2; exit 5
par_testhalt sleep 3.3; exit 5
par_testhalt parallel: This job failed:
par_testhalt sleep 2.6; exit 6
par_testhalt sleep 3.9; exit 6
par_testhalt parallel: This job failed:
par_testhalt sleep 3; exit 7
par_testhalt sleep 4.5; exit 7
par_testhalt parallel: This job failed:
par_testhalt sleep 3.4; exit 8
par_testhalt sleep 5.1; exit 8
par_testhalt parallel: This job failed:
par_testhalt sleep 3.8; exit 9
par_testhalt sleep 5.7; exit 9
par_testhalt parallel: This job failed:
par_testhalt sleep 4.2; exit 10
par_testhalt sleep 6.3; exit 10
par_testhalt 50
par_testhalt ### testhalt --halt soon,success=0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.8; exit 0
par_testhalt sleep 0.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1; exit 0
par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.5; exit 0
par_testhalt 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0
par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0
par_testhalt sleep 3.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0
par_testhalt sleep 4.2; exit 0
par_testhalt 0
par_testhalt ### testhalt --halt soon,success=1
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.8; exit 0
par_testhalt sleep 0.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1; exit 0
par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.5; exit 0
par_testhalt 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0
par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0
par_testhalt sleep 3.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0
par_testhalt sleep 4.2; exit 0
par_testhalt 0
par_testhalt ### testhalt --halt soon,success=2
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1; exit 0
par_testhalt sleep 0.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.5; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.8; exit 0
par_testhalt 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0
par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0
par_testhalt sleep 3.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0
par_testhalt sleep 4.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3; exit 0
par_testhalt sleep 4.5; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.8; exit 0
par_testhalt 0
par_testhalt ### testhalt --halt soon,success=30%
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1; exit 0
par_testhalt sleep 0.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.6; exit 0
par_testhalt sleep 1.5; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2; exit 0
par_testhalt 0
par_testhalt sleep 2.1; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0
par_testhalt sleep 2.7; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.4; exit 0
par_testhalt 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.8; exit 0
par_testhalt sleep 3.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4; exit 0
par_testhalt sleep 4.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.5; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 5.1; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 5.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 5.7; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 6; exit 0
par_testhalt 0
par_testhalt ### testhalt --halt soon,success=70%
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1; exit 0
par_testhalt sleep 0.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.6; exit 0
par_testhalt sleep 1.5; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.2; exit 0
par_testhalt 50
par_testhalt sleep 2.1; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0
par_testhalt sleep 2.7; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.4; exit 0
par_testhalt sleep 3.3; exit 0
par_testhalt 50
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4; exit 0
par_testhalt sleep 3.9; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.5; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.8; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 5.1; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 5.4; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 5.7; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 6.3; exit 0
par_testhalt 50
par_tmp_full ### Test --tmpdir running full. bug #40733 was caused by this
par_tmp_full parallel: Error: Output is incomplete. Cannot append to buffer file in /tmp/shm/parallel. Is the disk full?

View file

@ -17,10 +17,10 @@ par_csh_newline_var CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Uns
par_csh_newline_var CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset not_csh
par_csh_newline_var This is not csh/tcsh
par_env_parallel_fifo ### bug #50386: --fifo does not export function, --cat does
par_env_parallel_fifo data from stdin
par_env_parallel_fifo transferred non-exported func
par_env_parallel_fifo cat: /tmp/parallel-local-ssh2-tmpdir/parZEeqC: No such file or directory
par_env_parallel_fifo data from stdin
par_env_parallel_fifo transferred non-exported func
par_env_parallel_fifo cat: /tmp/parallel-local-ssh2-tmpdir/parZEeqC: No such file or directory
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

View file

@ -1,6 +1,11 @@
### test --env _
Both test that variables are copied,
but also that they are NOT copied, if ignored
par_bash_env_parallel_fifo OK
par_bash_env_parallel_fifo OK
par_bash_env_parallel_fifo bug #50435: Remote fifo broke in 20150522
par_bash_env_parallel_fifo data from stdin
par_bash_env_parallel_fifo data from stdin
par_bash_funky
par_bash_funky
par_bash_funky
@ -77,6 +82,11 @@ par_bash_underscore /bin/bash: line 48: myfunc: command not found
par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^
par_bash_underscore /bin/bash: line 48: myfunc: command not found
par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^
par_csh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522
par_csh_env_parallel_fifo data from stdin
par_csh_env_parallel_fifo OK
par_csh_env_parallel_fifo data from stdin
par_csh_env_parallel_fifo OK
par_csh_funky 3 arg alias_works
par_csh_funky myvar works
par_csh_funky space special chars problem
@ -168,6 +178,14 @@ par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
par_csh_underscore myecho: Command not found.
par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
par_csh_underscore Connection to lo closed.
par_fish_env_parallel_fifo bug #50435: Remote fifo broke in 20150522
par_fish_env_parallel_fifo data from stdin
par_fish_env_parallel_fifo OK
par_fish_env_parallel_fifo data from stdin
par_fish_env_parallel_fifo OK
par_fish_env_parallel_fifo $? is not the exit status. In fish, please use $status.
par_fish_env_parallel_fifo fish: cat $PARALLEL_TMP; and echo $OK;perl -e '$bash=shift;$csh=shift;for(@ARGV){unlink;rmdir;}if($bash=~s/h//){exit$bash;}exit$csh;' "$?h" "$status" $PARALLEL_TMP
par_fish_env_parallel_fifo ^
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
@ -261,6 +279,11 @@ par_fish_underscore ^
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc
par_fish_underscore ^
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc
par_ksh_env_parallel_fifo OK
par_ksh_env_parallel_fifo OK
par_ksh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522
par_ksh_env_parallel_fifo data from stdin
par_ksh_env_parallel_fifo data from stdin
par_ksh_funky
par_ksh_funky \\\\\\\\
par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7F>ƒ„…†‡ˆ‰ŠŒ<E280B9>Ž<EFBFBD><C5BD>“”•˜™šœ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky
@ -331,6 +354,11 @@ par_ksh_underscore /usr/bin/ksh: line 2: myfunc: not found
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
par_ksh_underscore /usr/bin/ksh: line 2: myfunc: not found
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
par_tcsh_env_parallel_fifo OK
par_tcsh_env_parallel_fifo OK
par_tcsh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522
par_tcsh_env_parallel_fifo data from stdin
par_tcsh_env_parallel_fifo data from stdin
par_tcsh_funky
par_tcsh_funky
par_tcsh_funky
@ -428,6 +456,11 @@ par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
par_tcsh_underscore myecho: Command not found.
par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
par_tcsh_underscore Connection to lo closed.
par_zsh_env_parallel_fifo OK
par_zsh_env_parallel_fifo OK
par_zsh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522
par_zsh_env_parallel_fifo data from stdin
par_zsh_env_parallel_fifo data from stdin
par_zsh_funky
par_zsh_funky \\\\\\\\
par_zsh_funky