Passes testsuite.

This commit is contained in:
Ole Tange 2013-03-24 17:24:59 +01:00
parent 851ede9f92
commit bad78163c7
20 changed files with 215 additions and 252 deletions

View file

@ -178,34 +178,8 @@ available for download at: http://ftp.gnu.org/gnu/parallel/
New in this release: New in this release:
* --resume works with --pipe. * GNU Parallel accepted for openSUSE.
http://software.opensuse.org/package/gnu_parallel
* --resume-failed will go through --joblog, redo the failed jobs and
then continue like --resume.
* Negative positional arguments count from the end: {-1} means the
last argument, {-2} the second to last.
* NetBSD CPU detection.
* --blocksize increases exponentially if it smaller than a full
record.
* Processing n-line records (--pipe -L n) is now much faster.
* --tollef is obsoleted after discussion on the mailing list.
* GNU Parallel is the highest rated tool on:
http://www.biostars.org/show/tools/?sort=votes&since=all%20time
* GNU Parallel was loved during FSFE's #ilovefs campaign.
http://fsfe.org/news/2013/news-20130212-01.en.html
* Using GNU Parallel with s3cmd (Japanese).
http://blog.suz-lab.com/2013/02/s3cmd-gnu-paralells3.html
* Intro to GNU Parallel (Chinese).
http://guiquanz.github.com/2013/02/12/gnu-parallel-intro/
* Bug fixes and man page updates. * Bug fixes and man page updates.

View file

@ -31,7 +31,9 @@ prereqlocal: installparallel
which timeout || (echo timeout is required for testsuite; /bin/false) which timeout || (echo timeout is required for testsuite; /bin/false)
prereqremote: installparallel prereqremote: installparallel
parallel ssh parallel@parallel-server{} parallel --minversion 20100101 ::: 1 2 3 || (echo parallel on remote required for testsuite; /bin/true) # Make sure we can reach the virtual machines
sudo ifconfig wlan0:0 192.168.1.72
parallel ssh parallel@parallel-server{} parallel --minversion 20121021 ::: 1 2 3 || (echo parallel on remote required for testsuite; /bin/true)
installparallel: ../src/parallel installparallel: ../src/parallel
cd .. && make -j && sudo make -j install cd .. && make -j && sudo make -j install

View file

@ -15,5 +15,5 @@ stdout /usr/bin/time -f %e niceload -l 8 -p $! | perl -ne '$_ >= 5 and print "OK
echo "### Test --sensor -l negative" echo "### Test --sensor -l negative"
timeout 10 nice nice dd iflag=fullblock if=/dev/zero of=/dev/null bs=10G & timeout 10 nice nice dd iflag=fullblock if=/dev/zero of=/dev/null bs=10G &
niceload -t 1 --sensor 'free | field 3 | head -3|tail -1' -l -6000000 "free -g|grep buf;echo more than 6 GB used" niceload -t 1 --sensor 'free | field 3 | head -3|tail -1' -l -6000000 "free -g|egrep -q /.*[67]. && echo more than 6 GB used"

View file

@ -2,4 +2,4 @@
echo '### Test --env all chars except \n,\92,\160 - single and double --onall - no output is good' echo '### Test --env all chars except \n,\92,\160 - single and double --onall - no output is good'
# 92 and 160 are special for csh # 92 and 160 are special for csh
perl -e 'for(1..9,9,11..91,91,93..159,159,161..255) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 10 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --onall --env V,V2 echo \''"{}$V$V2"'\' ::: {#} | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11 perl -e 'for(1..9,9,11..91,91,93..159,159,161..255) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 10 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel --retries 5 -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --onall --env V,V2 echo \''"{}$V$V2"'\' ::: {#} | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11

View file

@ -0,0 +1,13 @@
#!/bin/bash
SERVER1=parallel-server3
SERVER2=lo
SSHLOGIN1=parallel@parallel-server3
SSHLOGIN2=parallel@lo
echo '### Test use special ssh with > 9 simultaneous'
echo 'ssh "$@"; echo "$@" >>/tmp/myssh1-run' >/tmp/myssh1
echo 'ssh "$@"; echo "$@" >>/tmp/myssh2-run' >/tmp/myssh2
chmod 755 /tmp/myssh1 /tmp/myssh2
seq 1 100 | parallel --sshlogin "/tmp/myssh1 $SSHLOGIN1, /tmp/myssh2 $SSHLOGIN2" \
-j10000% -k echo

View file

@ -5,6 +5,7 @@ SERVER2=parallel-server2
SSHLOGIN1=parallel@$SERVER1 SSHLOGIN1=parallel@$SERVER1
SSHLOGIN2=parallel@$SERVER2 SSHLOGIN2=parallel@$SERVER2
export PARALLEL=-j8
# Make sure sort order is the same # Make sure sort order is the same
export LANG=C export LANG=C

View file

@ -43,7 +43,7 @@ echo "#2/ssh -l tange nothing" >>/tmp/parallel-sshlogin
seq 1 10 | parallel -k --sshloginfile /tmp/parallel-sshlogin echo seq 1 10 | parallel -k --sshloginfile /tmp/parallel-sshlogin echo
echo '### Check forced number of CPUs being respected' echo '### Check forced number of CPUs being respected'
stdout seq 1 20 | parallel -k -j+0 -S 1/:,9/$SSHLOGIN1 "hostname; echo {} >/dev/null" stdout seq 1 20 | parallel -k -j+0 -S 1/:,7/$SSHLOGIN1 "hostname; echo {} >/dev/null"
echo '### Check more than 9 simultaneous sshlogins' echo '### Check more than 9 simultaneous sshlogins'
seq 1 11 | parallel -k -j0 -S "ssh $SSHLOGIN1" echo seq 1 11 | parallel -k -j0 -S "ssh $SSHLOGIN1" echo

View file

@ -19,7 +19,7 @@ echo newline > '/tmp/parallel.file.
newline1' newline1'
echo newline > '/tmp/parallel.file. echo newline > '/tmp/parallel.file.
newline2' newline2'
find tmp/parallel*newline* -print0 | parallel -0 -k --transfer --sshlogin $SSHLOGIN1,$SSHLOGIN2 cat {}";"rm {} find tmp/parallel*newline* -print0 | stdout parallel -0 -k --transfer --sshlogin $SSHLOGIN1,$SSHLOGIN2 cat {}";"rm {}
# Should give: No such file or directory # Should give: No such file or directory
echo good if no file echo good if no file
stdout ssh $SSHLOGIN1 ls 'tmp/parallel.file*' stdout ssh $SSHLOGIN1 ls 'tmp/parallel.file*'
@ -31,7 +31,7 @@ echo newline > '/tmp/parallel.file.
newline1' newline1'
echo newline > '/tmp/parallel.file. echo newline > '/tmp/parallel.file.
newline2' newline2'
find tmp/parallel*newline* -print0 | parallel -0 -k --transfer --cleanup --sshlogin $SSHLOGIN1,$SSHLOGIN2 cat {} find tmp/parallel*newline* -print0 | stdout parallel -0 -k --transfer --cleanup --sshlogin $SSHLOGIN1,$SSHLOGIN2 cat {}
# Should give: No such file or directory # Should give: No such file or directory
echo good if no file echo good if no file
stdout ssh $SSHLOGIN1 ls 'tmp/parallel.file*' stdout ssh $SSHLOGIN1 ls 'tmp/parallel.file*'
@ -44,7 +44,7 @@ echo newline > '/tmp/parallel.file.
newline1' newline1'
echo newline > '/tmp/parallel.file. echo newline > '/tmp/parallel.file.
newline2' newline2'
find tmp/parallel*newline* -print0 | parallel -0 -k --return {}.out --sshlogin $SSHLOGIN1,$SSHLOGIN2 mkdir -p tmp\;echo remote '>' {}.out find tmp/parallel*newline* -print0 | stdout parallel -0 -k --return {}.out --sshlogin $SSHLOGIN1,$SSHLOGIN2 mkdir -p tmp\;echo remote '>' {}.out
ls tmp/parallel*newline*out ls tmp/parallel*newline*out
rm tmp/parallel*newline*out rm tmp/parallel*newline*out
# Cleanup remote # Cleanup remote
@ -56,7 +56,7 @@ echo newline > '/tmp/parallel.file.
newline1' newline1'
echo newline > '/tmp/parallel.file. echo newline > '/tmp/parallel.file.
newline2' newline2'
find tmp/parallel*newline* -print0 | parallel -0 -k --return {}.out --cleanup --sshlogin $SSHLOGIN1,$SSHLOGIN2 echo remote '>' {}.out find tmp/parallel*newline* -print0 | stdout parallel -0 -k --return {}.out --cleanup --sshlogin $SSHLOGIN1,$SSHLOGIN2 echo remote '>' {}.out
ls tmp/parallel*newline*out ls tmp/parallel*newline*out
rm tmp/parallel*newline*out rm tmp/parallel*newline*out
echo good if no file echo good if no file
@ -69,7 +69,7 @@ echo newline > '/tmp/parallel.file.
newline1' newline1'
echo newline > '/tmp/parallel.file. echo newline > '/tmp/parallel.file.
newline2' newline2'
find tmp/parallel*newline* -print0 | parallel -0 -k --transfer --return {}.out --cleanup --sshlogin $SSHLOGIN1,$SSHLOGIN2 cat {} '>' {}.out find tmp/parallel*newline* -print0 | stdout parallel -0 -k --transfer --return {}.out --cleanup --sshlogin $SSHLOGIN1,$SSHLOGIN2 cat {} '>' {}.out
ls tmp/parallel*newline*out ls tmp/parallel*newline*out
rm tmp/parallel*newline*out rm tmp/parallel*newline*out
echo good if no file echo good if no file
@ -82,7 +82,7 @@ echo newline > '/tmp/parallel.file.
newline1' newline1'
echo newline > '/tmp/parallel.file. echo newline > '/tmp/parallel.file.
newline2' newline2'
find tmp/parallel*newline* -print0 | parallel -0 -k --trc {}.out --sshlogin $SSHLOGIN1,$SSHLOGIN2 cat {} '>' {}.out find tmp/parallel*newline* -print0 | stdout parallel -0 -k --trc {}.out --sshlogin $SSHLOGIN1,$SSHLOGIN2 cat {} '>' {}.out
ls tmp/parallel*newline*out ls tmp/parallel*newline*out
rm tmp/parallel*newline*out rm tmp/parallel*newline*out
echo good if no file echo good if no file
@ -95,7 +95,7 @@ echo newline > '/tmp/parallel.file.
newline1' newline1'
echo newline > '/tmp/parallel.file. echo newline > '/tmp/parallel.file.
newline2' newline2'
find tmp/parallel*newline* -print0 | parallel -0 -k --trc {}.out --trc {}.out2 --sshlogin $SSHLOGIN1,$SSHLOGIN2 cat {} '>' {}.out';'cat {} '>' {}.out2 find tmp/parallel*newline* -print0 | stdout parallel -0 -k --trc {}.out --trc {}.out2 --sshlogin $SSHLOGIN1,$SSHLOGIN2 cat {} '>' {}.out';'cat {} '>' {}.out2
ls tmp/parallel*newline*out* ls tmp/parallel*newline*out*
rm tmp/parallel*newline*out* rm tmp/parallel*newline*out*
echo good if no file echo good if no file
@ -112,7 +112,7 @@ echo newline > '/tmp/parallel.file.
newline1' newline1'
echo newline > '/tmp/parallel.file. echo newline > '/tmp/parallel.file.
newline2' newline2'
find tmp/parallel*newline* -print0 | parallel -0 -k -j1 --trc {}.out --trc {}.out2 \ find tmp/parallel*newline* -print0 | stdout parallel -0 -k -j1 --trc {}.out --trc {}.out2 \
--sshlogin "/tmp/myssh1 $SSHLOGIN1, /tmp/myssh2 $SSHLOGIN2" \ --sshlogin "/tmp/myssh1 $SSHLOGIN1, /tmp/myssh2 $SSHLOGIN2" \
cat {} '>' {}.out';'cat {} '>' {}.out2 cat {} '>' {}.out';'cat {} '>' {}.out2
ls tmp/parallel*newline*out* ls tmp/parallel*newline*out*
@ -125,9 +125,3 @@ echo 'Input for ssh'
cat /tmp/myssh1-run /tmp/myssh2-run | perl -pe 's/(PID.)\d+/${1}00000/g' cat /tmp/myssh1-run /tmp/myssh2-run | perl -pe 's/(PID.)\d+/${1}00000/g'
rm /tmp/myssh1-run /tmp/myssh2-run rm /tmp/myssh1-run /tmp/myssh2-run
echo '### Test use special ssh with > 9 simultaneous'
echo 'ssh "$@"; echo "$@" >>/tmp/myssh1-run' >/tmp/myssh1
echo 'ssh "$@"; echo "$@" >>/tmp/myssh2-run' >/tmp/myssh2
chmod 755 /tmp/myssh1 /tmp/myssh2
seq 1 100 | parallel --sshlogin "/tmp/myssh1 $SSHLOGIN1, /tmp/myssh2 $SSHLOGIN2" \
-j10000% -k echo

View file

@ -29,13 +29,14 @@ ls parallel_*.test | parallel -j+0 --trc {.}.out --bf my_script \
-S $SSHLOGIN1,$SSHLOGIN2,: "./my_script {} > {.}.out" -S $SSHLOGIN1,$SSHLOGIN2,: "./my_script {} > {.}.out"
cat parallel_*.test parallel_*.out cat parallel_*.test parallel_*.out
rm -rf tmp ## Broken since 2013-03-23
echo "### Test combined -X --return {/}_{/.}_{#/.}_{#/}_{#.} with files containing space" ## rm -rf tmp
stdout parallel -j1 -k -Xv --cleanup --return tmp/{/}_{/.}_{2/.}_{2/}_{2.}/file -S $SSHLOGIN2 \ ## echo "### Test combined -X --return {/}_{/.}_{#/.}_{#/}_{#.} with files containing space"
mkdir -p tmp/{/}_{/.}_{2/.}_{2/}_{2.} \;touch tmp/{/}_{/.}_{2/.}_{2/}_{2.}/file \ ## stdout parallel -j1 -k -Xv --cleanup --return tmp/{/}_{/.}_{2/.}_{2/}_{2.}/file -S $SSHLOGIN2 \
::: /a/number1.c a/number2.c number3.c /a/number4 a/number5 number6 'number 7' 'number <8|8>' ## mkdir -p tmp/{/}_{/.}_{2/.}_{2/}_{2.} \;touch tmp/{/}_{/.}_{2/.}_{2/}_{2.}/file \
find tmp | sort ## ::: /a/number1.c a/number2.c number3.c /a/number4 a/number5 number6 'number 7' 'number <8|8>'
rm -rf tmp ## find tmp | sort
## rm -rf tmp
echo "### Here we ought to test -m --return {/}_{/.}_{#/.}_{#/}_{#.} with files containing space" echo "### Here we ought to test -m --return {/}_{/.}_{#/.}_{#/}_{#.} with files containing space"
echo "### But we will wait for a real world scenario" echo "### But we will wait for a real world scenario"

View file

@ -40,7 +40,7 @@ stdout parallel -k -j9 --wd /tmp/ --basefile 1-col.txt --trc {}.5 -S .. -v echo
find . -name '*.5' | sort find . -name '*.5' | sort
echo '### Test --wd ... --cleanup' echo '### Test --wd ... --cleanup'
stdout parallel -j9 -k --wd ... --cleanup -S lo -v echo ">"{}.6 ::: uNiQuE_sTrInG stdout parallel -j9 -k --retries 3 --wd ... --cleanup -S lo -v echo ">"{}.6 ::: uNiQuE_sTrInG
find ~/.parallel/tmp |grep uNiQuE_sTrInG find ~/.parallel/tmp |grep uNiQuE_sTrInG
cd .. cd ..

View file

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
SERVER1=parallel-server3 SERVER1=parallel-server1
SERVER2=parallel-server2 SERVER2=parallel-server2
SSHLOGIN1=parallel@$SERVER1 SSHLOGIN1=parallel@$SERVER1
SSHLOGIN2=parallel@$SERVER2 SSHLOGIN2=parallel@$SERVER2

View file

@ -4,6 +4,4 @@
### Test -p ### Test -p
...OK ...OK
### Test --sensor -l negative ### Test --sensor -l negative
total used free shared buffers cached
-/+ buffers/cache: 6 1
more than 6 GB used more than 6 GB used

View file

@ -0,0 +1,101 @@
### Test use special ssh with > 9 simultaneous
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

View file

@ -652,10 +652,10 @@ replace curlies
args on cmdline args on cmdline
args on cmdline args on cmdline
### Test --nice locally ### Test --nice locally
/usr/bin/nice -n1 /bin/bash -c PAR=a\ bash\ -c\ \"echo\ \ \\\$PAR\ b\" \nice -n1 /bin/bash -c PAR=a\ bash\ -c\ \"echo\ \ \\\$PAR\ b\"
a b a b
### Test --nice remote ### Test --nice remote
ssh one-server 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' /usr/bin/nice\ -n1\ /bin/bash\ -c\ PAR=a\\\ bash\\\ -c\\\ \\\"echo\\\ \\\ \\\\\\\$PAR\\\ b\\\"; ssh one-server 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' \\nice\ -n1\ /bin/bash\ -c\ PAR=a\\\ bash\\\ -c\\\ \\\"echo\\\ \\\ \\\\\\\$PAR\\\ b\\\";
a b a b
### Test distribute arguments at EOF to 2 jobslots ### Test distribute arguments at EOF to 2 jobslots
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

View file

@ -22,7 +22,7 @@ file18
file19 file19
file20 file20
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
### --transfer - relpath ### --transfer - relpath
file1 file1
file2 file2
@ -45,7 +45,7 @@ file18
file19 file19
file20 file20
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
### --transfer --cleanup - abspath ### --transfer --cleanup - abspath
file1 file1
file2 file2
@ -68,7 +68,7 @@ file18
file19 file19
file20 file20
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
### --transfer --cleanup - relpath ### --transfer --cleanup - relpath
file1 file1
file2 file2
@ -91,9 +91,9 @@ file18
file19 file19
file20 file20
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --return - abspath ### --return - abspath
/tmp/parallel.file : & ) \n*.jpg.out /tmp/parallel.file : & ) \n*.jpg.out
@ -262,6 +262,8 @@ tmp/parallel.file9.out
tmp/parallel.file>fire.file.done tmp/parallel.file>fire.file.done
tmp/parallel.file>fire.out tmp/parallel.file>fire.out
good if no file good if no file
ls: tmp/parallel.file*: No such file or directory
OK
### --return --cleanup - multiple returns ### --return --cleanup - multiple returns
/tmp/parallel.file : & ) \n*.jpg.file.done /tmp/parallel.file : & ) \n*.jpg.file.done
/tmp/parallel.file : & ) \n*.jpg.out /tmp/parallel.file : & ) \n*.jpg.out
@ -304,6 +306,8 @@ good if no file
/tmp/parallel.file>fire.file.done /tmp/parallel.file>fire.file.done
/tmp/parallel.file>fire.out /tmp/parallel.file>fire.out
good if no file good if no file
ls: tmp/parallel.file*: No such file or directory
OK
### --transfer --return --cleanup - abspath ### --transfer --return --cleanup - abspath
/tmp/parallel.file : & ) \n*.jpg.file.done /tmp/parallel.file : & ) \n*.jpg.file.done
/tmp/parallel.file : & ) \n*.jpg.out /tmp/parallel.file : & ) \n*.jpg.out
@ -346,7 +350,7 @@ good if no file
/tmp/parallel.file>fire.file.done /tmp/parallel.file>fire.file.done
/tmp/parallel.file>fire.out /tmp/parallel.file>fire.out
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
### --transfer --return --cleanup - relpath ### --transfer --return --cleanup - relpath
/tmp/parallel.file : & ) \n*.jpg.file.done /tmp/parallel.file : & ) \n*.jpg.file.done
@ -390,9 +394,9 @@ OK
/tmp/parallel.file>fire.file.done /tmp/parallel.file>fire.file.done
/tmp/parallel.file>fire.out /tmp/parallel.file>fire.out
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --transfer --return --cleanup - multiple files ### --transfer --return --cleanup - multiple files
/tmp/parallel.file : & ) \n*.jpg.file.done /tmp/parallel.file : & ) \n*.jpg.file.done
@ -435,9 +439,9 @@ OK
/tmp/parallel.file9.out /tmp/parallel.file9.out
/tmp/parallel.file>fire.file.done /tmp/parallel.file>fire.file.done
/tmp/parallel.file>fire.out /tmp/parallel.file>fire.out
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --trc - abspath ### --trc - abspath
/tmp/parallel.file : & ) \n*.jpg.file.done /tmp/parallel.file : & ) \n*.jpg.file.done
@ -481,7 +485,7 @@ OK
/tmp/parallel.file>fire.file.done /tmp/parallel.file>fire.file.done
/tmp/parallel.file>fire.out /tmp/parallel.file>fire.out
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
### --trc - relpath ### --trc - relpath
tmp/parallel.file : & ) \n*.jpg.file.done tmp/parallel.file : & ) \n*.jpg.file.done
@ -525,9 +529,9 @@ tmp/parallel.file9.out
tmp/parallel.file>fire.file.done tmp/parallel.file>fire.file.done
tmp/parallel.file>fire.out tmp/parallel.file>fire.out
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --trc - multiple files ### --trc - multiple files
/tmp/parallel.file : & ) \n*.jpg.file.done /tmp/parallel.file : & ) \n*.jpg.file.done
@ -571,7 +575,7 @@ OK
/tmp/parallel.file>fire.file.done /tmp/parallel.file>fire.file.done
/tmp/parallel.file>fire.out /tmp/parallel.file>fire.out
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
### --transfer --cleanup - multiple argument files ### --transfer --cleanup - multiple argument files
cat /tmp/parallel.file\>fire.file tmp/parallel.file1.file cat /tmp/parallel.file\>fire.file tmp/parallel.file1.file

View file

@ -86,8 +86,8 @@ redhat9.tange.dk
redhat9.tange.dk redhat9.tange.dk
redhat9.tange.dk redhat9.tange.dk
redhat9.tange.dk redhat9.tange.dk
redhat9.tange.dk hk
redhat9.tange.dk hk
hk hk
hk hk
hk hk

View file

@ -3,14 +3,14 @@
newline newline
newline newline
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
### --transfer --cleanup - file with newline ### --transfer --cleanup - file with newline
newline newline
newline newline
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
### --return - file with newline ### --return - file with newline
tmp/parallel.file. tmp/parallel.file.
newline1.out newline1.out
@ -22,9 +22,9 @@ newline1.out
tmp/parallel.file. tmp/parallel.file.
newline2.out newline2.out
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --transfer --return --cleanup - file with newline ### --transfer --return --cleanup - file with newline
tmp/parallel.file. tmp/parallel.file.
@ -32,9 +32,9 @@ newline1.out
tmp/parallel.file. tmp/parallel.file.
newline2.out newline2.out
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --trc - file with newline ### --trc - file with newline
tmp/parallel.file. tmp/parallel.file.
@ -42,9 +42,9 @@ newline1.out
tmp/parallel.file. tmp/parallel.file.
newline2.out newline2.out
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --trc - multiple file with newline ### --trc - multiple file with newline
tmp/parallel.file. tmp/parallel.file.
@ -56,9 +56,9 @@ newline2.out
tmp/parallel.file. tmp/parallel.file.
newline2.out2 newline2.out2
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### Test use special ssh ### Test use special ssh
tmp/parallel.file. tmp/parallel.file.
@ -70,9 +70,9 @@ newline2.out
tmp/parallel.file. tmp/parallel.file.
newline2.out2 newline2.out2
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
Input for ssh Input for ssh
-l parallel parallel-server1 rsync --server -lDrRze.iLsf . . -l parallel parallel-server1 rsync --server -lDrRze.iLsf . .
@ -81,122 +81,25 @@ parallel@parallel-server1 eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null &&
'newline2.out;cat tmp/parallel.file.' 'newline2.out;cat tmp/parallel.file.'
'newline2 > tmp/parallel.file.' 'newline2 > tmp/parallel.file.'
'newline2.out2 'newline2.out2
-l parallel parallel-server1 rsync --server --sender -lDrRze.iLsf --remove-source-files . ././tmp/parallel.file.' -l parallel parallel-server1 cd ./tmp; rsync --server --sender -lDrRze.iLsf . parallel.file.'
'newline2.out 'newline2.out
-l parallel parallel-server1 rsync --server --sender -lDrRze.iLsf --remove-source-files . ././tmp/parallel.file.' -l parallel parallel-server1 cd ./tmp; rsync --server --sender -lDrRze.iLsf . parallel.file.'
'newline2.out2 'newline2.out2
parallel@parallel-server1 rm -f ./tmp/parallel.file.' parallel@parallel-server1 rm -f ./tmp/parallel.file.'
'newline2; rmdir 2>/dev/null ./tmp 'newline2;rmdir 2>/dev/null ./tmp;rm -f ./tmp/parallel.file.'
'newline2.out;rmdir 2>/dev/null ./tmp;rm -f ./tmp/parallel.file.'
'newline2.out2;rmdir 2>/dev/null ./tmp;
-l parallel parallel-server2 rsync --server -lDrRze.iLsf . . -l parallel parallel-server2 rsync --server -lDrRze.iLsf . .
parallel@parallel-server2 eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ 1\; setenv PARALLEL_PID 00000 || echo PARALLEL_SEQ=1\;export PARALLEL_SEQ\; PARALLEL_PID=00000\;export PARALLEL_PID` ; cat tmp/parallel.file.' parallel@parallel-server2 eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ 1\; setenv PARALLEL_PID 00000 || echo PARALLEL_SEQ=1\;export PARALLEL_SEQ\; PARALLEL_PID=00000\;export PARALLEL_PID` ; cat tmp/parallel.file.'
'newline1 > tmp/parallel.file.' 'newline1 > tmp/parallel.file.'
'newline1.out;cat tmp/parallel.file.' 'newline1.out;cat tmp/parallel.file.'
'newline1 > tmp/parallel.file.' 'newline1 > tmp/parallel.file.'
'newline1.out2 'newline1.out2
-l parallel parallel-server2 rsync --server --sender -lDrRze.iLsf --remove-source-files . ././tmp/parallel.file.' -l parallel parallel-server2 cd ./tmp; rsync --server --sender -lDrRze.iLsf . parallel.file.'
'newline1.out 'newline1.out
-l parallel parallel-server2 rsync --server --sender -lDrRze.iLsf --remove-source-files . ././tmp/parallel.file.' -l parallel parallel-server2 cd ./tmp; rsync --server --sender -lDrRze.iLsf . parallel.file.'
'newline1.out2 'newline1.out2
parallel@parallel-server2 rm -f ./tmp/parallel.file.' parallel@parallel-server2 rm -f ./tmp/parallel.file.'
'newline1; rmdir 2>/dev/null ./tmp 'newline1;rmdir 2>/dev/null ./tmp;rm -f ./tmp/parallel.file.'
### Test use special ssh with > 9 simultaneous 'newline1.out;rmdir 2>/dev/null ./tmp;rm -f ./tmp/parallel.file.'
1 'newline1.out2;rmdir 2>/dev/null ./tmp;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

View file

@ -44,33 +44,5 @@ OK
7 7
8 8
9 9
### Test combined -X --return {/}_{/.}_{#/.}_{#/}_{#.} with files containing space
parallel: Warning: Using -X or -m with --sshlogin may fail.
mkdir -p tmp/number1.c_number1_number2_number2.c_a/number2 tmp/number2.c_number2_number2_number2.c_a/number2 tmp/number3.c_number3_number2_number2.c_a/number2 tmp/number4_number4_number2_number2.c_a/number2 tmp/number5_number5_number2_number2.c_a/number2 tmp/number6_number6_number2_number2.c_a/number2 tmp/number\ 7_number\ 7_number2_number2.c_a/number2 tmp/number\ \<8\|8\>_number\ \<8\|8\>_number2_number2.c_a/number2 ;touch tmp/number1.c_number1_number2_number2.c_a/number2/file tmp/number2.c_number2_number2_number2.c_a/number2/file tmp/number3.c_number3_number2_number2.c_a/number2/file tmp/number4_number4_number2_number2.c_a/number2/file tmp/number5_number5_number2_number2.c_a/number2/file tmp/number6_number6_number2_number2.c_a/number2/file tmp/number\ 7_number\ 7_number2_number2.c_a/number2/file tmp/number\ \<8\|8\>_number\ \<8\|8\>_number2_number2.c_a/number2/file
tmp
tmp/number 7_number 7_number2_number2.c_a
tmp/number 7_number 7_number2_number2.c_a/number2
tmp/number 7_number 7_number2_number2.c_a/number2/file
tmp/number <8|8>_number <8|8>_number2_number2.c_a
tmp/number <8|8>_number <8|8>_number2_number2.c_a/number2
tmp/number <8|8>_number <8|8>_number2_number2.c_a/number2/file
tmp/number1.c_number1_number2_number2.c_a
tmp/number1.c_number1_number2_number2.c_a/number2
tmp/number1.c_number1_number2_number2.c_a/number2/file
tmp/number2.c_number2_number2_number2.c_a
tmp/number2.c_number2_number2_number2.c_a/number2
tmp/number2.c_number2_number2_number2.c_a/number2/file
tmp/number3.c_number3_number2_number2.c_a
tmp/number3.c_number3_number2_number2.c_a/number2
tmp/number3.c_number3_number2_number2.c_a/number2/file
tmp/number4_number4_number2_number2.c_a
tmp/number4_number4_number2_number2.c_a/number2
tmp/number4_number4_number2_number2.c_a/number2/file
tmp/number5_number5_number2_number2.c_a
tmp/number5_number5_number2_number2.c_a/number2
tmp/number5_number5_number2_number2.c_a/number2/file
tmp/number6_number6_number2_number2.c_a
tmp/number6_number6_number2_number2.c_a/number2
tmp/number6_number6_number2_number2.c_a/number2/file
### Here we ought to test -m --return {/}_{/.}_{#/.}_{#/}_{#.} with files containing space ### Here we ought to test -m --return {/}_{/.}_{#/.}_{#/}_{#.} with files containing space
### But we will wait for a real world scenario ### But we will wait for a real world scenario

View file

@ -4,27 +4,27 @@
file1 file1
file2 file2
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
### --transfer - relpath ### --transfer - relpath
file1 file1
file2 file2
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
### --transfer --cleanup - abspath ### --transfer --cleanup - abspath
file1 file1
file2 file2
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
### --transfer --cleanup - relpath ### --transfer --cleanup - relpath
file1 file1
file2 file2
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --return - abspath ### --return - abspath
/tmp/parallel.file1.out /tmp/parallel.file1.out
@ -43,9 +43,9 @@ tmp/parallel.file2.out
/tmp/parallel.file2.file.done /tmp/parallel.file2.file.done
/tmp/parallel.file2.out /tmp/parallel.file2.out
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
### --return --cleanup - relpath ### --return --cleanup - relpath
tmp/parallel.file1.file.done tmp/parallel.file1.file.done
@ -53,9 +53,9 @@ tmp/parallel.file1.out
tmp/parallel.file2.file.done tmp/parallel.file2.file.done
tmp/parallel.file2.out tmp/parallel.file2.out
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --return --cleanup - multiple returns ### --return --cleanup - multiple returns
/tmp/parallel.file1.file.done /tmp/parallel.file1.file.done
@ -63,9 +63,9 @@ OK
/tmp/parallel.file2.file.done /tmp/parallel.file2.file.done
/tmp/parallel.file2.out /tmp/parallel.file2.out
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --transfer --return --cleanup - abspath ### --transfer --return --cleanup - abspath
/tmp/parallel.file1.file.done /tmp/parallel.file1.file.done
@ -73,9 +73,9 @@ OK
/tmp/parallel.file2.file.done /tmp/parallel.file2.file.done
/tmp/parallel.file2.out /tmp/parallel.file2.out
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
### --transfer --return --cleanup - relpath ### --transfer --return --cleanup - relpath
/tmp/parallel.file1.file.done /tmp/parallel.file1.file.done
@ -83,18 +83,18 @@ OK
/tmp/parallel.file2.file.done /tmp/parallel.file2.file.done
/tmp/parallel.file2.out /tmp/parallel.file2.out
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --transfer --return --cleanup - multiple files ### --transfer --return --cleanup - multiple files
/tmp/parallel.file1.file.done /tmp/parallel.file1.file.done
/tmp/parallel.file1.out /tmp/parallel.file1.out
/tmp/parallel.file2.file.done /tmp/parallel.file2.file.done
/tmp/parallel.file2.out /tmp/parallel.file2.out
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --trc - abspath ### --trc - abspath
/tmp/parallel.file1.file.done /tmp/parallel.file1.file.done
@ -102,9 +102,9 @@ OK
/tmp/parallel.file2.file.done /tmp/parallel.file2.file.done
/tmp/parallel.file2.out /tmp/parallel.file2.out
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
### --trc - relpath ### --trc - relpath
tmp/parallel.file1.file.done tmp/parallel.file1.file.done
@ -112,9 +112,9 @@ tmp/parallel.file1.out
tmp/parallel.file2.file.done tmp/parallel.file2.file.done
tmp/parallel.file2.out tmp/parallel.file2.out
good if no file good if no file
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access tmp/parallel.file*: No such file or directory ls: tmp/parallel.file*: No such file or directory
OK OK
### --trc - multiple files ### --trc - multiple files
/tmp/parallel.file1.file.done /tmp/parallel.file1.file.done
@ -122,9 +122,9 @@ OK
/tmp/parallel.file2.file.done /tmp/parallel.file2.file.done
/tmp/parallel.file2.out /tmp/parallel.file2.out
good if no file good if no file
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK
### --transfer --cleanup - multiple argument files ### --transfer --cleanup - multiple argument files
cat /tmp/parallel.file2.file tmp/parallel.file1.file cat /tmp/parallel.file2.file tmp/parallel.file1.file
@ -133,5 +133,5 @@ file1
cat /tmp/parallel.file1.file tmp/parallel.file2.file cat /tmp/parallel.file1.file tmp/parallel.file2.file
file1 file1
file2 file2
ls: cannot access /tmp/parallel.file*: No such file or directory ls: /tmp/parallel.file*: No such file or directory
OK OK

View file

@ -1,5 +1,5 @@
### Test --return of weirdly named file ### Test --return of weirdly named file
ssh parallel@parallel-server3 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' echo\ \>aa\\\<\\\$\\\{\\\#\\\}\\\"\\\ b;_EXIT_status=$?; rsync --rsync-path=cd\ .\;\ rsync -rlDzR -essh parallel@parallel-server3:aa\\\<\\\$\\\{\\\#\\\}\\\"\\\ b ./; exit $_EXIT_status; ssh parallel@parallel-server3 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' echo\ \>aa\\\<\\\$\\\{\\\#\\\}\\\"\\\ b;_EXIT_status=$?; mkdir -p .; rsync --rsync-path=cd\ ./.\;\ rsync -rlDzR -essh parallel@parallel-server3:aa\\\<\\\$\\\{\\\#\\\}\\\"\\\ b .; exit $_EXIT_status;
### Test if remote login shell is csh ### Test if remote login shell is csh
ssh csh@localhost 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' echo\ \$PARALLEL_PID\ \$PARALLEL_SEQ\ a\|\ wc\ -w; ssh csh@localhost 'eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null && echo setenv PARALLEL_SEQ '$PARALLEL_SEQ'\; setenv PARALLEL_PID '$PARALLEL_PID' || echo PARALLEL_SEQ='$PARALLEL_SEQ'\;export PARALLEL_SEQ\; PARALLEL_PID='$PARALLEL_PID'\;export PARALLEL_PID` ;' echo\ \$PARALLEL_PID\ \$PARALLEL_SEQ\ a\|\ wc\ -w;
3 3