Testsuite for bug #43358: shellshock breaks exporting functions using --env

This commit is contained in:
Ole Tange 2014-10-16 00:37:02 +02:00
parent 1aa965256c
commit 2719d3484d
7 changed files with 57 additions and 8 deletions

View file

@ -260,10 +260,14 @@ New in this release:
* Comparing Golang, Scala, Elixir and Ruby for ETL http://www.dimroc.com/2014/09/29/etl-language-showdown/ * Comparing Golang, Scala, Elixir and Ruby for ETL http://www.dimroc.com/2014/09/29/etl-language-showdown/
* Ubuntu 13.04でGNU ParallelをGNUモードで動かす http://qiita.com/YusukeSuzuki@github/items/7b96b5876bf980f21e85
* Parallelizing Batch Jobs for Fun and Profit http://mikeseidle.com/tech/programming/2013/03/parallelizing-batch-jobs * Parallelizing Batch Jobs for Fun and Profit http://mikeseidle.com/tech/programming/2013/03/parallelizing-batch-jobs
* Assemble a list of which of these hosts are up or down http://opsfun.wordpress.com/2014/03/31/gnu-parallel/
* Running commands on many nodes simultaneously http://opsfun.wordpress.com/2014/03/31/19/
* Ubuntu 13.04でGNU ParallelをGNUモードで動かす http://qiita.com/YusukeSuzuki@github/items/7b96b5876bf980f21e85
* Bug fixes and man page updates. * Bug fixes and man page updates.
GNU Parallel - For people who live life in the parallel lane. GNU Parallel - For people who live life in the parallel lane.

View file

@ -42,6 +42,20 @@ echo 'bug #40134: FreeBSD: --shebang(-wrap) with options not working'
(echo '#!/usr/bin/env -S parallel --shebang-wrap -v -k -j 0 /usr/bin/perl -w :::'; echo 'print @ARGV,"\n";') > shebang-wrap-opt; (echo '#!/usr/bin/env -S parallel --shebang-wrap -v -k -j 0 /usr/bin/perl -w :::'; echo 'print @ARGV,"\n";') > shebang-wrap-opt;
chmod 755 ./shebang-wrap-opt; ./shebang-wrap-opt wrap works with options chmod 755 ./shebang-wrap-opt; ./shebang-wrap-opt wrap works with options
bash -c 'echo bug \#43358: shellshock breaks exporting functions using --env _;
echo Non-shellshock-hardened to non-shellshock-hardened;
funky() { echo Function $1; };
export -f funky;
parallel --env funky -S localhost funky ::: non-shellshock-hardened'
bash -c 'echo bug \#43358: shellshock breaks exporting functions using --env _;
echo Non-shellshock-hardened to shellshock-hardened;
funky() { echo Function $1; };
export -f funky;
parallel --env funky -S parallel@192.168.1.72 funky ::: shellshock-hardened'
EOF EOF
VBoxManage controlvm FreeBSD71 savestate VBoxManage controlvm FreeBSD71 savestate

View file

@ -16,7 +16,18 @@ echo '### bug #42725: csh with \n in variables'
export -f not_csh; export -f not_csh;
parallel --env not_csh -S csh@lo not_csh ::: 1; parallel --env not_csh -S csh@lo not_csh ::: 1;
parallel --env not_csh -S tcsh@lo not_csh ::: 1; parallel --env not_csh -S tcsh@lo not_csh ::: 1;
parallel --env not_csh -S parallel@lo not_csh ::: 1; parallel --env not_csh -S parallel@lo not_csh ::: 1
echo '### bug #43358: shellshock breaks exporting functions using --env'
echo shellshock-hardened to shellshock-hardened;
funky() { echo Function $1; };
export -f funky;
parallel --env funky -S parallel@localhost funky ::: shellshock-hardened
echo '2bug #43358: shellshock breaks exporting functions using --env'
echo shellshock-hardened to non-shellshock-hardened;
funky() { echo Function $1; };
export -f funky;
parallel --env funky -S centos3.tange.dk funky ::: non-shellshock-hardened
EOF EOF

View file

@ -10,9 +10,9 @@ export -f median
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -vj0 -k -L1 cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -vj0 -k -L1
echo '### bug #41565: Print happens in blocks - not after each job complete' echo '### bug #41565: Print happens in blocks - not after each job complete'
echo 'The timing here is important: a full second between each' echo 'The timing here is important: a full second between each'
ping -c 15 lo | parallel -j3 'echo {#}' | timestamp -dd | perl -pe '$_=int($_+0.3)."\n"' | median perl -e 'for(1..10){print("$_\n");`sleep 1`}' | parallel -j3 'echo {#}' | timestamp -dd | perl -pe '$_=int($_+0.3)."\n"' | median
echo '300 ms jobs:' echo '300 ms jobs:'
ping -i .3 -c 10 lo | parallel -j3 --delay 0.3 echo | timestamp -d -d | perl -pe 's/(.....).*/int($1*10+0.2)/e' | median perl -e 'for(1..10){print("$_\n");`sleep .3`}' | parallel -j3 --delay 0.3 echo | timestamp -d -d | perl -pe 's/(.....).*/int($1*10+0.2)/e' | median
echo '### Test --tagstring' echo '### Test --tagstring'
nice parallel -j1 -X -v --tagstring a{}b echo ::: 3 4 nice parallel -j1 -X -v --tagstring a{}b echo ::: 3 4

View file

@ -55,3 +55,13 @@ works
with with
/usr/bin/perl -w ./shebang-wrap-opt options /usr/bin/perl -w ./shebang-wrap-opt options
options options
bash -c 'echo bug \#43358: shellshock breaks exporting functions using --env _; echo Non-shellshock-hardened to non-shellshock-hardened; funky() { echo Function $1; }; export -f funky; parallel --env funky -S localhost funky ::: non-shellshock-hardened'
bug #43358: shellshock breaks exporting functions using --env _
Non-shellshock-hardened to non-shellshock-hardened
Function non-shellshock-hardened
tcgetattr: Inappropriate ioctl for device
bash -c 'echo bug \#43358: shellshock breaks exporting functions using --env _; echo Non-shellshock-hardened to shellshock-hardened; funky() { echo Function $1; }; export -f funky; parallel --env funky -S parallel@192.168.1.72 funky ::: shellshock-hardened'
bug #43358: shellshock breaks exporting functions using --env _
Non-shellshock-hardened to shellshock-hardened
Function shellshock-hardened
tcgetattr: Inappropriate ioctl for device

View file

@ -22,7 +22,7 @@ bash: line 0: cd: /no-such-dir: No such file or directory
Exit code 1 Exit code 1
echo '### bug #42725: csh with \n in variables' echo '### bug #42725: csh with \n in variables'
### bug #42725: csh with \n in variables ### bug #42725: csh with \n in variables
not_csh() { echo This is not csh/tcsh; }; export -f not_csh; parallel --env not_csh -S csh@lo not_csh ::: 1; parallel --env not_csh -S tcsh@lo not_csh ::: 1; parallel --env not_csh -S parallel@lo not_csh ::: 1; not_csh() { echo This is not csh/tcsh; }; export -f not_csh; parallel --env not_csh -S csh@lo not_csh ::: 1; parallel --env not_csh -S tcsh@lo not_csh ::: 1; parallel --env not_csh -S parallel@lo not_csh ::: 1
CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset not_csh CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset not_csh
CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset not_csh CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset not_csh
This is not csh/tcsh This is not csh/tcsh
@ -30,3 +30,13 @@ Badly placed ()'s.
}: Command not found. }: Command not found.
Badly placed ()'s. Badly placed ()'s.
}: Command not found. }: Command not found.
echo '### bug #43358: shellshock breaks exporting functions using --env'
### bug #43358: shellshock breaks exporting functions using --env
echo shellshock-hardened to shellshock-hardened; funky() { echo Function $1; }; export -f funky; parallel --env funky -S parallel@localhost funky ::: shellshock-hardened
shellshock-hardened to shellshock-hardened
Function shellshock-hardened
echo '2bug #43358: shellshock breaks exporting functions using --env'
2bug #43358: shellshock breaks exporting functions using --env
echo shellshock-hardened to non-shellshock-hardened; funky() { echo Function $1; }; export -f funky; parallel --env funky -S centos3.tange.dk funky ::: non-shellshock-hardened
shellshock-hardened to non-shellshock-hardened
Function non-shellshock-hardened

View file

@ -2,11 +2,11 @@ echo '### bug #41565: Print happens in blocks - not after each job complete'
### bug #41565: Print happens in blocks - not after each job complete ### bug #41565: Print happens in blocks - not after each job complete
echo 'The timing here is important: a full second between each' echo 'The timing here is important: a full second between each'
The timing here is important: a full second between each The timing here is important: a full second between each
ping -c 15 lo | parallel -j3 'echo {#}' | timestamp -dd | perl -pe '$_=int($_+0.3)."\n"' | median perl -e 'for(1..10){print("$_\n");`sleep 1`}' | parallel -j3 'echo {#}' | timestamp -dd | perl -pe '$_=int($_+0.3)."\n"' | median
1 1
echo '300 ms jobs:' echo '300 ms jobs:'
300 ms jobs: 300 ms jobs:
ping -i .3 -c 10 lo | parallel -j3 --delay 0.3 echo | timestamp -d -d | perl -pe 's/(.....).*/int($1*10+0.2)/e' | median perl -e 'for(1..10){print("$_\n");`sleep .3`}' | parallel -j3 --delay 0.3 echo | timestamp -d -d | perl -pe 's/(.....).*/int($1*10+0.2)/e' | median
3 3
echo '### Test --tagstring' echo '### Test --tagstring'
### Test --tagstring ### Test --tagstring