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() { _remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel # 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 # Filter names matching --env
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
# Vars set by /bin/sh # Vars set by /bin/sh

View file

@ -48,7 +48,8 @@ env_parallel() {
} }
_remove_bad_NAMES() { _remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel # 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 -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
grep -vFf <(readonly) | grep -vFf <(readonly) |
grep -Ev '^(BASHOPTS|BASHPID|EUID|GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|PPID|SHELLOPTS|UID|USERNAME|BASH_[A-Z_]+)$' 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 set _parallel_exit_CODE=0
if ("`alias env_parallel`" == '') then if ("`alias env_parallel`" == '') then
# Activate alias # Activate alias
alias env_parallel 'setenv PARALLEL "\!*"; source `which env_parallel.csh`' alias env_parallel '(setenv PARALLEL "\!*"; source `which env_parallel.csh`)'
else else
# Get the --env variables if set # Get the --env variables if set
# --env _ should be ignored # --env _ should be ignored
@ -71,7 +71,7 @@ else
rm $_tMpscRIpt rm $_tMpscRIpt
# Get the scalar and array variable names # 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 # Make a tmpfile for the variable definitions
set _tMpvARfILe=`tempfile` set _tMpvARfILe=`tempfile`

View file

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

View file

@ -51,7 +51,7 @@ env_parallel() {
} }
_remove_bad_NAMES() { _remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel # 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 # Filter names matching --env
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
# Vars set by /bin/sh # Vars set by /bin/sh

View file

@ -49,6 +49,9 @@ env_parallel() {
_remove_bad_NAMES() { _remove_bad_NAMES() {
_tmp_READONLY="$(mktemp)" _tmp_READONLY="$(mktemp)"
readonly > "$_tmp_READONLY" readonly > "$_tmp_READONLY"
# 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 -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
grep -vFf $_tmp_READONLY | grep -vFf $_tmp_READONLY |
grep -Ev '^(PIPESTATUS)' grep -Ev '^(PIPESTATUS)'

View file

@ -61,7 +61,7 @@ env_parallel() {
} }
_remove_bad_NAMES() { _remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel # 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 # Filter names matching --env
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
# Vars set by /bin/sh # Vars set by /bin/sh

View file

@ -28,7 +28,7 @@
set _parallel_exit_CODE=0 set _parallel_exit_CODE=0
if ("`alias env_parallel`" == '') then if ("`alias env_parallel`" == '') then
# Activate alias # Activate alias
alias env_parallel 'setenv PARALLEL "\!*"; source `which env_parallel.tcsh`' alias env_parallel '(setenv PARALLEL "\!*"; source `which env_parallel.tcsh`)'
else else
# Get the --env variables if set # Get the --env variables if set
# --env _ should be ignored # --env _ should be ignored
@ -71,7 +71,7 @@ else
rm $_tMpscRIpt rm $_tMpscRIpt
# Get the scalar and array variable names # 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 # Make a tmpfile for the variable definitions
set _tMpvARfILe=`tempfile` set _tMpvARfILe=`tempfile`

View file

@ -48,7 +48,8 @@ env_parallel() {
} }
_remove_bad_NAMES() { _remove_bad_NAMES() {
# Do not transfer vars and funcs from env_parallel # 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 -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
grep -v '=' | grep -v '=' |
grep -Ev '^([-?#!$*@_0]|zsh_eval_context|ZSH_EVAL_CONTEXT|LINENO|IFS|commands|functions|options|aliases|EUID|EGID|UID|GID)$' | 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"); ::debug("run",'Empty wrap: perl -e '.::shell_quote_scalar($script)."\n");
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)." ". return 'perl -e '.::shell_quote_scalar($script)." ".
$Global::shell." -c ".::shell_quote_scalar($command); $Global::shell." -c ".::shell_quote_scalar($command);
}
} }
sub filter_through_compress { sub filter_through_compress {

View file

@ -7,11 +7,10 @@
par_testhalt() { par_testhalt() {
testhalt() { testhalt() {
echo '### testhalt --halt '$1; echo '### testhalt --halt '$1;
# Append "00$_" so we can see the original value
(yes 0 | head -n 10; seq 10) | (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) | (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; 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 # /tmp/parallel-local-ssh2 will by default be owned by me and should be writable by *@localhost
chmod 777 "$TMPDIR" 2>/dev/null 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() { par_obey_servers_capacity_slf_reload() {
echo "### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded" 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 # Pre-20141106 Would reset the number of jobs run on all sshlogin if --slf changed
# Thus must take at least 25 sec to run # 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; 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} & 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=}.{%}' | seq 30 |
perl -ne '$_ > 25 and print "OK\n"'; 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 rm /tmp/parallel.bug43518
} }
@ -37,35 +34,37 @@ par_wd_no_such_dir() {
par_csh_newline_var() { par_csh_newline_var() {
echo '### bug #42725: csh with \n in variables' echo '### bug #42725: csh with \n in variables'
not_csh() { echo This is not csh/tcsh; }; not_csh() { echo This is not csh/tcsh; }
export -f not_csh; export -f not_csh
parallel --env not_csh -S csh@lo not_csh ::: 1; 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 tcsh@lo not_csh ::: 1
parallel --env not_csh -S parallel@lo not_csh ::: 1 parallel --env not_csh -S parallel@lo not_csh ::: 1
} }
par_pipepart_remote() { par_pipepart_remote() {
echo '### bug #42999: --pipepart with remote does not work' echo '### bug #42999: --pipepart with remote does not work'
seq 100 > /tmp/bug42999; chmod 600 /tmp/bug42999; 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.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.2 --pipepart --block 31 -a /tmp/bug42999 -k --fifo -S parallel@lo wc |
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:' ; 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 rm /tmp/bug42999
} }
par_cat_incorrect_exit_csh() { par_cat_incorrect_exit_csh() {
echo '### --cat gives incorrect exit value in csh' echo '### --cat gives incorrect exit value in csh'
echo false | parallel --pipe --cat -Scsh@lo 'cat {}; false' ; echo $?; echo false | parallel --pipe --cat -Scsh@lo 'cat {}; false' ; echo $?
echo false | parallel --pipe --cat -Stcsh@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 -Scsh@lo 'cat {}; true' ; echo $?
echo true | parallel --pipe --cat -Stcsh@lo 'cat {}; true' ; echo $?; echo true | parallel --pipe --cat -Stcsh@lo 'cat {}; true' ; echo $?
} }
par_cat_fifo_exit() { par_cat_fifo_exit() {
echo '### --cat and --fifo exit value in bash' echo '### --cat and --fifo exit value in bash'
echo true | parallel --pipe --fifo -Slo 'cat {}; true' ; echo $?; echo true | parallel --pipe --fifo -Slo 'cat {}; true' ; echo $?
echo false | parallel --pipe --fifo -Slo 'cat {}; false' ; echo $?; echo false | parallel --pipe --fifo -Slo 'cat {}; false' ; echo $?
} }
par_env_parallel_fifo() { par_env_parallel_fifo() {
@ -74,8 +73,10 @@ par_env_parallel_fifo() {
myfunc() { myfunc() {
echo transferred non-exported func; echo transferred non-exported func;
} }
echo | env_parallel --pipe --tmpdir /tmp -S lo --fifo 'cat {};myfunc' echo data from stdin |
echo | env_parallel --pipe --tmpdir /tmp -S lo --cat 'cat {};myfunc' 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_) export -f $(compgen -A function | grep par_)

View file

@ -858,6 +858,82 @@ _EOF
ssh tcsh@lo "$myscript" 2>&1 | sort 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_) export -f $(compgen -A function | grep par_)
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1' #compgen -A function | grep par_ | sort | 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: 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_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 ### 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_memory_leak Good: No memleak detected.
par_race_condition1 ### Test race condition on 8 CPU (my laptop) par_race_condition1 ### Test race condition on 8 CPU (my laptop)
par_race_condition1 1 par_race_condition1 1
@ -22,473 +22,475 @@ par_race_condition1 9
par_race_condition1 10 par_race_condition1 10
par_testhalt ### testhalt --halt now,fail=0 par_testhalt ### testhalt --halt now,fail=0
par_testhalt parallel: This job failed: 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 0
par_testhalt parallel: This job failed: 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 0
par_testhalt ### testhalt --halt now,fail=1 par_testhalt ### testhalt --halt now,fail=1
par_testhalt parallel: This job failed: 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 1
par_testhalt parallel: This job failed: 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 1
par_testhalt ### testhalt --halt now,fail=2 par_testhalt ### testhalt --halt now,fail=2
par_testhalt parallel: This job failed: 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 parallel: This job failed:
par_testhalt sleep 3; exit 2 par_testhalt sleep 4.5; exit 2
par_testhalt 2 par_testhalt 2
par_testhalt parallel: This job failed: 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 parallel: This job failed:
par_testhalt sleep 1; exit 2 par_testhalt sleep 1.5; exit 2
par_testhalt 2 par_testhalt 2
par_testhalt ### testhalt --halt now,fail=30% par_testhalt ### testhalt --halt now,fail=30%
par_testhalt parallel: This job failed: 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 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 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 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 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 parallel: This job failed:
par_testhalt sleep 4.6; exit 6 par_testhalt sleep 6.9; exit 6
par_testhalt 30 par_testhalt 30
par_testhalt parallel: This job failed: 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 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 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 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 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 parallel: This job failed:
par_testhalt sleep 2.6; exit 6 par_testhalt sleep 3.9; exit 6
par_testhalt 30 par_testhalt 30
par_testhalt ### testhalt --halt now,fail=70% par_testhalt ### testhalt --halt now,fail=70%
par_testhalt parallel: This job failed: 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 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 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 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 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 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 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 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 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 parallel: This job failed:
par_testhalt sleep 6.2; exit 10 par_testhalt sleep 9.3; exit 10
par_testhalt 50 par_testhalt 50
par_testhalt parallel: This job failed: 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 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 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 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 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 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 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 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 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 parallel: This job failed:
par_testhalt sleep 4.2; exit 10 par_testhalt sleep 6.3; exit 10
par_testhalt 50 par_testhalt 50
par_testhalt ### testhalt --halt now,success=0 par_testhalt ### testhalt --halt now,success=0
par_testhalt parallel: This job succeeded: 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 0
par_testhalt parallel: This job succeeded: 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 0
par_testhalt ### testhalt --halt now,success=1 par_testhalt ### testhalt --halt now,success=1
par_testhalt parallel: This job succeeded: 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 0
par_testhalt parallel: This job succeeded: 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 0
par_testhalt ### testhalt --halt now,success=2 par_testhalt ### testhalt --halt now,success=2
par_testhalt parallel: This job succeeded: 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 sleep 0.6; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 0.9; exit 0
par_testhalt 0 par_testhalt 0
par_testhalt parallel: This job succeeded: 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 parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0 par_testhalt sleep 3.9; exit 0
par_testhalt 0 par_testhalt 0
par_testhalt ### testhalt --halt now,success=30% par_testhalt ### testhalt --halt now,success=30%
par_testhalt parallel: This job succeeded: 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 sleep 0.6; exit 0
par_testhalt parallel: This job succeeded: 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 parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.2; exit 0 par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded: 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 0
par_testhalt parallel: This job succeeded: 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 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 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 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 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 parallel: This job succeeded:
par_testhalt sleep 3.4; exit 0 par_testhalt sleep 5.1; exit 0
par_testhalt 0 par_testhalt 0
par_testhalt ### testhalt --halt now,success=70% par_testhalt ### testhalt --halt now,success=70%
par_testhalt parallel: This job succeeded: 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 sleep 0.6; exit 0
par_testhalt parallel: This job succeeded: 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 parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.2; exit 0 par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded: 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.6; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.8; exit 0 par_testhalt sleep 1.8; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 2; exit 0 par_testhalt sleep 2.1; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.2; exit 0
par_testhalt 50
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0 par_testhalt sleep 2.4; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0 par_testhalt sleep 2.7; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 3; exit 0 par_testhalt sleep 3; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.2; exit 0 par_testhalt sleep 3.3; exit 0
par_testhalt parallel: This job succeeded: par_testhalt 50
par_testhalt sleep 3.4; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.6; exit 0 par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded: 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 parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.2; 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 parallel: This job succeeded:
par_testhalt sleep 6.3; exit 0
par_testhalt 50 par_testhalt 50
par_testhalt ### testhalt --halt soon,fail=0 par_testhalt ### testhalt --halt soon,fail=0
par_testhalt parallel: This job failed: 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 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 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 parallel: This job failed:
par_testhalt sleep 3.8; exit 4 par_testhalt sleep 5.7; exit 4
par_testhalt 0 par_testhalt 0
par_testhalt parallel: This job failed: 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 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 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 parallel: This job failed:
par_testhalt sleep 1.8; exit 4 par_testhalt sleep 2.7; exit 4
par_testhalt 0 par_testhalt 0
par_testhalt ### testhalt --halt soon,fail=1 par_testhalt ### testhalt --halt soon,fail=1
par_testhalt parallel: This job failed: 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 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 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 parallel: This job failed:
par_testhalt sleep 3.8; exit 4 par_testhalt sleep 5.7; exit 4
par_testhalt 1 par_testhalt 1
par_testhalt parallel: This job failed: 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 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 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 parallel: This job failed:
par_testhalt sleep 1.8; exit 4 par_testhalt sleep 2.7; exit 4
par_testhalt 1 par_testhalt 1
par_testhalt ### testhalt --halt soon,fail=2 par_testhalt ### testhalt --halt soon,fail=2
par_testhalt parallel: This job failed: 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 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 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 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 parallel: This job failed:
par_testhalt sleep 4.2; exit 5 par_testhalt sleep 6.3; exit 5
par_testhalt 2 par_testhalt 2
par_testhalt parallel: This job failed: 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 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 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 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 parallel: This job failed:
par_testhalt sleep 2.2; exit 5 par_testhalt sleep 3.3; exit 5
par_testhalt 2 par_testhalt 2
par_testhalt ### testhalt --halt soon,fail=30% par_testhalt ### testhalt --halt soon,fail=30%
par_testhalt parallel: This job failed: 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 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 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 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 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 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 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 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 parallel: This job failed:
par_testhalt sleep 5.8; exit 9 par_testhalt sleep 8.7; exit 9
par_testhalt 30 par_testhalt 30
par_testhalt parallel: This job failed: 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 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 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 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 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 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 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 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 parallel: This job failed:
par_testhalt sleep 3.8; exit 9 par_testhalt sleep 5.7; exit 9
par_testhalt 30 par_testhalt 30
par_testhalt ### testhalt --halt soon,fail=70% par_testhalt ### testhalt --halt soon,fail=70%
par_testhalt parallel: This job failed: 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 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 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 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 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 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 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 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 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 parallel: This job failed:
par_testhalt sleep 6.2; exit 10 par_testhalt sleep 9.3; exit 10
par_testhalt 50 par_testhalt 50
par_testhalt parallel: This job failed: 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 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 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 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 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 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 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 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 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 parallel: This job failed:
par_testhalt sleep 4.2; exit 10 par_testhalt sleep 6.3; exit 10
par_testhalt 50 par_testhalt 50
par_testhalt ### testhalt --halt soon,success=0 par_testhalt ### testhalt --halt soon,success=0
par_testhalt parallel: This job succeeded: 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 sleep 0.6; exit 0
par_testhalt parallel: This job succeeded: 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 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 0
par_testhalt parallel: This job succeeded: 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 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 parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0 par_testhalt sleep 4.2; exit 0
par_testhalt 0 par_testhalt 0
par_testhalt ### testhalt --halt soon,success=1 par_testhalt ### testhalt --halt soon,success=1
par_testhalt parallel: This job succeeded: 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 sleep 0.6; exit 0
par_testhalt parallel: This job succeeded: 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 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 0
par_testhalt parallel: This job succeeded: 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 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 parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0 par_testhalt sleep 4.2; exit 0
par_testhalt 0 par_testhalt 0
par_testhalt ### testhalt --halt soon,success=2 par_testhalt ### testhalt --halt soon,success=2
par_testhalt parallel: This job succeeded: 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 sleep 0.6; exit 0
par_testhalt parallel: This job succeeded: 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 parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.2; exit 0 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 0
par_testhalt parallel: This job succeeded: 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 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 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 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 0
par_testhalt ### testhalt --halt soon,success=30% par_testhalt ### testhalt --halt soon,success=30%
par_testhalt parallel: This job succeeded: 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 sleep 0.6; exit 0
par_testhalt parallel: This job succeeded: 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 parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.2; exit 0 par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded: 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.6; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.8; exit 0 par_testhalt sleep 1.8; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 2; exit 0 par_testhalt sleep 2.1; exit 0
par_testhalt 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0 par_testhalt sleep 2.4; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0 par_testhalt sleep 2.7; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 3; exit 0 par_testhalt sleep 3; exit 0
par_testhalt parallel: This job succeeded: par_testhalt 0
par_testhalt sleep 3.2; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.4; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.6; exit 0 par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded: 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 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 0
par_testhalt ### testhalt --halt soon,success=70% par_testhalt ### testhalt --halt soon,success=70%
par_testhalt parallel: This job succeeded: 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 sleep 0.6; exit 0
par_testhalt parallel: This job succeeded: 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 parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.2; exit 0 par_testhalt sleep 1.2; exit 0
par_testhalt parallel: This job succeeded: 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.6; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 1.8; exit 0 par_testhalt sleep 1.8; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 2; exit 0 par_testhalt sleep 2.1; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.2; exit 0
par_testhalt 50
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.4; exit 0 par_testhalt sleep 2.4; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.6; exit 0 par_testhalt sleep 2.7; exit 0
par_testhalt parallel: This job succeeded:
par_testhalt sleep 2.8; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 3; exit 0 par_testhalt sleep 3; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.2; exit 0 par_testhalt sleep 3.3; exit 0
par_testhalt parallel: This job succeeded: par_testhalt 50
par_testhalt sleep 3.4; exit 0
par_testhalt parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 3.6; exit 0 par_testhalt sleep 3.6; exit 0
par_testhalt parallel: This job succeeded: 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 parallel: This job succeeded: par_testhalt parallel: This job succeeded:
par_testhalt sleep 4.2; 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 parallel: This job succeeded:
par_testhalt sleep 6.3; exit 0
par_testhalt 50 par_testhalt 50
par_tmp_full ### Test --tmpdir running full. bug #40733 was caused by this par_tmp_full ### Test --tmpdir running full. bug #40733 was caused by this
par_tmp_full parallel: Error: Output is incomplete. Cannot append to buffer file in /tmp/shm/parallel. Is the disk full? 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 CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset not_csh
par_csh_newline_var This is not csh/tcsh 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 ### 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 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 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 ### --filter-hosts --slf <()
par_filter_hosts_slf OK par_filter_hosts_slf OK
par_obey_servers_capacity_slf_reload ### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded par_obey_servers_capacity_slf_reload ### 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 _ ### test --env _
Both test that variables are copied, Both test that variables are copied,
but also that they are NOT copied, if ignored 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 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 OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^
par_bash_underscore /bin/bash: line 48: myfunc: command not found par_bash_underscore /bin/bash: line 48: myfunc: command not found
par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^ 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 3 arg alias_works
par_csh_funky myvar works par_csh_funky myvar works
par_csh_funky space special chars problem 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 myecho: Command not found.
par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
par_csh_underscore Connection to lo closed. 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 env_parallel: Warning: ASCII value 1 in variables is not supported
par_fish_funky 3 arg alias_works par_fish_funky 3 arg alias_works
par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported 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 OK if ^^^^^^^^^^^^^^^^^ no myfunc
par_fish_underscore ^ par_fish_underscore ^
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc 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 \\\\\\\\ par_ksh_funky \\\\\\\\
par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7F>ƒ„…†‡ˆ‰ŠŒ<E280B9>Ž<EFBFBD><C5BD>“”•˜™šœ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-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 OK if no myfunc ^^^^^^^^^^^^^^^^^
par_ksh_underscore /usr/bin/ksh: line 2: myfunc: not found par_ksh_underscore /usr/bin/ksh: line 2: myfunc: not found
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ 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 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 myecho: Command not found.
par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
par_tcsh_underscore Connection to lo closed. 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 \\\\\\\\ par_zsh_funky \\\\\\\\
par_zsh_funky  par_zsh_funky