parallel/testsuite/tests-to-run/parallel-remote1.sh
2024-01-24 02:25:03 +01:00

101 lines
3.3 KiB
Bash

#!/bin/bash
# SPDX-FileCopyrightText: 2021-2024 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
#
# SPDX-License-Identifier: GPL-3.0-or-later
SERVER1=parallel-server1
SERVER2=parallel-server2
SERVER3=parallel-server3
SSHUSER1=vagrant
SSHUSER2=vagrant
SSHUSER3=vagrant
export SSHLOGIN1=$SSHUSER1@$SERVER1
export SSHLOGIN2=$SSHUSER2@$SERVER2
export SSHLOGIN3=$SSHUSER3@$SERVER3
#SERVER1=parallel-server1
#SERVER2=lo
#SSHLOGIN1=parallel@parallel-server1
#SSHLOGIN2=parallel@lo
#SSHLOGIN3=parallel@parallel-server2
par_force_number_of_cpu() {
echo '### Check forced number of CPUs being respected'
echo 'ssh is slow, so should only get 7. : should get the rest'
seq 1 20 |
stdout parallel -k -j+0 -S 1/:,7/$SSHLOGIN1 "hostname; echo {} >/dev/null" |
sort | uniq -c | sort | field 1
}
par_special_ssh() {
echo '### Test use special ssh'
echo 'TODO test 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 --sshdelay 0.03 --retries 10 --sshlogin "/tmp/myssh1 $SSHLOGIN1,/tmp/myssh2 $SSHLOGIN2" -k echo
}
par__filter_hosts_different_errors() {
echo '### --filter-hosts - OK, non-such-user, connection refused, wrong host'
hostname=$(hostname)
stdout parallel --nonall --filter-hosts -S localhost,NoUser@localhost,154.54.72.206,"ssh 5.5.5.5" hostname |
grep -v 'parallel: Warning: Removed' |
perl -pe "s/$hostname/myhostname/g"
}
par_timeout_retries() {
echo '### test --timeout --retries'
stdout parallel -j0 --timeout 5 --retries 3 -k ssh {} echo {} \
::: 192.168.1.197 8.8.8.8 $SSHLOGIN1 $SSHLOGIN2 $SSHLOGIN3 |
grep -v 'Warning: Permanently added' | puniq
}
par__filter_hosts_no_ssh_nxserver() {
echo '### test --filter-hosts with server w/o ssh, non-existing server'
stdout parallel -S 192.168.1.197,8.8.8.8,$SSHLOGIN1,$SSHLOGIN2,$SSHLOGIN3 --filter-hosts --nonall -k --tag echo |
grep -v 'parallel: Warning: Removed'
}
par_controlmaster_is_faster() {
echo '### bug #41964: --controlmaster not seems to reuse OpenSSH connections to the same host'
echo '-M should finish first - eventhough there are 2x jobs'
export SSHLOGIN1=sh@lo
nl="$(printf "\n\n.")"
export TMPDIR="/tmp/ctrl_master/$nl'$nl"
mkdir -p "$TMPDIR"
(parallel -S $SSHLOGIN1 true ::: {1..20};
echo No --controlmaster - finish last) &
(parallel -M -S $SSHLOGIN1 true ::: {1..40};
echo With --controlmaster - finish first) &
wait
rm -r "/tmp/ctrl_master"
}
par_workdir_in_HOME() {
echo '### test --workdir . in $HOME'
cd && mkdir -p parallel-test && cd parallel-test &&
echo OK > testfile &&
stdout parallel --workdir . --transfer -S $SSHLOGIN1 cat {} ::: testfile |
grep -v 'Permanently added'
}
export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | LC_ALL=C sort |
parallel --timeout 3000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' |
perl -pe 's:/usr/bin:/bin:g'
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/\;s/\$SSHLOGIN1/$SSHLOGIN1/\;s/\$SSHLOGIN2/$SSHLOGIN2/\;s/\$SSHLOGIN3/$SSHLOGIN3/ | parallel -vj3 -k -L1 -r
echo '### TODO: test --filter-hosts proxied through the one host'
EOF
rm /tmp/myssh1 /tmp/myssh2 /tmp/myssh1-run /tmp/myssh2-run