testsuite: niceload impoved. Fewer --env tests.

This commit is contained in:
Ole Tange 2012-10-22 23:08:54 +02:00
parent 75f54b795f
commit f6a6a35309
7 changed files with 86 additions and 53 deletions

41
NEWS
View file

@ -1,3 +1,44 @@
20121022
* --results structures output files so they can be imported using
Pandas (http://pandas.pydata.org/). Useful when doing simulations to
select output from some arguments.
* Use --env to transfer environment variables through ssh to remote
machines.
* GNU Parallel is accepted for Ubuntu Quantal.
http://packages.ubuntu.com/quantal/parallel
* GNU Parallel was requested for OpenSUSE (go vote!)
https://features.opensuse.org/314461
* Kneth's Korner: Map/Reduce and GNU Parallel
http://kenneth.geisshirt.dk/2012/10/mapreduce-and-gnu-parallel.html
* Blog post in Japanese by Siguniang.
https://siguniang.wordpress.com/2012/09/09/notes-on-gnu-parallel-the-command-line-power-tool/
(Siguniang mentions the logo is called 'The Cafe Wall Illusion')
http://www.michaelbach.de/ot/ang_cafewall/index.html
* GNU Parallel, where have you been all my life?
http://ssdigit.nothingisreal.com/2012/09/gnu-parallel-where-have-you-been-all-my.html
* Reference-free ddRADseq analysis tools uses GNU Parallel.
https://github.com/brantp/rtd#readme
* When bash just isnt quick enough.
https://soimasysadmin.wordpress.com/2012/08/15/gnu-parallel-when-bash-just-isnt-quick-enough/
* Using GNU Parallel to Package Multiple Jobs in a Single PBS Job.
http://www.nas.nasa.gov/hecc/support/kb/Using-GNU-Parallel-to-Package-Multiple-Jobs-in-a-Single-PBS-Job_303.html
* GNU Parallel Notes.
http://xed.ch/help/parallel.html
* Bug fixes and man page updates.
20120822 20120822
* Due to a bugfix the main flow has changed. Making this release beta * Due to a bugfix the main flow has changed. Making this release beta

View file

@ -178,7 +178,8 @@ available for download at: http://ftp.gnu.org/gnu/parallel/
New in this release: New in this release:
* When using GNU Parallel for simulations --results makes it easy to * --results structures output files so they can be imported using
Pandas (http://pandas.pydata.org/). Useful when doing simulations to
select output from some arguments. select output from some arguments.
* Use --env to transfer environment variables through ssh to remote * Use --env to transfer environment variables through ssh to remote

View file

@ -445,7 +445,7 @@ If I<eof-str> is omitted, there is no end of file string. If neither
B<-E> nor B<-e> is used, no end of file string is used. B<-E> nor B<-e> is used, no end of file string is used.
=item B<--env> I<var> =item B<--env> I<var> (alpha testing)
Copy environment variable I<var>. This will copy I<var> to the Copy environment variable I<var>. This will copy I<var> to the
environment that the command is run in. This is especially useful for environment that the command is run in. This is especially useful for
@ -472,7 +472,7 @@ See also: B<--bg>, B<man sem>
Implies B<--semaphore>. Implies B<--semaphore>.
=item B<--filter-hosts> =item B<--filter-hosts> (alpha testing)
Remove down hosts. For each remote host: check that login through ssh Remove down hosts. For each remote host: check that login through ssh
works. If not: do not use this host. works. If not: do not use this host.
@ -657,7 +657,7 @@ to see the difference:
=item B<-L> I<max-lines> =item B<-L> I<max-lines>
When used with B<--pipe>: Read records of I<max-lines>. When used with B<--pipe>: Read records of I<max-lines> (alpha testing).
When used otherwise: Use at most I<max-lines> nonblank input lines per When used otherwise: Use at most I<max-lines> nonblank input lines per
command line. Trailing blanks cause an input line to be logically command line. Trailing blanks cause an input line to be logically
@ -673,7 +673,7 @@ Implies B<-X> unless B<-m>, B<--xargs>, or B<--pipe> is set.
=item B<-l>[I<max-lines>] =item B<-l>[I<max-lines>]
When used with B<--pipe>: Read records of I<max-lines>. When used with B<--pipe>: Read records of I<max-lines> (alpha testing).
When used otherwise: Synonym for the B<-L> option. Unlike B<-L>, the When used otherwise: Synonym for the B<-L> option. Unlike B<-L>, the
I<max-lines> argument is optional. If I<max-lines> is not specified, I<max-lines> argument is optional. If I<max-lines> is not specified,

View file

@ -4,55 +4,53 @@ echo '### Test niceload -q'
niceload -q perl -e '$a = "works";$b="This $a\n"; print($b);' niceload -q perl -e '$a = "works";$b="This $a\n"; print($b);'
echo echo
# Force less than 1 GB buffer+cache
MEMAVAIL=$(free | perl -ane '/buffers.cache:/ and print $F[3]')
while [ $MEMAVAIL -gt 1000000 ] ; do
BS=$(echo $MEMAVAIL/10 | bc)
(seq 1 5 | parallel -j0 -N0 timeout 10 nice dd if=/dev/zero of=/dev/null bs=${BS}k &)
sleep 2;
MEMAVAIL=$(free | perl -ane '/buffers.cache:/ and print $F[3]')
done
echo '### --rm and --runmem'
niceload -H --rm 1g free -g | perl -ane '/buffers.cache:/ and print $F[3],"\n"' | grep '[1-9]' >/dev/null && echo OK &
niceload -H --runmem 1g free -g | perl -ane '/buffers.cache:/ and print $F[3],"\n"' | grep '[1-9]' >/dev/null && echo OK &
wait
# Force swapping # Force swapping
MEMAVAIL=$(free | perl -ane '/buffers.cache:/ and print $F[3]') MEMAVAIL=$(free | perl -ane '/buffers.cache:/ and print $F[3]')
while [ $MEMAVAIL -gt 1000000 ] ; do while [ $MEMAVAIL -gt 1000000 ] ; do
BS=$(echo $MEMAVAIL/10 | bc) BS=$(echo $MEMAVAIL/10 | bc)
(seq 1 10 | parallel -j0 -N0 timeout 10 nice dd if=/dev/zero of=/dev/null bs=${BS}k &) (seq 1 10 | parallel -j0 -N0 timeout 10 nice dd if=/dev/zero bs=${BS}k '|' wc -c >/dev/null &)
sleep 2; sleep 2
MEMAVAIL=$(free | perl -ane '/buffers.cache:/ and print $F[3]') MEMAVAIL=$(free | perl -ane '/buffers.cache:/ and print $F[3]')
done done
echo '### -N and --noswap ' #echo 1 | parallel --timeout 20 'seq 10000{} | gzip -1 | perl -e '\'\$a=join\"\",\<\>\;\ while\(1\)\{push\ @a,\$a\}\'
niceload -H -N vmstat 1 2 | tail -n1 | awk '{print $7*$8}' &
niceload -H --noswap vmstat 1 2 | tail -n1 | awk '{print $7*$8}' &
wait # niceload -q -l 5 perl -e '$a=join"",<>; while(1){push @a,$a}' &
cat <<'EOF' | stdout parallel -j0 -k -L1
echo '### --rm and --runmem'
niceload -H --rm 1g free -g | perl -ane '/buffers.cache:/ and print $F[3],"\n"' | grep '[1-9]' >/dev/null && echo OK--rm
niceload -H --runmem 1g free -g | perl -ane '/buffers.cache:/ and print $F[3],"\n"' | grep '[1-9]' >/dev/null && echo OK--runmem
echo '### -N and --noswap. Must give 0'
niceload -H -N vmstat 1 2 | tail -n1 | awk '{print "-N " $7*$8}'
niceload -H --noswap vmstat 1 2 | tail -n1 | awk '{print "--noswap " $7*$8}'
EOF
# force load > 10 # force load > 10
while uptime | grep -v age:.[1-9][0-9].[0-9][0-9] >/dev/null ; do (timeout 5 nice burnP6 2>/dev/null &) done while uptime | grep -v age:.[1-9][0-9].[0-9][0-9] >/dev/null ; do (timeout 5 nice burnP6 2>/dev/null &) done
cat <<'EOF' | stdout parallel -j0 -L1
echo '### --soft -f and test if child is actually suspended and thus takes longer' echo '### --soft -f and test if child is actually suspended and thus takes longer'
niceload --soft -t 0.2 -f 0.5 'seq 1000000 | wc;echo This should finish last' & niceload --soft -t 0.2 -f 0.5 'seq 1000000 | wc;echo This should finish last'
(sleep 1; seq 1000000 | wc;echo This should finish first) & (sleep 1; seq 1000000 | wc;echo This should finish first)
wait EOF
# force load > 10 # force load > 10
while uptime | grep -v age:.[1-9][0-9].[0-9][0-9] >/dev/null ; do (timeout 5 nice burnP6 2>/dev/null &) done while uptime | grep -v age:.[1-9][0-9].[0-9][0-9] >/dev/null ; do (timeout 5 nice burnP6 2>/dev/null &) done
cat <<'EOF' | stdout parallel -j0 -k -L1
echo '### -H and --hard' echo '### -H and --hard'
niceload -H -l 9.9 uptime | grep ':.[1-9][0-9].[0-9][0-9],' || echo OK niceload -H -l 9.9 uptime | grep ':.[1-9][0-9].[0-9][0-9],' || echo OK-l9.9
niceload --hard -l 9 uptime | grep ':.[1-9][0-9].[0-9][0-9],' || echo OK niceload --hard -l 9 uptime | grep ':.[1-9][0-9].[0-9][0-9],' || echo OK-l9
EOF
cat <<'EOF' | stdout parallel -j0 -L1
echo '### -f and --factor' echo '### -f and --factor'
niceload -H -f 0.01 -l6 echo f 0.1 first & niceload -H --factor 10 -l6 echo factor 10 finish last
niceload -H --factor 10 -l6 echo factor 10 last & niceload -H -f 0.01 -l6 echo f 0.1 finish first
wait EOF
#echo '### Test niceload -p' #echo '### Test niceload -p'
#sleep 3 & #sleep 3 &

View file

@ -68,10 +68,3 @@ stdout parallel --env TWOSPACES,THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACE
stdout parallel -S localhost --env TWOSPACES echo 'a"$TWOSPACES"b' ::: 1 stdout parallel -S localhost --env TWOSPACES echo 'a"$TWOSPACES"b' ::: 1
stdout parallel -S localhost --env TWOSPACES --env THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2 stdout parallel -S localhost --env TWOSPACES --env THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2
stdout parallel -S localhost --env TWOSPACES,THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2a stdout parallel -S localhost --env TWOSPACES,THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2a
echo '### Test --env all chars except \n - single and double - no output is good'
perl -e 'for(1..9,9,11..159,159,161..255) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} {#} | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11
echo '### Test --env all chars except \n - single and double --onall - no output is good'
perl -e 'for(1..9,9,11..159,159,161..255) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -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

View file

@ -13,8 +13,8 @@ rm /tmp/parallel_joblog_exitval /tmp/parallel_joblog_signal
echo '### Test --env all chars except \n,\92,\160 - single and double - no output is good' echo '### Test --env all chars except \n,\92,\160 - single and double - 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 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --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 -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} {#} | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11
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 19 -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 -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

@ -2,19 +2,19 @@
This works This works
### --rm and --runmem ### --rm and --runmem
OK OK--rm
OK OK--runmem
### -N and --noswap ### -N and --noswap. Must give 0
0 -N 0
0 --noswap 0
### --soft -f and test if child is actually suspended and thus takes longer ### --soft -f and test if child is actually suspended and thus takes longer
1000000 1000000 6888896 1000000 1000000 6888896
This should finish first This should finish first
1000000 1000000 6888896 1000000 1000000 6888896
This should finish last This should finish last
### -H and --hard ### -H and --hard
OK OK-l9.9
OK OK-l9
### -f and --factor ### -f and --factor
f 0.1 first f 0.1 finish first
factor 10 last factor 10 finish last