mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-21 13:37:56 +00:00
testsuite: parallel-local-*s.sh will now timeout if a test takes >10x the median time.
This commit is contained in:
parent
b804568ffd
commit
fc97f4f61b
|
@ -234,4 +234,5 @@ install_packages &&
|
|||
copy_ssh_keys &&
|
||||
lsh_setup &&
|
||||
add_freebsd &&
|
||||
tmux_versions &&
|
||||
misc
|
||||
|
|
|
@ -767,21 +767,6 @@ par_profile() {
|
|||
rm ~/.parallel/testprofile_config
|
||||
}
|
||||
|
||||
par_bin() {
|
||||
echo '### Test --bin'
|
||||
seq 10 | parallel --pipe --bin 1 -j4 wc | sort
|
||||
paste <(seq 10) <(seq 10 -1 1) |
|
||||
parallel --pipe --colsep '\t' --bin 2 -j4 wc | sort
|
||||
echo '### Test --bin with expression that gives 1..n'
|
||||
paste <(seq 10) <(seq 10 -1 1) |
|
||||
parallel --pipe --colsep '\t' --bin '2 $_=$_%2+1' -j4 wc | sort
|
||||
echo '### Test --bin with expression that gives 0..n-1'
|
||||
paste <(seq 10) <(seq 10 -1 1) |
|
||||
parallel --pipe --colsep '\t' --bin '2 $_%=2' -j4 wc | sort
|
||||
# Fails - blocks!
|
||||
# paste <(seq 10000000) <(seq 10000000 -1 1) | parallel --pipe --colsep '\t' --bin 2 wc
|
||||
}
|
||||
|
||||
par_cr_newline_header() {
|
||||
echo '### --header : should set named replacement string if input line ends in \r\n'
|
||||
printf "foo\r\nbar\r\n" |
|
||||
|
@ -790,4 +775,4 @@ par_cr_newline_header() {
|
|||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
parallel --timeout 30 -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
parallel --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Simple jobs that never fails
|
||||
# Each should be taking >100s and be possible to run in parallel
|
||||
# Each should be taking 100-300s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
||||
# tmpdir with > 5 GB available
|
||||
|
@ -10,120 +10,100 @@ export TMP5G
|
|||
|
||||
rm -f /tmp/*.{tmx,pac,arg,all,log,swp,loa,ssh,df,pip,tmb,chr,tms,par}
|
||||
|
||||
par_exit_code() {
|
||||
echo 'bug #52207: Exit status 0 when child job is killed, even with "now,fail=1"'
|
||||
in_shell_run_command() {
|
||||
# Runs command in given shell via Perl's open3
|
||||
shell="$1"
|
||||
prg="$2"
|
||||
perl -MIPC::Open3 -e 'open3($a,$b,$c,"'$shell'","-c",'"$prg"'); wait; print $?>>8,"\n"'
|
||||
}
|
||||
export -f in_shell_run_command
|
||||
linebuffer_matters() {
|
||||
echo "### (--linebuffer) --compress $TAG should give different output"
|
||||
nolbfile=$(mktemp)
|
||||
lbfile=$(mktemp)
|
||||
controlfile=$(mktemp)
|
||||
randomfile=$(mktemp)
|
||||
# Random data because it does not compress well
|
||||
# forcing the compress tool to spit out compressed blocks
|
||||
perl -pe 'y/[A-Za-z]//cd; $t++ % 1000 or print "\n"' < /dev/urandom |
|
||||
head -c 10000000 > $randomfile
|
||||
export randomfile
|
||||
|
||||
runit() {
|
||||
OK="ash bash csh dash fish mksh posh rc sash sh static-sh tcsh"
|
||||
BAD="fdsh fizsh ksh ksh93 yash zsh"
|
||||
s=100
|
||||
rm -f /tmp/mysleep
|
||||
cp /bin/sleep /tmp/mysleep
|
||||
|
||||
echo '# Ideally the command should return the same'
|
||||
echo '# with or without parallel'
|
||||
echo '# but fish 2.4.0 returns 1 while X.X.X returns 0'
|
||||
parallel -kj500% --argsep ,, --tag in_shell_run_command {1} '{=2 $_=Q($_) =}' \
|
||||
,, $OK $BAD ,, \
|
||||
'/tmp/mysleep '$s \
|
||||
'parallel --halt-on-error now,fail=1 /tmp/mysleep ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 /tmp/mysleep ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 /bin/true ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 exit ::: '$s \
|
||||
'true;/tmp/mysleep '$s \
|
||||
'parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 "true;/bin/true" ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 "true;exit" ::: '$s
|
||||
}
|
||||
export -f runit
|
||||
testfunc() {
|
||||
linebuffer="$1"
|
||||
|
||||
killsleep() {
|
||||
sleep 5
|
||||
while true; do killall -9 mysleep 2>/dev/null; sleep 1; done
|
||||
}
|
||||
export -f killsleep
|
||||
incompressible_ascii() {
|
||||
# generate some incompressible ascii
|
||||
# with lines starting with the same string
|
||||
id=$1
|
||||
shuf $randomfile | perl -pe 's/^/'$id' /'
|
||||
# Sleep to give time to linebuffer-print the first part
|
||||
sleep 10
|
||||
shuf $randomfile | perl -pe 's/^/'$id' /'
|
||||
echo
|
||||
}
|
||||
export -f incompressible_ascii
|
||||
|
||||
parallel -uj0 --halt now,done=1 ::: runit killsleep
|
||||
}
|
||||
|
||||
par_retries_unreachable() {
|
||||
echo '### Test of --retries on unreachable host'
|
||||
seq 2 | stdout parallel -k --retries 2 -v -S 4.3.2.1,: echo
|
||||
}
|
||||
|
||||
par_outside_file_handle_limit() {
|
||||
ulimit -n 1024
|
||||
echo "### Test Force outside the file handle limit, 2009-02-17 Gave fork error"
|
||||
(echo echo Start; seq 1 20000 | perl -pe 's/^/true /'; echo echo end) |
|
||||
stdout parallel -uj 0 | egrep -v 'processes took|adjusting' |
|
||||
perl -pe 's/\d\d\d/999/'
|
||||
}
|
||||
|
||||
par_over_4GB() {
|
||||
echo '### Test if we can deal with output > 4 GB'
|
||||
echo |
|
||||
nice parallel --tmpdir $TMP5G -q perl -e '$a="x"x1000000;for(0..4300){print $a}' |
|
||||
nice md5sum
|
||||
}
|
||||
|
||||
par_mem_leak() {
|
||||
echo "### test for mem leak"
|
||||
|
||||
export parallel=parallel
|
||||
no_mem_leak() {
|
||||
run_measurements() {
|
||||
from=$1
|
||||
to=$2
|
||||
pause_every=$3
|
||||
measure() {
|
||||
# Input:
|
||||
# $1 = iterations
|
||||
# $2 = sleep 1 sec for every $2
|
||||
seq $1 | ramusage $parallel -u sleep '{= $_=$_%'$2'?0:1 =}'
|
||||
}
|
||||
export -f measure
|
||||
|
||||
seq $from $to | $parallel measure {} $pause_every |
|
||||
sort -n
|
||||
nowarn() {
|
||||
# Ignore certain warnings
|
||||
# parallel: Warning: Starting 11 processes took > 2 sec.
|
||||
# parallel: Warning: Consider adjusting -j. Press CTRL-C to stop.
|
||||
grep -v '^parallel: Warning: (Starting|Consider)' >&2
|
||||
}
|
||||
|
||||
# Return false if leaking
|
||||
# Normal: 16940-17320
|
||||
max1000=$(run_measurements 1000 1007 100000 | tail -n1)
|
||||
min30000=$(run_measurements 15000 15004 100000 | head -n1)
|
||||
if [ $max1000 -gt $min30000 ] ; then
|
||||
echo Probably no leak $max1000 -gt $min30000
|
||||
return 0
|
||||
else
|
||||
echo Probably leaks $max1000 not -gt $min30000
|
||||
# Make sure there are a few sleeps
|
||||
max1000=$(run_measurements 1001 1007 100 | tail -n1)
|
||||
min30000=$(run_measurements 30000 30004 100 | head -n1)
|
||||
if [ $max1000 -gt $min30000 ] ; then
|
||||
echo $max1000 -gt $min30000 = very likely no leak
|
||||
return 0
|
||||
else
|
||||
echo not $max1000 -gt $min30000 = very likely leak
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
parallel -j0 $linebuffer --compress $TAG \
|
||||
incompressible_ascii ::: {0..10} 2> >(nowarn) |
|
||||
perl -ne '/^(\d+)\s/ and print "$1\n"' |
|
||||
uniq |
|
||||
sort
|
||||
}
|
||||
|
||||
renice -n 3 $$ 2>/dev/null >/dev/null
|
||||
if no_mem_leak >/dev/null ; then
|
||||
echo no mem leak detected
|
||||
# These can run in parallel if there are enough ressources
|
||||
testfunc > $nolbfile
|
||||
testfunc > $controlfile
|
||||
testfunc --linebuffer > $lbfile
|
||||
wait
|
||||
|
||||
nolb="$(cat $nolbfile)"
|
||||
control="$(cat $controlfile)"
|
||||
lb="$(cat $lbfile)"
|
||||
rm $nolbfile $lbfile $controlfile $randomfile
|
||||
|
||||
if [ "$nolb" == "$control" ] ; then
|
||||
if [ "$lb" == "$nolb" ] ; then
|
||||
echo "BAD: --linebuffer makes no difference"
|
||||
else
|
||||
echo "OK: --linebuffer makes a difference"
|
||||
fi
|
||||
else
|
||||
echo possible mem leak;
|
||||
echo "BAD: control and nolb are not the same"
|
||||
fi
|
||||
}
|
||||
export -f linebuffer_matters
|
||||
|
||||
par_linebuffer_matters_compress_tag() {
|
||||
export TAG=--tag
|
||||
linebuffer_matters
|
||||
}
|
||||
|
||||
par_linebuffer_matters_compress() {
|
||||
linebuffer_matters
|
||||
}
|
||||
|
||||
par_linebuffer_files() {
|
||||
echo 'bug #48658: --linebuffer --files'
|
||||
rm -rf /tmp/par48658-*
|
||||
|
||||
doit() {
|
||||
compress="$1"
|
||||
echo "normal"
|
||||
parallel --linebuffer --compress-program $compress seq ::: 100000 |
|
||||
wc -l
|
||||
echo "--files"
|
||||
parallel --files --linebuffer --compress-program $1 seq ::: 100000 |
|
||||
wc -l
|
||||
echo "--results"
|
||||
parallel --results /tmp/par48658-$compress --linebuffer --compress-program $compress seq ::: 100000 |
|
||||
wc -l
|
||||
rm -rf "/tmp/par48658-$compress"
|
||||
}
|
||||
export -f doit
|
||||
# lrz complains 'Warning, unable to set nice value on thread'
|
||||
parallel -j1 --tag -k doit ::: zstd pzstd clzip lz4 lzop pigz pxz gzip plzip pbzip2 lzma xz lzip bzip2 lbzip2 lrz
|
||||
}
|
||||
|
||||
par_timeout() {
|
||||
echo "### test --timeout"
|
||||
|
@ -133,62 +113,6 @@ par_timeout() {
|
|||
perl -ne '10 < $_ and $_ < 100 and print "OK\n"'
|
||||
}
|
||||
|
||||
par_halt_on_error() {
|
||||
mytest() {
|
||||
HALT=$1
|
||||
BOOL1=$2
|
||||
BOOL2=$3
|
||||
(echo "sleep 1;$BOOL1";
|
||||
echo "sleep 2;$BOOL2";
|
||||
echo "sleep 3;$BOOL1") |
|
||||
parallel -j10 --halt-on-error $HALT
|
||||
echo $?
|
||||
(echo "sleep 1;$BOOL1";
|
||||
echo "sleep 2;$BOOL2";
|
||||
echo "sleep 3;$BOOL1";
|
||||
echo "sleep 4;non_exist";
|
||||
) |
|
||||
parallel -j10 --halt-on-error $HALT
|
||||
echo $?
|
||||
}
|
||||
export -f mytest
|
||||
parallel -j1 -k --tag mytest ::: -2 -1 0 1 2 ::: true false ::: true false
|
||||
}
|
||||
|
||||
par_test_build_and_install() {
|
||||
cd ~/privat/parallel
|
||||
# Make a .tar.gz file
|
||||
stdout make dist |
|
||||
perl -pe 's/make\[\d\]/make[0]/g;s/\d{8}/00000000/g'
|
||||
LAST=$(ls *tar.gz | tail -n1)
|
||||
|
||||
cd /tmp
|
||||
rm -rf parallel-20??????/
|
||||
tar xf ~/privat/parallel/$LAST
|
||||
cd parallel-20??????/
|
||||
|
||||
echo "### Test normal build and install"
|
||||
# Make sure files depending on *.pod have to be rebuilt
|
||||
touch src/*pod src/sql
|
||||
./configure --prefix=/tmp/parallel-install &&
|
||||
(stdout nice make -j3 >/dev/null;
|
||||
stdout nice make install) |
|
||||
perl -pe 's/make\[\d\]/make[0]/g;s/\d{8}/00000000/g'
|
||||
|
||||
echo '### Test installation missing pod2*'
|
||||
parallel which ::: pod2html pod2man pod2texi pod2pdf |
|
||||
sudo parallel mv {} {}.hidden
|
||||
# Make sure files depending on *.pod have to be rebuilt
|
||||
touch src/*pod src/sql
|
||||
./configure --prefix=/tmp/parallel-install &&
|
||||
(stdout nice make -j3 >/dev/null;
|
||||
stdout nice make install) |
|
||||
perl -pe 's/make\[\d\]/make[0]/g;s/\d{8}/00000000/g'
|
||||
|
||||
parallel which {}.hidden ::: pod2html pod2man pod2texi pod2pdf |
|
||||
sudo parallel mv {} {.}
|
||||
}
|
||||
|
||||
#par_crashing() {
|
||||
# echo '### bug #56322: sem crashed when running with input from seq'
|
||||
# echo "### This should not fail"
|
||||
|
@ -198,4 +122,5 @@ par_test_build_and_install() {
|
|||
#}
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | sort | parallel -vj0 -k --tag --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
parallel --timeout 1000% -j10 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
|
|
|
@ -4,34 +4,66 @@
|
|||
# Each should be taking 10-30s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
||||
par_macron() {
|
||||
echo '### See if \257\256 \257<\257> is replaced correctly'
|
||||
print_it() {
|
||||
parallel $2 ::: "echo $1"
|
||||
parallel $2 echo ::: "$1"
|
||||
parallel $2 echo "$1" ::: "$1"
|
||||
parallel $2 echo \""$1"\" ::: "$1"
|
||||
parallel $2 echo "$1"{} ::: "$1"
|
||||
parallel $2 echo \""$1"\"{} ::: "$1"
|
||||
}
|
||||
export -f print_it
|
||||
parallel --tag -k print_it \
|
||||
::: "$(perl -e 'print "\257"')" "$(perl -e 'print "\257\256"')" \
|
||||
"$(perl -e 'print "\257\257\256"')" \
|
||||
"$(perl -e 'print "\257<\257<\257>\257>"')" \
|
||||
::: -X -q -Xq -k
|
||||
par_colsep() {
|
||||
echo '### Test of --colsep'
|
||||
echo 'a%c%b' | parallel --colsep % echo {1} {3} {2}
|
||||
(echo 'a%c%b'; echo a%c%b%d) | parallel -k --colsep % echo {1} {3} {2} {4}
|
||||
(echo a%c%b; echo d%f%e) | parallel -k --colsep % echo {1} {3} {2}
|
||||
parallel -k --colsep % echo {1} {3} {2} ::: a%c%b d%f%e
|
||||
parallel -k --colsep % echo {1} {3} {2} ::: a%c%b
|
||||
parallel -k --colsep % echo {1} {3} {2} {4} ::: a%c%b a%c%b%d
|
||||
|
||||
|
||||
echo '### Test of tab as colsep'
|
||||
printf 'def\tabc\njkl\tghi' | parallel -k --colsep '\t' echo {2} {1}
|
||||
parallel -k -a <(printf 'def\tabc\njkl\tghi') --colsep '\t' echo {2} {1}
|
||||
|
||||
echo '### Test of multiple -a plus colsep'
|
||||
parallel --xapply -k -a <(printf 'def\njkl\n') -a <(printf 'abc\tghi\nmno\tpqr') --colsep '\t' echo {2} {1}
|
||||
|
||||
echo '### Test of multiple -a no colsep'
|
||||
parallel --xapply -k -a <(printf 'ghi\npqr\n') -a <(printf 'abc\tdef\njkl\tmno') echo {2} {1}
|
||||
|
||||
echo '### Test of quoting after colsplit'
|
||||
parallel --colsep % echo {2} {1} ::: '>/dev/null%>/tmp/null'
|
||||
|
||||
echo '### Test of --colsep as regexp'
|
||||
(echo 'a%c%%b'; echo a%c%b%d) | parallel -k --colsep %+ echo {1} {3} {2} {4}
|
||||
parallel -k --colsep %+ echo {1} {3} {2} {4} ::: a%c%%b a%c%b%d
|
||||
(echo 'a% c %%b'; echo a%c% b %d) | parallel -k --colsep %+ echo {1} {3} {2} {4}
|
||||
(echo 'a% c %%b'; echo a%c% b %d) | parallel -k --colsep %+ echo '"{1}_{3}_{2}_{4}"'
|
||||
|
||||
echo '### Test of -C'
|
||||
(echo 'a% c %%b'; echo a%c% b %d) | parallel -k -C %+ echo '"{1}_{3}_{2}_{4}"'
|
||||
|
||||
echo '### Test of --trim n'
|
||||
(echo 'a% c %%b'; echo a%c% b %d) | parallel -k --trim n --colsep %+ echo '"{1}_{3}_{2}_{4}"'
|
||||
parallel -k -C %+ echo '"{1}_{3}_{2}_{4}"' ::: 'a% c %%b' 'a%c% b %d'
|
||||
|
||||
echo '### Test of bug: If input is empty string'
|
||||
(echo ; echo abcbdbebf;echo abc) | parallel -k --colsep b -v echo {1}{2}
|
||||
}
|
||||
|
||||
par_kill_hup() {
|
||||
echo '### Are children killed if GNU Parallel receives HUP? There should be no sleep at the end'
|
||||
par_failing_compressor() {
|
||||
echo 'Compress with failing (de)compressor'
|
||||
echo 'Test --tag/--line-buffer/--files in all combinations'
|
||||
echo 'Test working/failing compressor/decompressor in all combinations'
|
||||
echo '(-k is used as a dummy argument)'
|
||||
stdout parallel -vk --header : --argsep ,,, \
|
||||
parallel -k {tag} {lb} {files} --compress --compress-program {comp} --decompress-program {decomp} echo ::: C={comp},D={decomp} \
|
||||
,,, tag --tag -k \
|
||||
,,, lb --line-buffer -k \
|
||||
,,, files --files -k \
|
||||
,,, comp 'cat;true' 'cat;false' \
|
||||
,,, decomp 'cat;true' 'cat;false' |
|
||||
perl -pe 's:/par......par:/tmpfile:'
|
||||
}
|
||||
|
||||
parallel -j 2 -q bash -c 'sleep {} & pid=$!; wait $pid' ::: 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 &
|
||||
T=$!
|
||||
sleep 3.9
|
||||
pstree $$
|
||||
kill -HUP $T
|
||||
sleep 4
|
||||
pstree $$
|
||||
par_fifo_under_csh() {
|
||||
echo '### Test --fifo under csh'
|
||||
|
||||
csh -c "seq 3000000 | parallel -k --pipe --fifo 'sleep .{#};cat {}|wc -c ; false; echo \$status; false'"
|
||||
echo exit $?
|
||||
}
|
||||
|
||||
par_parset() {
|
||||
|
@ -331,43 +363,6 @@ par__pipepart_tee() {
|
|||
rm $tmp
|
||||
}
|
||||
|
||||
par_interactive() {
|
||||
echo '### Test -p --interactive'
|
||||
cat >/tmp/parallel-script-for-expect <<_EOF
|
||||
#!/bin/bash
|
||||
|
||||
seq 1 3 | parallel -k -p "sleep 0.1; echo opt-p"
|
||||
seq 1 3 | parallel -k --interactive "sleep 0.1; echo opt--interactive"
|
||||
_EOF
|
||||
chmod 755 /tmp/parallel-script-for-expect
|
||||
|
||||
(
|
||||
expect -b - <<_EOF
|
||||
spawn /tmp/parallel-script-for-expect
|
||||
expect "echo opt-p 1"
|
||||
send "y\n"
|
||||
expect "echo opt-p 2"
|
||||
send "n\n"
|
||||
expect "echo opt-p 3"
|
||||
send "y\n"
|
||||
expect "opt-p 1"
|
||||
expect "opt-p 3"
|
||||
expect "echo opt--interactive 1"
|
||||
send "y\n"
|
||||
expect "echo opt--interactive 2"
|
||||
send "n\n"
|
||||
#expect "opt--interactive 1"
|
||||
expect "echo opt--interactive 3"
|
||||
send "y\n"
|
||||
expect "opt--interactive 3"
|
||||
send "\n"
|
||||
_EOF
|
||||
echo
|
||||
) | perl -ne 's/\r//g;/\S/ and print' |
|
||||
# Race will cause the order to change
|
||||
LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_k() {
|
||||
echo '### Test -k'
|
||||
ulimit -n 50
|
||||
|
@ -515,7 +510,7 @@ par_tmp_full() {
|
|||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1' |
|
||||
parallel --timeout 1000% -j10 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' |
|
||||
perl -pe 's/,31,0/,15,0/' |
|
||||
perl -pe 's:~:'$HOME':' |
|
||||
perl -pe 's:'$PWD':.:' |
|
||||
|
|
|
@ -4,6 +4,43 @@
|
|||
# Each should be taking 1-3s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
||||
par_interactive() {
|
||||
echo '### Test -p --interactive'
|
||||
cat >/tmp/parallel-script-for-expect <<_EOF
|
||||
#!/bin/bash
|
||||
|
||||
seq 1 3 | parallel -k -p "sleep 0.1; echo opt-p"
|
||||
seq 1 3 | parallel -k --interactive "sleep 0.1; echo opt--interactive"
|
||||
_EOF
|
||||
chmod 755 /tmp/parallel-script-for-expect
|
||||
|
||||
(
|
||||
expect -b - <<_EOF
|
||||
spawn /tmp/parallel-script-for-expect
|
||||
expect "echo opt-p 1"
|
||||
send "y\n"
|
||||
expect "echo opt-p 2"
|
||||
send "n\n"
|
||||
expect "echo opt-p 3"
|
||||
send "y\n"
|
||||
expect "opt-p 1"
|
||||
expect "opt-p 3"
|
||||
expect "echo opt--interactive 1"
|
||||
send "y\n"
|
||||
expect "echo opt--interactive 2"
|
||||
send "n\n"
|
||||
#expect "opt--interactive 1"
|
||||
expect "echo opt--interactive 3"
|
||||
send "y\n"
|
||||
expect "opt--interactive 3"
|
||||
send "\n"
|
||||
_EOF
|
||||
echo
|
||||
) | perl -ne 's/\r//g;/\S/ and print' |
|
||||
# Race will cause the order to change
|
||||
LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_bug43654() {
|
||||
echo "bug #43654: --bar with command not using {} - only last output line "
|
||||
COLUMNS=80 stdout parallel --bar true {.} ::: 1 | perl -pe 's/.*\r/\r/'
|
||||
|
@ -92,46 +129,6 @@ par_trailing_space_line_continuation() {
|
|||
parallel -kr -L2 -E bar echo ::: foo '' 'ole ' bar quux
|
||||
}
|
||||
|
||||
par_colsep() {
|
||||
echo '### Test of --colsep'
|
||||
echo 'a%c%b' | parallel --colsep % echo {1} {3} {2}
|
||||
(echo 'a%c%b'; echo a%c%b%d) | parallel -k --colsep % echo {1} {3} {2} {4}
|
||||
(echo a%c%b; echo d%f%e) | parallel -k --colsep % echo {1} {3} {2}
|
||||
parallel -k --colsep % echo {1} {3} {2} ::: a%c%b d%f%e
|
||||
parallel -k --colsep % echo {1} {3} {2} ::: a%c%b
|
||||
parallel -k --colsep % echo {1} {3} {2} {4} ::: a%c%b a%c%b%d
|
||||
|
||||
|
||||
echo '### Test of tab as colsep'
|
||||
printf 'def\tabc\njkl\tghi' | parallel -k --colsep '\t' echo {2} {1}
|
||||
parallel -k -a <(printf 'def\tabc\njkl\tghi') --colsep '\t' echo {2} {1}
|
||||
|
||||
echo '### Test of multiple -a plus colsep'
|
||||
parallel --xapply -k -a <(printf 'def\njkl\n') -a <(printf 'abc\tghi\nmno\tpqr') --colsep '\t' echo {2} {1}
|
||||
|
||||
echo '### Test of multiple -a no colsep'
|
||||
parallel --xapply -k -a <(printf 'ghi\npqr\n') -a <(printf 'abc\tdef\njkl\tmno') echo {2} {1}
|
||||
|
||||
echo '### Test of quoting after colsplit'
|
||||
parallel --colsep % echo {2} {1} ::: '>/dev/null%>/tmp/null'
|
||||
|
||||
echo '### Test of --colsep as regexp'
|
||||
(echo 'a%c%%b'; echo a%c%b%d) | parallel -k --colsep %+ echo {1} {3} {2} {4}
|
||||
parallel -k --colsep %+ echo {1} {3} {2} {4} ::: a%c%%b a%c%b%d
|
||||
(echo 'a% c %%b'; echo a%c% b %d) | parallel -k --colsep %+ echo {1} {3} {2} {4}
|
||||
(echo 'a% c %%b'; echo a%c% b %d) | parallel -k --colsep %+ echo '"{1}_{3}_{2}_{4}"'
|
||||
|
||||
echo '### Test of -C'
|
||||
(echo 'a% c %%b'; echo a%c% b %d) | parallel -k -C %+ echo '"{1}_{3}_{2}_{4}"'
|
||||
|
||||
echo '### Test of --trim n'
|
||||
(echo 'a% c %%b'; echo a%c% b %d) | parallel -k --trim n --colsep %+ echo '"{1}_{3}_{2}_{4}"'
|
||||
parallel -k -C %+ echo '"{1}_{3}_{2}_{4}"' ::: 'a% c %%b' 'a%c% b %d'
|
||||
|
||||
echo '### Test of bug: If input is empty string'
|
||||
(echo ; echo abcbdbebf;echo abc) | parallel -k --colsep b -v echo {1}{2}
|
||||
}
|
||||
|
||||
par_mix_triple_colon_with_quad_colon() {
|
||||
echo '### Test :::: mixed with :::'
|
||||
echo '### Test :::: < ::: :::'
|
||||
|
@ -209,13 +206,6 @@ par_profiles_with_space() {
|
|||
perl -pe 's:parallel./:parallel/:'
|
||||
}
|
||||
|
||||
par_fifo_under_csh() {
|
||||
echo '### Test --fifo under csh'
|
||||
|
||||
csh -c "seq 3000000 | parallel -k --pipe --fifo 'sleep .{#};cat {}|wc -c ; false; echo \$status; false'"
|
||||
echo exit $?
|
||||
}
|
||||
|
||||
par_compress_prg_fails() {
|
||||
echo '### bug #44546: If --compress-program fails: fail'
|
||||
doit() {
|
||||
|
@ -248,21 +238,6 @@ par_test_XI_mI() {
|
|||
seq 1 10 | parallel -k 'seq 1 {} | parallel -j1 -m -k -I :: echo a{} b::'
|
||||
}
|
||||
|
||||
par_failing_compressor() {
|
||||
echo 'Compress with failing (de)compressor'
|
||||
echo 'Test --tag/--line-buffer/--files in all combinations'
|
||||
echo 'Test working/failing compressor/decompressor in all combinations'
|
||||
echo '(-k is used as a dummy argument)'
|
||||
stdout parallel -vk --header : --argsep ,,, \
|
||||
parallel -k {tag} {lb} {files} --compress --compress-program {comp} --decompress-program {decomp} echo ::: C={comp},D={decomp} \
|
||||
,,, tag --tag -k \
|
||||
,,, lb --line-buffer -k \
|
||||
,,, files --files -k \
|
||||
,,, comp 'cat;true' 'cat;false' \
|
||||
,,, decomp 'cat;true' 'cat;false' |
|
||||
perl -pe 's:/par......par:/tmpfile:'
|
||||
}
|
||||
|
||||
par_result() {
|
||||
echo "### Test --results"
|
||||
mkdir -p /tmp/parallel_results_test
|
||||
|
@ -2386,4 +2361,4 @@ par_block_negative_prefix() {
|
|||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
parallel -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
parallel --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
|
|
150
testsuite/tests-to-run/parallel-local-300s.sh
Normal file
150
testsuite/tests-to-run/parallel-local-300s.sh
Normal file
|
@ -0,0 +1,150 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Simple jobs that never fails
|
||||
# Each should be taking >300s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
||||
# tmpdir with > 5 GB available
|
||||
TMP5G=${TMP5G:-/dev/shm}
|
||||
export TMP5G
|
||||
|
||||
rm -f /tmp/*.{tmx,pac,arg,all,log,swp,loa,ssh,df,pip,tmb,chr,tms,par}
|
||||
|
||||
par_retries_unreachable() {
|
||||
echo '### Test of --retries on unreachable host'
|
||||
seq 2 | stdout parallel -k --retries 2 -v -S 4.3.2.1,: echo
|
||||
}
|
||||
|
||||
par_outside_file_handle_limit() {
|
||||
ulimit -n 1024
|
||||
echo "### Test Force outside the file handle limit, 2009-02-17 Gave fork error"
|
||||
(echo echo Start; seq 1 20000 | perl -pe 's/^/true /'; echo echo end) |
|
||||
stdout parallel -uj 0 | egrep -v 'processes took|adjusting' |
|
||||
perl -pe 's/\d\d\d/999/'
|
||||
}
|
||||
|
||||
par_over_4GB() {
|
||||
echo '### Test if we can deal with output > 4 GB'
|
||||
echo |
|
||||
nice parallel --tmpdir $TMP5G -q perl -e '$a="x"x1000000;for(0..4300){print $a}' |
|
||||
nice md5sum
|
||||
}
|
||||
|
||||
par_mem_leak() {
|
||||
echo "### test for mem leak"
|
||||
|
||||
export parallel=parallel
|
||||
no_mem_leak() {
|
||||
run_measurements() {
|
||||
from=$1
|
||||
to=$2
|
||||
pause_every=$3
|
||||
measure() {
|
||||
# Input:
|
||||
# $1 = iterations
|
||||
# $2 = sleep 1 sec for every $2
|
||||
seq $1 | ramusage $parallel -u sleep '{= $_=$_%'$2'?0:1 =}'
|
||||
}
|
||||
export -f measure
|
||||
|
||||
seq $from $to | $parallel measure {} $pause_every |
|
||||
sort -n
|
||||
}
|
||||
|
||||
# Return false if leaking
|
||||
# Normal: 16940-17320
|
||||
max1000=$(run_measurements 1000 1007 100000 | tail -n1)
|
||||
min30000=$(run_measurements 15000 15004 100000 | head -n1)
|
||||
if [ $max1000 -gt $min30000 ] ; then
|
||||
echo Probably no leak $max1000 -gt $min30000
|
||||
return 0
|
||||
else
|
||||
echo Probably leaks $max1000 not -gt $min30000
|
||||
# Make sure there are a few sleeps
|
||||
max1000=$(run_measurements 1001 1007 100 | tail -n1)
|
||||
min30000=$(run_measurements 30000 30004 100 | head -n1)
|
||||
if [ $max1000 -gt $min30000 ] ; then
|
||||
echo $max1000 -gt $min30000 = very likely no leak
|
||||
return 0
|
||||
else
|
||||
echo not $max1000 -gt $min30000 = very likely leak
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
renice -n 3 $$ 2>/dev/null >/dev/null
|
||||
if no_mem_leak >/dev/null ; then
|
||||
echo no mem leak detected
|
||||
else
|
||||
echo possible mem leak;
|
||||
fi
|
||||
}
|
||||
|
||||
par_halt_on_error() {
|
||||
mytest() {
|
||||
HALT=$1
|
||||
BOOL1=$2
|
||||
BOOL2=$3
|
||||
(echo "sleep 1;$BOOL1";
|
||||
echo "sleep 2;$BOOL2";
|
||||
echo "sleep 3;$BOOL1") |
|
||||
parallel -j10 --halt-on-error $HALT
|
||||
echo $?
|
||||
(echo "sleep 1;$BOOL1";
|
||||
echo "sleep 2;$BOOL2";
|
||||
echo "sleep 3;$BOOL1";
|
||||
echo "sleep 4;non_exist";
|
||||
) |
|
||||
parallel -j10 --halt-on-error $HALT
|
||||
echo $?
|
||||
}
|
||||
export -f mytest
|
||||
parallel -j1 -k --tag mytest ::: -2 -1 0 1 2 ::: true false ::: true false
|
||||
}
|
||||
|
||||
par_test_build_and_install() {
|
||||
cd ~/privat/parallel
|
||||
# Make a .tar.gz file
|
||||
stdout make dist |
|
||||
perl -pe 's/make\[\d\]/make[0]/g;s/\d{8}/00000000/g'
|
||||
LAST=$(ls *tar.gz | tail -n1)
|
||||
|
||||
cd /tmp
|
||||
rm -rf parallel-20??????/
|
||||
tar xf ~/privat/parallel/$LAST
|
||||
cd parallel-20??????/
|
||||
|
||||
echo "### Test normal build and install"
|
||||
# Make sure files depending on *.pod have to be rebuilt
|
||||
touch src/*pod src/sql
|
||||
./configure --prefix=/tmp/parallel-install &&
|
||||
(stdout nice make -j3 >/dev/null;
|
||||
stdout nice make install) |
|
||||
perl -pe 's/make\[\d\]/make[0]/g;s/\d{8}/00000000/g'
|
||||
|
||||
echo '### Test installation missing pod2*'
|
||||
parallel which ::: pod2html pod2man pod2texi pod2pdf |
|
||||
sudo parallel mv {} {}.hidden
|
||||
# Make sure files depending on *.pod have to be rebuilt
|
||||
touch src/*pod src/sql
|
||||
./configure --prefix=/tmp/parallel-install &&
|
||||
(stdout nice make -j3 >/dev/null;
|
||||
stdout nice make install) |
|
||||
perl -pe 's/make\[\d\]/make[0]/g;s/\d{8}/00000000/g'
|
||||
|
||||
parallel which {}.hidden ::: pod2html pod2man pod2texi pod2pdf |
|
||||
sudo parallel mv {} {.}
|
||||
}
|
||||
|
||||
#par_crashing() {
|
||||
# echo '### bug #56322: sem crashed when running with input from seq'
|
||||
# echo "### This should not fail"
|
||||
# doit() { seq 100000000 |xargs -P 80 -n 1 sem true; }
|
||||
# export -f doit
|
||||
# parallel -j1 --timeout 100 --nice 11 doit ::: 1
|
||||
#}
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
parallel --timeout 1000% -j10 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
|
@ -4,6 +4,187 @@
|
|||
# Each should be taking 30-100s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
||||
par_exit_code() {
|
||||
echo 'bug #52207: Exit status 0 when child job is killed, even with "now,fail=1"'
|
||||
in_shell_run_command() {
|
||||
# Runs command in given shell via Perl's open3
|
||||
shell="$1"
|
||||
prg="$2"
|
||||
perl -MIPC::Open3 -e 'open3($a,$b,$c,"'$shell'","-c",'"$prg"'); wait; print $?>>8,"\n"'
|
||||
}
|
||||
export -f in_shell_run_command
|
||||
|
||||
runit() {
|
||||
OK="ash bash csh dash fish mksh posh rc sash sh static-sh tcsh"
|
||||
BAD="fdsh fizsh ksh ksh93 yash zsh"
|
||||
s=100
|
||||
rm -f /tmp/mysleep
|
||||
cp /bin/sleep /tmp/mysleep
|
||||
|
||||
echo '# Ideally the command should return the same'
|
||||
echo '# with or without parallel'
|
||||
echo '# but fish 2.4.0 returns 1 while X.X.X returns 0'
|
||||
parallel -kj500% --argsep ,, --tag in_shell_run_command {1} '{=2 $_=Q($_) =}' \
|
||||
,, $OK $BAD ,, \
|
||||
'/tmp/mysleep '$s \
|
||||
'parallel --halt-on-error now,fail=1 /tmp/mysleep ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 /tmp/mysleep ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 /bin/true ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 exit ::: '$s \
|
||||
'true;/tmp/mysleep '$s \
|
||||
'parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 "true;/bin/true" ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 "true;exit" ::: '$s
|
||||
}
|
||||
export -f runit
|
||||
|
||||
killsleep() {
|
||||
sleep 5
|
||||
while true; do killall -9 mysleep 2>/dev/null; sleep 1; done
|
||||
}
|
||||
export -f killsleep
|
||||
|
||||
parallel -uj0 --halt now,done=1 ::: runit killsleep
|
||||
}
|
||||
|
||||
par_macron() {
|
||||
echo '### See if \257\256 \257<\257> is replaced correctly'
|
||||
print_it() {
|
||||
parallel $2 ::: "echo $1"
|
||||
parallel $2 echo ::: "$1"
|
||||
parallel $2 echo "$1" ::: "$1"
|
||||
parallel $2 echo \""$1"\" ::: "$1"
|
||||
parallel $2 echo "$1"{} ::: "$1"
|
||||
parallel $2 echo \""$1"\"{} ::: "$1"
|
||||
}
|
||||
export -f print_it
|
||||
parallel --tag -k print_it \
|
||||
::: "$(perl -e 'print "\257"')" "$(perl -e 'print "\257\256"')" \
|
||||
"$(perl -e 'print "\257\257\256"')" \
|
||||
"$(perl -e 'print "\257<\257<\257>\257>"')" \
|
||||
::: -X -q -Xq -k
|
||||
}
|
||||
|
||||
par_groupby() {
|
||||
tsv() {
|
||||
printf "%s\t" a1 b1 C1; echo
|
||||
printf "%s\t" 2 2 2; echo
|
||||
printf "%s\t" 3 2 2; echo
|
||||
printf "%s\t" 3 3 2; echo
|
||||
printf "%s\t" 3 2 4; echo
|
||||
printf "%s\t" 3 2 2; echo
|
||||
printf "%s\t" 3 2 3; echo
|
||||
}
|
||||
export -f tsv
|
||||
|
||||
ssv() {
|
||||
# space separated
|
||||
printf "%s\t" a1 b1 C1; echo
|
||||
printf "%s " 2 2 2; echo
|
||||
printf "%s \t" 3 2 2; echo
|
||||
printf "%s\t " 3 3 2; echo
|
||||
printf "%s " 3 2 4; echo
|
||||
printf "%s\t\t" 3 2 2; echo
|
||||
printf "%s\t \t" 3 2 3; echo
|
||||
}
|
||||
export -f ssv
|
||||
|
||||
cssv() {
|
||||
# , + space separated
|
||||
printf "%s,\t" a1 b1 C1; echo
|
||||
printf "%s ," 2 2 2; echo
|
||||
printf "%s ,\t" 3 2 2; echo
|
||||
printf "%s\t, " 3 3 2; echo
|
||||
printf "%s,," 3 2 4; echo
|
||||
printf "%s\t,,, " 3 2 2; echo
|
||||
printf "%s\t" 3 2 3; echo
|
||||
}
|
||||
export -f cssv
|
||||
|
||||
csv() {
|
||||
# , separated
|
||||
printf "%s," a1 b1 C1; echo
|
||||
printf "%s," 2 2 2; echo
|
||||
printf "%s," 3 2 2; echo
|
||||
printf "%s," 3 3 2; echo
|
||||
printf "%s," 3 2 4; echo
|
||||
printf "%s," 3 2 2; echo
|
||||
printf "%s," 3 2 3; echo
|
||||
}
|
||||
export -f csv
|
||||
|
||||
tester() {
|
||||
block="$1"
|
||||
groupby="$2"
|
||||
generator="$3"
|
||||
colsep="$4"
|
||||
echo "### test $generator | --colsep $colsep --groupby $groupby $block"
|
||||
$generator |
|
||||
parallel --pipe --colsep "$colsep" --groupby "$groupby" -k $block 'echo NewRec; cat'
|
||||
}
|
||||
export -f tester
|
||||
parallel --tag -k tester \
|
||||
::: -N1 '--block 20' \
|
||||
::: '3 $_%=2' 3 's/^(.).*/$1/' C1 'C1 $_%=2' \
|
||||
::: tsv ssv cssv csv \
|
||||
:::+ '\t' '\s+' '[\s,]+' ','
|
||||
|
||||
# Test --colsep char: OK
|
||||
# Test --colsep pattern: OK
|
||||
# Test --colsep -N1: OK
|
||||
# Test --colsep --block 20: OK
|
||||
# Test --groupby colno: OK
|
||||
# Test --groupby 'colno perl': OK
|
||||
# Test --groupby colname: OK
|
||||
# Test --groupby 'colname perl': OK
|
||||
# Test space sep --colsep '\s': OK
|
||||
# Test --colsep --header : (OK: --header : not needed)
|
||||
}
|
||||
|
||||
par_groupby_pipepart() {
|
||||
tsv() {
|
||||
printf "%s\t" a1 b1 c1 d1 e1 f1; echo
|
||||
seq 100000 999999 | perl -pe '$_=join"\t",split//' |
|
||||
sort --parallel=8 --buffer-size=50% -rk3
|
||||
}
|
||||
export -f tsv
|
||||
|
||||
ssv() {
|
||||
# space separated
|
||||
tsv | perl -pe '@sep=("\t"," "); s/\t/$sep[rand(2)]/ge;'
|
||||
}
|
||||
export -f ssv
|
||||
|
||||
cssv() {
|
||||
# , + space separated
|
||||
tsv | perl -pe '@sep=("\t"," ",","); s/\t/$sep[rand(2)].$sep[rand(2)]/ge;'
|
||||
}
|
||||
export -f cssv
|
||||
|
||||
csv() {
|
||||
# , separated
|
||||
tsv | perl -pe 's/\t/,/g;'
|
||||
}
|
||||
export -f csv
|
||||
|
||||
tester() {
|
||||
generator="$1"
|
||||
colsep="$2"
|
||||
groupby="$3"
|
||||
tmp=`tempfile`
|
||||
|
||||
echo "### test $generator | --colsep $colsep --groupby $groupby"
|
||||
$generator > $tmp
|
||||
parallel --pipepart -a $tmp --colsep "$colsep" --groupby "$groupby" -k 'echo NewRec; wc'
|
||||
}
|
||||
export -f tester
|
||||
parallel --tag -k tester \
|
||||
::: tsv ssv cssv csv \
|
||||
:::+ '\t' '\s+' '[\s,]+' ',' \
|
||||
::: '3 $_%=2' 3 c1 'c1 $_%=2' 's/^(\d+[\t ,]+){2}(\d+).*/$2/'
|
||||
}
|
||||
|
||||
par_bug57364() {
|
||||
echo '### bug #57364: Race condition creating len cache file.'
|
||||
j=32
|
||||
|
@ -59,79 +240,6 @@ par_slow_total_jobs() {
|
|||
parallel -k echo '{=total_jobs()=}' 2> >(perl -pe 's/\d/X/g')
|
||||
}
|
||||
|
||||
linebuffer_matters() {
|
||||
echo "### (--linebuffer) --compress $TAG should give different output"
|
||||
nolbfile=$(mktemp)
|
||||
lbfile=$(mktemp)
|
||||
controlfile=$(mktemp)
|
||||
randomfile=$(mktemp)
|
||||
# Random data because it does not compress well
|
||||
# forcing the compress tool to spit out compressed blocks
|
||||
perl -pe 'y/[A-Za-z]//cd; $t++ % 1000 or print "\n"' < /dev/urandom |
|
||||
head -c 10000000 > $randomfile
|
||||
export randomfile
|
||||
|
||||
testfunc() {
|
||||
linebuffer="$1"
|
||||
|
||||
incompressible_ascii() {
|
||||
# generate some incompressible ascii
|
||||
# with lines starting with the same string
|
||||
id=$1
|
||||
shuf $randomfile | perl -pe 's/^/'$id' /'
|
||||
# Sleep to give time to linebuffer-print the first part
|
||||
sleep 10
|
||||
shuf $randomfile | perl -pe 's/^/'$id' /'
|
||||
echo
|
||||
}
|
||||
export -f incompressible_ascii
|
||||
|
||||
nowarn() {
|
||||
# Ignore certain warnings
|
||||
# parallel: Warning: Starting 11 processes took > 2 sec.
|
||||
# parallel: Warning: Consider adjusting -j. Press CTRL-C to stop.
|
||||
grep -v '^parallel: Warning: (Starting|Consider)' >&2
|
||||
}
|
||||
|
||||
parallel -j0 $linebuffer --compress $TAG \
|
||||
incompressible_ascii ::: {0..10} 2> >(nowarn) |
|
||||
perl -ne '/^(\d+)\s/ and print "$1\n"' |
|
||||
uniq |
|
||||
sort
|
||||
}
|
||||
|
||||
# These can run in parallel if there are enough ressources
|
||||
testfunc > $nolbfile
|
||||
testfunc > $controlfile
|
||||
testfunc --linebuffer > $lbfile
|
||||
wait
|
||||
|
||||
nolb="$(cat $nolbfile)"
|
||||
control="$(cat $controlfile)"
|
||||
lb="$(cat $lbfile)"
|
||||
rm $nolbfile $lbfile $controlfile $randomfile
|
||||
|
||||
if [ "$nolb" == "$control" ] ; then
|
||||
if [ "$lb" == "$nolb" ] ; then
|
||||
echo "BAD: --linebuffer makes no difference"
|
||||
else
|
||||
echo "OK: --linebuffer makes a difference"
|
||||
fi
|
||||
else
|
||||
echo "BAD: control and nolb are not the same"
|
||||
fi
|
||||
}
|
||||
export -f linebuffer_matters
|
||||
|
||||
par_linebuffer_matters_compress_tag() {
|
||||
export TAG=--tag
|
||||
linebuffer_matters
|
||||
}
|
||||
|
||||
par_linebuffer_matters_compress() {
|
||||
linebuffer_matters
|
||||
}
|
||||
|
||||
par_memfree() {
|
||||
echo '### test memfree - it should be killed by timeout'
|
||||
parallel --memfree 1k echo Free mem: ::: 1k
|
||||
|
@ -176,28 +284,6 @@ par_test_detected_shell() {
|
|||
grep -Ev 'parallel: Warning: (Starting .* processes took|Consider adjusting)'
|
||||
}
|
||||
|
||||
par_linebuffer_files() {
|
||||
echo 'bug #48658: --linebuffer --files'
|
||||
rm -rf /tmp/par48658-*
|
||||
|
||||
doit() {
|
||||
compress="$1"
|
||||
echo "normal"
|
||||
parallel --linebuffer --compress-program $compress seq ::: 100000 |
|
||||
wc -l
|
||||
echo "--files"
|
||||
parallel --files --linebuffer --compress-program $1 seq ::: 100000 |
|
||||
wc -l
|
||||
echo "--results"
|
||||
parallel --results /tmp/par48658-$compress --linebuffer --compress-program $compress seq ::: 100000 |
|
||||
wc -l
|
||||
rm -rf "/tmp/par48658-$compress"
|
||||
}
|
||||
export -f doit
|
||||
# lrz complains 'Warning, unable to set nice value on thread'
|
||||
parallel -j1 --tag -k doit ::: zstd pzstd clzip lz4 lzop pigz pxz gzip plzip pbzip2 lzma xz lzip bzip2 lbzip2 lrz
|
||||
}
|
||||
|
||||
par_no_newline_compress() {
|
||||
echo 'bug #41613: --compress --line-buffer - no newline';
|
||||
pipe_doit() {
|
||||
|
@ -347,4 +433,4 @@ par_keeporder_roundrobin() {
|
|||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | sort |
|
||||
parallel --delay 0.3 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
parallel --delay 0.3 --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
|
|
|
@ -4,6 +4,21 @@
|
|||
# Each should be taking 3-10s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
||||
par_bin() {
|
||||
echo '### Test --bin'
|
||||
seq 10 | parallel --pipe --bin 1 -j4 wc | sort
|
||||
paste <(seq 10) <(seq 10 -1 1) |
|
||||
parallel --pipe --colsep '\t' --bin 2 -j4 wc | sort
|
||||
echo '### Test --bin with expression that gives 1..n'
|
||||
paste <(seq 10) <(seq 10 -1 1) |
|
||||
parallel --pipe --colsep '\t' --bin '2 $_=$_%2+1' -j4 wc | sort
|
||||
echo '### Test --bin with expression that gives 0..n-1'
|
||||
paste <(seq 10) <(seq 10 -1 1) |
|
||||
parallel --pipe --colsep '\t' --bin '2 $_%=2' -j4 wc | sort
|
||||
# Fails - blocks!
|
||||
# paste <(seq 10000000) <(seq 10000000 -1 1) | parallel --pipe --colsep '\t' --bin 2 wc
|
||||
}
|
||||
|
||||
par_tee_with_premature_close() {
|
||||
echo '--tee --pipe should send all data to all commands'
|
||||
echo 'even if a command closes stdin before reading everything'
|
||||
|
@ -167,20 +182,6 @@ par_test_X_with_multiple_source() {
|
|||
parallel -j0 -kX echo {}-{.} ::: a b c ::: d e f
|
||||
}
|
||||
|
||||
par_resume_failed_k() {
|
||||
echo '### bug #38299: --resume-failed -k'
|
||||
tmp=$(tempfile)
|
||||
parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
|
||||
echo try 2. Gives failing - not 0
|
||||
parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
|
||||
echo with exit 0
|
||||
parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit 0 ::: 0 1 2 3 0 1
|
||||
sleep 0.5
|
||||
echo try 2 again. Gives empty
|
||||
parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
|
||||
rm $tmp
|
||||
}
|
||||
|
||||
par_resume_k() {
|
||||
echo '### --resume -k'
|
||||
tmp=$(tempfile)
|
||||
|
@ -434,125 +435,6 @@ par_lb_mem_usage() {
|
|||
memusage 100000 parallel --lb ::: 'long_line; long_line'
|
||||
}
|
||||
|
||||
par_groupby() {
|
||||
tsv() {
|
||||
printf "%s\t" a1 b1 C1; echo
|
||||
printf "%s\t" 2 2 2; echo
|
||||
printf "%s\t" 3 2 2; echo
|
||||
printf "%s\t" 3 3 2; echo
|
||||
printf "%s\t" 3 2 4; echo
|
||||
printf "%s\t" 3 2 2; echo
|
||||
printf "%s\t" 3 2 3; echo
|
||||
}
|
||||
export -f tsv
|
||||
|
||||
ssv() {
|
||||
# space separated
|
||||
printf "%s\t" a1 b1 C1; echo
|
||||
printf "%s " 2 2 2; echo
|
||||
printf "%s \t" 3 2 2; echo
|
||||
printf "%s\t " 3 3 2; echo
|
||||
printf "%s " 3 2 4; echo
|
||||
printf "%s\t\t" 3 2 2; echo
|
||||
printf "%s\t \t" 3 2 3; echo
|
||||
}
|
||||
export -f ssv
|
||||
|
||||
cssv() {
|
||||
# , + space separated
|
||||
printf "%s,\t" a1 b1 C1; echo
|
||||
printf "%s ," 2 2 2; echo
|
||||
printf "%s ,\t" 3 2 2; echo
|
||||
printf "%s\t, " 3 3 2; echo
|
||||
printf "%s,," 3 2 4; echo
|
||||
printf "%s\t,,, " 3 2 2; echo
|
||||
printf "%s\t" 3 2 3; echo
|
||||
}
|
||||
export -f cssv
|
||||
|
||||
csv() {
|
||||
# , separated
|
||||
printf "%s," a1 b1 C1; echo
|
||||
printf "%s," 2 2 2; echo
|
||||
printf "%s," 3 2 2; echo
|
||||
printf "%s," 3 3 2; echo
|
||||
printf "%s," 3 2 4; echo
|
||||
printf "%s," 3 2 2; echo
|
||||
printf "%s," 3 2 3; echo
|
||||
}
|
||||
export -f csv
|
||||
|
||||
tester() {
|
||||
block="$1"
|
||||
groupby="$2"
|
||||
generator="$3"
|
||||
colsep="$4"
|
||||
echo "### test $generator | --colsep $colsep --groupby $groupby $block"
|
||||
$generator |
|
||||
parallel --pipe --colsep "$colsep" --groupby "$groupby" -k $block 'echo NewRec; cat'
|
||||
}
|
||||
export -f tester
|
||||
parallel --tag -k tester \
|
||||
::: -N1 '--block 20' \
|
||||
::: '3 $_%=2' 3 's/^(.).*/$1/' C1 'C1 $_%=2' \
|
||||
::: tsv ssv cssv csv \
|
||||
:::+ '\t' '\s+' '[\s,]+' ','
|
||||
|
||||
# Test --colsep char: OK
|
||||
# Test --colsep pattern: OK
|
||||
# Test --colsep -N1: OK
|
||||
# Test --colsep --block 20: OK
|
||||
# Test --groupby colno: OK
|
||||
# Test --groupby 'colno perl': OK
|
||||
# Test --groupby colname: OK
|
||||
# Test --groupby 'colname perl': OK
|
||||
# Test space sep --colsep '\s': OK
|
||||
# Test --colsep --header : (OK: --header : not needed)
|
||||
}
|
||||
|
||||
par_groupby_pipepart() {
|
||||
tsv() {
|
||||
printf "%s\t" a1 b1 c1 d1 e1 f1; echo
|
||||
seq 100000 999999 | perl -pe '$_=join"\t",split//' |
|
||||
sort --parallel=8 --buffer-size=50% -rk3
|
||||
}
|
||||
export -f tsv
|
||||
|
||||
ssv() {
|
||||
# space separated
|
||||
tsv | perl -pe '@sep=("\t"," "); s/\t/$sep[rand(2)]/ge;'
|
||||
}
|
||||
export -f ssv
|
||||
|
||||
cssv() {
|
||||
# , + space separated
|
||||
tsv | perl -pe '@sep=("\t"," ",","); s/\t/$sep[rand(2)].$sep[rand(2)]/ge;'
|
||||
}
|
||||
export -f cssv
|
||||
|
||||
csv() {
|
||||
# , separated
|
||||
tsv | perl -pe 's/\t/,/g;'
|
||||
}
|
||||
export -f csv
|
||||
|
||||
tester() {
|
||||
generator="$1"
|
||||
colsep="$2"
|
||||
groupby="$3"
|
||||
tmp=`tempfile`
|
||||
|
||||
echo "### test $generator | --colsep $colsep --groupby $groupby"
|
||||
$generator > $tmp
|
||||
parallel --pipepart -a $tmp --colsep "$colsep" --groupby "$groupby" -k 'echo NewRec; wc'
|
||||
}
|
||||
export -f tester
|
||||
parallel --tag -k tester \
|
||||
::: tsv ssv cssv csv \
|
||||
:::+ '\t' '\s+' '[\s,]+' ',' \
|
||||
::: '3 $_%=2' 3 c1 'c1 $_%=2' 's/^(\d+[\t ,]+){2}(\d+).*/$2/'
|
||||
}
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
parallel -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
parallel --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
|
|
|
@ -61,6 +61,89 @@ par_hostgroup() {
|
|||
parallel -S @g1+g2 -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo whoami\;true ::: {1..6} | sort
|
||||
}
|
||||
|
||||
par_PARALLEL_RSYNC_OPTS() {
|
||||
echo '### test rsync opts'
|
||||
touch parallel_rsync_opts.test
|
||||
parallel --rsync-opts -rlDzRRRR -vv -S parallel@lo --trc {}.out touch {}.out ::: parallel_rsync_opts.test |
|
||||
perl -ne 's/(rsync .*?RRRR)/print $1/ge'
|
||||
export PARALLEL_RSYNC_OPTS=-zzrrllddRRRR
|
||||
parallel -vv -S parallel@lo --trc {}.out touch {}.out ::: parallel_rsync_opts.test |
|
||||
perl -ne 's/(rsync .*?RRRR)/print $1/ge'
|
||||
rm parallel_rsync_opts.test parallel_rsync_opts.test.out
|
||||
echo
|
||||
}
|
||||
|
||||
par_retries_bug_from_2010() {
|
||||
echo '### Bug with --retries'
|
||||
seq 1 8 |
|
||||
parallel --retries 2 --sshlogin 8/localhost,8/: -j+0 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 8 |
|
||||
parallel --retries 2 --sshlogin 8/localhost,8/: -j+1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 2 |
|
||||
parallel --retries 2 --sshlogin 8/localhost,8/: -j-1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 1 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: -j1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 1 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: -j9 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 1 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: -j0 "hostname; false" |
|
||||
wc -l
|
||||
|
||||
echo '### These were not affected by the bug'
|
||||
seq 1 8 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,9/: -j-1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 8 |
|
||||
parallel --retries 2 --sshlogin 8/localhost,8/: -j-1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 1 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: "hostname; false" |
|
||||
wc -l
|
||||
seq 1 4 |
|
||||
parallel --retries 2 --sshlogin 2/localhost,2/: -j-1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 4 |
|
||||
parallel --retries 2 --sshlogin 2/localhost,2/: -j1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 4 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: -j1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 2 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: -j1 "hostname; false" |
|
||||
wc -l
|
||||
}
|
||||
|
||||
par_kill_hup() {
|
||||
echo '### Are children killed if GNU Parallel receives HUP? There should be no sleep at the end'
|
||||
|
||||
parallel -j 2 -q bash -c 'sleep {} & pid=$!; wait $pid' ::: 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 &
|
||||
T=$!
|
||||
sleep 3.9
|
||||
pstree $$
|
||||
kill -HUP $T
|
||||
sleep 4
|
||||
pstree $$
|
||||
}
|
||||
|
||||
par_resume_failed_k() {
|
||||
echo '### bug #38299: --resume-failed -k'
|
||||
tmp=$(tempfile)
|
||||
parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
|
||||
echo try 2. Gives failing - not 0
|
||||
parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
|
||||
echo with exit 0
|
||||
parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit 0 ::: 0 1 2 3 0 1
|
||||
sleep 0.5
|
||||
echo try 2 again. Gives empty
|
||||
parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
|
||||
rm $tmp
|
||||
}
|
||||
|
||||
par_testhalt() {
|
||||
testhalt_false() {
|
||||
echo '### testhalt --halt '$1;
|
||||
|
|
|
@ -7,129 +7,118 @@ export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami`
|
|||
export DEBUG=false
|
||||
|
||||
p_showsqlresult() {
|
||||
SERVERURL=$1
|
||||
TABLE=$2
|
||||
# No hostname as it can differ
|
||||
sql $SERVERURL "select Command,V1,V2,Stdout,Stderr from $TABLE order by seq;"
|
||||
SERVERURL=$1
|
||||
TABLE=$2
|
||||
# No hostname as it can differ
|
||||
sql $SERVERURL "select Command,V1,V2,Stdout,Stderr from $TABLE order by seq;"
|
||||
}
|
||||
|
||||
p_wrapper() {
|
||||
INNER=$1
|
||||
SERVERURL=$(eval echo $2)
|
||||
TABLE=TBL$RANDOM
|
||||
DBURL=$SERVERURL/$TABLE
|
||||
T1=$(tempfile)
|
||||
T2=$(tempfile)
|
||||
eval "$INNER"
|
||||
echo Exit=$?
|
||||
wait
|
||||
echo Exit=$?
|
||||
$DEBUG && sort -u $T1 $T2;
|
||||
rm $T1 $T2
|
||||
p_showsqlresult $SERVERURL $TABLE
|
||||
$DEBUG || sql $SERVERURL "drop table $TABLE;" >/dev/null 2>/dev/null
|
||||
INNER=$1
|
||||
SERVERURL=$(eval echo $2)
|
||||
TABLE=TBL$RANDOM
|
||||
DBURL=$SERVERURL/$TABLE
|
||||
T1=$(tempfile)
|
||||
T2=$(tempfile)
|
||||
eval "$INNER"
|
||||
echo Exit=$?
|
||||
wait
|
||||
echo Exit=$?
|
||||
$DEBUG && sort -u $T1 $T2;
|
||||
rm $T1 $T2
|
||||
p_showsqlresult $SERVERURL $TABLE
|
||||
$DEBUG || sql $SERVERURL "drop table $TABLE;" >/dev/null 2>/dev/null
|
||||
}
|
||||
|
||||
p_template() {
|
||||
(sleep 3;
|
||||
parallel --sqlworker $DBURL "$@" sleep .3\;echo >$T1) &
|
||||
parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
|
||||
(
|
||||
# Make sure all jobs are inserted before starting a worker
|
||||
sleep 10;
|
||||
parallel --sqlworker $DBURL "$@" sleep .3\;echo >$T1
|
||||
) &
|
||||
parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
|
||||
}
|
||||
|
||||
par_sqlandworker() {
|
||||
p_template
|
||||
p_template
|
||||
}
|
||||
|
||||
par_sqlandworker_lo() {
|
||||
p_template -S lo
|
||||
p_template -S lo
|
||||
}
|
||||
|
||||
par_sqlandworker_results() {
|
||||
p_template --results /tmp/out--sql
|
||||
p_template --results /tmp/out--sql
|
||||
}
|
||||
|
||||
par_sqlandworker_tag() {
|
||||
p_template --tag
|
||||
p_template --tag
|
||||
}
|
||||
|
||||
# --linebuffer no longer works with sql
|
||||
#
|
||||
# par_sqlandworker_linebuffer() {
|
||||
# p_template --linebuffer
|
||||
# }
|
||||
#
|
||||
# par_sqlandworker_linebuffer_tag() {
|
||||
# p_template --linebuffer --tag
|
||||
# }
|
||||
#
|
||||
# par_sqlandworker_compress_linebuffer_tag() {
|
||||
# p_template --compress --linebuffer --tag
|
||||
# }
|
||||
|
||||
par_sqlandworker_unbuffer() {
|
||||
p_template -u
|
||||
p_template -u
|
||||
}
|
||||
|
||||
par_sqlandworker_total_jobs() {
|
||||
p_template echo {#} of '{=1 $_=total_jobs(); =};'
|
||||
p_template echo {#} of '{=1 $_=total_jobs(); =};'
|
||||
}
|
||||
|
||||
par_append_different_cmd() {
|
||||
parallel --sqlmaster $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
|
||||
parallel --sqlmaster +$DBURL sleep .3\;echo {2}-{1} ::: {11..15} ::: {A..E} >>$T2;
|
||||
parallel --sqlworker $DBURL >$T1
|
||||
parallel --sqlmaster $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
|
||||
parallel --sqlmaster +$DBURL sleep .3\;echo {2}-{1} ::: {11..15} ::: {A..E} >>$T2;
|
||||
parallel --sqlworker $DBURL >$T1
|
||||
}
|
||||
|
||||
par_shuf() {
|
||||
MD5=$(echo $SERVERURL | md5sum | perl -pe 's/(...).*/$1/')
|
||||
T=/tmp/parallel-bug49791-$MD5
|
||||
[ -e $T ] && rm -rf $T
|
||||
export PARALLEL="--shuf --result $T"
|
||||
parallel --sqlandworker $DBURL sleep .3\;echo \
|
||||
::: {1..5} ::: {a..e} >$T2;
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
unset PARALLEL
|
||||
wait;
|
||||
# Did it compute correctly?
|
||||
cat $T/1/*/*/*/stdout
|
||||
# Did it shuffle
|
||||
SHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
|
||||
export PARALLEL="--result $T"
|
||||
parallel --sqlandworker $DBURL sleep .3\;echo \
|
||||
::: {1..5} ::: {a..e} >$T2;
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
unset PARALLEL
|
||||
wait;
|
||||
NOSHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
|
||||
DIFFSIZE=$(diff <(echo "$SHUF") <(echo "$NOSHUF") | wc -c)
|
||||
if [ $DIFFSIZE -gt 2500 ]; then
|
||||
echo OK: Diff bigger than 2500 char
|
||||
fi
|
||||
[ -e $T ] && rm -rf $T
|
||||
touch $T1
|
||||
MD5=$(echo $SERVERURL | md5sum | perl -pe 's/(...).*/$1/')
|
||||
T=/tmp/parallel-bug49791-$MD5
|
||||
[ -e $T ] && rm -rf $T
|
||||
export PARALLEL="--shuf --result $T"
|
||||
parallel --sqlandworker $DBURL sleep .3\;echo \
|
||||
::: {1..5} ::: {a..e} >$T2;
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
unset PARALLEL
|
||||
wait;
|
||||
# Did it compute correctly?
|
||||
cat $T/1/*/*/*/stdout
|
||||
# Did it shuffle
|
||||
SHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
|
||||
export PARALLEL="--result $T"
|
||||
parallel --sqlandworker $DBURL sleep .3\;echo \
|
||||
::: {1..5} ::: {a..e} >$T2;
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
parallel --sqlworker $DBURL >$T2 &
|
||||
unset PARALLEL
|
||||
wait;
|
||||
NOSHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
|
||||
DIFFSIZE=$(diff <(echo "$SHUF") <(echo "$NOSHUF") | wc -c)
|
||||
if [ $DIFFSIZE -gt 2500 ]; then
|
||||
echo OK: Diff bigger than 2500 char
|
||||
fi
|
||||
[ -e $T ] && rm -rf $T
|
||||
touch $T1
|
||||
}
|
||||
|
||||
par_sql_joblog() {
|
||||
echo '### should only give a single --joblog heading'
|
||||
echo '### --sqlmaster/--sqlworker'
|
||||
parallel -k --joblog - --sqlmaster $DBURL --wait sleep .3\;echo ::: {1..5} ::: {a..e} |
|
||||
perl -pe 's/\d+\.\d+/999.999/g' | sort -n &
|
||||
sleep 0.5
|
||||
T=$(tempfile)
|
||||
parallel -k --joblog - --sqlworker $DBURL > $T
|
||||
wait
|
||||
# Needed because of race condition
|
||||
cat $T; rm $T
|
||||
echo '### --sqlandworker'
|
||||
parallel -k --joblog - --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} |
|
||||
perl -pe 's/\d+\.\d+/999.999/g' | sort -n
|
||||
# TODO --sqlandworker --wait
|
||||
echo '### should only give a single --joblog heading'
|
||||
echo '### --sqlmaster/--sqlworker'
|
||||
parallel -k --joblog - --sqlmaster $DBURL --wait sleep .3\;echo ::: {1..5} ::: {a..e} |
|
||||
perl -pe 's/\d+\.\d+/999.999/g' | sort -n &
|
||||
sleep 0.5
|
||||
T=$(tempfile)
|
||||
parallel -k --joblog - --sqlworker $DBURL > $T
|
||||
wait
|
||||
# Needed because of race condition
|
||||
cat $T; rm $T
|
||||
echo '### --sqlandworker'
|
||||
parallel -k --joblog - --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} |
|
||||
perl -pe 's/\d+\.\d+/999.999/g' | sort -n
|
||||
# TODO --sqlandworker --wait
|
||||
}
|
||||
|
||||
par_no_table() {
|
||||
|
@ -147,6 +136,7 @@ par_no_table() {
|
|||
export -f $(compgen -A function | egrep 'p_|par_')
|
||||
# Tested that -j0 in parallel is fastest (up to 15 jobs)
|
||||
# more than 3 jobs: sqlite locks
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
stdout parallel --timeout 100 -vj50% -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
|
||||
export LC_ALL=C
|
||||
compgen -A function | grep par_ | sort |
|
||||
stdout parallel --timeout 2000 -vj50% -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
|
||||
:::: - ::: \$MYSQL \$PG \$SQLITE
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
# GNU SQL tests
|
||||
# GNU Parallel SQL tests
|
||||
# The tests must be able to run in parallel
|
||||
|
||||
export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db
|
||||
|
@ -34,7 +34,7 @@ p_wrapper() {
|
|||
}
|
||||
|
||||
p_template() {
|
||||
(sleep 4;
|
||||
(sleep 6;
|
||||
parallel --sqlworker $DBURL "$@" sleep .3\;echo >$T1) &
|
||||
parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ par_shuf() {
|
|||
wait;
|
||||
# Did it compute correctly?
|
||||
cat $T/1/*/*/*/stdout
|
||||
# Did it shuffle
|
||||
# Did it shuffle (Compare job table to non-shuffled)
|
||||
SHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
|
||||
export PARALLEL="--result $T"
|
||||
parallel --sqlandworker $DBURL sleep .3\;echo \
|
||||
|
|
|
@ -68,18 +68,6 @@ par_load_csh() {
|
|||
parallel --load 100% -S csh@lo echo ::: a
|
||||
}
|
||||
|
||||
par_PARALLEL_RSYNC_OPTS() {
|
||||
echo '### test rsync opts'
|
||||
touch parallel_rsync_opts.test
|
||||
parallel --rsync-opts -rlDzRRRR -vv -S parallel@lo --trc {}.out touch {}.out ::: parallel_rsync_opts.test |
|
||||
perl -ne 's/(rsync .*?RRRR)/print $1/ge'
|
||||
export PARALLEL_RSYNC_OPTS=-zzrrllddRRRR
|
||||
parallel -vv -S parallel@lo --trc {}.out touch {}.out ::: parallel_rsync_opts.test |
|
||||
perl -ne 's/(rsync .*?RRRR)/print $1/ge'
|
||||
rm parallel_rsync_opts.test parallel_rsync_opts.test.out
|
||||
echo
|
||||
}
|
||||
|
||||
par_bar_m() {
|
||||
echo '### test --bar -m'
|
||||
stdout parallel --bar -P 2 -m sleep ::: 1 1 2 2 3 3 |
|
||||
|
@ -118,51 +106,6 @@ par_retries_4() {
|
|||
retries 4 48 49
|
||||
}
|
||||
|
||||
par_retries_bug_from_2010() {
|
||||
echo '### Bug with --retries'
|
||||
seq 1 8 |
|
||||
parallel --retries 2 --sshlogin 8/localhost,8/: -j+0 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 8 |
|
||||
parallel --retries 2 --sshlogin 8/localhost,8/: -j+1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 2 |
|
||||
parallel --retries 2 --sshlogin 8/localhost,8/: -j-1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 1 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: -j1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 1 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: -j9 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 1 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: -j0 "hostname; false" |
|
||||
wc -l
|
||||
|
||||
echo '### These were not affected by the bug'
|
||||
seq 1 8 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,9/: -j-1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 8 |
|
||||
parallel --retries 2 --sshlogin 8/localhost,8/: -j-1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 1 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: "hostname; false" |
|
||||
wc -l
|
||||
seq 1 4 |
|
||||
parallel --retries 2 --sshlogin 2/localhost,2/: -j-1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 4 |
|
||||
parallel --retries 2 --sshlogin 2/localhost,2/: -j1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 4 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: -j1 "hostname; false" |
|
||||
wc -l
|
||||
seq 1 2 |
|
||||
parallel --retries 2 --sshlogin 1/localhost,1/: -j1 "hostname; false" |
|
||||
wc -l
|
||||
}
|
||||
|
||||
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_ | LC_ALL=C sort |
|
||||
|
|
|
@ -44,25 +44,6 @@ par_basic_halt true
|
|||
par_basic_halt parallel: Error: --halt must have 'never', 'soon', or 'now'.
|
||||
par_basic_halt parallel: Error: --halt soon must be followed by ,success or ,fail.
|
||||
par_basic_halt parallel: Error: --halt now must be followed by ,success or ,fail.
|
||||
par_bin ### Test --bin
|
||||
par_bin 2 2 4
|
||||
par_bin 2 2 4
|
||||
par_bin 3 3 6
|
||||
par_bin 3 3 7
|
||||
par_bin 2 4 8
|
||||
par_bin 2 4 8
|
||||
par_bin 3 6 13
|
||||
par_bin 3 6 13
|
||||
par_bin ### Test --bin with expression that gives 1..n
|
||||
par_bin 0 0 0
|
||||
par_bin 0 0 0
|
||||
par_bin 5 10 21
|
||||
par_bin 5 10 21
|
||||
par_bin ### Test --bin with expression that gives 0..n-1
|
||||
par_bin 0 0 0
|
||||
par_bin 0 0 0
|
||||
par_bin 5 10 21
|
||||
par_bin 5 10 21
|
||||
par_blocking_redir 0 0 0
|
||||
par_blocking_redir 0 0 0
|
||||
par_blocking_redir 1 9 54
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -24,21 +24,187 @@ par__pipepart_spawn 1:local / 2+ / 2+2+2+
|
|||
par__pipepart_tee bug #45479: --pipe/--pipepart --tee
|
||||
par__pipepart_tee --pipepart --tee
|
||||
par__pipepart_tee 314572800
|
||||
par_colsep ### Test of --colsep
|
||||
par_colsep a b c
|
||||
par_colsep a b c
|
||||
par_colsep a b c d
|
||||
par_colsep a b c
|
||||
par_colsep d e f
|
||||
par_colsep a b c
|
||||
par_colsep d e f
|
||||
par_colsep a b c
|
||||
par_colsep a b c
|
||||
par_colsep a b c d
|
||||
par_colsep ### Test of tab as colsep
|
||||
par_colsep abc def
|
||||
par_colsep ghi jkl
|
||||
par_colsep abc def
|
||||
par_colsep ghi jkl
|
||||
par_colsep ### Test of multiple -a plus colsep
|
||||
par_colsep abc def
|
||||
par_colsep mno jkl
|
||||
par_colsep ### Test of multiple -a no colsep
|
||||
par_colsep abc def ghi
|
||||
par_colsep jkl mno pqr
|
||||
par_colsep ### Test of quoting after colsplit
|
||||
par_colsep >/tmp/null >/dev/null
|
||||
par_colsep ### Test of --colsep as regexp
|
||||
par_colsep a b c
|
||||
par_colsep a b c d
|
||||
par_colsep a b c
|
||||
par_colsep a b c d
|
||||
par_colsep a b c
|
||||
par_colsep a b c d
|
||||
par_colsep a_b_c_
|
||||
par_colsep a_b_c_d
|
||||
par_colsep ### Test of -C
|
||||
par_colsep a_b_c_
|
||||
par_colsep a_b_c_d
|
||||
par_colsep ### Test of --trim n
|
||||
par_colsep a_b_' c '_
|
||||
par_colsep a_' b '_c_d
|
||||
par_colsep a_b_c_
|
||||
par_colsep a_b_c_d
|
||||
par_colsep ### Test of bug: If input is empty string
|
||||
par_colsep echo ''
|
||||
par_colsep
|
||||
par_colsep echo ac
|
||||
par_colsep ac
|
||||
par_colsep echo ac
|
||||
par_colsep ac
|
||||
par_compress_fail ### bug #41609: --compress fails
|
||||
par_compress_fail f1a751b1283e99e7dda40f63f1225f74 -
|
||||
par_compress_fail f1a751b1283e99e7dda40f63f1225f74 -
|
||||
par_interactive ### Test -p --interactive
|
||||
par_interactive opt--interactive 1
|
||||
par_interactive opt--interactive 3
|
||||
par_interactive opt-p 1
|
||||
par_interactive opt-p 3
|
||||
par_interactive sleep 0.1; echo opt--interactive 1 ?...y
|
||||
par_interactive sleep 0.1; echo opt--interactive 2 ?...n
|
||||
par_interactive sleep 0.1; echo opt--interactive 3 ?...y
|
||||
par_interactive sleep 0.1; echo opt-p 1 ?...y
|
||||
par_interactive sleep 0.1; echo opt-p 2 ?...n
|
||||
par_interactive sleep 0.1; echo opt-p 3 ?...y
|
||||
par_interactive spawn /tmp/parallel-script-for-expect
|
||||
par_failing_compressor Compress with failing (de)compressor
|
||||
par_failing_compressor Test --tag/--line-buffer/--files in all combinations
|
||||
par_failing_compressor Test working/failing compressor/decompressor in all combinations
|
||||
par_failing_compressor (-k is used as a dummy argument)
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
|
||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
|
||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
|
||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
|
||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true
|
||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false
|
||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true
|
||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false
|
||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_fifo_under_csh ### Test --fifo under csh
|
||||
par_fifo_under_csh 1048571
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048572
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048572
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048572
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048572
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048572
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048569
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 868832
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh exit 22
|
||||
par_k ### Test -k
|
||||
par_k parallel: Warning: Only enough file handles to run X jobs in parallel.
|
||||
par_k parallel: Warning: Running 'parallel -jX -N X --pipe parallel -jX' or
|
||||
|
@ -253,119 +419,12 @@ par_kill_children_timeout parallel: Warning: This job was killed because it time
|
|||
par_kill_children_timeout parallel: Warning: doit 1000000001
|
||||
par_kill_children_timeout 2
|
||||
par_kill_children_timeout 0 0 0
|
||||
par_kill_hup ### Are children killed if GNU Parallel receives HUP? There should be no sleep at the end
|
||||
par_kill_hup bash-+-perl---2*[bash---sleep]
|
||||
par_kill_hup `-pstree
|
||||
par_kill_hup parallel: SIGHUP received. No new jobs will be started.
|
||||
par_kill_hup parallel: Waiting for these 2 jobs to finish. Send SIGTERM to stop now.
|
||||
par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
|
||||
par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
|
||||
par_kill_hup bash---pstree
|
||||
par_line_buffer ### --line-buffer
|
||||
par_line_buffer 55 55 120
|
||||
par_line_buffer These must diff: 1
|
||||
par_long_line_remote ### Deal with long command lines on remote servers
|
||||
par_long_line_remote 2 6 30006
|
||||
par_long_line_remote 3 50 250050
|
||||
par_macron ### See if \257\256 \257<\257> is replaced correctly
|
||||
par_macron ¯ -X ¯
|
||||
par_macron ¯ -X ¯
|
||||
par_macron ¯ -X ¯ ¯
|
||||
par_macron ¯ -X ¯ ¯
|
||||
par_macron ¯ -X ¯¯
|
||||
par_macron ¯ -X ¯¯
|
||||
par_macron ¯ -q ¯
|
||||
par_macron ¯ -q ¯ ¯
|
||||
par_macron ¯ -q "¯" ¯
|
||||
par_macron ¯ -q ¯¯
|
||||
par_macron ¯ -q "¯"¯
|
||||
par_macron ¯ -q /bin/bash: $'echo \257': command not found
|
||||
par_macron ¯ -Xq ¯
|
||||
par_macron ¯ -Xq ¯ ¯
|
||||
par_macron ¯ -Xq "¯" ¯
|
||||
par_macron ¯ -Xq ¯¯
|
||||
par_macron ¯ -Xq "¯"¯
|
||||
par_macron ¯ -Xq /bin/bash: $'echo \257': command not found
|
||||
par_macron ¯ -k ¯
|
||||
par_macron ¯ -k ¯
|
||||
par_macron ¯ -k ¯ ¯
|
||||
par_macron ¯ -k ¯ ¯
|
||||
par_macron ¯ -k ¯¯
|
||||
par_macron ¯ -k ¯¯
|
||||
par_macron ¯® -X ¯®
|
||||
par_macron ¯® -X ¯®
|
||||
par_macron ¯® -X ¯® ¯®
|
||||
par_macron ¯® -X ¯® ¯®
|
||||
par_macron ¯® -X ¯®¯®
|
||||
par_macron ¯® -X ¯®¯®
|
||||
par_macron ¯® -q ¯®
|
||||
par_macron ¯® -q ¯® ¯®
|
||||
par_macron ¯® -q "¯®" ¯®
|
||||
par_macron ¯® -q ¯®¯®
|
||||
par_macron ¯® -q "¯®"¯®
|
||||
par_macron ¯® -q /bin/bash: $'echo \257\256': command not found
|
||||
par_macron ¯® -Xq ¯®
|
||||
par_macron ¯® -Xq ¯® ¯®
|
||||
par_macron ¯® -Xq "¯®" ¯®
|
||||
par_macron ¯® -Xq ¯®¯®
|
||||
par_macron ¯® -Xq "¯®"¯®
|
||||
par_macron ¯® -Xq /bin/bash: $'echo \257\256': command not found
|
||||
par_macron ¯® -k ¯®
|
||||
par_macron ¯® -k ¯®
|
||||
par_macron ¯® -k ¯® ¯®
|
||||
par_macron ¯® -k ¯® ¯®
|
||||
par_macron ¯® -k ¯®¯®
|
||||
par_macron ¯® -k ¯®¯®
|
||||
par_macron ¯¯® -X ¯¯®
|
||||
par_macron ¯¯® -X ¯¯®
|
||||
par_macron ¯¯® -X ¯¯® ¯¯®
|
||||
par_macron ¯¯® -X ¯¯® ¯¯®
|
||||
par_macron ¯¯® -X ¯¯®¯¯®
|
||||
par_macron ¯¯® -X ¯¯®¯¯®
|
||||
par_macron ¯¯® -q ¯¯®
|
||||
par_macron ¯¯® -q ¯¯® ¯¯®
|
||||
par_macron ¯¯® -q "¯¯®" ¯¯®
|
||||
par_macron ¯¯® -q ¯¯®¯¯®
|
||||
par_macron ¯¯® -q "¯¯®"¯¯®
|
||||
par_macron ¯¯® -q /bin/bash: $'echo \257\257\256': command not found
|
||||
par_macron ¯¯® -Xq ¯¯®
|
||||
par_macron ¯¯® -Xq ¯¯® ¯¯®
|
||||
par_macron ¯¯® -Xq "¯¯®" ¯¯®
|
||||
par_macron ¯¯® -Xq ¯¯®¯¯®
|
||||
par_macron ¯¯® -Xq "¯¯®"¯¯®
|
||||
par_macron ¯¯® -Xq /bin/bash: $'echo \257\257\256': command not found
|
||||
par_macron ¯¯® -k ¯¯®
|
||||
par_macron ¯¯® -k ¯¯®
|
||||
par_macron ¯¯® -k ¯¯® ¯¯®
|
||||
par_macron ¯¯® -k ¯¯® ¯¯®
|
||||
par_macron ¯¯® -k ¯¯®¯¯®
|
||||
par_macron ¯¯® -k ¯¯®¯¯®
|
||||
par_macron ¯<¯<¯>¯> -X ¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -X ¯<¯<¯>¯> ¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -X ¯<¯<¯>¯>¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -X /bin/bash: -c: line 0: syntax error near unexpected token `newline'
|
||||
par_macron ¯<¯<¯>¯> -X /bin/bash: -c: line 0: `echo ¯<¯<¯>¯>'
|
||||
par_macron ¯<¯<¯>¯> -X /bin/bash: ¯: No such file or directory
|
||||
par_macron ¯<¯<¯>¯> -X /bin/bash: ¯: No such file or directory
|
||||
par_macron ¯<¯<¯>¯> -q ¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -q ¯<¯<¯>¯> ¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -q "¯<¯<¯>¯>" ¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -q ¯<¯<¯>¯>¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -q "¯<¯<¯>¯>"¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -q /bin/bash: $'echo \257<\257<\257>\257>': command not found
|
||||
par_macron ¯<¯<¯>¯> -Xq ¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -Xq ¯<¯<¯>¯> ¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -Xq "¯<¯<¯>¯>" ¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -Xq ¯<¯<¯>¯>¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -Xq "¯<¯<¯>¯>"¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -Xq /bin/bash: $'echo \257<\257<\257>\257>': command not found
|
||||
par_macron ¯<¯<¯>¯> -k ¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -k ¯<¯<¯>¯> ¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -k ¯<¯<¯>¯>¯<¯<¯>¯>
|
||||
par_macron ¯<¯<¯>¯> -k /bin/bash: -c: line 0: syntax error near unexpected token `newline'
|
||||
par_macron ¯<¯<¯>¯> -k /bin/bash: -c: line 0: `echo ¯<¯<¯>¯>'
|
||||
par_macron ¯<¯<¯>¯> -k /bin/bash: ¯: No such file or directory
|
||||
par_macron ¯<¯<¯>¯> -k /bin/bash: ¯: No such file or directory
|
||||
par_maxlinelen_X_I ### Test max line length -X -I
|
||||
par_maxlinelen_X_I 3cfc69ee81b0fe7fdbe8eb059ad2da61 -
|
||||
par_maxlinelen_X_I Chars per line (817788/7): 116826
|
||||
|
|
|
@ -10,54 +10,6 @@ par_bug37042 ### Bug introduce by fixing bug #37042
|
|||
par_bug37042 abc
|
||||
par_bug43654 bug #43654: --bar with command not using {} - only last output line
|
||||
par_bug43654
par_bug43654 [7m100% 1:0=0s 1 [0m[0m
|
||||
par_colsep ### Test of --colsep
|
||||
par_colsep a b c
|
||||
par_colsep a b c
|
||||
par_colsep a b c d
|
||||
par_colsep a b c
|
||||
par_colsep d e f
|
||||
par_colsep a b c
|
||||
par_colsep d e f
|
||||
par_colsep a b c
|
||||
par_colsep a b c
|
||||
par_colsep a b c d
|
||||
par_colsep ### Test of tab as colsep
|
||||
par_colsep abc def
|
||||
par_colsep ghi jkl
|
||||
par_colsep abc def
|
||||
par_colsep ghi jkl
|
||||
par_colsep ### Test of multiple -a plus colsep
|
||||
par_colsep abc def
|
||||
par_colsep mno jkl
|
||||
par_colsep ### Test of multiple -a no colsep
|
||||
par_colsep abc def ghi
|
||||
par_colsep jkl mno pqr
|
||||
par_colsep ### Test of quoting after colsplit
|
||||
par_colsep >/tmp/null >/dev/null
|
||||
par_colsep ### Test of --colsep as regexp
|
||||
par_colsep a b c
|
||||
par_colsep a b c d
|
||||
par_colsep a b c
|
||||
par_colsep a b c d
|
||||
par_colsep a b c
|
||||
par_colsep a b c d
|
||||
par_colsep a_b_c_
|
||||
par_colsep a_b_c_d
|
||||
par_colsep ### Test of -C
|
||||
par_colsep a_b_c_
|
||||
par_colsep a_b_c_d
|
||||
par_colsep ### Test of --trim n
|
||||
par_colsep a_b_' c '_
|
||||
par_colsep a_' b '_c_d
|
||||
par_colsep a_b_c_
|
||||
par_colsep a_b_c_d
|
||||
par_colsep ### Test of bug: If input is empty string
|
||||
par_colsep echo ''
|
||||
par_colsep
|
||||
par_colsep echo ac
|
||||
par_colsep ac
|
||||
par_colsep echo ac
|
||||
par_colsep ac
|
||||
par_compress_prg_fails ### bug #44546: If --compress-program fails: fail
|
||||
par_compress_prg_fails 1
|
||||
par_compress_prg_fails parallel: Error: false failed.
|
||||
|
@ -89,136 +41,6 @@ par_empty_string_command_line ole
|
|||
par_empty_string_command_line bar
|
||||
par_eof_on_command_line_input_source ### Test of eof string on :::
|
||||
par_eof_on_command_line_input_source foo
|
||||
par_failing_compressor Compress with failing (de)compressor
|
||||
par_failing_compressor Test --tag/--line-buffer/--files in all combinations
|
||||
par_failing_compressor Test working/failing compressor/decompressor in all combinations
|
||||
par_failing_compressor (-k is used as a dummy argument)
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
|
||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
|
||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
|
||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
|
||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true
|
||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false
|
||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||
par_failing_compressor C=cat;true,D=cat;true
|
||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||
par_failing_compressor C=cat;true,D=cat;false
|
||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||
par_failing_compressor C=cat;false,D=cat;true
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||
par_failing_compressor C=cat;false,D=cat;false
|
||||
par_failing_compressor parallel: Error: cat;false failed.
|
||||
par_fifo_under_csh ### Test --fifo under csh
|
||||
par_fifo_under_csh 1048571
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048572
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048572
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048572
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048572
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048572
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048569
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 1048576
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh 868832
|
||||
par_fifo_under_csh 1
|
||||
par_fifo_under_csh exit 22
|
||||
par_header ### Test --header with -N
|
||||
par_header Start
|
||||
par_header h1
|
||||
|
@ -293,6 +115,18 @@ par_incomplete_linebuffer 7
|
|||
par_incomplete_linebuffer 8
|
||||
par_incomplete_linebuffer 9
|
||||
par_incomplete_linebuffer 10
|
||||
par_interactive ### Test -p --interactive
|
||||
par_interactive opt--interactive 1
|
||||
par_interactive opt--interactive 3
|
||||
par_interactive opt-p 1
|
||||
par_interactive opt-p 3
|
||||
par_interactive sleep 0.1; echo opt--interactive 1 ?...y
|
||||
par_interactive sleep 0.1; echo opt--interactive 2 ?...n
|
||||
par_interactive sleep 0.1; echo opt--interactive 3 ?...y
|
||||
par_interactive sleep 0.1; echo opt-p 1 ?...y
|
||||
par_interactive sleep 0.1; echo opt-p 2 ?...n
|
||||
par_interactive sleep 0.1; echo opt-p 3 ?...y
|
||||
par_interactive spawn /tmp/parallel-script-for-expect
|
||||
par_mix_triple_colon_with_quad_colon ### Test :::: mixed with :::
|
||||
par_mix_triple_colon_with_quad_colon ### Test :::: < ::: :::
|
||||
par_mix_triple_colon_with_quad_colon 6 4 1
|
||||
|
|
712
testsuite/wanted-results/parallel-local-300s
Normal file
712
testsuite/wanted-results/parallel-local-300s
Normal file
|
@ -0,0 +1,712 @@
|
|||
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 sleep 1;true
|
||||
par_halt_on_error -2 true true parallel: This job succeeded:
|
||||
par_halt_on_error -2 true true sleep 1;true
|
||||
par_halt_on_error -2 true false 0
|
||||
par_halt_on_error -2 true false 0
|
||||
par_halt_on_error -2 true false parallel: This job succeeded:
|
||||
par_halt_on_error -2 true false sleep 1;true
|
||||
par_halt_on_error -2 true false parallel: This job succeeded:
|
||||
par_halt_on_error -2 true false sleep 1;true
|
||||
par_halt_on_error -2 false true 0
|
||||
par_halt_on_error -2 false true 0
|
||||
par_halt_on_error -2 false true parallel: This job succeeded:
|
||||
par_halt_on_error -2 false true sleep 2;true
|
||||
par_halt_on_error -2 false true parallel: This job succeeded:
|
||||
par_halt_on_error -2 false true sleep 2;true
|
||||
par_halt_on_error -2 false false 3
|
||||
par_halt_on_error -2 false false 4
|
||||
par_halt_on_error -2 false false /bin/bash: non_exist: command not found
|
||||
par_halt_on_error -1 true true 0
|
||||
par_halt_on_error -1 true true 0
|
||||
par_halt_on_error -1 true true parallel: This job succeeded:
|
||||
par_halt_on_error -1 true true sleep 1;true
|
||||
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||
par_halt_on_error -1 true true parallel: This job succeeded:
|
||||
par_halt_on_error -1 true true sleep 2;true
|
||||
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||
par_halt_on_error -1 true true parallel: This job succeeded:
|
||||
par_halt_on_error -1 true true sleep 3;true
|
||||
par_halt_on_error -1 true true parallel: This job succeeded:
|
||||
par_halt_on_error -1 true true sleep 1;true
|
||||
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||
par_halt_on_error -1 true true parallel: This job succeeded:
|
||||
par_halt_on_error -1 true true sleep 2;true
|
||||
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||
par_halt_on_error -1 true true parallel: This job succeeded:
|
||||
par_halt_on_error -1 true true sleep 3;true
|
||||
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||
par_halt_on_error -1 true true /bin/bash: non_exist: command not found
|
||||
par_halt_on_error -1 true false 0
|
||||
par_halt_on_error -1 true false 0
|
||||
par_halt_on_error -1 true false parallel: This job succeeded:
|
||||
par_halt_on_error -1 true false sleep 1;true
|
||||
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||
par_halt_on_error -1 true false parallel: This job succeeded:
|
||||
par_halt_on_error -1 true false sleep 3;true
|
||||
par_halt_on_error -1 true false parallel: This job succeeded:
|
||||
par_halt_on_error -1 true false sleep 1;true
|
||||
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||
par_halt_on_error -1 true false parallel: This job succeeded:
|
||||
par_halt_on_error -1 true false sleep 3;true
|
||||
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||
par_halt_on_error -1 true false /bin/bash: non_exist: command not found
|
||||
par_halt_on_error -1 false true 0
|
||||
par_halt_on_error -1 false true 0
|
||||
par_halt_on_error -1 false true parallel: This job succeeded:
|
||||
par_halt_on_error -1 false true sleep 2;true
|
||||
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||
par_halt_on_error -1 false true parallel: This job succeeded:
|
||||
par_halt_on_error -1 false true sleep 2;true
|
||||
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||
par_halt_on_error -1 false true /bin/bash: non_exist: command not found
|
||||
par_halt_on_error -1 false false 3
|
||||
par_halt_on_error -1 false false 4
|
||||
par_halt_on_error -1 false false /bin/bash: non_exist: command not found
|
||||
par_halt_on_error 0 true true 0
|
||||
par_halt_on_error 0 true true 1
|
||||
par_halt_on_error 0 true true /bin/bash: non_exist: command not found
|
||||
par_halt_on_error 0 true false 1
|
||||
par_halt_on_error 0 true false 2
|
||||
par_halt_on_error 0 true false /bin/bash: non_exist: command not found
|
||||
par_halt_on_error 0 false true 2
|
||||
par_halt_on_error 0 false true 3
|
||||
par_halt_on_error 0 false true /bin/bash: non_exist: command not found
|
||||
par_halt_on_error 0 false false 3
|
||||
par_halt_on_error 0 false false 4
|
||||
par_halt_on_error 0 false false /bin/bash: non_exist: command not found
|
||||
par_halt_on_error 1 true true 0
|
||||
par_halt_on_error 1 true true 127
|
||||
par_halt_on_error 1 true true /bin/bash: non_exist: command not found
|
||||
par_halt_on_error 1 true true parallel: This job failed:
|
||||
par_halt_on_error 1 true true sleep 4;non_exist
|
||||
par_halt_on_error 1 true false 1
|
||||
par_halt_on_error 1 true false 1
|
||||
par_halt_on_error 1 true false parallel: This job failed:
|
||||
par_halt_on_error 1 true false sleep 2;false
|
||||
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||
par_halt_on_error 1 true false parallel: This job failed:
|
||||
par_halt_on_error 1 true false sleep 2;false
|
||||
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||
par_halt_on_error 1 true false /bin/bash: non_exist: command not found
|
||||
par_halt_on_error 1 true false parallel: This job failed:
|
||||
par_halt_on_error 1 true false sleep 4;non_exist
|
||||
par_halt_on_error 1 false true 1
|
||||
par_halt_on_error 1 false true 1
|
||||
par_halt_on_error 1 false true parallel: This job failed:
|
||||
par_halt_on_error 1 false true sleep 1;false
|
||||
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||
par_halt_on_error 1 false true parallel: This job failed:
|
||||
par_halt_on_error 1 false true sleep 3;false
|
||||
par_halt_on_error 1 false true parallel: This job failed:
|
||||
par_halt_on_error 1 false true sleep 1;false
|
||||
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||
par_halt_on_error 1 false true parallel: This job failed:
|
||||
par_halt_on_error 1 false true sleep 3;false
|
||||
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||
par_halt_on_error 1 false true /bin/bash: non_exist: command not found
|
||||
par_halt_on_error 1 false true parallel: This job failed:
|
||||
par_halt_on_error 1 false true sleep 4;non_exist
|
||||
par_halt_on_error 1 false false 1
|
||||
par_halt_on_error 1 false false 1
|
||||
par_halt_on_error 1 false false parallel: This job failed:
|
||||
par_halt_on_error 1 false false sleep 1;false
|
||||
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||
par_halt_on_error 1 false false parallel: This job failed:
|
||||
par_halt_on_error 1 false false sleep 2;false
|
||||
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||
par_halt_on_error 1 false false parallel: This job failed:
|
||||
par_halt_on_error 1 false false sleep 3;false
|
||||
par_halt_on_error 1 false false parallel: This job failed:
|
||||
par_halt_on_error 1 false false sleep 1;false
|
||||
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 3 jobs to finish.
|
||||
par_halt_on_error 1 false false parallel: This job failed:
|
||||
par_halt_on_error 1 false false sleep 2;false
|
||||
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
|
||||
par_halt_on_error 1 false false parallel: This job failed:
|
||||
par_halt_on_error 1 false false sleep 3;false
|
||||
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
|
||||
par_halt_on_error 1 false false /bin/bash: non_exist: command not found
|
||||
par_halt_on_error 1 false false parallel: This job failed:
|
||||
par_halt_on_error 1 false false sleep 4;non_exist
|
||||
par_halt_on_error 2 true true 0
|
||||
par_halt_on_error 2 true true 127
|
||||
par_halt_on_error 2 true true /bin/bash: non_exist: command not found
|
||||
par_halt_on_error 2 true true parallel: This job failed:
|
||||
par_halt_on_error 2 true true sleep 4;non_exist
|
||||
par_halt_on_error 2 true false 1
|
||||
par_halt_on_error 2 true false 1
|
||||
par_halt_on_error 2 true false parallel: This job failed:
|
||||
par_halt_on_error 2 true false sleep 2;false
|
||||
par_halt_on_error 2 true false parallel: This job failed:
|
||||
par_halt_on_error 2 true false sleep 2;false
|
||||
par_halt_on_error 2 false true 1
|
||||
par_halt_on_error 2 false true 1
|
||||
par_halt_on_error 2 false true parallel: This job failed:
|
||||
par_halt_on_error 2 false true sleep 1;false
|
||||
par_halt_on_error 2 false true parallel: This job failed:
|
||||
par_halt_on_error 2 false true sleep 1;false
|
||||
par_halt_on_error 2 false false 1
|
||||
par_halt_on_error 2 false false 1
|
||||
par_halt_on_error 2 false false parallel: This job failed:
|
||||
par_halt_on_error 2 false false sleep 1;false
|
||||
par_halt_on_error 2 false false parallel: This job failed:
|
||||
par_halt_on_error 2 false false sleep 1;false
|
||||
par_mem_leak ### test for mem leak
|
||||
par_mem_leak no mem leak detected
|
||||
par_outside_file_handle_limit ### Test Force outside the file handle limit, 2009-02-17 Gave fork error
|
||||
par_outside_file_handle_limit parallel: Warning: Only enough file handles to run 999 jobs in parallel.
|
||||
par_outside_file_handle_limit parallel: Warning: Running 'parallel -j0 -N 999 --pipe parallel -j0' or
|
||||
par_outside_file_handle_limit parallel: Warning: raising 'ulimit -n' or 'nofile' in /etc/security/limits.conf
|
||||
par_outside_file_handle_limit parallel: Warning: or /proc/sys/fs/file-max may help.
|
||||
par_outside_file_handle_limit Start
|
||||
par_outside_file_handle_limit end
|
||||
par_over_4GB ### Test if we can deal with output > 4 GB
|
||||
par_over_4GB 46a318993dfc8e2afd71ff2bc6f605f1 -
|
||||
par_retries_unreachable ### Test of --retries on unreachable host
|
||||
par_retries_unreachable parallel: Warning: Could not figure out number of cpus on 4.3.2.1 (). Using 1.
|
||||
par_retries_unreachable echo 1
|
||||
par_retries_unreachable 1
|
||||
par_retries_unreachable echo 2
|
||||
par_retries_unreachable 2
|
||||
par_test_build_and_install make[0]: Entering directory '~/privat/parallel'
|
||||
par_test_build_and_install make dist-gzip am__post_remove_distdir='@:'
|
||||
par_test_build_and_install make[0]: Entering directory '~/privat/parallel'
|
||||
par_test_build_and_install if test -d "parallel-00000000"; then find "parallel-00000000" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "parallel-00000000" || { sleep 5 && rm -rf "parallel-00000000"; }; else :; fi
|
||||
par_test_build_and_install test -d "parallel-00000000" || mkdir "parallel-00000000"
|
||||
par_test_build_and_install (cd src && make top_distdir=../parallel-00000000 distdir=../parallel-00000000/src \
|
||||
par_test_build_and_install am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)
|
||||
par_test_build_and_install make[0]: Entering directory '~/privat/parallel/src'
|
||||
par_test_build_and_install make[0]: Leaving directory '~/privat/parallel/src'
|
||||
par_test_build_and_install test -n "" \
|
||||
par_test_build_and_install || find "parallel-00000000" -type d ! -perm -755 \
|
||||
par_test_build_and_install -exec chmod u+rwx,go+rx {} \; -o \
|
||||
par_test_build_and_install ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
par_test_build_and_install ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
par_test_build_and_install ! -type d ! -perm -444 -exec /bin/bash ~/privat/parallel/install-sh -c -m a+r {} {} \; \
|
||||
par_test_build_and_install || chmod -R a+r "parallel-00000000"
|
||||
par_test_build_and_install tardir=parallel-00000000 && ${TAR-tar} chof - "$tardir" | eval GZIP= gzip --best -c >parallel-00000000.tar.gz
|
||||
par_test_build_and_install make[0]: Leaving directory '~/privat/parallel'
|
||||
par_test_build_and_install if test -d "parallel-00000000"; then find "parallel-00000000" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "parallel-00000000" || { sleep 5 && rm -rf "parallel-00000000"; }; else :; fi
|
||||
par_test_build_and_install make[0]: Leaving directory '~/privat/parallel'
|
||||
par_test_build_and_install ### Test normal build and install
|
||||
par_test_build_and_install checking for a BSD-compatible install... /usr/bin/install -c
|
||||
par_test_build_and_install checking whether build environment is sane... yes
|
||||
par_test_build_and_install checking for a thread-safe mkdir -p... /bin/mkdir -p
|
||||
par_test_build_and_install checking for gawk... gawk
|
||||
par_test_build_and_install checking whether make sets $(MAKE)... yes
|
||||
par_test_build_and_install checking whether make supports nested variables... yes
|
||||
par_test_build_and_install checking whether ln -s works... yes
|
||||
par_test_build_and_install checking that generated files are newer than configure... done
|
||||
par_test_build_and_install configure: creating ./config.status
|
||||
par_test_build_and_install config.status: creating Makefile
|
||||
par_test_build_and_install config.status: creating src/Makefile
|
||||
par_test_build_and_install config.status: creating config.h
|
||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000'
|
||||
par_test_build_and_install Making install in src
|
||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
|
||||
par_test_build_and_install /usr/bin/install -c parallel sql niceload parcat parset env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin'
|
||||
par_test_build_and_install make install-exec-hook
|
||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||
par_test_build_and_install rm /tmp/parallel-install/bin/sem || true
|
||||
par_test_build_and_install ln -s parallel /tmp/parallel-install/bin/sem
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
|
||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel'
|
||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1'
|
||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 '/tmp/parallel-install/share/man/man1'
|
||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7'
|
||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7'
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
||||
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 make[0]: Nothing to be done for 'install-exec-am'.
|
||||
par_test_build_and_install make[0]: Nothing to be done for 'install-data-am'.
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000'
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000'
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000'
|
||||
par_test_build_and_install ### Test installation missing pod2*
|
||||
par_test_build_and_install checking for a BSD-compatible install... /usr/bin/install -c
|
||||
par_test_build_and_install checking whether build environment is sane... yes
|
||||
par_test_build_and_install checking for a thread-safe mkdir -p... /bin/mkdir -p
|
||||
par_test_build_and_install checking for gawk... gawk
|
||||
par_test_build_and_install checking whether make sets $(MAKE)... yes
|
||||
par_test_build_and_install checking whether make supports nested variables... yes
|
||||
par_test_build_and_install checking whether ln -s works... yes
|
||||
par_test_build_and_install checking that generated files are newer than configure... done
|
||||
par_test_build_and_install configure: creating ./config.status
|
||||
par_test_build_and_install config.status: creating Makefile
|
||||
par_test_build_and_install config.status: creating src/Makefile
|
||||
par_test_build_and_install config.status: creating config.h
|
||||
par_test_build_and_install config.status: config.h is unchanged
|
||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000'
|
||||
par_test_build_and_install Making install in src
|
||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./parallel.pod > ./parallel.1n \
|
||||
par_test_build_and_install && mv ./parallel.1n ./parallel.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parallel.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./env_parallel.pod > ./env_parallel.1n \
|
||||
par_test_build_and_install && mv ./env_parallel.1n ./env_parallel.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old env_parallel.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old env_parallel.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./sem.pod > ./sem.1n \
|
||||
par_test_build_and_install && mv ./sem.1n ./sem.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old sem.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old sem.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./sql > ./sql.1n \
|
||||
par_test_build_and_install && mv ./sql.1n ./sql.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old sql.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./niceload.pod > ./niceload.1n \
|
||||
par_test_build_and_install && mv ./niceload.1n ./niceload.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old niceload.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old niceload.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=7 ./parallel_tutorial.pod > ./parallel_tutorial.7n \
|
||||
par_test_build_and_install && mv ./parallel_tutorial.7n ./parallel_tutorial.7 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parallel_tutorial.7
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=7 ./parallel_book.pod > ./parallel_book.7n \
|
||||
par_test_build_and_install && mv ./parallel_book.7n ./parallel_book.7 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_book.7"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parallel_book.7
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=7 ./parallel_design.pod > ./parallel_design.7n \
|
||||
par_test_build_and_install && mv ./parallel_design.7n ./parallel_design.7 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_design.7"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parallel_design.7
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=7 ./parallel_alternatives.pod > ./parallel_alternatives.7n \
|
||||
par_test_build_and_install && mv ./parallel_alternatives.7n ./parallel_alternatives.7 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_alternatives.7"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parallel_alternatives.7
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./parcat.pod > ./parcat.1n \
|
||||
par_test_build_and_install && mv ./parcat.1n ./parcat.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parcat.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parcat.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./parset.pod > ./parset.1n \
|
||||
par_test_build_and_install && mv ./parset.1n ./parset.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parset.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parset.1
|
||||
par_test_build_and_install pod2html --title "GNU Parallel" ./parallel.pod > ./parallel.htmln \
|
||||
par_test_build_and_install && mv ./parallel.htmln ./parallel.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parallel.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU Parallel with environment" ./env_parallel.pod > ./env_parallel.htmln \
|
||||
par_test_build_and_install && mv ./env_parallel.htmln ./env_parallel.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old env_parallel.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU Parallel tutorial" ./parallel_tutorial.pod > ./parallel_tutorial.htmln \
|
||||
par_test_build_and_install && mv ./parallel_tutorial.htmln ./parallel_tutorial.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parallel_tutorial.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU Parallel book" ./parallel_book.pod > ./parallel_book.htmln \
|
||||
par_test_build_and_install && mv ./parallel_book.htmln ./parallel_book.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_book.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parallel_book.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU Parallel design" ./parallel_design.pod > ./parallel_design.htmln \
|
||||
par_test_build_and_install && mv ./parallel_design.htmln ./parallel_design.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_design.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parallel_design.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU Parallel alternatives" ./parallel_alternatives.pod > ./parallel_alternatives.htmln \
|
||||
par_test_build_and_install && mv ./parallel_alternatives.htmln ./parallel_alternatives.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_alternatives.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parallel_alternatives.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "sem (GNU Parallel)" ./sem.pod > ./sem.htmln \
|
||||
par_test_build_and_install && mv ./sem.htmln ./sem.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old sem.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old sem.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU SQL" ./sql > ./sql.htmln \
|
||||
par_test_build_and_install && mv ./sql.htmln ./sql.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old sql.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \
|
||||
par_test_build_and_install && mv ./niceload.htmln ./niceload.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old niceload.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU parcat" ./parcat.pod > ./parcat.htmln \
|
||||
par_test_build_and_install && mv ./parcat.htmln ./parcat.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parcat.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU parset" ./parset.pod > ./parset.htmln \
|
||||
par_test_build_and_install && mv ./parset.htmln ./parset.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parset.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2texi --output=./parallel.texi ./parallel.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parallel.texi
|
||||
par_test_build_and_install pod2texi --output=./env_parallel.texi ./env_parallel.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old env_parallel.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old env_parallel.texi
|
||||
par_test_build_and_install pod2texi --output=./sem.texi ./sem.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sem.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old sem.texi
|
||||
par_test_build_and_install pod2texi --output=./sql.texi ./sql \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old sql.texi
|
||||
par_test_build_and_install pod2texi --output=./niceload.texi ./niceload.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi
|
||||
par_test_build_and_install pod2texi --output=./parallel_tutorial.texi ./parallel_tutorial.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parallel_tutorial.texi
|
||||
par_test_build_and_install pod2texi --output=./parallel_book.texi ./parallel_book.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_book.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parallel_book.texi
|
||||
par_test_build_and_install pod2texi --output=./parallel_design.texi ./parallel_design.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_design.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parallel_design.texi
|
||||
par_test_build_and_install pod2texi --output=./parallel_alternatives.texi ./parallel_alternatives.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parallel_alternatives.texi
|
||||
par_test_build_and_install pod2texi --output=./parcat.texi ./parcat.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parcat.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parcat.texi
|
||||
par_test_build_and_install pod2texi --output=./parset.texi ./parset.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parset.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parset.texi
|
||||
par_test_build_and_install pod2pdf --output-file ./parallel.pdf ./parallel.pod --title "GNU Parallel" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parallel.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./env_parallel.pdf ./env_parallel.pod --title "GNU Parallel with environment" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old env_parallel.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./sem.pdf ./sem.pod --title "GNU sem" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sem.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old sem.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old sql.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./niceload.pdf ./niceload.pod --title "GNU niceload" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old niceload.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old niceload.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "GNU Parallel Tutorial" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_tutorial.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parallel_book.pdf ./parallel_book.pod --title "GNU Parallel Book" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_book.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_book.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parallel_design.pdf ./parallel_design.pod --title "GNU Parallel Design" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_design.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parallel_alternatives.pdf ./parallel_alternatives.pod --title "GNU Parallel alternatives" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_alternatives.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parcat.pdf ./parcat.pod --title "GNU parcat" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parcat.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parcat.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parset.pdf ./parset.pod --title "GNU parset" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
|
||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
|
||||
par_test_build_and_install /usr/bin/install -c parallel sql niceload parcat parset env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin'
|
||||
par_test_build_and_install make install-exec-hook
|
||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||
par_test_build_and_install rm /tmp/parallel-install/bin/sem || true
|
||||
par_test_build_and_install ln -s parallel /tmp/parallel-install/bin/sem
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
||||
par_test_build_and_install pod2html --title "GNU Parallel" ./parallel.pod > ./parallel.htmln \
|
||||
par_test_build_and_install && mv ./parallel.htmln ./parallel.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parallel.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU Parallel with environment" ./env_parallel.pod > ./env_parallel.htmln \
|
||||
par_test_build_and_install && mv ./env_parallel.htmln ./env_parallel.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old env_parallel.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU Parallel tutorial" ./parallel_tutorial.pod > ./parallel_tutorial.htmln \
|
||||
par_test_build_and_install && mv ./parallel_tutorial.htmln ./parallel_tutorial.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parallel_tutorial.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU Parallel book" ./parallel_book.pod > ./parallel_book.htmln \
|
||||
par_test_build_and_install && mv ./parallel_book.htmln ./parallel_book.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_book.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parallel_book.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU Parallel design" ./parallel_design.pod > ./parallel_design.htmln \
|
||||
par_test_build_and_install && mv ./parallel_design.htmln ./parallel_design.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_design.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parallel_design.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU Parallel alternatives" ./parallel_alternatives.pod > ./parallel_alternatives.htmln \
|
||||
par_test_build_and_install && mv ./parallel_alternatives.htmln ./parallel_alternatives.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_alternatives.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parallel_alternatives.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "sem (GNU Parallel)" ./sem.pod > ./sem.htmln \
|
||||
par_test_build_and_install && mv ./sem.htmln ./sem.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old sem.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old sem.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU SQL" ./sql > ./sql.htmln \
|
||||
par_test_build_and_install && mv ./sql.htmln ./sql.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old sql.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \
|
||||
par_test_build_and_install && mv ./niceload.htmln ./niceload.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old niceload.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU parcat" ./parcat.pod > ./parcat.htmln \
|
||||
par_test_build_and_install && mv ./parcat.htmln ./parcat.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parcat.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2html --title "GNU parset" ./parset.pod > ./parset.htmln \
|
||||
par_test_build_and_install && mv ./parset.htmln ./parset.html \
|
||||
par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html"
|
||||
par_test_build_and_install /bin/bash: pod2html: command not found
|
||||
par_test_build_and_install Warning: pod2html not found. Using old parset.html
|
||||
par_test_build_and_install rm -f ./pod2htm*
|
||||
par_test_build_and_install pod2texi --output=./parallel.texi ./parallel.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parallel.texi
|
||||
par_test_build_and_install pod2texi --output=./env_parallel.texi ./env_parallel.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old env_parallel.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old env_parallel.texi
|
||||
par_test_build_and_install pod2texi --output=./sem.texi ./sem.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sem.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old sem.texi
|
||||
par_test_build_and_install pod2texi --output=./sql.texi ./sql \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old sql.texi
|
||||
par_test_build_and_install pod2texi --output=./niceload.texi ./niceload.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi
|
||||
par_test_build_and_install pod2texi --output=./parallel_tutorial.texi ./parallel_tutorial.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parallel_tutorial.texi
|
||||
par_test_build_and_install pod2texi --output=./parallel_book.texi ./parallel_book.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_book.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parallel_book.texi
|
||||
par_test_build_and_install pod2texi --output=./parallel_design.texi ./parallel_design.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_design.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parallel_design.texi
|
||||
par_test_build_and_install pod2texi --output=./parallel_alternatives.texi ./parallel_alternatives.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parallel_alternatives.texi
|
||||
par_test_build_and_install pod2texi --output=./parcat.texi ./parcat.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parcat.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parcat.texi
|
||||
par_test_build_and_install pod2texi --output=./parset.texi ./parset.pod \
|
||||
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parset.texi"
|
||||
par_test_build_and_install /bin/bash: pod2texi: command not found
|
||||
par_test_build_and_install Warning: pod2texi not found. Using old parset.texi
|
||||
par_test_build_and_install pod2pdf --output-file ./parallel.pdf ./parallel.pod --title "GNU Parallel" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parallel.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./env_parallel.pdf ./env_parallel.pod --title "GNU Parallel with environment" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old env_parallel.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./sem.pdf ./sem.pod --title "GNU sem" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sem.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old sem.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old sql.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./niceload.pdf ./niceload.pod --title "GNU niceload" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old niceload.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old niceload.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "GNU Parallel Tutorial" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_tutorial.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parallel_book.pdf ./parallel_book.pod --title "GNU Parallel Book" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_book.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_book.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parallel_design.pdf ./parallel_design.pod --title "GNU Parallel Design" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_design.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parallel_alternatives.pdf ./parallel_alternatives.pod --title "GNU Parallel alternatives" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_alternatives.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parcat.pdf ./parcat.pod --title "GNU parcat" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parcat.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parcat.pdf
|
||||
par_test_build_and_install pod2pdf --output-file ./parset.pdf ./parset.pod --title "GNU parset" \
|
||||
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset.pdf"
|
||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
|
||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
|
||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel'
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./parallel.pod > ./parallel.1n \
|
||||
par_test_build_and_install && mv ./parallel.1n ./parallel.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parallel.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./env_parallel.pod > ./env_parallel.1n \
|
||||
par_test_build_and_install && mv ./env_parallel.1n ./env_parallel.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old env_parallel.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old env_parallel.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./sem.pod > ./sem.1n \
|
||||
par_test_build_and_install && mv ./sem.1n ./sem.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old sem.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old sem.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./sql > ./sql.1n \
|
||||
par_test_build_and_install && mv ./sql.1n ./sql.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old sql.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./niceload.pod > ./niceload.1n \
|
||||
par_test_build_and_install && mv ./niceload.1n ./niceload.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old niceload.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old niceload.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=7 ./parallel_tutorial.pod > ./parallel_tutorial.7n \
|
||||
par_test_build_and_install && mv ./parallel_tutorial.7n ./parallel_tutorial.7 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parallel_tutorial.7
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=7 ./parallel_book.pod > ./parallel_book.7n \
|
||||
par_test_build_and_install && mv ./parallel_book.7n ./parallel_book.7 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_book.7"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parallel_book.7
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=7 ./parallel_design.pod > ./parallel_design.7n \
|
||||
par_test_build_and_install && mv ./parallel_design.7n ./parallel_design.7 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_design.7"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parallel_design.7
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=7 ./parallel_alternatives.pod > ./parallel_alternatives.7n \
|
||||
par_test_build_and_install && mv ./parallel_alternatives.7n ./parallel_alternatives.7 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_alternatives.7"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parallel_alternatives.7
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./parcat.pod > ./parcat.1n \
|
||||
par_test_build_and_install && mv ./parcat.1n ./parcat.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parcat.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parcat.1
|
||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./parset.pod > ./parset.1n \
|
||||
par_test_build_and_install && mv ./parset.1n ./parset.1 \
|
||||
par_test_build_and_install || echo "Warning: pod2man not found. Using old parset.1"
|
||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||
par_test_build_and_install Warning: pod2man not found. Using old parset.1
|
||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1'
|
||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 '/tmp/parallel-install/share/man/man1'
|
||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7'
|
||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7'
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
||||
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 make[0]: Nothing to be done for 'install-exec-am'.
|
||||
par_test_build_and_install make[0]: Nothing to be done for 'install-data-am'.
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000'
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000'
|
||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000'
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -11,6 +11,8 @@ Control case: Burn for 2.9 seconds
|
|||
|
||||
stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | \grep -q CPUTIME=1
|
||||
1=OK 1
|
||||
par_PARALLEL_RSYNC_OPTS ### test rsync opts
|
||||
par_PARALLEL_RSYNC_OPTS rsync --protocol 30 -rlDzRRRRrsync --protocol 30 --rsync-path='cd ././.; rsync' -rlDzRRRRrsync --protocol 30 -zzrrllddRRRRrsync --protocol 30 --rsync-path='cd ././.; rsync' -zzrrllddRRRR
|
||||
par_continuous_output Test delayed output with ''
|
||||
par_continuous_output -u is optimal but hard to reach, due to non-mixing
|
||||
par_continuous_output 6
|
||||
|
@ -104,6 +106,47 @@ par_hostgroup tange
|
|||
par_hostgroup tange
|
||||
par_hostgroup tcsh
|
||||
par_hostgroup tcsh
|
||||
par_kill_hup ### Are children killed if GNU Parallel receives HUP? There should be no sleep at the end
|
||||
par_kill_hup bash-+-perl---2*[bash---sleep]
|
||||
par_kill_hup `-pstree
|
||||
par_kill_hup parallel: SIGHUP received. No new jobs will be started.
|
||||
par_kill_hup parallel: Waiting for these 2 jobs to finish. Send SIGTERM to stop now.
|
||||
par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
|
||||
par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
|
||||
par_kill_hup bash---pstree
|
||||
par_resume_failed_k ### bug #38299: --resume-failed -k
|
||||
par_resume_failed_k job1 val 0
|
||||
par_resume_failed_k job2 val 1
|
||||
par_resume_failed_k job3 val 2
|
||||
par_resume_failed_k job4 val 3
|
||||
par_resume_failed_k job5 val 0
|
||||
par_resume_failed_k job6 val 1
|
||||
par_resume_failed_k try 2. Gives failing - not 0
|
||||
par_resume_failed_k job2 val 1
|
||||
par_resume_failed_k job3 val 2
|
||||
par_resume_failed_k job4 val 3
|
||||
par_resume_failed_k job6 val 1
|
||||
par_resume_failed_k with exit 0
|
||||
par_resume_failed_k job2 val 1
|
||||
par_resume_failed_k job3 val 2
|
||||
par_resume_failed_k job4 val 3
|
||||
par_resume_failed_k job6 val 1
|
||||
par_resume_failed_k try 2 again. Gives empty
|
||||
par_retries_bug_from_2010 ### Bug with --retries
|
||||
par_retries_bug_from_2010 8
|
||||
par_retries_bug_from_2010 8
|
||||
par_retries_bug_from_2010 2
|
||||
par_retries_bug_from_2010 1
|
||||
par_retries_bug_from_2010 1
|
||||
par_retries_bug_from_2010 1
|
||||
par_retries_bug_from_2010 ### These were not affected by the bug
|
||||
par_retries_bug_from_2010 8
|
||||
par_retries_bug_from_2010 8
|
||||
par_retries_bug_from_2010 1
|
||||
par_retries_bug_from_2010 4
|
||||
par_retries_bug_from_2010 4
|
||||
par_retries_bug_from_2010 4
|
||||
par_retries_bug_from_2010 2
|
||||
par_testhalt now fail 0 true ### testhalt --halt now,fail=0
|
||||
par_testhalt now fail 0 true job 1
|
||||
par_testhalt now fail 0 true parallel: This job failed:
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
par_PARALLEL_RSYNC_OPTS ### test rsync opts
|
||||
par_PARALLEL_RSYNC_OPTS rsync --protocol 30 -rlDzRRRRrsync --protocol 30 --rsync-path='cd ././.; rsync' -rlDzRRRRrsync --protocol 30 -zzrrllddRRRRrsync --protocol 30 --rsync-path='cd ././.; rsync' -zzrrllddRRRR
|
||||
par_bar_m ### test --bar -m
|
||||
par_bar_m 0
|
||||
par_bar_m 50
|
||||
|
@ -34,18 +32,3 @@ par_retries_2 ### Test of --retries - it should run 25 jobs in total
|
|||
par_retries_2 OK
|
||||
par_retries_4 ### Test of --retries - it should run 49 jobs in total
|
||||
par_retries_4 OK
|
||||
par_retries_bug_from_2010 ### Bug with --retries
|
||||
par_retries_bug_from_2010 8
|
||||
par_retries_bug_from_2010 8
|
||||
par_retries_bug_from_2010 2
|
||||
par_retries_bug_from_2010 1
|
||||
par_retries_bug_from_2010 1
|
||||
par_retries_bug_from_2010 1
|
||||
par_retries_bug_from_2010 ### These were not affected by the bug
|
||||
par_retries_bug_from_2010 8
|
||||
par_retries_bug_from_2010 8
|
||||
par_retries_bug_from_2010 1
|
||||
par_retries_bug_from_2010 4
|
||||
par_retries_bug_from_2010 4
|
||||
par_retries_bug_from_2010 4
|
||||
par_retries_bug_from_2010 2
|
||||
|
|
Loading…
Reference in a new issue