mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-21 21:47:54 +00:00
parallel: Fixed bug #63263: Joblog does not have the same exit code as bash.
This commit is contained in:
parent
c444cfc333
commit
24d23541c2
8
NEWS
8
NEWS
|
@ -6,7 +6,7 @@ New in this release:
|
||||||
|
|
||||||
* Use --total-jobs for --eta/--bar if generating jobs is slow.
|
* Use --total-jobs for --eta/--bar if generating jobs is slow.
|
||||||
|
|
||||||
* A lot of bug fixed in --latest-line.
|
* A lot of bugs fixed in --latest-line.
|
||||||
|
|
||||||
* Better support for MSYS2.
|
* Better support for MSYS2.
|
||||||
|
|
||||||
|
@ -14,10 +14,12 @@ New in this release:
|
||||||
|
|
||||||
* --bar supports UTF8.
|
* --bar supports UTF8.
|
||||||
|
|
||||||
* GNU Parallel is now on Mastodon: @GNU_Parallel@hostux.social
|
|
||||||
|
|
||||||
* Bug fixes and man page updates.
|
* Bug fixes and man page updates.
|
||||||
|
|
||||||
|
News about GNU Parallel:
|
||||||
|
|
||||||
|
* GNU Parallel is now on Mastodon: @GNU_Parallel@hostux.social
|
||||||
|
|
||||||
|
|
||||||
20221022
|
20221022
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,9 @@
|
||||||
|
|
||||||
Quote of the month:
|
Quote of the month:
|
||||||
|
|
||||||
|
GNU Parallel absolutely rocks.
|
||||||
|
-- Austin Mordahl@Stackoverflow
|
||||||
|
|
||||||
Got around to using GNU parallel for the first time from a suggestion by @jdwasmuth ... now I'm wishing I started using this years ago
|
Got around to using GNU parallel for the first time from a suggestion by @jdwasmuth ... now I'm wishing I started using this years ago
|
||||||
-- Stefan Gavriliuc @GavriliucStefan@twitter
|
-- Stefan Gavriliuc @GavriliucStefan@twitter
|
||||||
|
|
||||||
|
|
|
@ -261,32 +261,24 @@ from:tange@gnu.org
|
||||||
to:parallel@gnu.org, bug-parallel@gnu.org
|
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||||
|
|
||||||
Subject: GNU Parallel 20221122 ('Херсо́н') released
|
Subject: GNU Parallel 20221222 ('ChatGPT/Mauneloa/#A4Revolution/#A4革命/#MahsaAmini') released
|
||||||
|
|
||||||
GNU Parallel 20221122 ('Херсо́н') has been released. It is available for download at: lbry://@GnuParallel:4
|
GNU Parallel 20221222 ('') has been released. It is available for download at: lbry://@GnuParallel:4
|
||||||
|
|
||||||
Quote of the month:
|
Quote of the month:
|
||||||
|
|
||||||
[GNU Parallel] is the most amazing tool ever invented for bioinformatics!
|
<<>>
|
||||||
-- Istvan Albert https://www.ialbert.me/
|
|
||||||
|
|
||||||
New in this release:
|
New in this release:
|
||||||
|
|
||||||
* Support for IPv6 adresses and _ in hostnames in --sshlogin.
|
* --results works on more file systems (e.g. fat)
|
||||||
|
|
||||||
* Use --total-jobs for --eta/--bar if generating jobs is slow.
|
* <<>>
|
||||||
|
|
||||||
* A lot of bug fixed in --latest-line.
|
News about GNU Parallel:
|
||||||
|
|
||||||
* Better support MSYS2.
|
https://www.youtube.com/watch?v=duheTWLIrp8
|
||||||
|
https://talkpython.fm/episodes/show/392/data-science-from-the-command-line
|
||||||
* Better Text::CSV error messages.
|
|
||||||
|
|
||||||
* --bar supports UTF8.
|
|
||||||
|
|
||||||
* GNU Parallel is now on Mastodon: @GNU_Parallel@hostux.social
|
|
||||||
|
|
||||||
* Bug fixes and man page updates.
|
|
||||||
|
|
||||||
|
|
||||||
GNU Parallel - For people who live life in the parallel lane.
|
GNU Parallel - For people who live life in the parallel lane.
|
||||||
|
|
|
@ -104,9 +104,7 @@ env_parallel() {
|
||||||
_ignore_RO="`_ignore_READONLY`"
|
_ignore_RO="`_ignore_READONLY`"
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
_ignore_HARD="`_ignore_HARDCODED`"
|
_ignore_HARD="`_ignore_HARDCODED`"
|
||||||
# Macos-grep does not like long patterns
|
# To avoid depending on grep dialect, use Perl version of:
|
||||||
# Old Solaris grep does not support -E
|
|
||||||
# Perl Version of:
|
|
||||||
# grep -Ev '^(...)$' |
|
# grep -Ev '^(...)$' |
|
||||||
perl -ne '/^(
|
perl -ne '/^(
|
||||||
PARALLEL_ENV|
|
PARALLEL_ENV|
|
||||||
|
|
|
@ -90,9 +90,7 @@ env_parallel() {
|
||||||
_ignore_RO="`_ignore_READONLY`"
|
_ignore_RO="`_ignore_READONLY`"
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
_ignore_HARD="`_ignore_HARDCODED`"
|
_ignore_HARD="`_ignore_HARDCODED`"
|
||||||
# Macos-grep does not like long patterns
|
# To avoid depending on grep dialect, use Perl version of:
|
||||||
# Old Solaris grep does not support -E
|
|
||||||
# Perl Version of:
|
|
||||||
# grep -Ev '^(...)$' |
|
# grep -Ev '^(...)$' |
|
||||||
perl -ne '/^(
|
perl -ne '/^(
|
||||||
PARALLEL_ENV|
|
PARALLEL_ENV|
|
||||||
|
|
|
@ -104,9 +104,7 @@ env_parallel() {
|
||||||
_ignore_RO="`_ignore_READONLY`"
|
_ignore_RO="`_ignore_READONLY`"
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
_ignore_HARD="`_ignore_HARDCODED`"
|
_ignore_HARD="`_ignore_HARDCODED`"
|
||||||
# Macos-grep does not like long patterns
|
# To avoid depending on grep dialect, use Perl version of:
|
||||||
# Old Solaris grep does not support -E
|
|
||||||
# Perl Version of:
|
|
||||||
# grep -Ev '^(...)$' |
|
# grep -Ev '^(...)$' |
|
||||||
perl -ne '/^(
|
perl -ne '/^(
|
||||||
PARALLEL_ENV|
|
PARALLEL_ENV|
|
||||||
|
|
|
@ -87,9 +87,7 @@ env_parallel() {
|
||||||
_ignore_RO="`_ignore_READONLY`"
|
_ignore_RO="`_ignore_READONLY`"
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
_ignore_HARD="`_ignore_HARDCODED`"
|
_ignore_HARD="`_ignore_HARDCODED`"
|
||||||
# Macos-grep does not like long patterns
|
# To avoid depending on grep dialect, use Perl version of:
|
||||||
# Old Solaris grep does not support -E
|
|
||||||
# Perl Version of:
|
|
||||||
# grep -Ev '^(...)$' |
|
# grep -Ev '^(...)$' |
|
||||||
perl -ne '/^(
|
perl -ne '/^(
|
||||||
PARALLEL_ENV|
|
PARALLEL_ENV|
|
||||||
|
|
|
@ -89,9 +89,7 @@ env_parallel() {
|
||||||
_ignore_RO="`_ignore_READONLY`"
|
_ignore_RO="`_ignore_READONLY`"
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
_ignore_HARD="`_ignore_HARDCODED`"
|
_ignore_HARD="`_ignore_HARDCODED`"
|
||||||
# Macos-grep does not like long patterns
|
# To avoid depending on grep dialect, use Perl version of:
|
||||||
# Old Solaris grep does not support -E
|
|
||||||
# Perl Version of:
|
|
||||||
# grep -Ev '^(...)$' |
|
# grep -Ev '^(...)$' |
|
||||||
perl -ne '/^(
|
perl -ne '/^(
|
||||||
PARALLEL_ENV|
|
PARALLEL_ENV|
|
||||||
|
|
|
@ -104,9 +104,7 @@ env_parallel() {
|
||||||
_ignore_RO="`_ignore_READONLY`"
|
_ignore_RO="`_ignore_READONLY`"
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
_ignore_HARD="`_ignore_HARDCODED`"
|
_ignore_HARD="`_ignore_HARDCODED`"
|
||||||
# Macos-grep does not like long patterns
|
# To avoid depending on grep dialect, use Perl version of:
|
||||||
# Old Solaris grep does not support -E
|
|
||||||
# Perl Version of:
|
|
||||||
# grep -Ev '^(...)$' |
|
# grep -Ev '^(...)$' |
|
||||||
perl -ne '/^(
|
perl -ne '/^(
|
||||||
PARALLEL_ENV|
|
PARALLEL_ENV|
|
||||||
|
|
|
@ -79,9 +79,7 @@ env_parallel() {
|
||||||
_ignore_RO="`_ignore_READONLY`"
|
_ignore_RO="`_ignore_READONLY`"
|
||||||
# shellcheck disable=SC2006
|
# shellcheck disable=SC2006
|
||||||
_ignore_HARD="`_ignore_HARDCODED`"
|
_ignore_HARD="`_ignore_HARDCODED`"
|
||||||
# Macos-grep does not like long patterns
|
# To avoid depending on grep dialect, use Perl version of:
|
||||||
# Old Solaris grep does not support -E
|
|
||||||
# Perl Version of:
|
|
||||||
# grep -Ev '^(...)$' |
|
# grep -Ev '^(...)$' |
|
||||||
perl -ne '/^(
|
perl -ne '/^(
|
||||||
PARALLEL_ENV|
|
PARALLEL_ENV|
|
||||||
|
|
10
src/parallel
10
src/parallel
|
@ -5425,8 +5425,16 @@ sub reaper() {
|
||||||
$job->set_exitstatus(-2);
|
$job->set_exitstatus(-2);
|
||||||
$job->set_exitsignal(0);
|
$job->set_exitsignal(0);
|
||||||
} else {
|
} else {
|
||||||
$job->set_exitstatus($? >> 8);
|
|
||||||
$job->set_exitsignal($? & 127);
|
$job->set_exitsignal($? & 127);
|
||||||
|
if($job->exitstatus()) {
|
||||||
|
# Exit status already set - probably by --timeout
|
||||||
|
} elsif($? & 127) {
|
||||||
|
# Killed by signal. Many shells return: 128 | $signal
|
||||||
|
$job->set_exitstatus(128 | $?);
|
||||||
|
} else {
|
||||||
|
# Normal exit
|
||||||
|
$job->set_exitstatus($? >> 8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
debug("run", "\nseq ",$job->seq()," died (", $job->exitstatus(), ")");
|
debug("run", "\nseq ",$job->seq()," died (", $job->exitstatus(), ")");
|
||||||
|
|
|
@ -8,6 +8,45 @@
|
||||||
# Each should be taking 10-30s and be possible to run in parallel
|
# Each should be taking 10-30s and be possible to run in parallel
|
||||||
# I.e.: No race conditions, no logins
|
# I.e.: No race conditions, no logins
|
||||||
|
|
||||||
|
par_quote_special_results() {
|
||||||
|
doit() {
|
||||||
|
mkfs=$1
|
||||||
|
img=$(mktemp /dev/shm/par-test-loop-XXXX.img)
|
||||||
|
dir=$(mktemp -d /tmp/par-test-loop-XXXX)
|
||||||
|
dd if=/dev/zero bs=1000k count=150 > $img
|
||||||
|
# Use the mkfs.$filesystem
|
||||||
|
$mkfs $img
|
||||||
|
sudo mount $img $dir -oloop,uid=`id -u` 2>/dev/null ||
|
||||||
|
sudo mount $img $dir -oloop
|
||||||
|
cd $dir
|
||||||
|
sudo chown `id -u` .
|
||||||
|
df $dir
|
||||||
|
printf "%s\0" '' +m . +_ .. +__ ,. ,.. + ++ / +z |
|
||||||
|
parallel -0 --results a echo
|
||||||
|
find a | sort
|
||||||
|
seq 128 | perl -ne 'printf "%c\0",$_' |
|
||||||
|
parallel -0 --results b128 echo
|
||||||
|
find b128 | sort
|
||||||
|
seq 128 255 | perl -ne 'printf "%c\0",$_' |
|
||||||
|
parallel -0 --results b255 echo
|
||||||
|
find b255 | sort
|
||||||
|
cd
|
||||||
|
sudo umount $dir
|
||||||
|
rm -r $dir/
|
||||||
|
rm $img
|
||||||
|
}
|
||||||
|
export -f doit
|
||||||
|
stdout parallel -k --tag --plus doit ::: \
|
||||||
|
mkfs.btrfs mkfs.exfat mkfs.ext2 mkfs.ext3 mkfs.ext4 \
|
||||||
|
"mkfs.reiserfs -fq" "mkfs.ntfs -F" "mkfs.xfs -f" mkfs.minix \
|
||||||
|
mkfs.fat mkfs.vfat mkfs.msdos mkfs.f2fs |
|
||||||
|
perl -pe 's:(/dev/loop|par-test-loop)\S+:$1:g;s/ +/ /g' |
|
||||||
|
G -v MB/s -v UUID -v Binutils
|
||||||
|
# Skip:
|
||||||
|
# mkfs.bfs - ro
|
||||||
|
# mkfs.cramfs - ro
|
||||||
|
}
|
||||||
|
|
||||||
par_totaljobs() {
|
par_totaljobs() {
|
||||||
. `which env_parallel.bash`
|
. `which env_parallel.bash`
|
||||||
myrun() {
|
myrun() {
|
||||||
|
|
|
@ -14,6 +14,65 @@ export TMP5G
|
||||||
|
|
||||||
rm -f /tmp/*.{tmx,pac,arg,all,log,swp,loa,ssh,df,pip,tmb,chr,tms,par}
|
rm -f /tmp/*.{tmx,pac,arg,all,log,swp,loa,ssh,df,pip,tmb,chr,tms,par}
|
||||||
|
|
||||||
|
par_compare_exit_codes() {
|
||||||
|
echo '### compare the exit codes'
|
||||||
|
echo 'directly from shells, shells called from parallel,'
|
||||||
|
echo 'killed with different signals'
|
||||||
|
echo
|
||||||
|
echo sig=joblog_sig shell=parallel=joblog
|
||||||
|
|
||||||
|
selfkill=$(mktemp)
|
||||||
|
export selfkill
|
||||||
|
echo 'kill -$1 $$' >$selfkill
|
||||||
|
exit=$(mktemp)
|
||||||
|
export exit
|
||||||
|
echo 'exit $1' >$exit
|
||||||
|
|
||||||
|
doit() {
|
||||||
|
shell=$1
|
||||||
|
sig=$2
|
||||||
|
sig128=$(( sig + 128 ))
|
||||||
|
sh -c "$shell $selfkill $sig" 2>/dev/null
|
||||||
|
raw=$?
|
||||||
|
sh -c "$shell $exit $sig128" 2>/dev/null
|
||||||
|
raw128=$?
|
||||||
|
|
||||||
|
log=$(mktemp)
|
||||||
|
$shell -c "parallel --halt now,done=1 --jl $log $shell $selfkill ::: $sig" 2>/dev/null
|
||||||
|
#echo parallel $shell $sig = $?
|
||||||
|
parallel=$?
|
||||||
|
joblog_exit=$(field 7 < $log | tail -n1)
|
||||||
|
joblog_signal=$(field 8 < $log | tail -n1)
|
||||||
|
$shell -c "parallel --halt now,done=1 --jl $log $shell $exit ::: $sig128" 2>/dev/null
|
||||||
|
parallel128=$?
|
||||||
|
joblog_exit128=$(field 7 < $log | tail -n1)
|
||||||
|
joblog_signal128=$(field 8 < $log | tail -n1)
|
||||||
|
|
||||||
|
#echo joblog p $shell $sig $(field 8,7 < $log | tail -n1)
|
||||||
|
rm $log
|
||||||
|
|
||||||
|
echo $shell sig' ' $sig=$joblog_signal $raw=$parallel=$joblog_exit
|
||||||
|
echo $shell exit $sig128=$joblog_signal128 $raw128=$parallel128=$joblog_exit128
|
||||||
|
}
|
||||||
|
export -f doit
|
||||||
|
|
||||||
|
# These give the same exit code prepended with 'true;' or not
|
||||||
|
OK="ash csh dash fish fizsh posh rc sash sh tcsh"
|
||||||
|
# These do not give the same exit code prepended with 'true;' or not
|
||||||
|
BAD="bash ksh93 mksh static-sh yash zsh"
|
||||||
|
|
||||||
|
(
|
||||||
|
# Most block on signals: 19+20+21+22
|
||||||
|
ulimit -n `ulimit -Hn`
|
||||||
|
parallel -j1000% -k doit ::: $OK $BAD ::: {1..18} {23..64}
|
||||||
|
# fdsh blocks on a lot more signals
|
||||||
|
parallel -j1000% -k doit ::: fdsh ::: 2 {9..12} {14..18} {20..23} 26 27 29 30 {32..64}
|
||||||
|
) |
|
||||||
|
# Ignore where the exit codes are the same
|
||||||
|
perl -ne '/(\d+)=\1=\1/ or print'
|
||||||
|
rm $selfkill
|
||||||
|
}
|
||||||
|
|
||||||
par_retries_unreachable() {
|
par_retries_unreachable() {
|
||||||
echo '### Test of --retries on unreachable host'
|
echo '### Test of --retries on unreachable host'
|
||||||
seq 2 | stdout parallel -k --retries 2 -v -S 4.3.2.1,: echo
|
seq 2 | stdout parallel -k --retries 2 -v -S 4.3.2.1,: echo
|
||||||
|
|
|
@ -6,6 +6,16 @@
|
||||||
|
|
||||||
# These fail regularly
|
# These fail regularly
|
||||||
|
|
||||||
|
par_ll_tag() {
|
||||||
|
(
|
||||||
|
parallel --tag --ll -q printf "a\n{}\n" ::: should-be-tagged
|
||||||
|
parallel --tag --ll -q printf "a\n\r{}\n" ::: should-be-tagged
|
||||||
|
parallel --color --tag --ll true ::: A
|
||||||
|
parallel --color --tag --ll 'echo;true {}' ::: B
|
||||||
|
parallel --color --tag --ll 'echo {};true {}' ::: C
|
||||||
|
) | puniq
|
||||||
|
}
|
||||||
|
|
||||||
par_ll_lb_color() {
|
par_ll_lb_color() {
|
||||||
echo 'bug #62386: --color (--ctag but without --tag)'
|
echo 'bug #62386: --color (--ctag but without --tag)'
|
||||||
echo 'bug #62438: See last line from multiple jobslots'
|
echo 'bug #62438: See last line from multiple jobslots'
|
||||||
|
|
|
@ -78,8 +78,9 @@ par_many_var() {
|
||||||
export -f pecho
|
export -f pecho
|
||||||
gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; }
|
gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; }
|
||||||
for a in `seq 6000`; do eval "export a$a=1" ; done
|
for a in `seq 6000`; do eval "export a$a=1" ; done
|
||||||
gen 40000 | stdout parallel -Xkj1 'pecho {} {} {} {} | wc' |
|
gen 40000 | stdout parallel -Xkj1 'pecho {} {} {} {} | wc -c' |
|
||||||
perl -pe 's/\d{10,}.\d+ //g'
|
perl -pe 's/\d{10,}.\d+ //g; s/(\d+)\d\d\d/${1}XXX/g;' |
|
||||||
|
grep 22XXX
|
||||||
}
|
}
|
||||||
|
|
||||||
par_many_var_func() {
|
par_many_var_func() {
|
||||||
|
@ -131,7 +132,8 @@ par_many_var_big_func() {
|
||||||
for a in `seq 10`; do eval "a$a() { '$big'; }" ; done
|
for a in `seq 10`; do eval "a$a() { '$big'; }" ; done
|
||||||
for a in `seq 10`; do eval export -f a$a ; done
|
for a in `seq 10`; do eval export -f a$a ; done
|
||||||
gen 40000 | stdout parallel -Xkj1 'pecho {} {} {} {} | wc -c' |
|
gen 40000 | stdout parallel -Xkj1 'pecho {} {} {} {} | wc -c' |
|
||||||
perl -pe 's/\d{10,}.\d+ //g'
|
perl -pe 's/\d{10,}.\d+ //g; s/(\d+)\d\d\d/${1}XXX/g;' |
|
||||||
|
grep 5XXX
|
||||||
}
|
}
|
||||||
|
|
||||||
par_big_func_name() {
|
par_big_func_name() {
|
||||||
|
@ -143,7 +145,8 @@ par_big_func_name() {
|
||||||
big=`perl -e print\"x\"x10000`
|
big=`perl -e print\"x\"x10000`
|
||||||
for a in `seq 10`; do eval "export a$big$a=1" ; done
|
for a in `seq 10`; do eval "export a$big$a=1" ; done
|
||||||
gen 30000 | stdout parallel -Xkj1 'pecho {} {} {} {} | wc -c' |
|
gen 30000 | stdout parallel -Xkj1 'pecho {} {} {} {} | wc -c' |
|
||||||
perl -pe 's/\d{10,}.\d+ //g'
|
perl -pe 's/\d{10,}.\d+ //g; s/(\d+)\d\d\d/${1}XXX/g;' |
|
||||||
|
grep 18XXX
|
||||||
}
|
}
|
||||||
|
|
||||||
par_big_var_func_name() {
|
par_big_var_func_name() {
|
||||||
|
@ -157,7 +160,8 @@ par_big_var_func_name() {
|
||||||
for a in `seq 10`; do eval "a$big$a() { 1; }" ; done
|
for a in `seq 10`; do eval "a$big$a() { 1; }" ; done
|
||||||
for a in `seq 10`; do eval export -f a$big$a ; done
|
for a in `seq 10`; do eval export -f a$big$a ; done
|
||||||
gen 80000 | stdout parallel --load 4 -Xkj1 'pecho {} {} {} {} | wc -c' |
|
gen 80000 | stdout parallel --load 4 -Xkj1 'pecho {} {} {} {} | wc -c' |
|
||||||
perl -pe 's/\d{10,}.\d+ //g'
|
perl -pe 's/\d{10,}.\d+ //g; s/(\d+)\d\d\d/${1}XXX/g;' |
|
||||||
|
grep 18XXX
|
||||||
}
|
}
|
||||||
|
|
||||||
macsshlogin=$(parallel --halt now,success=1 ssh {} echo {} ::: ota@mac macosx.p)
|
macsshlogin=$(parallel --halt now,success=1 ssh {} echo {} ::: ota@mac macosx.p)
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -648,23 +648,23 @@ par_result ### Test --results --header : piped
|
||||||
par_result parallel: Warning: A NUL character in the input was replaced with \0.
|
par_result parallel: Warning: A NUL character in the input was replaced with \0.
|
||||||
par_result parallel: Warning: NUL cannot be passed through in the argument list.
|
par_result parallel: Warning: NUL cannot be passed through in the argument list.
|
||||||
par_result parallel: Warning: Did you mean to use the --null option?
|
par_result parallel: Warning: Did you mean to use the --null option?
|
||||||
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2
|
par_result /tmp/parallel_results_test/testF/Col/backslash\tab/2
|
||||||
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\\0eof
|
par_result /tmp/parallel_results_test/testF/Col/backslash\tab/2/slash+znull\0eof
|
||||||
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\\0eof/seq
|
par_result /tmp/parallel_results_test/testF/Col/backslash\tab/2/slash+znull\0eof/seq
|
||||||
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\\0eof/stderr
|
par_result /tmp/parallel_results_test/testF/Col/backslash\tab/2/slash+znull\0eof/stderr
|
||||||
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\\0eof/stdout
|
par_result /tmp/parallel_results_test/testF/Col/backslash\tab/2/slash+znull\0eof/stdout
|
||||||
par_result ### Test --results --header : piped - non-existing column header
|
par_result ### Test --results --header : piped - non-existing column header
|
||||||
par_result parallel: Warning: A NUL character in the input was replaced with \0.
|
par_result parallel: Warning: A NUL character in the input was replaced with \0.
|
||||||
par_result parallel: Warning: NUL cannot be passed through in the argument list.
|
par_result parallel: Warning: NUL cannot be passed through in the argument list.
|
||||||
par_result parallel: Warning: Did you mean to use the --null option?
|
par_result parallel: Warning: Did you mean to use the --null option?
|
||||||
par_result /tmp/parallel_results_test/testG/
|
par_result /tmp/parallel_results_test/testG/
|
||||||
par_result /tmp/parallel_results_test/testG/Col1
|
par_result /tmp/parallel_results_test/testG/Col1
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\tab
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\tab/2
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\\0eof
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\tab/2/slash+znull\0eof
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\\0eof/seq
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\tab/2/slash+znull\0eof/seq
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\\0eof/stderr
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\tab/2/slash+znull\0eof/stderr
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\\0eof/stdout
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\tab/2/slash+znull\0eof/stdout
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/v1
|
par_result /tmp/parallel_results_test/testG/Col1/v1
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/v1/2
|
par_result /tmp/parallel_results_test/testG/Col1/v1/2
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/v1/2/v2
|
par_result /tmp/parallel_results_test/testG/Col1/v1/2/v2
|
||||||
|
|
|
@ -1,3 +1,135 @@
|
||||||
|
par_compare_exit_codes ### compare the exit codes
|
||||||
|
par_compare_exit_codes directly from shells, shells called from parallel,
|
||||||
|
par_compare_exit_codes killed with different signals
|
||||||
|
par_compare_exit_codes
|
||||||
|
par_compare_exit_codes sig=joblog_sig shell=parallel=joblog
|
||||||
|
par_compare_exit_codes
par_compare_exit_codes
|
||||||
|
par_compare_exit_codes csh sig 2=0 130=1=1
|
||||||
|
par_compare_exit_codes posh sig 34=11 162=139=139
|
||||||
|
par_compare_exit_codes posh sig 35=11 163=139=139
|
||||||
|
par_compare_exit_codes posh sig 36=11 164=139=139
|
||||||
|
par_compare_exit_codes posh sig 37=11 165=139=139
|
||||||
|
par_compare_exit_codes posh sig 38=11 166=139=139
|
||||||
|
par_compare_exit_codes posh sig 39=11 167=139=139
|
||||||
|
par_compare_exit_codes posh sig 40=11 168=139=139
|
||||||
|
par_compare_exit_codes posh sig 41=11 169=139=139
|
||||||
|
par_compare_exit_codes posh sig 42=11 170=139=139
|
||||||
|
par_compare_exit_codes posh sig 43=11 171=139=139
|
||||||
|
par_compare_exit_codes posh sig 44=11 172=139=139
|
||||||
|
par_compare_exit_codes posh sig 45=11 173=139=139
|
||||||
|
par_compare_exit_codes posh sig 46=11 174=139=139
|
||||||
|
par_compare_exit_codes posh sig 47=11 175=139=139
|
||||||
|
par_compare_exit_codes posh sig 48=11 176=139=139
|
||||||
|
par_compare_exit_codes posh sig 49=11 177=139=139
|
||||||
|
par_compare_exit_codes posh sig 50=11 178=139=139
|
||||||
|
par_compare_exit_codes posh sig 51=11 179=139=139
|
||||||
|
par_compare_exit_codes posh sig 52=11 180=139=139
|
||||||
|
par_compare_exit_codes posh sig 53=11 181=139=139
|
||||||
|
par_compare_exit_codes posh sig 54=11 182=139=139
|
||||||
|
par_compare_exit_codes posh sig 55=11 183=139=139
|
||||||
|
par_compare_exit_codes posh sig 56=11 184=139=139
|
||||||
|
par_compare_exit_codes posh sig 57=11 185=139=139
|
||||||
|
par_compare_exit_codes posh sig 58=11 186=139=139
|
||||||
|
par_compare_exit_codes posh sig 59=11 187=139=139
|
||||||
|
par_compare_exit_codes posh sig 60=11 188=139=139
|
||||||
|
par_compare_exit_codes posh sig 61=11 189=139=139
|
||||||
|
par_compare_exit_codes posh sig 62=11 190=139=139
|
||||||
|
par_compare_exit_codes posh sig 63=11 191=139=139
|
||||||
|
par_compare_exit_codes posh sig 64=11 192=139=139
|
||||||
|
par_compare_exit_codes
par_compare_exit_codes
|
||||||
|
par_compare_exit_codes tcsh sig 2=0 130=1=1
|
||||||
|
par_compare_exit_codes fdsh sig 2=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 130=0 130=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 9=0 137=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 137=0 137=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 10=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 138=0 138=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 11=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 139=0 139=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 12=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 140=0 140=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 15=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 143=0 143=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 16=0 144=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 144=0 144=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 17=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 145=0 145=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 18=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 146=0 146=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 20=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 148=0 148=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 21=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 149=0 149=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 22=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 150=0 150=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 23=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 151=0 151=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 26=0 154=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 154=0 154=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 27=0 155=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 155=0 155=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 29=0 157=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 157=0 157=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 30=0 158=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 158=0 158=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 32=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 160=0 160=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 33=0 0=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 161=0 161=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 35=0 163=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 163=0 163=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 36=0 164=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 164=0 164=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 37=0 165=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 165=0 165=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 38=0 166=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 166=0 166=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 39=0 167=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 167=0 167=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 40=0 168=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 168=0 168=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 41=0 169=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 169=0 169=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 42=0 170=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 170=0 170=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 43=0 171=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 171=0 171=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 45=0 173=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 173=0 173=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 46=0 174=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 174=0 174=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 47=0 175=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 175=0 175=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 48=0 176=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 176=0 176=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 49=0 177=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 177=0 177=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 50=0 178=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 178=0 178=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 51=0 179=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 179=0 179=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 52=0 180=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 180=0 180=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 53=0 181=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 181=0 181=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 55=0 183=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 183=0 183=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 56=0 184=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 184=0 184=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 57=0 185=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 185=0 185=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 58=0 186=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 186=0 186=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 59=0 187=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 187=0 187=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 60=0 188=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 188=0 188=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 61=0 189=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 189=0 189=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 62=0 190=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 190=0 190=2=2
|
||||||
|
par_compare_exit_codes fdsh sig 63=0 191=2=2
|
||||||
|
par_compare_exit_codes fdsh exit 191=0 191=2=2
|
||||||
par_halt_on_error -2 true true 0
|
par_halt_on_error -2 true true 0
|
||||||
par_halt_on_error -2 true true 0
|
par_halt_on_error -2 true true 0
|
||||||
par_halt_on_error -2 true true parallel: This job succeeded:
|
par_halt_on_error -2 true true parallel: This job succeeded:
|
||||||
|
@ -237,7 +369,7 @@ par_test_build_and_install make[0]: Nothing to be done for 'install-exec-am'.
|
||||||
par_test_build_and_install make install-data-hook
|
par_test_build_and_install make install-data-hook
|
||||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000'
|
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000'
|
||||||
par_test_build_and_install mkdir -p /tmp/parallel-install/share/zsh/site-functions /tmp/parallel-install/share/bash-completion/completions
|
par_test_build_and_install mkdir -p /tmp/parallel-install/share/zsh/site-functions /tmp/parallel-install/share/bash-completion/completions
|
||||||
par_test_build_and_install src/parallel --shell-completion bash > /tmp/parallel-install/share/bash-completion/completions/parallel
|
par_test_build_and_install /tmp/parallel-install/bin/parallel --shell-completion bash > /tmp/parallel-install/share/bash-completion/completions/parallel
|
||||||
par_test_build_and_install echo '#compdef parallel' > /tmp/parallel-install/share/zsh/site-functions/_parallel
|
par_test_build_and_install echo '#compdef parallel' > /tmp/parallel-install/share/zsh/site-functions/_parallel
|
||||||
par_test_build_and_install echo '(( $+functions[_comp_parallel] )) ||' >> /tmp/parallel-install/share/zsh/site-functions/_parallel
|
par_test_build_and_install echo '(( $+functions[_comp_parallel] )) ||' >> /tmp/parallel-install/share/zsh/site-functions/_parallel
|
||||||
par_test_build_and_install echo ' eval "$(parallel --shell-completion auto)" &&' >> /tmp/parallel-install/share/zsh/site-functions/_parallel
|
par_test_build_and_install echo ' eval "$(parallel --shell-completion auto)" &&' >> /tmp/parallel-install/share/zsh/site-functions/_parallel
|
||||||
|
@ -766,7 +898,7 @@ par_test_build_and_install make[0]: Nothing to be done for 'install-exec-am'.
|
||||||
par_test_build_and_install make install-data-hook
|
par_test_build_and_install make install-data-hook
|
||||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000'
|
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000'
|
||||||
par_test_build_and_install mkdir -p /tmp/parallel-install/share/zsh/site-functions /tmp/parallel-install/share/bash-completion/completions
|
par_test_build_and_install mkdir -p /tmp/parallel-install/share/zsh/site-functions /tmp/parallel-install/share/bash-completion/completions
|
||||||
par_test_build_and_install src/parallel --shell-completion bash > /tmp/parallel-install/share/bash-completion/completions/parallel
|
par_test_build_and_install /tmp/parallel-install/bin/parallel --shell-completion bash > /tmp/parallel-install/share/bash-completion/completions/parallel
|
||||||
par_test_build_and_install echo '#compdef parallel' > /tmp/parallel-install/share/zsh/site-functions/_parallel
|
par_test_build_and_install echo '#compdef parallel' > /tmp/parallel-install/share/zsh/site-functions/_parallel
|
||||||
par_test_build_and_install echo '(( $+functions[_comp_parallel] )) ||' >> /tmp/parallel-install/share/zsh/site-functions/_parallel
|
par_test_build_and_install echo '(( $+functions[_comp_parallel] )) ||' >> /tmp/parallel-install/share/zsh/site-functions/_parallel
|
||||||
par_test_build_and_install echo ' eval "$(parallel --shell-completion auto)" &&' >> /tmp/parallel-install/share/zsh/site-functions/_parallel
|
par_test_build_and_install echo ' eval "$(parallel --shell-completion auto)" &&' >> /tmp/parallel-install/share/zsh/site-functions/_parallel
|
||||||
|
|
|
@ -120,7 +120,13 @@ par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
|
||||||
par_kill_hup bash---pstree
|
par_kill_hup bash---pstree
|
||||||
par_ll_lb_color bug #62386: --color (--ctag but without --tag)
|
par_ll_lb_color bug #62386: --color (--ctag but without --tag)
|
||||||
par_ll_lb_color bug #62438: See last line from multiple jobslots
|
par_ll_lb_color bug #62438: See last line from multiple jobslots
|
||||||
par_ll_lb_color c9a124d7cbd2d04b1201b297ef7cefa1 -
|
par_ll_lb_color 35d02d4d868110dd4f0eaf1c2f26dc36 -
|
||||||
|
par_ll_tag
par_ll_tag should-be-tagged should-be-tagged
|
||||||
|
par_ll_tag [A
par_ll_tag should-be-tagged should-be-tagged
|
||||||
|
par_ll_tag
par_ll_tag B [48;5;134;38;5;231m[K [m
|
||||||
|
par_ll_tag [A
par_ll_tag B [48;5;134;38;5;231m[K [m
|
||||||
|
par_ll_tag
par_ll_tag C [48;5;134;38;5;231m[KC [m
|
||||||
|
par_ll_tag [A
par_ll_tag C [48;5;134;38;5;231m[KC [m
|
||||||
par_more_than_9_relative_sshlogin ### Check more than 9(relative) simultaneous sshlogins
|
par_more_than_9_relative_sshlogin ### Check more than 9(relative) simultaneous sshlogins
|
||||||
par_more_than_9_relative_sshlogin 1
|
par_more_than_9_relative_sshlogin 1
|
||||||
par_more_than_9_relative_sshlogin 2
|
par_more_than_9_relative_sshlogin 2
|
||||||
|
|
|
@ -8,7 +8,6 @@ par_big_func_name 18XXX
|
||||||
par_big_func_name 18XXX
|
par_big_func_name 18XXX
|
||||||
par_big_func_name 18XXX
|
par_big_func_name 18XXX
|
||||||
par_big_func_name 18XXX
|
par_big_func_name 18XXX
|
||||||
par_big_func_name 7XXX
|
|
||||||
par_big_var_func_name 18XXX
|
par_big_var_func_name 18XXX
|
||||||
par_big_var_func_name 18XXX
|
par_big_var_func_name 18XXX
|
||||||
par_big_var_func_name 18XXX
|
par_big_var_func_name 18XXX
|
||||||
|
@ -26,7 +25,6 @@ par_big_var_func_name 18XXX
|
||||||
par_big_var_func_name 18XXX
|
par_big_var_func_name 18XXX
|
||||||
par_big_var_func_name 18XXX
|
par_big_var_func_name 18XXX
|
||||||
par_big_var_func_name 18XXX
|
par_big_var_func_name 18XXX
|
||||||
par_big_var_func_name 1XXX
|
|
||||||
par_many_args 1 3XXX 6XXX
|
par_many_args 1 3XXX 6XXX
|
||||||
par_many_args 1 3XXX 6XXX
|
par_many_args 1 3XXX 6XXX
|
||||||
par_many_args 1 3XXX 6XXX
|
par_many_args 1 3XXX 6XXX
|
||||||
|
@ -68,14 +66,13 @@ par_many_func 1 200 4XXX
|
||||||
par_many_func 1 200 4XXX
|
par_many_func 1 200 4XXX
|
||||||
par_many_func 1 200 4XXX
|
par_many_func 1 200 4XXX
|
||||||
par_many_func 1 68 1XXX
|
par_many_func 1 68 1XXX
|
||||||
par_many_var 1 948 22XXX
|
par_many_var 22XXX
|
||||||
par_many_var 1 948 22XXX
|
par_many_var 22XXX
|
||||||
par_many_var 1 948 22XXX
|
par_many_var 22XXX
|
||||||
par_many_var 1 948 22XXX
|
par_many_var 22XXX
|
||||||
par_many_var 1 948 22XXX
|
par_many_var 22XXX
|
||||||
par_many_var 1 948 22XXX
|
par_many_var 22XXX
|
||||||
par_many_var 1 948 22XXX
|
par_many_var 22XXX
|
||||||
par_many_var 1 32 740
|
|
||||||
par_many_var_big_func 5XXX
|
par_many_var_big_func 5XXX
|
||||||
par_many_var_big_func 5XXX
|
par_many_var_big_func 5XXX
|
||||||
par_many_var_big_func 5XXX
|
par_many_var_big_func 5XXX
|
||||||
|
@ -105,7 +102,6 @@ par_many_var_big_func 5XXX
|
||||||
par_many_var_big_func 5XXX
|
par_many_var_big_func 5XXX
|
||||||
par_many_var_big_func 5XXX
|
par_many_var_big_func 5XXX
|
||||||
par_many_var_big_func 5XXX
|
par_many_var_big_func 5XXX
|
||||||
par_many_var_big_func 1XXX
|
|
||||||
par_many_var_func 1 2XXX 58XXX
|
par_many_var_func 1 2XXX 58XXX
|
||||||
par_many_var_func 1 2XXX 58XXX
|
par_many_var_func 1 2XXX 58XXX
|
||||||
par_many_var_func 1 1XXX 42XXX
|
par_many_var_func 1 1XXX 42XXX
|
||||||
|
|
Loading…
Reference in a new issue