testsuite: Cleanup after running.

This commit is contained in:
Ole Tange 2015-02-01 16:57:31 +01:00
parent 927cf13b0c
commit 61b0e48030
15 changed files with 103 additions and 54 deletions

View file

@ -59,6 +59,10 @@ echo '### Uniq {=perlexpr=} in return - not used in command'
cat /tmp/parallel_perlexpr.2Parallel_PerlexPr; cat /tmp/parallel_perlexpr.2Parallel_PerlexPr;
rm -f /tmp/parallel_perlexpr.2Parallel_PerlexPr /tmp/parallel_perlexpr rm -f /tmp/parallel_perlexpr.2Parallel_PerlexPr /tmp/parallel_perlexpr
# Should be changed to --return '{=s:/f:/g:=}' and tested with csh # Should be changed to --return '{=s:/f:/g:=}' and tested with csh - is error code kept?
echo '### zsh'
ssh zsh@lo 'fun="() { echo function from zsh to zsh \$*; }"; export fun; parallel --env fun fun ::: OK'
ssh zsh@lo 'fun="() { echo function from zsh to bash \$*; }"; export fun; parallel -S parallel@lo --env fun fun ::: OK'
EOF EOF

View file

@ -57,7 +57,7 @@ echo "### Test -X -I";
echo "### Test -m -I"; echo "### Test -m -I";
seq 1 10 | parallel -k 'seq 1 {} | parallel -j1 -m -k -I :: echo a{} b::' seq 1 10 | parallel -k 'seq 1 {} | parallel -j1 -m -k -I :: echo a{} b::'
echo "### Test max line length -m -I"; echo "### Test max line length -m -I"
seq 1 60000 | parallel -I :: -m -j1 echo a::b::c | seq 1 60000 | parallel -I :: -m -j1 echo a::b::c |
tee >(sort |md5sum) >/tmp/114-a$$; tee >(sort |md5sum) >/tmp/114-a$$;
export CHAR=$(cat /tmp/114-a$$ | wc -c); export CHAR=$(cat /tmp/114-a$$ | wc -c);
@ -65,7 +65,7 @@ echo "### Test max line length -m -I";
echo "Chars per line ($CHAR/$LINES): "$(echo "$CHAR/$LINES" | bc); echo "Chars per line ($CHAR/$LINES): "$(echo "$CHAR/$LINES" | bc);
rm /tmp/114-a$$ rm /tmp/114-a$$
echo "### Test max line length -X -I"; echo "### Test max line length -X -I"
seq 1 60000 | parallel -I :: -X -j1 echo a::b::c | seq 1 60000 | parallel -I :: -X -j1 echo a::b::c |
tee >(sort |md5sum) >/tmp/114-b$$; tee >(sort |md5sum) >/tmp/114-b$$;
export CHAR=$(cat /tmp/114-b$$ | wc -c); export CHAR=$(cat /tmp/114-b$$ | wc -c);
@ -73,10 +73,10 @@ echo "### Test max line length -X -I";
echo "Chars per line ($CHAR/$LINES): "$(echo "$CHAR/$LINES" | bc); echo "Chars per line ($CHAR/$LINES): "$(echo "$CHAR/$LINES" | bc);
rm /tmp/114-b$$ rm /tmp/114-b$$
echo "### bug #36659: --sshlogin strips leading slash from ssh command"; echo "### bug #36659: --sshlogin strips leading slash from ssh command"
parallel --sshlogin '/usr/bin/ssh localhost' echo ::: OK parallel --sshlogin '/usr/bin/ssh localhost' echo ::: OK
echo "### bug #36660: --workdir mkdir does not use --sshlogin custom ssh"; echo "### bug #36660: --workdir mkdir does not use --sshlogin custom ssh"
rm -rf /tmp/foo36660; rm -rf /tmp/foo36660;
cd /tmp; echo OK > parallel_test36660.txt; cd /tmp; echo OK > parallel_test36660.txt;
ssh () { echo Failed; }; ssh () { echo Failed; };
@ -84,51 +84,51 @@ echo "### bug #36660: --workdir mkdir does not use --sshlogin custom ssh";
parallel --workdir /tmp/foo36660/bar --transfer --sshlogin '/usr/bin/ssh localhost' cat ::: parallel_test36660.txt; parallel --workdir /tmp/foo36660/bar --transfer --sshlogin '/usr/bin/ssh localhost' cat ::: parallel_test36660.txt;
rm -rf /tmp/foo36660 parallel_test36660.txt rm -rf /tmp/foo36660 parallel_test36660.txt
echo "bug #36657: --load does not work with custom ssh"; echo "bug #36657: --load does not work with custom ssh"
ssh () { echo Failed; }; ssh () { echo Failed; };
export -f ssh; export -f ssh;
parallel --load=1000% -S "/usr/bin/ssh localhost" echo ::: OK parallel --load=1000% -S "/usr/bin/ssh localhost" echo ::: OK
echo "bug #34958: --pipe with record size measured in lines"; echo "bug #34958: --pipe with record size measured in lines"
seq 10 | parallel -k --pipe -L 4 cat\;echo bug 34958-1 seq 10 | parallel -k --pipe -L 4 cat\;echo bug 34958-1
echo "bug #37325: Inefficiency of --pipe -L"; echo "bug #37325: Inefficiency of --pipe -L"
seq 2000 | parallel -k --pipe --block 1k -L 4 wc\;echo FOO | uniq seq 2000 | parallel -k --pipe --block 1k -L 4 wc\;echo FOO | uniq
echo "bug #34958: --pipe with record size measured in lines"; echo "bug #34958: --pipe with record size measured in lines"
seq 10 | parallel -k --pipe -l 4 cat\;echo bug 34958-2 seq 10 | parallel -k --pipe -l 4 cat\;echo bug 34958-2
echo "### Test --results"; echo "### Test --results"
mkdir -p /tmp/parallel_results_test; mkdir -p /tmp/parallel_results_test;
parallel -k --results /tmp/parallel_results_test/testA echo {1} {2} ::: I II ::: III IIII; parallel -k --results /tmp/parallel_results_test/testA echo {1} {2} ::: I II ::: III IIII;
ls /tmp/parallel_results_test/testA/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testA* ls /tmp/parallel_results_test/testA/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testA*
echo "### Test --res"; echo "### Test --res"
mkdir -p /tmp/parallel_results_test; mkdir -p /tmp/parallel_results_test;
parallel -k --res /tmp/parallel_results_test/testD echo {1} {2} ::: I II ::: III IIII; parallel -k --res /tmp/parallel_results_test/testD echo {1} {2} ::: I II ::: III IIII;
ls /tmp/parallel_results_test/testD/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testD* ls /tmp/parallel_results_test/testD/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testD*
echo "### Test --result"; echo "### Test --result"
mkdir -p /tmp/parallel_results_test; mkdir -p /tmp/parallel_results_test;
parallel -k --result /tmp/parallel_results_test/testE echo {1} {2} ::: I II ::: III IIII; parallel -k --result /tmp/parallel_results_test/testE echo {1} {2} ::: I II ::: III IIII;
ls /tmp/parallel_results_test/testE/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testE* ls /tmp/parallel_results_test/testE/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testE*
echo "### Test --results --header :"; echo "### Test --results --header :"
mkdir -p /tmp/parallel_results_test; mkdir -p /tmp/parallel_results_test;
parallel -k --header : --results /tmp/parallel_results_test/testB echo {1} {2} ::: a I II ::: b III IIII; parallel -k --header : --results /tmp/parallel_results_test/testB echo {1} {2} ::: a I II ::: b III IIII;
ls /tmp/parallel_results_test/testB/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testB* ls /tmp/parallel_results_test/testB/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testB*
echo "### Test --results --header : named - a/b swapped"; echo "### Test --results --header : named - a/b swapped"
mkdir -p /tmp/parallel_results_test; mkdir -p /tmp/parallel_results_test;
parallel -k --header : --results /tmp/parallel_results_test/testC echo {a} {b} ::: b III IIII ::: a I II; parallel -k --header : --results /tmp/parallel_results_test/testC echo {a} {b} ::: b III IIII ::: a I II;
ls /tmp/parallel_results_test/testC/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testC* ls /tmp/parallel_results_test/testC/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testC*
echo "### Test --results --header : piped"; echo "### Test --results --header : piped"
mkdir -p /tmp/parallel_results_test; mkdir -p /tmp/parallel_results_test;
(echo Col; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') | parallel --header : --result /tmp/parallel_results_test/testF true; (echo Col; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') | parallel --header : --result /tmp/parallel_results_test/testF true;
find /tmp/parallel_results_test/testF/*/*/* | sort; rm -rf /tmp/parallel_results_test/testF* find /tmp/parallel_results_test/testF/*/*/* | sort; rm -rf /tmp/parallel_results_test/testF*
echo "### Test --results --header : piped - non-existing column header"; echo "### Test --results --header : piped - non-existing column header"
mkdir -p /tmp/parallel_results_test; mkdir -p /tmp/parallel_results_test;
(printf "Col1\t\n"; printf "v1\tv2\tv3\n"; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') | parallel --header : --result /tmp/parallel_results_test/testG true; find /tmp/parallel_results_test/testG/ | sort; rm -rf /tmp/parallel_results_test/testG* (printf "Col1\t\n"; printf "v1\tv2\tv3\n"; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') | parallel --header : --result /tmp/parallel_results_test/testG true; find /tmp/parallel_results_test/testG/ | sort; rm -rf /tmp/parallel_results_test/testG*

View file

@ -73,21 +73,21 @@ echo '### bug #42913: Dont use $SHELL but the shell currently running'
echo '## Unknown shell => $SHELL (bash)' echo '## Unknown shell => $SHELL (bash)'
parallel -j1 "cp \`which {}\` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;" parallel -j1 "cp \`which {}\` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;"
::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh;
rm /tmp/SHELL /tmp/par*.par rm -f /tmp/SHELL /tmp/par*.par
echo '## Known shells -c' echo '## Known shells -c'
parallel -k "\`which {}\` -c 'parallel -Dinit echo ::: 1' | grep which;" parallel -k "\`which {}\` -c 'parallel -Dinit echo ::: 1' | grep which;"
::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh;
rm /tmp/par*.par rm -f /tmp/par*.par
echo '## Known shells |' echo '## Known shells |'
parallel -k "echo 'parallel -Dinit echo ::: 1' | \`which {}\` | grep which;" parallel -k "echo 'parallel -Dinit echo ::: 1' | \`which {}\` | grep which;"
::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh;
rm /tmp/par*.par rm -f /tmp/par*.par
echo '## Started directly from perl' echo '## Started directly from perl'
perl -e 'system(qw(parallel -Dinit echo ::: 1))' | grep which; perl -e 'system(qw(parallel -Dinit echo ::: 1))' | grep which;
rm /tmp/par*.par rm -f /tmp/par*.par
EOF EOF

View file

@ -28,12 +28,12 @@ echo '### Test read sshloginfile from STDIN';
echo '### Test --nonall --basefile'; echo '### Test --nonall --basefile';
touch /tmp/nonall--basefile; touch /tmp/nonall--basefile;
parallel --nonall --basefile /tmp/nonall--basefile -S $SSHLOGIN1,$SSHLOGIN2 ls /tmp/nonall--basefile; parallel --nonall --basefile /tmp/nonall--basefile -S $SSHLOGIN1,$SSHLOGIN2 ls /tmp/nonall--basefile\; rm /tmp/nonall--basefile;
rm /tmp/nonall--basefile rm /tmp/nonall--basefile
echo '### Test --onall --basefile'; echo '### Test --onall --basefile';
touch /tmp/onall--basefile; touch /tmp/onall--basefile;
parallel --onall --basefile /tmp/onall--basefile -S $SSHLOGIN1,$SSHLOGIN2 ls ::: /tmp/onall--basefile; parallel --onall --basefile /tmp/onall--basefile -S $SSHLOGIN1,$SSHLOGIN2 ls {}\; rm {} ::: /tmp/onall--basefile;
rm /tmp/onall--basefile rm /tmp/onall--basefile
echo '### Test --workdir .'; echo '### Test --workdir .';

View file

@ -44,7 +44,7 @@ shellshock-hardened to non-shellshock-hardened
Function non-shellshock-hardened Function non-shellshock-hardened
echo '### bug #42999: --pipepart with remote does not work' echo '### bug #42999: --pipepart with remote does not work'
### bug #42999: --pipepart with remote does not work ### bug #42999: --pipepart with remote does not work
seq 100 > /tmp/bug42999; chmod 600 /tmp/bug42999; parallel --sshdelay 0.3 --pipepart --block 31 -a /tmp/bug42999 -k -S parallel@lo wc | perl -pe s:/tmp/.........pip:/tmp/XXXX: ; parallel --sshdelay 0.2 --pipepart --block 31 -a /tmp/bug42999 -k --fifo -S parallel@lo wc | perl -pe s:/tmp/.........pip:/tmp/XXXX: ; parallel --sshdelay 0.1 --pipepart --block 31 -a /tmp/bug42999 -k --cat -S parallel@lo wc | perl -pe s:/tmp/.........pip:/tmp/XXXX: ; seq 100 > /tmp/bug42999; chmod 600 /tmp/bug42999; parallel --sshdelay 0.3 --pipepart --block 31 -a /tmp/bug42999 -k -S parallel@lo wc | perl -pe s:/tmp/.........pip:/tmp/XXXX: ; parallel --sshdelay 0.2 --pipepart --block 31 -a /tmp/bug42999 -k --fifo -S parallel@lo wc | perl -pe s:/tmp/.........pip:/tmp/XXXX: ; parallel --sshdelay 0.1 --pipepart --block 31 -a /tmp/bug42999 -k --cat -S parallel@lo wc | perl -pe s:/tmp/.........pip:/tmp/XXXX: ; rm /tmp/bug42999
13 14 32 13 14 32
11 11 33 11 11 33
11 11 33 11 11 33

View file

@ -100,4 +100,10 @@ echo '### Uniq {=perlexpr=} in return - not used in command'
### Uniq {=perlexpr=} in return - not used in command ### Uniq {=perlexpr=} in return - not used in command
cd /tmp; rm -f /tmp/parallel_perlexpr.2Parallel_PerlexPr; echo local > parallel_perlexpr; parallel -Sparallel@lo --trc {=s/pr/pr.2/=}{=s/p/P/g=} echo remote OK '>' {}.2{=s/p/P/g=} ::: parallel_perlexpr; cat /tmp/parallel_perlexpr.2Parallel_PerlexPr; rm -f /tmp/parallel_perlexpr.2Parallel_PerlexPr /tmp/parallel_perlexpr cd /tmp; rm -f /tmp/parallel_perlexpr.2Parallel_PerlexPr; echo local > parallel_perlexpr; parallel -Sparallel@lo --trc {=s/pr/pr.2/=}{=s/p/P/g=} echo remote OK '>' {}.2{=s/p/P/g=} ::: parallel_perlexpr; cat /tmp/parallel_perlexpr.2Parallel_PerlexPr; rm -f /tmp/parallel_perlexpr.2Parallel_PerlexPr /tmp/parallel_perlexpr
remote OK remote OK
# Should be changed to --return '{=s:/f:/g:=}' and tested with csh # Should be changed to --return '{=s:/f:/g:=}' and tested with csh - is error code kept?
echo '### zsh'
### zsh
ssh zsh@lo 'fun="() { echo function from zsh to zsh \$*; }"; export fun; parallel --env fun fun ::: OK'
function from zsh to zsh OK
ssh zsh@lo 'fun="() { echo function from zsh to bash \$*; }"; export fun; parallel -S parallel@lo --env fun fun ::: OK'
function from zsh to bash OK

View file

@ -1,11 +1,11 @@
echo "### --line-buffer" echo "### --line-buffer"
### --line-buffer ### --line-buffer
seq 10 | parallel -j20 --line-buffer 'seq {} 10 | pv -qL 10' > /tmp/parallel_l$$; seq 10 | parallel -j20 'seq {} 10 | pv -qL 10' > /tmp/parallel_$$; cat /tmp/parallel_l$$ | wc; diff /tmp/parallel_$$ /tmp/parallel_l$$ >/dev/null ; echo These must diff: $? seq 10 | parallel -j20 --line-buffer 'seq {} 10 | pv -qL 10' > /tmp/parallel_l$$; seq 10 | parallel -j20 'seq {} 10 | pv -qL 10' > /tmp/parallel_$$; cat /tmp/parallel_l$$ | wc; diff /tmp/parallel_$$ /tmp/parallel_l$$ >/dev/null ; echo These must diff: $?; rm /tmp/parallel_l$$ /tmp/parallel_$$
55 55 120 55 55 120
These must diff: 1 These must diff: 1
echo "### --pipe --line-buffer" echo "### --pipe --line-buffer"
### --pipe --line-buffer ### --pipe --line-buffer
seq 200| parallel -N10 -L1 --pipe -j20 --line-buffer --tagstring {#} pv -qL 10 > /tmp/parallel_pl$$; seq 200| parallel -N10 -L1 --pipe -j20 --tagstring {#} pv -qL 10 > /tmp/parallel_p$$; cat /tmp/parallel_pl$$ | wc; diff /tmp/parallel_p$$ /tmp/parallel_pl$$ >/dev/null ; echo These must diff: $? seq 200| parallel -N10 -L1 --pipe -j20 --line-buffer --tagstring {#} pv -qL 10 > /tmp/parallel_pl$$; seq 200| parallel -N10 -L1 --pipe -j20 --tagstring {#} pv -qL 10 > /tmp/parallel_p$$; cat /tmp/parallel_pl$$ | wc; diff /tmp/parallel_p$$ /tmp/parallel_pl$$ >/dev/null ; echo These must diff: $?; rm /tmp/parallel_pl$$ /tmp/parallel_p$$
200 400 1202 200 400 1202
These must diff: 1 These must diff: 1
echo "### --pipe --line-buffer --compress" echo "### --pipe --line-buffer --compress"
@ -153,24 +153,31 @@ a7 b1 2 3 4 5 6 7
a8 b1 2 3 4 5 6 7 8 a8 b1 2 3 4 5 6 7 8
a9 b1 2 3 4 5 6 7 8 9 a9 b1 2 3 4 5 6 7 8 9
a10 b1 2 3 4 5 6 7 8 9 10 a10 b1 2 3 4 5 6 7 8 9 10
echo "### Test max line length -m -I"; seq 1 60000 | parallel -I :: -m -j1 echo a::b::c | tee >(sort |md5sum) >/tmp/114-a$$; export CHAR=$(cat /tmp/114-a$$ | wc -c); export LINES=$(cat /tmp/114-a$$ | wc -l); echo "Chars per line ($CHAR/$LINES): "$(echo "$CHAR/$LINES" | bc); rm /tmp/114-a$$ echo "### Test max line length -m -I"
### Test max line length -m -I ### Test max line length -m -I
seq 1 60000 | parallel -I :: -m -j1 echo a::b::c | tee >(sort |md5sum) >/tmp/114-a$$; export CHAR=$(cat /tmp/114-a$$ | wc -c); export LINES=$(cat /tmp/114-a$$ | wc -l); echo "Chars per line ($CHAR/$LINES): "$(echo "$CHAR/$LINES" | bc); rm /tmp/114-a$$
31d9274be5fdc2de59487cb05ba57776 - 31d9274be5fdc2de59487cb05ba57776 -
Chars per line (697800/6): 116300 Chars per line (697800/6): 116300
echo "### Test max line length -X -I"; seq 1 60000 | parallel -I :: -X -j1 echo a::b::c | tee >(sort |md5sum) >/tmp/114-b$$; export CHAR=$(cat /tmp/114-b$$ | wc -c); export LINES=$(cat /tmp/114-b$$ | wc -l); echo "Chars per line ($CHAR/$LINES): "$(echo "$CHAR/$LINES" | bc); rm /tmp/114-b$$ echo "### Test max line length -X -I"
### Test max line length -X -I ### Test max line length -X -I
seq 1 60000 | parallel -I :: -X -j1 echo a::b::c | tee >(sort |md5sum) >/tmp/114-b$$; export CHAR=$(cat /tmp/114-b$$ | wc -c); export LINES=$(cat /tmp/114-b$$ | wc -l); echo "Chars per line ($CHAR/$LINES): "$(echo "$CHAR/$LINES" | bc); rm /tmp/114-b$$
22074f9acada52462defb18ba912d744 - 22074f9acada52462defb18ba912d744 -
Chars per line (817788/7): 116826 Chars per line (817788/7): 116826
echo "### bug #36659: --sshlogin strips leading slash from ssh command"; parallel --sshlogin '/usr/bin/ssh localhost' echo ::: OK echo "### bug #36659: --sshlogin strips leading slash from ssh command"
### bug #36659: --sshlogin strips leading slash from ssh command ### bug #36659: --sshlogin strips leading slash from ssh command
parallel --sshlogin '/usr/bin/ssh localhost' echo ::: OK
OK OK
echo "### bug #36660: --workdir mkdir does not use --sshlogin custom ssh"; rm -rf /tmp/foo36660; cd /tmp; echo OK > parallel_test.txt; ssh () { echo Failed; }; export -f ssh; parallel --workdir /tmp/foo36660/bar --transfer --sshlogin '/usr/bin/ssh localhost' cat ::: parallel_test.txt; echo "bug #36657: --load does not work with custom ssh"; cd /tmp; echo OK > parallel_test.txt; ssh () { echo Failed; }; export -f ssh; parallel --load=1000% -S "/usr/bin/ssh localhost" echo ::: OK echo "### bug #36660: --workdir mkdir does not use --sshlogin custom ssh"
### bug #36660: --workdir mkdir does not use --sshlogin custom ssh ### bug #36660: --workdir mkdir does not use --sshlogin custom ssh
rm -rf /tmp/foo36660; cd /tmp; echo OK > parallel_test36660.txt; ssh () { echo Failed; }; export -f ssh; parallel --workdir /tmp/foo36660/bar --transfer --sshlogin '/usr/bin/ssh localhost' cat ::: parallel_test36660.txt; rm -rf /tmp/foo36660 parallel_test36660.txt
OK OK
echo "bug #36657: --load does not work with custom ssh"
bug #36657: --load does not work with custom ssh bug #36657: --load does not work with custom ssh
ssh () { echo Failed; }; export -f ssh; parallel --load=1000% -S "/usr/bin/ssh localhost" echo ::: OK
OK OK
echo "bug #34958: --pipe with record size measured in lines"; seq 10 | parallel -k --pipe -L 4 cat\;echo bug 34958-1 echo "bug #34958: --pipe with record size measured in lines"
bug #34958: --pipe with record size measured in lines bug #34958: --pipe with record size measured in lines
seq 10 | parallel -k --pipe -L 4 cat\;echo bug 34958-1
1 1
2 2
3 3
@ -183,8 +190,9 @@ bug 34958-1
9 9
10 10
bug 34958-1 bug 34958-1
echo "bug #37325: Inefficiency of --pipe -L"; seq 2000 | parallel -k --pipe --block 1k -L 4 wc\;echo FOO | uniq echo "bug #37325: Inefficiency of --pipe -L"
bug #37325: Inefficiency of --pipe -L bug #37325: Inefficiency of --pipe -L
seq 2000 | parallel -k --pipe --block 1k -L 4 wc\;echo FOO | uniq
276 276 996 276 276 996
FOO FOO
248 248 992 248 248 992
@ -203,8 +211,9 @@ FOO
FOO FOO
180 180 900 180 180 900
FOO FOO
echo "bug #34958: --pipe with record size measured in lines"; seq 10 | parallel -k --pipe -l 4 cat\;echo bug 34958-2 echo "bug #34958: --pipe with record size measured in lines"
bug #34958: --pipe with record size measured in lines bug #34958: --pipe with record size measured in lines
seq 10 | parallel -k --pipe -l 4 cat\;echo bug 34958-2
1 1
2 2
3 3
@ -217,8 +226,9 @@ bug 34958-2
9 9
10 10
bug 34958-2 bug 34958-2
echo "### Test --results"; mkdir -p /tmp/parallel_results_test; parallel -k --results /tmp/parallel_results_test/testA echo {1} {2} ::: I II ::: III IIII; ls /tmp/parallel_results_test/testA/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testA* echo "### Test --results"
### Test --results ### Test --results
mkdir -p /tmp/parallel_results_test; parallel -k --results /tmp/parallel_results_test/testA echo {1} {2} ::: I II ::: III IIII; ls /tmp/parallel_results_test/testA/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testA*
I III I III
I IIII I IIII
II III II III
@ -231,8 +241,9 @@ II IIII
/tmp/parallel_results_test/testA/1/II/2/III/stdout /tmp/parallel_results_test/testA/1/II/2/III/stdout
/tmp/parallel_results_test/testA/1/II/2/IIII/stderr /tmp/parallel_results_test/testA/1/II/2/IIII/stderr
/tmp/parallel_results_test/testA/1/II/2/IIII/stdout /tmp/parallel_results_test/testA/1/II/2/IIII/stdout
echo "### Test --res"; mkdir -p /tmp/parallel_results_test; parallel -k --res /tmp/parallel_results_test/testD echo {1} {2} ::: I II ::: III IIII; ls /tmp/parallel_results_test/testD/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testD* echo "### Test --res"
### Test --res ### Test --res
mkdir -p /tmp/parallel_results_test; parallel -k --res /tmp/parallel_results_test/testD echo {1} {2} ::: I II ::: III IIII; ls /tmp/parallel_results_test/testD/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testD*
I III I III
I IIII I IIII
II III II III
@ -245,8 +256,9 @@ II IIII
/tmp/parallel_results_test/testD/1/II/2/III/stdout /tmp/parallel_results_test/testD/1/II/2/III/stdout
/tmp/parallel_results_test/testD/1/II/2/IIII/stderr /tmp/parallel_results_test/testD/1/II/2/IIII/stderr
/tmp/parallel_results_test/testD/1/II/2/IIII/stdout /tmp/parallel_results_test/testD/1/II/2/IIII/stdout
echo "### Test --result"; mkdir -p /tmp/parallel_results_test; parallel -k --result /tmp/parallel_results_test/testE echo {1} {2} ::: I II ::: III IIII; ls /tmp/parallel_results_test/testE/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testE* echo "### Test --result"
### Test --result ### Test --result
mkdir -p /tmp/parallel_results_test; parallel -k --result /tmp/parallel_results_test/testE echo {1} {2} ::: I II ::: III IIII; ls /tmp/parallel_results_test/testE/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testE*
I III I III
I IIII I IIII
II III II III
@ -259,8 +271,9 @@ II IIII
/tmp/parallel_results_test/testE/1/II/2/III/stdout /tmp/parallel_results_test/testE/1/II/2/III/stdout
/tmp/parallel_results_test/testE/1/II/2/IIII/stderr /tmp/parallel_results_test/testE/1/II/2/IIII/stderr
/tmp/parallel_results_test/testE/1/II/2/IIII/stdout /tmp/parallel_results_test/testE/1/II/2/IIII/stdout
echo "### Test --results --header :"; mkdir -p /tmp/parallel_results_test; parallel -k --header : --results /tmp/parallel_results_test/testB echo {1} {2} ::: a I II ::: b III IIII; ls /tmp/parallel_results_test/testB/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testB* echo "### Test --results --header :"
### Test --results --header : ### Test --results --header :
mkdir -p /tmp/parallel_results_test; parallel -k --header : --results /tmp/parallel_results_test/testB echo {1} {2} ::: a I II ::: b III IIII; ls /tmp/parallel_results_test/testB/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testB*
I III I III
I IIII I IIII
II III II III
@ -273,8 +286,9 @@ II IIII
/tmp/parallel_results_test/testB/a/II/b/III/stdout /tmp/parallel_results_test/testB/a/II/b/III/stdout
/tmp/parallel_results_test/testB/a/II/b/IIII/stderr /tmp/parallel_results_test/testB/a/II/b/IIII/stderr
/tmp/parallel_results_test/testB/a/II/b/IIII/stdout /tmp/parallel_results_test/testB/a/II/b/IIII/stdout
echo "### Test --results --header : named - a/b swapped"; mkdir -p /tmp/parallel_results_test; parallel -k --header : --results /tmp/parallel_results_test/testC echo {a} {b} ::: b III IIII ::: a I II; ls /tmp/parallel_results_test/testC/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testC* echo "### Test --results --header : named - a/b swapped"
### Test --results --header : named - a/b swapped ### Test --results --header : named - a/b swapped
mkdir -p /tmp/parallel_results_test; parallel -k --header : --results /tmp/parallel_results_test/testC echo {a} {b} ::: b III IIII ::: a I II; ls /tmp/parallel_results_test/testC/*/*/*/*/*; rm -rf /tmp/parallel_results_test/testC*
I III I III
II III II III
I IIII I IIII
@ -287,14 +301,16 @@ II IIII
/tmp/parallel_results_test/testC/a/II/b/III/stdout /tmp/parallel_results_test/testC/a/II/b/III/stdout
/tmp/parallel_results_test/testC/a/II/b/IIII/stderr /tmp/parallel_results_test/testC/a/II/b/IIII/stderr
/tmp/parallel_results_test/testC/a/II/b/IIII/stdout /tmp/parallel_results_test/testC/a/II/b/IIII/stdout
echo "### Test --results --header : piped"; mkdir -p /tmp/parallel_results_test; (echo Col; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') | parallel --header : --result /tmp/parallel_results_test/testF true; find /tmp/parallel_results_test/testF/*/*/* | sort; rm -rf /tmp/parallel_results_test/testF* echo "### Test --results --header : piped"
### Test --results --header : piped ### Test --results --header : piped
mkdir -p /tmp/parallel_results_test; (echo Col; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') | parallel --header : --result /tmp/parallel_results_test/testF true; find /tmp/parallel_results_test/testF/*/*/* | sort; rm -rf /tmp/parallel_results_test/testF*
/tmp/parallel_results_test/testF/Col/backslash\\tab/2 /tmp/parallel_results_test/testF/Col/backslash\\tab/2
/tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\0eof /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\0eof
/tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\0eof/stderr /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\0eof/stderr
/tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\0eof/stdout /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\0eof/stdout
echo "### Test --results --header : piped - non-existing column header"; mkdir -p /tmp/parallel_results_test; (printf "Col1\t\n"; printf "v1\tv2\tv3\n"; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') | parallel --header : --result /tmp/parallel_results_test/testG true; find /tmp/parallel_results_test/testG/ | sort; rm -rf /tmp/parallel_results_test/testG* echo "### Test --results --header : piped - non-existing column header"
### Test --results --header : piped - non-existing column header ### Test --results --header : piped - non-existing column header
mkdir -p /tmp/parallel_results_test; (printf "Col1\t\n"; printf "v1\tv2\tv3\n"; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') | parallel --header : --result /tmp/parallel_results_test/testG true; find /tmp/parallel_results_test/testG/ | sort; rm -rf /tmp/parallel_results_test/testG*
/tmp/parallel_results_test/testG/ /tmp/parallel_results_test/testG/
/tmp/parallel_results_test/testG/Col1 /tmp/parallel_results_test/testG/Col1
/tmp/parallel_results_test/testG/Col1/backslash\\tab /tmp/parallel_results_test/testG/Col1/backslash\\tab

View file

@ -125,7 +125,7 @@ echo "### BUG-fix: bash -c 'parallel -a <(seq 1 3) echo'"
3 3
echo "### bug #35268: shell_quote doesn't treats [] brackets correctly" echo "### bug #35268: shell_quote doesn't treats [] brackets correctly"
### bug #35268: shell_quote doesn't treats [] brackets correctly ### bug #35268: shell_quote doesn't treats [] brackets correctly
touch /tmp/foo1; stdout parallel echo ::: '/tmp/foo[123]' touch /tmp/foo1; stdout parallel echo ::: '/tmp/foo[123]'; rm /tmp/foo1
/tmp/foo[123] /tmp/foo[123]
echo '### Test make .deb package'; cd ~/privat/parallel/packager/debian; stdout make | grep 'To install the GNU Parallel Debian package, run:' echo '### Test make .deb package'; cd ~/privat/parallel/packager/debian; stdout make | grep 'To install the GNU Parallel Debian package, run:'
### Test make .deb package ### Test make .deb package

View file

@ -12,7 +12,7 @@ echo '### test --sshdelay'
OK OK
echo '### bug #38299: --resume-failed -k' echo '### bug #38299: --resume-failed -k'
### bug #38299: --resume-failed -k ### bug #38299: --resume-failed -k
rm /tmp/joblog-38299; parallel -k --resume-failed --joblog /tmp/joblog-38299 echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1; echo try 2. Gives failing - not 0; parallel -k --resume-failed --joblog /tmp/joblog-38299 echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1; echo with exit 0; parallel -k --resume-failed --joblog /tmp/joblog-38299 echo job{#} val {}\;exit 0 ::: 0 1 2 3 0 1; echo try 2 again. Gives empty; parallel -k --resume-failed --joblog /tmp/joblog-38299 echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1 rm -f /tmp/joblog-38299; parallel -k --resume-failed --joblog /tmp/joblog-38299 echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1; echo try 2. Gives failing - not 0; parallel -k --resume-failed --joblog /tmp/joblog-38299 echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1; echo with exit 0; parallel -k --resume-failed --joblog /tmp/joblog-38299 echo job{#} val {}\;exit 0 ::: 0 1 2 3 0 1; echo try 2 again. Gives empty; parallel -k --resume-failed --joblog /tmp/joblog-38299 echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1; rm /tmp/joblog-38299
job1 val 0 job1 val 0
job2 val 1 job2 val 1
job3 val 2 job3 val 2
@ -32,7 +32,7 @@ job6 val 1
try 2 again. Gives empty try 2 again. Gives empty
echo '### --resume -k' echo '### --resume -k'
### --resume -k ### --resume -k
rm -f /tmp/joblog-resume; parallel -k --resume --joblog /tmp/joblog-resume echo job{}id\;exit {} ::: 0 1 2 3 0 5; echo try 2 = nothing; parallel -k --resume --joblog /tmp/joblog-resume echo job{}id\;exit {} ::: 0 1 2 3 0 5; echo two extra; parallel -k --resume --joblog /tmp/joblog-resume echo job{}id\;exit 0 ::: 0 1 2 3 0 5 6 7 rm -f /tmp/joblog-resume; parallel -k --resume --joblog /tmp/joblog-resume echo job{}id\;exit {} ::: 0 1 2 3 0 5; echo try 2 = nothing; parallel -k --resume --joblog /tmp/joblog-resume echo job{}id\;exit {} ::: 0 1 2 3 0 5; echo two extra; parallel -k --resume --joblog /tmp/joblog-resume echo job{}id\;exit 0 ::: 0 1 2 3 0 5 6 7; rm -f /tmp/joblog-resume
job0id job0id
job1id job1id
job2id job2id

View file

@ -95,7 +95,7 @@ echo '### bug #42913: Dont use $SHELL but the shell currently running'
### bug #42913: Dont use $SHELL but the shell currently running ### bug #42913: Dont use $SHELL but the shell currently running
echo '## Unknown shell => $SHELL (bash)' echo '## Unknown shell => $SHELL (bash)'
## Unknown shell => $SHELL (bash) ## Unknown shell => $SHELL (bash)
parallel -j1 "cp \`which {}\` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;" ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm /tmp/SHELL parallel -j1 "cp \`which {}\` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;" ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm -f /tmp/SHELL /tmp/par*.par
shell? /bin/bash -c cp `which ash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c cp `which ash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash which bash => shell path /bin/bash
shell? /bin/bash -c cp `which bash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c cp `which bash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
@ -137,7 +137,7 @@ Contact the systems administrator for further assistance.
SHELL: applet not found SHELL: applet not found
echo '## Known shells -c' echo '## Known shells -c'
## Known shells -c ## Known shells -c
parallel -k "\`which {}\` -c 'parallel -Dinit echo ::: 1' | grep which;" ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh parallel -k "\`which {}\` -c 'parallel -Dinit echo ::: 1' | grep which;" ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm -f /tmp/par*.par
which ash => shell path /bin/ash which ash => shell path /bin/ash
shell? /bin/bash -c `which bash` -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c `which bash` -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash which bash => shell path /bin/bash
@ -171,7 +171,7 @@ Local configuration error occurred.
Contact the systems administrator for further assistance. Contact the systems administrator for further assistance.
echo '## Known shells |' echo '## Known shells |'
## Known shells | ## Known shells |
parallel -k "echo 'parallel -Dinit echo ::: 1' | \`which {}\` | grep which;" ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh parallel -k "echo 'parallel -Dinit echo ::: 1' | \`which {}\` | grep which;" ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm -f /tmp/par*.par
which ash => shell path /bin/ash which ash => shell path /bin/ash
which bash => shell path /bin/bash which bash => shell path /bin/bash
which csh => shell path /bin/csh which csh => shell path /bin/csh
@ -196,6 +196,6 @@ Local configuration error occurred.
Contact the systems administrator for further assistance. Contact the systems administrator for further assistance.
echo '## Started directly from perl' echo '## Started directly from perl'
## Started directly from perl ## Started directly from perl
perl -e 'system(qw(parallel -Dinit echo ::: 1))' | grep which perl -e 'system(qw(parallel -Dinit echo ::: 1))' | grep which; rm -f /tmp/par*.par
shell? /bin/bash -c perl -e 'system(qw(parallel -Dinit echo ::: 1))' | grep which shell? /bin/bash -c perl -e 'system(qw(parallel -Dinit echo ::: 1))' | grep which; rm -f /tmp/par*.par
which bash => shell path /bin/bash which bash => shell path /bin/bash

View file

@ -133,3 +133,26 @@ a4b4c
seq 4 | parallel -s 20 -m -kj1 echo {} {} seq 4 | parallel -s 20 -m -kj1 echo {} {}
1 2 3 1 2 3 1 2 3 1 2 3
4 4 4 4
echo 'bug #44144: --tagstring {=s/a/b/=} broken'
bug #44144: --tagstring {=s/a/b/=} broken
# Do not be confused by {} in --rpl
parallel --rpl '{:} s/A/D/;{}' --tagstring '{1:}{-1:}{= s/A/E/=}' echo {} ::: A/B.C
D/B.CD/B.CE/B.C A/B.C
# Non-standard --parens parallel --parens ,, --rpl '{:} s/A/D/;{}' --tagstring '{1:}{-1:}, 's/A/E/, echo {} ::: A/B.C
# Non-standard --parens -i
parallel --rpl '{:} s/A/D/;{}' --tag --parens ,, -iDUMMY echo {} ::: A/B.C
A/B.C {} A/B.C
echo 'env in zsh'
env in zsh
echo 'Normal variable export'
Normal variable export
export B=\'; PARALLEL_SHELL=/usr/bin/zsh parallel --env B echo '$B' ::: a
' a
echo 'Function export as variable'
Function export as variable
export myfuncvar="() { echo myfuncvar \$*; }"; PARALLEL_SHELL=/usr/bin/zsh parallel --env myfuncvar myfuncvar ::: a
myfuncvar a
echo 'Function export as function'
Function export as function
myfunc() { echo myfunc $*; }; export -f myfunc; PARALLEL_SHELL=/usr/bin/zsh parallel --env myfunc myfunc ::: a
myfunc a

View file

@ -91,8 +91,8 @@ nice nice seq 1 100000 | $NICEPAR -j1 --spreadstdin cat "|cat "|wc -c
588895 588895
nice nice seq 1 1000000 | $NICEPAR -j10 --spreadstdin cat "|cat "|wc -c nice nice seq 1 1000000 | $NICEPAR -j10 --spreadstdin cat "|cat "|wc -c
6888896 6888896
seq 1 10 | $NICEPAR --recend "\n" -j1 --spreadstdin gzip -9 >/tmp/foo.gz seq 1 10 | $NICEPAR --recend "\n" -j1 --spreadstdin gzip -9 >/tmp/foo.gz; rm /tmp/foo.gz
echo '### Test --spreadstdin - similar to the failing below'; nice seq 1 100000 | $NICEPAR --recend "\n" -j10 --spreadstdin gzip -9 >/tmp/foo2.gz; diff <(nice seq 1 100000) <(zcat /tmp/foo2.gz |sort -n); diff <(nice seq 1 100000|wc -c) <(zcat /tmp/foo2.gz |wc -c) echo '### Test --spreadstdin - similar to the failing below'; nice seq 1 100000 | $NICEPAR --recend "\n" -j10 --spreadstdin gzip -9 >/tmp/foo2.gz; diff <(nice seq 1 100000) <(zcat /tmp/foo2.gz |sort -n); diff <(nice seq 1 100000|wc -c) <(zcat /tmp/foo2.gz |wc -c); rm /tmp/foo2.gz
### Test --spreadstdin - similar to the failing below ### Test --spreadstdin - similar to the failing below
echo '### Test --spreadstdin - this failed during devel'; nice seq 1 1000000 | md5sum; nice seq 1 1000000 | $NICEPAR --recend "\n" -j10 --spreadstdin gzip -9 | zcat | sort -n | md5sum echo '### Test --spreadstdin - this failed during devel'; nice seq 1 1000000 | md5sum; nice seq 1 1000000 | $NICEPAR --recend "\n" -j10 --spreadstdin gzip -9 | zcat | sort -n | md5sum
### Test --spreadstdin - this failed during devel ### Test --spreadstdin - this failed during devel

View file

@ -66,11 +66,11 @@ echo '### Test read sshloginfile from STDIN'; echo parallel@parallel-server1 |
### Test read sshloginfile from STDIN ### Test read sshloginfile from STDIN
redhat9.tange.dk redhat9.tange.dk
redhat9.tange.dk redhat9.tange.dk
echo '### Test --nonall --basefile'; touch /tmp/nonall--basefile; parallel --nonall --basefile /tmp/nonall--basefile -S parallel@parallel-server1,parallel@parallel-server2 ls /tmp/nonall--basefile echo '### Test --nonall --basefile'; touch /tmp/nonall--basefile; parallel --nonall --basefile /tmp/nonall--basefile -S parallel@parallel-server1,parallel@parallel-server2 ls /tmp/nonall--basefile\; rm /tmp/nonall--basefile; rm /tmp/nonall--basefile
### Test --nonall --basefile ### Test --nonall --basefile
/tmp/nonall--basefile /tmp/nonall--basefile
/tmp/nonall--basefile /tmp/nonall--basefile
echo '### Test --onall --basefile'; touch /tmp/onall--basefile; parallel --onall --basefile /tmp/onall--basefile -S parallel@parallel-server1,parallel@parallel-server2 ls ::: /tmp/onall--basefile echo '### Test --onall --basefile'; touch /tmp/onall--basefile; parallel --onall --basefile /tmp/onall--basefile -S parallel@parallel-server1,parallel@parallel-server2 ls {}\; rm {} ::: /tmp/onall--basefile; rm /tmp/onall--basefile
### Test --onall --basefile ### Test --onall --basefile
/tmp/onall--basefile /tmp/onall--basefile
/tmp/onall--basefile /tmp/onall--basefile