diff --git a/Makefile.am b/Makefile.am index c3029891..356dde2b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,13 @@ SUBDIRS = src test: cd testsuite; make 1 +tortest: + torsocks ssh -t cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion 'cd privat/parallel/testsuite/ && make short && make long && make mem' + +torsync: + torsocks rsync -Hazv --exclude authorized_keys --exclude .vagrant/ ./ cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion:privat/parallel/ + torsocks ssh -t cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion 'cd privat/parallel/testsuite/ && make prereqlocal' + web: cd src; make web cp -r src/*.pdf src/sphinx/build/html/* ../parallel-web/parallel diff --git a/Makefile.in b/Makefile.in index 1eed4de6..1ce38ceb 100644 --- a/Makefile.in +++ b/Makefile.in @@ -776,6 +776,13 @@ uninstall-am: test: cd testsuite; make 1 +tortest: + torsocks ssh -t cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion 'cd privat/parallel/testsuite/ && make short && make long && make mem' + +torsync: + torsocks rsync -Hazv --exclude authorized_keys --exclude .vagrant/ ./ cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion:privat/parallel/ + torsocks ssh -t cn6kfd6pfck5kosywnuf33zvje2ifmelrz656rhzqjkpd77ib4sbzzad.onion 'cd privat/parallel/testsuite/ && make prereqlocal' + web: cd src; make web cp -r src/*.pdf src/sphinx/build/html/* ../parallel-web/parallel diff --git a/doc/release_new_version b/doc/release_new_version index c5f4700f..509c3c7b 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -273,7 +273,7 @@ from:tange@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org stable-bcc: Jesse Alama -Subject: GNU Parallel 20240122 ('Frederik X') released +Subject: GNU Parallel 20240422 ('Børsen/Higgs/Iran') released GNU Parallel 20240122 ('Frederik X') has been released. It is available for download at: lbry://@GnuParallel:4 diff --git a/testsuite/Makefile b/testsuite/Makefile index 31c13a74..ac88b07b 100644 --- a/testsuite/Makefile +++ b/testsuite/Makefile @@ -110,7 +110,7 @@ prereqremote: installparallel startvm ignore=bytes.of.data|ping.statistics|packets.transmitted|64.bytes.from|\ min/avg/max/mdev|default|known.hosts|Host.*found -start=(stdout ping -w 1 -c 1 {} || \ +start=(stdout ping -w 1 -c 1 {} && ssh vagrant@{} echo ssh {} works || \ (cd vagrant/*/{} 2>/dev/null && vagrant up ; \ echo {} | grep -q centos3 && \ (cat ../../authorized_keys | vagrant ssh -c "cat >>.ssh/authorized_keys"; \ @@ -127,6 +127,8 @@ namedservers=centos8 freebsd13 freebsd14 rhel8 centos3 servers=parallel-server1 parallel-server2 parallel-server3 parallel-server4 ${namedservers} startvm: + sort -u ~/.ssh/*.pub vagrant/authorized_keys > vagrant/authorized_keys. + mv vagrant/authorized_keys. vagrant/authorized_keys parallel -j0 --tag -k '${start}' ::: ${servers} & stopvm: parallel -j0 --tag -k '${stop}' ::: ${namedservers} || true diff --git a/testsuite/tests-to-run/parallel-centos3.sh b/testsuite/tests-to-run/parallel-centos3.sh index 6e7dd7b5..42d7100b 100644 --- a/testsuite/tests-to-run/parallel-centos3.sh +++ b/testsuite/tests-to-run/parallel-centos3.sh @@ -93,6 +93,7 @@ par_shellshock_bug() { # We can safely ignore those. export LC_ALL=C export TMPDIR=/tmp +unset DISPLAY env_parallel --env par_shellshock_bug --env LC_ALL --env SSHLOGIN2 --env _ \ -vj9 -k --joblog /tmp/jl-`basename $0` --retries 3 \ -S $SSHLOGIN1 --tag '{} 2>&1' \ diff --git a/testsuite/tests-to-run/parallel-hwdep1.sh b/testsuite/tests-to-run/parallel-hwdep1.sh new file mode 100644 index 00000000..4a37b4ab --- /dev/null +++ b/testsuite/tests-to-run/parallel-hwdep1.sh @@ -0,0 +1,253 @@ +# SPDX-FileCopyrightText: 2021-2024 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# Jobs that depend on the hardware +# (e.g number of CPU threads, terminal type) + +#actual-results/parallel-macos + +par__environment_too_big_ash() { + myscript=$(cat <<'_EOF' + echo 'bug #50815: env_parallel should warn if the environment is too big' + len_var=53 + len_var_remote=37 + len_var_quote=31 + len_var_quote_remote=21 + len_fun=1 + len_fun_remote=1 + len_fun_quote=1 + len_fun_quote_remote=1 + + . `which env_parallel.ash`; + + repeat() { + # Repeat input string n*1000 times + perl -e 'print ((shift)x(eval "1000*(".shift.")"))' "$@" + } + + bigvar=$(repeat x $len_var) + env_parallel echo ::: OK_bigvar + bigvar=$(repeat x $len_var_remote) + env_parallel -S lo echo ::: OK_bigvar_remote + + bigvar=$(repeat \" $len_var_quote) + env_parallel echo ::: OK_bigvar_quote + bigvar=$(repeat \" $len_var_quote_remote) + env_parallel -S lo echo ::: OK_bigvar_quote_remote + + bigvar=u + eval 'bigfunc() { a="'"$(repeat x $len_fun)"'"; };' + env_parallel echo ::: OK_bigfunc + eval 'bigfunc() { a="'"$(repeat x $len_fun_remote)"'"; };' + env_parallel -S lo echo ::: OK_bigfunc_remote + + eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote)"'"; };' + env_parallel echo ::: OK_bigfunc_quote + eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote_remote)"'"; };' + env_parallel -S lo echo ::: OK_bigfunc_quote_remote + bigfunc() { true; } + + echo Rest should fail - functions not supported in ash + + bigvar=$(repeat x $len_var+10) + env_parallel echo ::: fail_bigvar + bigvar=$(repeat x $len_var_remote+10) + env_parallel -S lo echo ::: fail_bigvar_remote + + bigvar=$(repeat \" $len_var_quote+10) + env_parallel echo ::: fail_bigvar_quote + bigvar=$(repeat \" $len_var_quote_remote+10) + env_parallel -S lo echo ::: fail_bigvar_quote_remote + + bigvar=u + eval 'bigfunc() { a="'"$(repeat x $len_fun+10)"'"; };' + env_parallel echo ::: fail_bigfunc-not-supported + eval 'bigfunc() { a="'"$(repeat x $len_fun_remote+10)"'"; };' + env_parallel -S lo echo ::: fail_bigfunc_remote-not-supported + + eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote+10)"'"; };' + env_parallel echo ::: fail_bigfunc_quote-not-supported + eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote_remote+10)"'"; };' + env_parallel -S lo echo ::: fail_bigfunc_quote_remote-not-supported + + bigfunc() { true; } +_EOF + ) + ssh ash@lo "$myscript" +} + +par__environment_too_big_dash() { + myscript=$(cat <<'_EOF' + echo 'bug #50815: env_parallel should warn if the environment is too big' + len_var=53 + len_var_remote=37 + len_var_quote=31 + len_var_quote_remote=21 + len_fun=1 + len_fun_remote=1 + len_fun_quote=1 + len_fun_quote_remote=1 + + . `which env_parallel.dash`; + + repeat() { + # Repeat input string n*1000 times + perl -e 'print ((shift)x(eval "1000*(".shift.")"))' "$@" + } + + bigvar=$(repeat x $len_var) + env_parallel echo ::: OK_bigvar + bigvar=$(repeat x $len_var_remote) + env_parallel -S lo echo ::: OK_bigvar_remote + + bigvar=$(repeat \" $len_var_quote) + env_parallel echo ::: OK_bigvar_quote + bigvar=$(repeat \" $len_var_quote_remote) + env_parallel -S lo echo ::: OK_bigvar_quote_remote + + bigvar=u + eval 'bigfunc() { a="'"$(repeat x $len_fun)"'"; };' + env_parallel echo ::: OK_bigfunc + eval 'bigfunc() { a="'"$(repeat x $len_fun_remote)"'"; };' + env_parallel -S lo echo ::: OK_bigfunc_remote + + eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote)"'"; };' + env_parallel echo ::: OK_bigfunc_quote + eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote_remote)"'"; };' + env_parallel -S lo echo ::: OK_bigfunc_quote_remote + bigfunc() { true; } + + echo Rest should fail - functions not supported in dash + + bigvar=$(repeat x $len_var+10) + env_parallel echo ::: fail_bigvar + bigvar=$(repeat x $len_var_remote+10) + env_parallel -S lo echo ::: fail_bigvar_remote + + bigvar=$(repeat \" $len_var_quote+10) + env_parallel echo ::: fail_bigvar_quote + bigvar=$(repeat \" $len_var_quote_remote+10) + env_parallel -S lo echo ::: fail_bigvar_quote_remote + + bigvar=u + eval 'bigfunc() { a="'"$(repeat x $len_fun+10)"'"; };' + env_parallel echo ::: fail_bigfunc-not-supported + eval 'bigfunc() { a="'"$(repeat x $len_fun_remote+10)"'"; };' + env_parallel -S lo echo ::: fail_bigfunc_remote-not-supported + + eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote+10)"'"; };' + env_parallel echo ::: fail_bigfunc_quote-not-supported + eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote_remote+10)"'"; };' + env_parallel -S lo echo ::: fail_bigfunc_quote_remote-not-supported + + bigfunc() { true; } +_EOF + ) + ssh dash@lo "$myscript" +} + +par__environment_too_big_zsh() { + myscript=$(cat <<'_EOF' + echo 'bug #50815: env_parallel should warn if the environment is too big' + + # Zsh's default env is often too big. Remove all _* functions. + print -l ${(k)functions}|grep ^_ | while read a; do unset -f "$a"; done + + . `which env_parallel.zsh`; + + len_var=16 + len_var_remote=$len_var-15 + len_var_quote=$len_var + len_var_quote_remote=$len_var-15 + len_fun=18 + len_fun_remote=$len_fun-10 + len_fun_quote=$len_fun + len_fun_quote_remote=$len_fun-10 + + repeat_() { + # Repeat input string n*1000 times + perl -e 'print ((shift)x(eval "1000*(".shift.")"))' "$@" + } + + bigvar=$(repeat_ x $len_var) + env_parallel echo ::: OK_bigvar + bigvar=$(repeat_ x $len_var_remote) + env_parallel -S lo echo ::: OK_bigvar_remote + + bigvar=$(repeat_ \" $len_var_quote) + env_parallel echo ::: OK_bigvar_quote + bigvar=$(repeat_ \" $len_var_quote_remote) + env_parallel -S lo echo ::: OK_bigvar_quote_remote + + bigvar=u + eval 'bigfunc() { a="'"$(repeat_ x $len_fun)"'"; };' + env_parallel echo ::: OK_bigfunc + eval 'bigfunc() { a="'"$(repeat_ x $len_fun_remote)"'"; };' + env_parallel -S lo echo ::: OK_bigfunc_remote + + eval 'bigfunc() { a="'"$(repeat_ \" $len_fun_quote)"'"; };' + env_parallel echo ::: OK_bigfunc_quote + eval 'bigfunc() { a="'"$(repeat_ \" $len_fun_quote_remote)"'"; };' + env_parallel -S lo echo ::: OK_bigfunc_quote_remote + bigfunc() { true; } + + echo Rest should fail + + # Add 10 or 100. It differs a bit from system to system + bigvar=$(repeat_ x $len_var+20) + env_parallel echo ::: fail_bigvar + bigvar=$(repeat_ x $len_var_remote+10) + env_parallel -S lo echo ::: fail_bigvar_remote + + bigvar=$(repeat_ \" $len_var_quote+20) + env_parallel echo ::: fail_bigvar_quote + bigvar=$(repeat_ \" $len_var_quote_remote+20) + env_parallel -S lo echo ::: fail_bigvar_quote_remote + + bigvar=u + eval 'bigfunc() { a="'"$(repeat_ x $len_fun+20)"'"; };' + env_parallel echo ::: fail_bigfunc + eval 'bigfunc() { a="'"$(repeat_ x $len_fun_remote+20)"'"; };' + env_parallel -S lo echo ::: fail_bigfunc_remote + + eval 'bigfunc() { a="'"$(repeat_ \" $len_fun_quote+20)"'"; };' + env_parallel echo ::: fail_bigfunc_quote + eval 'bigfunc() { a="'"$(repeat_ \" $len_fun_quote_remote+10)"'"; };' + env_parallel -S lo echo ::: fail_bigfunc_quote_remote + + bigfunc() { true; } +_EOF + ) + ssh zsh@lo "$myscript" +} + +par_progress() { + ( + parallel --progress --use-sockets-instead-of-threads true ::: a b c + parallel --progress --use-cores-instead-of-threads true ::: a b c + parallel --progress --use-cpus-instead-of-cores true ::: a b c + ) 2>&1 | perl -pe 's/.*\r//; s/\d.\ds/9.9s/' +} + +par__sockets_cores_threads() { + echo '### Test --number-of-sockets/cores/threads' + unset PARALLEL_CPUINFO + unset PARALLEL_LSCPU + parallel --number-of-sockets + parallel --number-of-cores + parallel --number-of-threads + parallel --number-of-cpus + + echo '### Test --use-sockets-instead-of-threads' + (seq 1 4 | + stdout parallel --use-sockets-instead-of-threads -j100% sleep) && + echo sockets done & + (seq 1 4 | stdout parallel -j100% sleep) && echo threads done & + wait + echo 'Threads should complete first on machines with less than 8 sockets' +} + +export -f $(compgen -A function | grep par_) +compgen -A function | G par_ "$@" | LC_ALL=C sort | + parallel --timeout 10000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-local-10s.sh b/testsuite/tests-to-run/parallel-local-10s.sh index 8b4fde0e..d604ca4b 100644 --- a/testsuite/tests-to-run/parallel-local-10s.sh +++ b/testsuite/tests-to-run/parallel-local-10s.sh @@ -564,24 +564,6 @@ par_retries_all_fail() { parallel -k -j0 --retries 2 --timeout 0.1 'echo {}; sleep {}; false' 2>/dev/null } -par_sockets_cores_threads() { - echo '### Test --number-of-sockets/cores/threads' - unset PARALLEL_CPUINFO - unset PARALLEL_LSCPU - parallel --number-of-sockets - parallel --number-of-cores - parallel --number-of-threads - parallel --number-of-cpus - - echo '### Test --use-sockets-instead-of-threads' - (seq 1 4 | - stdout parallel --use-sockets-instead-of-threads -j100% sleep) && - echo sockets done & - (seq 1 4 | stdout parallel -j100% sleep) && echo threads done & - wait - echo 'Threads should complete first on machines with less than 8 sockets' -} - par_long_line_remote() { echo '### Deal with long command lines on remote servers' perl -e "print(((\"'\"x5000).\"\\n\")x6)" | diff --git a/testsuite/tests-to-run/parallel-local-1s.sh b/testsuite/tests-to-run/parallel-local-1s.sh index e40e9bb5..a39ed645 100644 --- a/testsuite/tests-to-run/parallel-local-1s.sh +++ b/testsuite/tests-to-run/parallel-local-1s.sh @@ -8,14 +8,6 @@ # Each should be taking 1-3s and be possible to run in parallel # I.e.: No race conditions, no logins -par_progress() { - ( - parallel --progress --use-sockets-instead-of-threads true ::: a b c - parallel --progress --use-cores-instead-of-threads true ::: a b c - parallel --progress --use-cpus-instead-of-cores true ::: a b c - ) 2>&1 | perl -pe 's/.*\r//; s/\d.\ds/9.9s/' -} - par_citation_no_config_dir() { echo '### bug #64329: parallel --citation will loop forever unless the config dir exists' t=$(mktemp -d) diff --git a/testsuite/tests-to-run/parallel-local-ssh7.sh b/testsuite/tests-to-run/parallel-local-ssh7.sh index 96ca066e..d6eec86b 100755 --- a/testsuite/tests-to-run/parallel-local-ssh7.sh +++ b/testsuite/tests-to-run/parallel-local-ssh7.sh @@ -1648,73 +1648,7 @@ _EOF } par_environment_too_big_ash() { - myscript=$(cat <<'_EOF' - echo 'bug #50815: env_parallel should warn if the environment is too big' - len_var=53 - len_var_remote=37 - len_var_quote=31 - len_var_quote_remote=21 - len_fun=1 - len_fun_remote=1 - len_fun_quote=1 - len_fun_quote_remote=1 - - . `which env_parallel.ash`; - - repeat() { - # Repeat input string n*1000 times - perl -e 'print ((shift)x(eval "1000*(".shift.")"))' "$@" - } - - bigvar=$(repeat x $len_var) - env_parallel echo ::: OK_bigvar - bigvar=$(repeat x $len_var_remote) - env_parallel -S lo echo ::: OK_bigvar_remote - - bigvar=$(repeat \" $len_var_quote) - env_parallel echo ::: OK_bigvar_quote - bigvar=$(repeat \" $len_var_quote_remote) - env_parallel -S lo echo ::: OK_bigvar_quote_remote - - bigvar=u - eval 'bigfunc() { a="'"$(repeat x $len_fun)"'"; };' - env_parallel echo ::: OK_bigfunc - eval 'bigfunc() { a="'"$(repeat x $len_fun_remote)"'"; };' - env_parallel -S lo echo ::: OK_bigfunc_remote - - eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote)"'"; };' - env_parallel echo ::: OK_bigfunc_quote - eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote_remote)"'"; };' - env_parallel -S lo echo ::: OK_bigfunc_quote_remote - bigfunc() { true; } - - echo Rest should fail - functions not supported in ash - - bigvar=$(repeat x $len_var+10) - env_parallel echo ::: fail_bigvar - bigvar=$(repeat x $len_var_remote+10) - env_parallel -S lo echo ::: fail_bigvar_remote - - bigvar=$(repeat \" $len_var_quote+10) - env_parallel echo ::: fail_bigvar_quote - bigvar=$(repeat \" $len_var_quote_remote+10) - env_parallel -S lo echo ::: fail_bigvar_quote_remote - - bigvar=u - eval 'bigfunc() { a="'"$(repeat x $len_fun+10)"'"; };' - env_parallel echo ::: fail_bigfunc-not-supported - eval 'bigfunc() { a="'"$(repeat x $len_fun_remote+10)"'"; };' - env_parallel -S lo echo ::: fail_bigfunc_remote-not-supported - - eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote+10)"'"; };' - env_parallel echo ::: fail_bigfunc_quote-not-supported - eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote_remote+10)"'"; };' - env_parallel -S lo echo ::: fail_bigfunc_quote_remote-not-supported - - bigfunc() { true; } -_EOF - ) - ssh ash@lo "$myscript" + echo moved to hwdep1.sh } par_environment_too_big_bash() { @@ -1793,73 +1727,7 @@ par_environment_too_big_csh() { } par_environment_too_big_dash() { - myscript=$(cat <<'_EOF' - echo 'bug #50815: env_parallel should warn if the environment is too big' - len_var=53 - len_var_remote=37 - len_var_quote=31 - len_var_quote_remote=21 - len_fun=1 - len_fun_remote=1 - len_fun_quote=1 - len_fun_quote_remote=1 - - . `which env_parallel.dash`; - - repeat() { - # Repeat input string n*1000 times - perl -e 'print ((shift)x(eval "1000*(".shift.")"))' "$@" - } - - bigvar=$(repeat x $len_var) - env_parallel echo ::: OK_bigvar - bigvar=$(repeat x $len_var_remote) - env_parallel -S lo echo ::: OK_bigvar_remote - - bigvar=$(repeat \" $len_var_quote) - env_parallel echo ::: OK_bigvar_quote - bigvar=$(repeat \" $len_var_quote_remote) - env_parallel -S lo echo ::: OK_bigvar_quote_remote - - bigvar=u - eval 'bigfunc() { a="'"$(repeat x $len_fun)"'"; };' - env_parallel echo ::: OK_bigfunc - eval 'bigfunc() { a="'"$(repeat x $len_fun_remote)"'"; };' - env_parallel -S lo echo ::: OK_bigfunc_remote - - eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote)"'"; };' - env_parallel echo ::: OK_bigfunc_quote - eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote_remote)"'"; };' - env_parallel -S lo echo ::: OK_bigfunc_quote_remote - bigfunc() { true; } - - echo Rest should fail - functions not supported in dash - - bigvar=$(repeat x $len_var+10) - env_parallel echo ::: fail_bigvar - bigvar=$(repeat x $len_var_remote+10) - env_parallel -S lo echo ::: fail_bigvar_remote - - bigvar=$(repeat \" $len_var_quote+10) - env_parallel echo ::: fail_bigvar_quote - bigvar=$(repeat \" $len_var_quote_remote+10) - env_parallel -S lo echo ::: fail_bigvar_quote_remote - - bigvar=u - eval 'bigfunc() { a="'"$(repeat x $len_fun+10)"'"; };' - env_parallel echo ::: fail_bigfunc-not-supported - eval 'bigfunc() { a="'"$(repeat x $len_fun_remote+10)"'"; };' - env_parallel -S lo echo ::: fail_bigfunc_remote-not-supported - - eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote+10)"'"; };' - env_parallel echo ::: fail_bigfunc_quote-not-supported - eval 'bigfunc() { a="'"$(repeat \" $len_fun_quote_remote+10)"'"; };' - env_parallel -S lo echo ::: fail_bigfunc_quote_remote-not-supported - - bigfunc() { true; } -_EOF - ) - ssh dash@lo "$myscript" + echo moved to hwdep1.sh } par_environment_too_big_fish() { @@ -2085,78 +1953,7 @@ par_environment_too_big_tcsh() { } par_environment_too_big_zsh() { - myscript=$(cat <<'_EOF' - echo 'bug #50815: env_parallel should warn if the environment is too big' - - # Zsh's default env is often too big. Remove all _* functions. - print -l ${(k)functions}|grep ^_ | while read a; do unset -f "$a"; done - - . `which env_parallel.zsh`; - - len_var=16 - len_var_remote=$len_var-15 - len_var_quote=$len_var - len_var_quote_remote=$len_var-15 - len_fun=18 - len_fun_remote=$len_fun-10 - len_fun_quote=$len_fun - len_fun_quote_remote=$len_fun-10 - - repeat_() { - # Repeat input string n*1000 times - perl -e 'print ((shift)x(eval "1000*(".shift.")"))' "$@" - } - - bigvar=$(repeat_ x $len_var) - env_parallel echo ::: OK_bigvar - bigvar=$(repeat_ x $len_var_remote) - env_parallel -S lo echo ::: OK_bigvar_remote - - bigvar=$(repeat_ \" $len_var_quote) - env_parallel echo ::: OK_bigvar_quote - bigvar=$(repeat_ \" $len_var_quote_remote) - env_parallel -S lo echo ::: OK_bigvar_quote_remote - - bigvar=u - eval 'bigfunc() { a="'"$(repeat_ x $len_fun)"'"; };' - env_parallel echo ::: OK_bigfunc - eval 'bigfunc() { a="'"$(repeat_ x $len_fun_remote)"'"; };' - env_parallel -S lo echo ::: OK_bigfunc_remote - - eval 'bigfunc() { a="'"$(repeat_ \" $len_fun_quote)"'"; };' - env_parallel echo ::: OK_bigfunc_quote - eval 'bigfunc() { a="'"$(repeat_ \" $len_fun_quote_remote)"'"; };' - env_parallel -S lo echo ::: OK_bigfunc_quote_remote - bigfunc() { true; } - - echo Rest should fail - - # Add 10 or 100. It differs a bit from system to system - bigvar=$(repeat_ x $len_var+20) - env_parallel echo ::: fail_bigvar - bigvar=$(repeat_ x $len_var_remote+10) - env_parallel -S lo echo ::: fail_bigvar_remote - - bigvar=$(repeat_ \" $len_var_quote+20) - env_parallel echo ::: fail_bigvar_quote - bigvar=$(repeat_ \" $len_var_quote_remote+20) - env_parallel -S lo echo ::: fail_bigvar_quote_remote - - bigvar=u - eval 'bigfunc() { a="'"$(repeat_ x $len_fun+20)"'"; };' - env_parallel echo ::: fail_bigfunc - eval 'bigfunc() { a="'"$(repeat_ x $len_fun_remote+20)"'"; };' - env_parallel -S lo echo ::: fail_bigfunc_remote - - eval 'bigfunc() { a="'"$(repeat_ \" $len_fun_quote+20)"'"; };' - env_parallel echo ::: fail_bigfunc_quote - eval 'bigfunc() { a="'"$(repeat_ \" $len_fun_quote_remote+10)"'"; };' - env_parallel -S lo echo ::: fail_bigfunc_quote_remote - - bigfunc() { true; } -_EOF - ) - ssh zsh@lo "$myscript" + echo moved to hwdep1.sh } par_parset_ash() { diff --git a/testsuite/tests-to-run/parallel-local-ssh9.sh b/testsuite/tests-to-run/parallel-local-ssh9.sh index 4ecd3563..0716cb15 100644 --- a/testsuite/tests-to-run/parallel-local-ssh9.sh +++ b/testsuite/tests-to-run/parallel-local-ssh9.sh @@ -192,10 +192,10 @@ par_no_route_to_host() { export -f findhosts export -f filterhosts # Run this in the background - nice tmux new-session -d -s filterhosts$$-$RANDOM -c ' - findhosts | filterhosts | filterhosts | filterhosts | - filterhosts | filterhosts | head > /tmp/filtered.$$ - mv /tmp/filtered.$$ /tmp/filtered.hosts + nice tmux new-session -d -s filterhosts$$-$RANDOM -c 'findhosts | + filterhosts | filterhosts | filterhosts | + filterhosts | filterhosts | head > /tmp/filtered.$$ + mv /tmp/filtered.$$ /tmp/filtered.hosts ' & ) & ( diff --git a/testsuite/vagrant/generic/centos8/Vagrantfile b/testsuite/vagrant/generic/centos8/Vagrantfile index 72c9a4d5..df298cdb 100644 --- a/testsuite/vagrant/generic/centos8/Vagrantfile +++ b/testsuite/vagrant/generic/centos8/Vagrantfile @@ -1,6 +1,10 @@ # -*- mode: ruby -*- # vi: set ft=ruby : +# SPDX-FileCopyrightText: 2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# +# SPDX-License-Identifier: GPL-3.0-or-later + # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what diff --git a/testsuite/wanted-results/parallel-hwdep1 b/testsuite/wanted-results/parallel-hwdep1 new file mode 100644 index 00000000..dfc92742 --- /dev/null +++ b/testsuite/wanted-results/parallel-hwdep1 @@ -0,0 +1,73 @@ +par__environment_too_big_ash bug #50815: env_parallel should warn if the environment is too big +par__environment_too_big_ash OK_bigvar +par__environment_too_big_ash OK_bigvar_remote +par__environment_too_big_ash OK_bigvar_quote +par__environment_too_big_ash OK_bigvar_quote_remote +par__environment_too_big_ash OK_bigfunc +par__environment_too_big_ash OK_bigfunc_remote +par__environment_too_big_ash OK_bigfunc_quote +par__environment_too_big_ash OK_bigfunc_quote_remote +par__environment_too_big_ash Rest should fail - functions not supported in ash +par__environment_too_big_ash parallel: Error: Command line too long (82690 >= 63997) at input 0: fail_bigvar_quote +par__environment_too_big_ash parallel: Error: Command line too long (83596 >= 63997) at input 0: fail_bigvar_quote_remote +par__environment_too_big_ash fail_bigfunc-not-supported +par__environment_too_big_ash fail_bigfunc_remote-not-supported +par__environment_too_big_ash fail_bigfunc_quote-not-supported +par__environment_too_big_dash bug #50815: env_parallel should warn if the environment is too big +par__environment_too_big_dash OK_bigvar +par__environment_too_big_dash OK_bigvar_remote +par__environment_too_big_dash OK_bigvar_quote +par__environment_too_big_dash OK_bigvar_quote_remote +par__environment_too_big_dash OK_bigfunc +par__environment_too_big_dash OK_bigfunc_remote +par__environment_too_big_dash OK_bigfunc_quote +par__environment_too_big_dash OK_bigfunc_quote_remote +par__environment_too_big_dash Rest should fail - functions not supported in dash +par__environment_too_big_dash parallel: Error: Command line too long (82695 >= 63997) at input 0: fail_bigvar_quote +par__environment_too_big_dash parallel: Error: Command line too long (83602 >= 63997) at input 0: fail_bigvar_quote_remote +par__environment_too_big_dash fail_bigfunc-not-supported +par__environment_too_big_dash fail_bigfunc_remote-not-supported +par__environment_too_big_dash fail_bigfunc_quote-not-supported +par__environment_too_big_zsh bug #50815: env_parallel should warn if the environment is too big +par__environment_too_big_zsh OK_bigvar +par__environment_too_big_zsh OK_bigvar_remote +par__environment_too_big_zsh OK_bigvar_quote +par__environment_too_big_zsh OK_bigvar_quote_remote +par__environment_too_big_zsh OK_bigfunc +par__environment_too_big_zsh OK_bigfunc_remote +par__environment_too_big_zsh OK_bigfunc_quote +par__environment_too_big_zsh OK_bigfunc_quote_remote +par__environment_too_big_zsh Rest should fail +par__environment_too_big_zsh parallel: Error: Command line too long (63879 >= 63011) at input 0: fail_bigvar +par__environment_too_big_zsh parallel: Error: Command line too long (63887 >= 63011) at input 0: fail_bigvar_quote +par__environment_too_big_zsh parallel: Error: Command line too long (65192 >= 63011) at input 0: fail_bigvar_quote_remote +par__environment_too_big_zsh parallel: Error: Command line too long (65882 >= 63011) at input 0: fail_bigfunc +par__environment_too_big_zsh parallel: Error: Command line too long (74518 >= 63011) at input 0: fail_bigfunc_remote +par__environment_too_big_zsh parallel: Error: Command line too long (65888 >= 63011) at input 0: fail_bigfunc_quote +par__sockets_cores_threads ### Test --number-of-sockets/cores/threads +par__sockets_cores_threads 1 +par__sockets_cores_threads 4 +par__sockets_cores_threads 8 +par__sockets_cores_threads 4 +par__sockets_cores_threads ### Test --use-sockets-instead-of-threads +par__sockets_cores_threads threads done +par__sockets_cores_threads sockets done +par__sockets_cores_threads Threads should complete first on machines with less than 8 sockets +par_progress +par_progress Computers / CPU sockets / Max jobs to run +par_progress 1:local / 1 / 1 +par_progress +par_progress Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete +par_progress local:0/3/100%/9.9s  +par_progress +par_progress Computers / CPU cores / Max jobs to run +par_progress 1:local / 4 / 4 +par_progress +par_progress Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete +par_progress local:0/3/100%/9.9s  +par_progress +par_progress Computers / CPU threads / Max jobs to run +par_progress 1:local / 8 / 8 +par_progress +par_progress Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete +par_progress local:0/3/100%/9.9s  diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index 10eef73e..aa9d6b34 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -1156,15 +1156,6 @@ par_shellquote csh \\\\\\\\ "\ par_shellquote csh "\ \ \ par_shellquote csh \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ par_shellquote tcsh \\\\\\\\ "\ par_shellquote tcsh "\ \ \ par_shellquote tcsh \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -par_sockets_cores_threads ### Test --number-of-sockets/cores/threads -par_sockets_cores_threads 1 -par_sockets_cores_threads 2 -par_sockets_cores_threads 4 -par_sockets_cores_threads 2 -par_sockets_cores_threads ### Test --use-sockets-instead-of-threads -par_sockets_cores_threads threads done -par_sockets_cores_threads sockets done -par_sockets_cores_threads Threads should complete first on machines with less than 8 sockets par_tee_too_many_args ### Fail if there are more arguments than --jobs par_tee_too_many_args 1 1 par_tee_too_many_args 1 10 diff --git a/testsuite/wanted-results/parallel-local-1s b/testsuite/wanted-results/parallel-local-1s index a36a83e3..4c890e1e 100644 --- a/testsuite/wanted-results/parallel-local-1s +++ b/testsuite/wanted-results/parallel-local-1s @@ -415,24 +415,6 @@ par_profiles_with_space /bin/bash=/bin/bash par_profiles_with_space echo '/bin/bash=/bin/bash' par_profiles_with_space /bin/bash=/bin/bash par_profiles_with_space With script in $PARALLEL /bin/bash=/TMP -par_progress -par_progress Computers / CPU sockets / Max jobs to run -par_progress 1:local / 1 / 1 -par_progress -par_progress Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete -par_progress local:0/3/100%/9.9s  -par_progress -par_progress Computers / CPU cores / Max jobs to run -par_progress 1:local / 2 / 2 -par_progress -par_progress Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete -par_progress local:0/3/100%/9.9s  -par_progress -par_progress Computers / CPU threads / Max jobs to run -par_progress 1:local / 4 / 4 -par_progress -par_progress Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete -par_progress local:0/3/100%/9.9s  par_pxz_complains bug #44250: pxz complains File format not recognized but decompresses anyway par_pxz_complains ls: cannot access '/OK-if-missing-file': No such file or directory par_pxz_complains can not seek in input: Illegal seek diff --git a/testsuite/wanted-results/parallel-local-ssh7 b/testsuite/wanted-results/parallel-local-ssh7 index b222a118..4908dc99 100644 --- a/testsuite/wanted-results/parallel-local-ssh7 +++ b/testsuite/wanted-results/parallel-local-ssh7 @@ -1737,24 +1737,7 @@ par_env_parallel_zsh bug #50435: Remote fifo broke in 20150522 par_env_parallel_zsh bug #52534: Tail of multiline alias is ignored par_env_parallel_zsh data from stdin par_env_parallel_zsh data from stdin -par_environment_too_big_ash bug #50815: env_parallel should warn if the environment is too big -par_environment_too_big_ash OK_bigvar -par_environment_too_big_ash OK_bigvar_remote -par_environment_too_big_ash OK_bigvar_quote -par_environment_too_big_ash OK_bigvar_quote_remote -par_environment_too_big_ash OK_bigfunc -par_environment_too_big_ash OK_bigfunc_remote -par_environment_too_big_ash OK_bigfunc_quote -par_environment_too_big_ash OK_bigfunc_quote_remote -par_environment_too_big_ash Rest should fail - functions not supported in ash -par_environment_too_big_ash parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar -par_environment_too_big_ash parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar_remote -par_environment_too_big_ash parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar_quote -par_environment_too_big_ash parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar_quote_remote -par_environment_too_big_ash fail_bigfunc-not-supported -par_environment_too_big_ash fail_bigfunc_remote-not-supported -par_environment_too_big_ash fail_bigfunc_quote-not-supported -par_environment_too_big_ash fail_bigfunc_quote_remote-not-supported +par_environment_too_big_ash moved to hwdep1.sh par_environment_too_big_bash bug #50815: env_parallel should warn if the environment is too big par_environment_too_big_bash OK_bigvar par_environment_too_big_bash OK_bigvar_remote @@ -1774,24 +1757,7 @@ par_environment_too_big_bash parallel: Error: Command line too long (999 >= 999) par_environment_too_big_bash parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigfunc_quote par_environment_too_big_bash parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigfunc_quote_remote par_environment_too_big_csh Not implemented -par_environment_too_big_dash bug #50815: env_parallel should warn if the environment is too big -par_environment_too_big_dash OK_bigvar -par_environment_too_big_dash OK_bigvar_remote -par_environment_too_big_dash OK_bigvar_quote -par_environment_too_big_dash OK_bigvar_quote_remote -par_environment_too_big_dash OK_bigfunc -par_environment_too_big_dash OK_bigfunc_remote -par_environment_too_big_dash OK_bigfunc_quote -par_environment_too_big_dash OK_bigfunc_quote_remote -par_environment_too_big_dash Rest should fail - functions not supported in dash -par_environment_too_big_dash parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar -par_environment_too_big_dash parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar_remote -par_environment_too_big_dash parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar_quote -par_environment_too_big_dash parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar_quote_remote -par_environment_too_big_dash fail_bigfunc-not-supported -par_environment_too_big_dash fail_bigfunc_remote-not-supported -par_environment_too_big_dash fail_bigfunc_quote-not-supported -par_environment_too_big_dash fail_bigfunc_quote_remote-not-supported +par_environment_too_big_dash moved to hwdep1.sh par_environment_too_big_fish Not implemented par_environment_too_big_ksh bug #50815: env_parallel should warn if the environment is too big par_environment_too_big_ksh OK_bigvar @@ -1848,24 +1814,7 @@ par_environment_too_big_sh fail_bigfunc_remote-not-supported par_environment_too_big_sh fail_bigfunc_quote-not-supported par_environment_too_big_sh fail_bigfunc_quote_remote-not-supported par_environment_too_big_tcsh Not implemented -par_environment_too_big_zsh bug #50815: env_parallel should warn if the environment is too big -par_environment_too_big_zsh OK_bigvar -par_environment_too_big_zsh OK_bigvar_remote -par_environment_too_big_zsh OK_bigvar_quote -par_environment_too_big_zsh OK_bigvar_quote_remote -par_environment_too_big_zsh OK_bigfunc -par_environment_too_big_zsh OK_bigfunc_remote -par_environment_too_big_zsh OK_bigfunc_quote -par_environment_too_big_zsh OK_bigfunc_quote_remote -par_environment_too_big_zsh Rest should fail -par_environment_too_big_zsh parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar -par_environment_too_big_zsh parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar_remote -par_environment_too_big_zsh parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar_quote -par_environment_too_big_zsh parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigvar_quote_remote -par_environment_too_big_zsh parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigfunc -par_environment_too_big_zsh parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigfunc_remote -par_environment_too_big_zsh parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigfunc_quote -par_environment_too_big_zsh parallel: Error: Command line too long (999 >= 999) at input 0: fail_bigfunc_quote_remote +par_environment_too_big_zsh moved to hwdep1.sh par_funky_ash par_funky_ash ' ' par_funky_ash ' par_funky_ash  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' diff --git a/testsuite/wanted-results/parallel-local-ssh8 b/testsuite/wanted-results/parallel-local-ssh8 index 03f6c668..06c64cb0 100644 --- a/testsuite/wanted-results/parallel-local-ssh8 +++ b/testsuite/wanted-results/parallel-local-ssh8 @@ -34,7 +34,6 @@ par_path_remote_csh StArT par_path_remote_csh CSH Path before: /bin:/usr/bin with no parallel par_path_remote_csh parallel: Command not found. par_path_remote_csh ^^^^^^^^ Not found is OK -par_path_remote_csh parallel: Warning: Could not figure out number of cpus on lo (). Using 1. par_path_remote_csh /bin:/usr/bin:/tmp OK par_path_remote_csh Done par_retries_1 ### Test of --retries - it should run 13 jobs in total