mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-12-23 13:17:54 +00:00
116 lines
5.6 KiB
Bash
116 lines
5.6 KiB
Bash
#!/bin/bash
|
|
|
|
unset run_test
|
|
unset run_once
|
|
|
|
# SSH only allowed to localhost/lo
|
|
# --retries if ssh dies
|
|
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -vj4 --retries 2 -k --joblog /tmp/jl-`basename $0` -L1
|
|
echo '### --env _'
|
|
fUbAr="OK FUBAR" parallel -S parallel@lo --env _ echo '$fUbAr $DEBEMAIL' ::: test
|
|
fUbAr="OK FUBAR" parallel -S csh@lo --env _ echo '$fUbAr $DEBEMAIL' ::: test
|
|
|
|
echo '### --env _ with explicit mentioning of normally ignored var $DEBEMAIL'
|
|
fUbAr="OK FUBAR" parallel -S parallel@lo --env DEBEMAIL,_ echo '$fUbAr $DEBEMAIL' ::: test
|
|
fUbAr="OK FUBAR" parallel -S csh@lo --env DEBEMAIL,_ echo '$fUbAr $DEBEMAIL' ::: test
|
|
|
|
echo 'bug #40137: SHELL not bash: Warning when exporting funcs'
|
|
. <(printf 'myfunc() {\necho $1\n}'); export -f myfunc; parallel --env myfunc -S lo myfunc ::: no_warning
|
|
. <(printf 'myfunc() {\necho $1\n}'); export -f myfunc; SHELL=/bin/sh parallel --env myfunc -S lo myfunc ::: warning
|
|
|
|
echo '### zsh'
|
|
|
|
echo 'env in zsh'
|
|
echo 'Normal variable export'
|
|
export B=\';
|
|
PARALLEL_SHELL=/usr/bin/zsh parallel --env B echo '$B' ::: a
|
|
|
|
echo 'Function export as variable'
|
|
export myfuncvar="() { echo myfuncvar \$*; }";
|
|
PARALLEL_SHELL=/usr/bin/zsh parallel --env myfuncvar myfuncvar ::: a
|
|
|
|
echo 'Function export as function'
|
|
myfunc() { echo myfunc $*; };
|
|
export -f myfunc;
|
|
PARALLEL_SHELL=/usr/bin/zsh parallel --env myfunc myfunc ::: a
|
|
|
|
|
|
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'
|
|
|
|
echo '### csh'
|
|
echo "3 big vars run remotely - length(base64) > 1000"
|
|
stdout ssh csh@lo 'setenv A `seq 200|xargs`;
|
|
setenv B `seq 200 -1 1|xargs`;
|
|
setenv C `seq 300 -2 1|xargs`;
|
|
parallel -Scsh@lo --env A,B,C -k echo \$\{\}\|wc ::: A B C'
|
|
echo '### csh2'
|
|
echo "3 big vars run locally"
|
|
stdout ssh csh@lo 'setenv A `seq 200|xargs`;
|
|
setenv B `seq 200 -1 1|xargs`;
|
|
setenv C `seq 300 -2 1|xargs`;
|
|
parallel --env A,B,C -k echo \$\{\}\|wc ::: A B C'
|
|
|
|
|
|
echo '### rc'
|
|
echo "3 big vars run remotely - length(base64) > 1000"
|
|
stdout ssh rc@lo 'A=`{seq 200};
|
|
B=`{seq 200 -1 1};
|
|
C=`{seq 300 -2 1};
|
|
parallel -Src@lo --env A,B,C -k echo '"'"'${}|wc'"'"' ::: A B C'
|
|
|
|
echo '### rc2'
|
|
echo "3 big vars run locally"
|
|
stdout ssh rc@lo 'A=`{seq 200};
|
|
B=`{seq 200 -1 1};
|
|
C=`{seq 300 -2 1};
|
|
parallel --env A,B,C -k echo '"'"'${}|wc'"'"' ::: A B C'
|
|
|
|
echo '### Test tmux works on different shells'
|
|
(stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux echo ::: 1 2 3 4; echo $?) | grep -v 'See output';
|
|
(stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux false ::: 1 2 3 4; echo $?) | grep -v 'See output';
|
|
|
|
export PARTMUX='parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux ';
|
|
stdout ssh zsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output';
|
|
stdout ssh zsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output';
|
|
stdout ssh parallel@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $?' | grep -v 'See output';
|
|
stdout ssh parallel@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $?' | grep -v 'See output';
|
|
stdout ssh tcsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output';
|
|
stdout ssh tcsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output';
|
|
echo "# command is currently too long for csh. Maybe it can be fixed?";
|
|
stdout ssh csh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output';
|
|
stdout ssh csh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output'
|
|
|
|
echo '### works'
|
|
stdout parallel -Sparallel@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'
|
|
stdout parallel -Sparallel@lo --tmux echo ::: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | grep -v 'See output'
|
|
|
|
echo '### These blocked due to length'
|
|
stdout parallel -Slo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'
|
|
stdout parallel -Scsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'
|
|
stdout parallel -Stcsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'
|
|
stdout parallel -Szsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'
|
|
stdout parallel -Scsh@lo --tmux echo ::: 111111111111111111111111111111111111111111111111111111111 | grep -v 'See output'
|
|
|
|
echo '### bug #43746: --transfer and --return of multiple inputs {1} and {2}'
|
|
echo '### and:'
|
|
echo '### bug #44371: --trc with csh complains'
|
|
cd /tmp; echo 1 > file1; echo 2 > file2;
|
|
parallel -Scsh@lo --transferfile {1} --transferfile {2} --trc {1}.a --trc {2}.b
|
|
'(cat {1}; echo A {1}) > {1}.a; (cat {2};echo B {2}) > {2}.b' ::: file1 ::: file2;
|
|
cat file1.a file2.b;
|
|
rm /tmp/file1 /tmp/file2 /tmp/file1.a /tmp/file2.b
|
|
|
|
echo '### bug #44143: csh and nice'
|
|
parallel --nice 1 -S csh@lo setenv B {}\; echo '$B' ::: OK
|
|
|
|
echo '### bug #45575: -m and multiple hosts repeats first args'
|
|
seq 1 3 | parallel -X -S 2/lo,2/: -k echo
|
|
|
|
EOF
|