From 28620b2c498195b38f4f65d8b427455919ea9e69 Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Thu, 25 Jun 2020 13:07:02 +0200 Subject: [PATCH] parallel: Avoid warning in MySQL, fish and perl. --- doc/release_new_version | 3 +- src/niceload | 2 +- src/parallel | 12 +- src/sql | 2 +- testsuite/REQUIREMENTS | 38 ++- testsuite/tests-to-run/parallel-local-100s.sh | 14 + testsuite/tests-to-run/parallel-local-10s.sh | 74 ++++- testsuite/tests-to-run/parallel-local-30s.sh | 44 ++- testsuite/tests-to-run/parallel-local-3s.sh | 72 +---- .../tests-to-run/parallel-local-sql01.sh | 2 +- testsuite/tests-to-run/parallel-local-ssh7.sh | 6 + testsuite/wanted-results/parallel-local-0.3s | 1 - testsuite/wanted-results/parallel-local-100s | 1 + testsuite/wanted-results/parallel-local-10s | 9 +- testsuite/wanted-results/parallel-local-1s | 2 +- testsuite/wanted-results/parallel-local-300s | 6 + testsuite/wanted-results/parallel-local-30s | 265 +++++++++--------- testsuite/wanted-results/parallel-local-3s | 6 - testsuite/wanted-results/parallel-local-sql01 | 109 +++++++ testsuite/wanted-results/parallel-local-ssh7 | 87 +++--- 20 files changed, 458 insertions(+), 297 deletions(-) diff --git a/doc/release_new_version b/doc/release_new_version index 4575ce72..d3a7aeca 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -24,6 +24,8 @@ https://zenodo.org/deposit/new (*) Software (Reserve DOI) +GNU Parallel 20200622 ('Floyd') +Ole Tange https://orcid.org/0000-0002-6345-1437 Description GNU Parallel is a general parallelizer to run multiple serial command line programs in parallel without changing them. @@ -63,7 +65,6 @@ make alphaupload export YYYYMMDD=`yyyymmdd` export YYYYMMDD=${YYYYMMDD:0:6}22 -YYYYMMDD=`yyyymmdd` export YYYYMMDD cd ~/privat/parallel/packager/obs diff --git a/src/niceload b/src/niceload index fd05a4cd..4aef380f 100755 --- a/src/niceload +++ b/src/niceload @@ -23,7 +23,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20200622; +$Global::version = 20200623; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/parallel b/src/parallel index fe7a7af0..f8de17bb 100755 --- a/src/parallel +++ b/src/parallel @@ -2157,7 +2157,7 @@ sub check_invalid_option_combinations() { sub init_globals() { # Defaults: - $Global::version = 20200622; + $Global::version = 20200623; $Global::progname = 'parallel'; $::name = "GNU Parallel"; $Global::infinity = 2**31; @@ -4860,6 +4860,9 @@ sub wait_and_exit($) { if($Global::unkilled_sqlworker) { waitpid($Global::unkilled_sqlworker,0); } + # Avoid: Warning: unable to close filehandle properly: No space + # left on device during global destruction. + $SIG{__WARN__} = sub {}; exit($error); } @@ -8590,12 +8593,13 @@ sub total_failed($) { unlink; rmdir; } - if($bash=~s/h//) { + if($bash=~s/(\d+)h/$1/) { exit $bash; } exit $csh; }). - "' ".'"$?h" "$status" '; + # `echo \$?h` is needed to make fish not complain + "' ".'"`echo \\\\\\\\\$?h`" "$status" '; } return $script } @@ -12615,7 +12619,7 @@ sub create_table($) { my %vartype = ( "Oracle" => { "BIGINT" => "NUMBER(19,0)", "TEXT" => "CLOB", }, - "mysql" => { "TEXT" => "LONGTEXT", }, + "mysql" => { "TEXT" => "BLOB", }, "CSV" => { "BIGINT" => "INT", "FLOAT" => "REAL", }, ); diff --git a/src/sql b/src/sql index 76a5d661..161c2645 100755 --- a/src/sql +++ b/src/sql @@ -574,7 +574,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20200622; + $Global::version = 20200623; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/REQUIREMENTS b/testsuite/REQUIREMENTS index 2062e779..e0c4e16d 100644 --- a/testsuite/REQUIREMENTS +++ b/testsuite/REQUIREMENTS @@ -8,7 +8,7 @@ install_packages() { # The testsuite depends on this: test_pkgs="imagemagick expect autossh sshpass jq libpod-simple-perl pod2pdf gawk" test_pkgs="$test_pkgs lua5.3 clisp php-cli nodejs mono-csharp-shell libevent-dev" - test_pkgs="$test_pkgs tcl libtext-csv-perl" + test_pkgs="$test_pkgs tcl libtext-csv-perl xterm libc6-i386 libcrypt1:i386" # DEBIAN package packaging_pkgs="dpkg-dev build-essential debhelper osc cvs automake-1.15 python3-m2crypto" @@ -24,18 +24,23 @@ install_packages() { shell_pkgs="ash dash fdclone fish fizsh ksh ksh93 mksh posh rc rush sash tcsh yash zsh" # Databases database_pkgs="postgresql mysql-server sqlite" + sudo dpkg --add-architecture i386 if $INSTALL $test_pkgs $packaging_pkgs $shebang_pkgs $sql_pkgs $compression_pkgs $shell_pkgs $database_pkgs; then # OK true else echo Packages missing - exit 1 + return 1 fi + sudo apt update & } setup_databases() { # DATABASES echo '# Create PostgreSQL' + # Drop database and user if needed + sudo su - postgres -c 'dropdb '`whoami` + sudo su - postgres -c 'dropuser '`whoami` sudo su - postgres -c 'createdb '`whoami` sudo su - postgres -c 'createuser '`whoami` sudo su - postgres -c "sql pg:/// \"ALTER USER \\\"`whoami`\\\" WITH PASSWORD '`whoami`';\"" @@ -43,7 +48,11 @@ setup_databases() { mysqlrootpass=${mysqlrootpass:-b+Ydjq4ejT4E} echo '# Create MySQL' - sudo su - mysql mysqladmin create `whoami` + sudo su mysql mysqladmin create `whoami` + # Default Debian way of getting "root" access + sudo mysql --defaults-file=/etc/mysql/debian.cnf mysql <<< "ALTER USER 'root'@'localhost' IDENTIFIED BY '$mysqlrootpass';" + + # Drop database and user if needed sudo sql mysql://root:"$mysqlrootpass"@/mysql "DROP DATABASE `whoami`;DROP USER '`whoami`'@'localhost';" sudo sql mysql://root:"$mysqlrootpass"@/mysql "CREATE DATABASE `whoami`;CREATE USER '`whoami`'@'localhost' IDENTIFIED BY '`whoami`'; GRANT ALL ON `whoami`.* TO '`whoami`'@'localhost';" } @@ -222,6 +231,28 @@ tmux_versions() { ) } +bash_versions() { + echo You may have to kill conftest + (cd /tmp + git clone https://git.savannah.gnu.org/git/bash.git + make_one() { + rsync -a --delete bash/ $1/ + cd $1 + git reset --hard + git checkout $1 + LDFLAGS=-static ./configure && + make -j2 && + sudo cp bash /usr/local/bin/$1 + } + export -f make_one + echo '# Building bash' + (cd bash; git tag | grep -v -- '-.*-') | + stdout parallel --lb --tag '/usr/local/bin/{} --version || make_one {}' + (cd bash; git tag | grep -v -- '-.*-') | + parallel -k -v --tag '/usr/local/bin/{} --version' + ) +} + misc() { parallel --record-env @@ -239,5 +270,6 @@ run() { lsh_setup && add_freebsd && tmux_versions && + bash_versions && misc } diff --git a/testsuite/tests-to-run/parallel-local-100s.sh b/testsuite/tests-to-run/parallel-local-100s.sh index fdc3ced6..8c8af125 100644 --- a/testsuite/tests-to-run/parallel-local-100s.sh +++ b/testsuite/tests-to-run/parallel-local-100s.sh @@ -113,6 +113,20 @@ par_timeout() { perl -ne '10 < $_ and $_ < 100 and print "OK\n"' } +par_bug57364() { + echo '### bug #57364: Race condition creating len cache file.' + j=32 + set -e + for i in $(seq 1 50); do + # Clear cache (simple 'rm -rf' causes race condition) + mv "${HOME}/.parallel/tmp" "${HOME}/.parallel/tmp-$$" && + rm -rf "${HOME}/.parallel/tmp-$$" + # Try to launch multiple parallel simultaneously. + seq $j | + xargs -P $j -n 1 parallel true $i ::: + done 2>&1 +} + #par_crashing() { # echo '### bug #56322: sem crashed when running with input from seq' # echo "### This should not fail" diff --git a/testsuite/tests-to-run/parallel-local-10s.sh b/testsuite/tests-to-run/parallel-local-10s.sh index c6f3a7c4..00974e34 100644 --- a/testsuite/tests-to-run/parallel-local-10s.sh +++ b/testsuite/tests-to-run/parallel-local-10s.sh @@ -4,6 +4,77 @@ # Each should be taking 10-30s and be possible to run in parallel # I.e.: No race conditions, no logins +par_bin() { + echo '### Test --bin' + seq 10 | parallel --pipe --bin 1 -j4 wc | sort + paste <(seq 10) <(seq 10 -1 1) | + parallel --pipe --colsep '\t' --bin 2 -j4 wc | sort + echo '### Test --bin with expression that gives 1..n' + paste <(seq 10) <(seq 10 -1 1) | + parallel --pipe --colsep '\t' --bin '2 $_=$_%2+1' -j4 wc | sort + echo '### Test --bin with expression that gives 0..n-1' + paste <(seq 10) <(seq 10 -1 1) | + parallel --pipe --colsep '\t' --bin '2 $_%=2' -j4 wc | sort + # Fails - blocks! + # paste <(seq 10000000) <(seq 10000000 -1 1) | parallel --pipe --colsep '\t' --bin 2 wc +} + +par_nice() { + echo 'Check that --nice works' + # parallel-20160422 OK + check_for_2_bzip2s() { + perl -e ' + for(1..5) { + # Try 5 times if the machine is slow starting bzip2 + sleep(1); + @out = qx{ps -eo "%c %n" | grep 18 | grep bzip2}; + if($#out == 1) { + # Should find 2 lines + print @out; + exit 0; + } + } + print "failed\n@out"; + ' + } + # wait for load < 8 + parallel --load 8 echo ::: load_10 + parallel -j0 --timeout 10 --nice 18 bzip2 '<' ::: /dev/zero /dev/zero & + pid=$! + check_for_2_bzip2s + parallel --retries 10 '! kill -TERM' ::: $pid 2>/dev/null +} + +par_test_diff_roundrobin_k() { + echo '### test there is difference on -k' + . $(which env_parallel.bash) + mytest() { + K=$1 + doit() { + # Sleep random time ever 1k line + # to mix up which process gets the next block + perl -ne '$t++ % 1000 or select(undef, undef, undef, rand()/10);print' | + md5sum + } + export -f doit + seq 1000000 | + parallel --block 65K --pipe $K --roundrobin doit | + sort + } + export -f mytest + parset a,b,c mytest ::: -k -k '' + # a == b and a != c or error + if [ "$a" == "$b" ]; then + if [ "$a" != "$c" ]; then + echo OK + else + echo error a c + fi + else + echo error a b + fi +} + par_colsep() { echo '### Test of --colsep' echo 'a%c%b' | parallel --colsep % echo {1} {3} {2} @@ -509,7 +580,8 @@ par_tmp_full() { par_jobs_file() { echo '### Test of -j filename - non-existent file' - stdout parallel -j no_such_file echo ::: 1 + stdout parallel -j no_such_file echo ::: 1 | + perl -ne '/Tange, O.|Zenodo./ or print' echo '### Test of -j filename' echo 3 >/tmp/jobs_to_run1 diff --git a/testsuite/tests-to-run/parallel-local-30s.sh b/testsuite/tests-to-run/parallel-local-30s.sh index a9ae54d6..9354c0bb 100755 --- a/testsuite/tests-to-run/parallel-local-30s.sh +++ b/testsuite/tests-to-run/parallel-local-30s.sh @@ -10,13 +10,15 @@ par_exit_code() { # Runs command in given shell via Perl's open3 shell="$1" prg="$2" - perl -MIPC::Open3 -e 'open3($a,$b,$c,"'$shell'","-c",'"$prg"'); wait; print $?>>8,"\n"' + perl -MIPC::Open3 -e 'open3($a,$b,$c,"'$shell'","-c","'"$prg"'"); wait; print $?>>8,"\n"' } export -f in_shell_run_command runit() { - OK="ash bash csh dash fish mksh posh rc sash sh static-sh tcsh" - BAD="fdsh fizsh ksh ksh93 yash zsh" + # These give the same exit code prepended with 'true;' or not + OK="ash csh dash fish fizsh ksh2020 posh rc sash sh tcsh" + # These do not give the same exit code prepended with 'true;' or not + BAD="bash fdsh ksh93 mksh static-sh yash zsh" s=100 rm -f /tmp/mysleep cp /bin/sleep /tmp/mysleep @@ -24,18 +26,18 @@ par_exit_code() { echo '# Ideally the command should return the same' echo '# with or without parallel' echo '# but fish 2.4.0 returns 1 while X.X.X returns 0' - parallel -kj500% --argsep ,, --tag in_shell_run_command {1} '{=2 $_=Q($_) =}' \ + parallel -kj500% --argsep ,, --tag in_shell_run_command {1} {2} \ ,, $OK $BAD ,, \ - '/tmp/mysleep '$s \ - 'parallel --halt-on-error now,fail=1 /tmp/mysleep ::: '$s \ - 'parallel --halt-on-error now,done=1 /tmp/mysleep ::: '$s \ - 'parallel --halt-on-error now,done=1 /bin/true ::: '$s \ - 'parallel --halt-on-error now,done=1 exit ::: '$s \ - 'true;/tmp/mysleep '$s \ - 'parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: '$s \ - 'parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: '$s \ - 'parallel --halt-on-error now,done=1 "true;/bin/true" ::: '$s \ - 'parallel --halt-on-error now,done=1 "true;exit" ::: '$s + "/tmp/mysleep "$s \ + "parallel --halt-on-error now,fail=1 /tmp/mysleep ::: "$s \ + "parallel --halt-on-error now,done=1 /tmp/mysleep ::: "$s \ + "parallel --halt-on-error now,done=1 /bin/true ::: "$s \ + "parallel --halt-on-error now,done=1 exit ::: "$s \ + "true;/tmp/mysleep "$s \ + "parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: "$s \ + "parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: "$s \ + "parallel --halt-on-error now,done=1 'true;/bin/true' ::: "$s \ + "parallel --halt-on-error now,done=1 'true;exit' ::: "$s } export -f runit @@ -185,20 +187,6 @@ par_groupby_pipepart() { ::: '3 $_%=2' 3 c1 'c1 $_%=2' 's/^(\d+[\t ,]+){2}(\d+).*/$2/' } -par_bug57364() { - echo '### bug #57364: Race condition creating len cache file.' - j=32 - set -e - for i in $(seq 1 50); do - # Clear cache (simple 'rm -rf' causes race condition) - mv "${HOME}/.parallel/tmp" "${HOME}/.parallel/tmp-$$" && - rm -rf "${HOME}/.parallel/tmp-$$" - # Try to launch multiple parallel simultaneously. - seq $j | - xargs -P $j -n 1 parallel true $i ::: - done 2>&1 -} - par_sighup() { echo '### Test SIGHUP' parallel -k -j5 sleep 15';' echo ::: {1..99} >/tmp/parallel$$ 2>&1 & diff --git a/testsuite/tests-to-run/parallel-local-3s.sh b/testsuite/tests-to-run/parallel-local-3s.sh index bfd59dd1..931b8a1e 100644 --- a/testsuite/tests-to-run/parallel-local-3s.sh +++ b/testsuite/tests-to-run/parallel-local-3s.sh @@ -4,21 +4,6 @@ # Each should be taking 3-10s and be possible to run in parallel # I.e.: No race conditions, no logins -par_bin() { - echo '### Test --bin' - seq 10 | parallel --pipe --bin 1 -j4 wc | sort - paste <(seq 10) <(seq 10 -1 1) | - parallel --pipe --colsep '\t' --bin 2 -j4 wc | sort - echo '### Test --bin with expression that gives 1..n' - paste <(seq 10) <(seq 10 -1 1) | - parallel --pipe --colsep '\t' --bin '2 $_=$_%2+1' -j4 wc | sort - echo '### Test --bin with expression that gives 0..n-1' - paste <(seq 10) <(seq 10 -1 1) | - parallel --pipe --colsep '\t' --bin '2 $_%=2' -j4 wc | sort - # Fails - blocks! - # paste <(seq 10000000) <(seq 10000000 -1 1) | parallel --pipe --colsep '\t' --bin 2 wc -} - par_tee_with_premature_close() { echo '--tee --pipe should send all data to all commands' echo 'even if a command closes stdin before reading everything' @@ -26,6 +11,7 @@ par_tee_with_premature_close() { correct="$(seq 1000000 | parallel -k --tee --pipe ::: wc head tail 'sleep 1')" echo "$correct" echo 'tee without --output-error=warn-nopipe support' + mkdir -p tmp cat > tmp/tee <<-EOF #!/usr/bin/perl @@ -360,62 +346,6 @@ par_do_not_export_PARALLEL_ENV() { env_parallel doit ::: 1 } -par_nice() { - echo 'Check that --nice works' - # parallel-20160422 OK - check_for_2_bzip2s() { - perl -e ' - for(1..5) { - # Try 5 times if the machine is slow starting bzip2 - sleep(1); - @out = qx{ps -eo "%c %n" | grep 18 | grep bzip2}; - if($#out == 1) { - # Should find 2 lines - print @out; - exit 0; - } - } - print "failed\n@out"; - ' - } - # wait for load < 8 - parallel --load 8 echo ::: load_10 - parallel -j0 --timeout 10 --nice 18 bzip2 '<' ::: /dev/zero /dev/zero & - pid=$! - check_for_2_bzip2s - parallel --retries 10 '! kill -TERM' ::: $pid 2>/dev/null -} - -par_test_diff_roundrobin_k() { - echo '### test there is difference on -k' - . $(which env_parallel.bash) - mytest() { - K=$1 - doit() { - # Sleep random time ever 10k line - # to mix up which process gets the next block - perl -ne '$t++ % 1000 or select(undef, undef, undef, rand()/1000);print' | - md5sum - } - export -f doit - seq 1000000 | - parallel --block 65K --pipe $K --roundrobin doit | - sort - } - export -f mytest - parset a,b,c mytest ::: -k -k '' - # a == b and a != c or error - if [ "$a" == "$b" ]; then - if [ "$a" != "$c" ]; then - echo OK - else - echo error a c - fi - else - echo error a b - fi -} - par_lb_mem_usage() { long_line() { perl -e 'print "x"x100_000_000' diff --git a/testsuite/tests-to-run/parallel-local-sql01.sh b/testsuite/tests-to-run/parallel-local-sql01.sh index b3ff7833..0a4eab43 100644 --- a/testsuite/tests-to-run/parallel-local-sql01.sh +++ b/testsuite/tests-to-run/parallel-local-sql01.sh @@ -6,7 +6,7 @@ export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db export PG=pg://`whoami`:`whoami`@lo/`whoami` export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami` -export CSV=csv:///%2Frun%2Fshm/parallel.csv +export CSV=csv:///%2Frun%2Fshm export DEBUG=false rm -f /run/shm/parallel.db diff --git a/testsuite/tests-to-run/parallel-local-ssh7.sh b/testsuite/tests-to-run/parallel-local-ssh7.sh index 8f497b05..5fc86fb5 100755 --- a/testsuite/tests-to-run/parallel-local-ssh7.sh +++ b/testsuite/tests-to-run/parallel-local-ssh7.sh @@ -1517,6 +1517,12 @@ par_fish_env_parallel() { set OK OK echo data from stdin | env_parallel --pipe -S lo --fifo 'cat {}; and echo $OK' echo data from stdin | env_parallel --pipe -S lo --cat 'cat {}; and echo $OK' + echo OK: 0==$status + echo '### Test failing command with --cat' + echo data from stdin | env_parallel --pipe -S lo --cat 'cat {}; false' + echo OK: 1==$status + echo data from stdin | parallel --pipe -S lo --cat 'cat {}; false' + echo OK: 1==$status _EOF ) ssh fish@lo "$myscript" diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index a14188b4..591b37e3 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -106,7 +106,6 @@ par_disk_full parallel: Error: Output is incomplete. par_disk_full parallel: Error: Cannot append to buffer file in /mnt/ram. par_disk_full parallel: Error: Is the disk full? par_disk_full parallel: Error: Change $TMPDIR with --tmpdir or use --compress. -par_disk_full Warning: unable to close filehandle properly: No space left on device during global destruction. par_dryrun_append_joblog --dry-run should not append to joblog par_dryrun_append_joblog 1 par_dryrun_append_joblog 2 diff --git a/testsuite/wanted-results/parallel-local-100s b/testsuite/wanted-results/parallel-local-100s index 6c0d7f26..8537c472 100644 --- a/testsuite/wanted-results/parallel-local-100s +++ b/testsuite/wanted-results/parallel-local-100s @@ -1,3 +1,4 @@ +par_bug57364 ### bug #57364: Race condition creating len cache file. par_linebuffer_files bug #48658: --linebuffer --files par_linebuffer_files zstd normal par_linebuffer_files zstd 100000 diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index 5bf2d548..01762649 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -238,8 +238,6 @@ par_jobs_file Academic tradition requires you to cite works you base your articl par_jobs_file If you use programs that use GNU Parallel to process data for an article in a par_jobs_file scientific publication, please cite: par_jobs_file -par_jobs_file Tange, O. (2020, May 22). GNU Parallel 20200522 ('Kraftwerk'). -par_jobs_file Zenodo. https://doi.org/10.5281/zenodo.3840974 par_jobs_file par_jobs_file This helps funding further development; AND IT WON'T COST YOU A CENT. par_jobs_file If you pay 10000 EUR you should feel free to use GNU Parallel without citing. @@ -476,6 +474,10 @@ par_maxlinelen_X_I Chars per line (817788/7): 116826 par_maxlinelen_m_I ### Test max line length -m -I par_maxlinelen_m_I c78bd0799bc23d8946732f8b3ae3c94e - par_maxlinelen_m_I Chars per line (697800/6): 116300 +par_nice Check that --nice works +par_nice load_10 +par_nice bzip2 18 +par_nice bzip2 18 par_parset ### test parset par_parset Put output into $myarray par_parset 10 @@ -854,12 +856,13 @@ 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_test_diff_roundrobin_k ### test there is difference on -k +par_test_diff_roundrobin_k OK par_tmp_full ### Test --tmpdir running full. bug #40733 was caused by this par_tmp_full parallel: Error: Output is incomplete. par_tmp_full parallel: Error: Cannot append to buffer file in /tmp/shm/parallel. par_tmp_full parallel: Error: Is the disk full? par_tmp_full parallel: Error: Change $TMPDIR with --tmpdir or use --compress. -par_tmp_full Warning: unable to close filehandle properly: No space left on device during global destruction. par_tmux_fg bug #50107: --tmux --fg should also write how to access it par_tmux_fg See output with: tmux -S tmp attach par_tmux_fg open terminal failed: not a terminal diff --git a/testsuite/wanted-results/parallel-local-1s b/testsuite/wanted-results/parallel-local-1s index 81d8fa1d..355b5cff 100644 --- a/testsuite/wanted-results/parallel-local-1s +++ b/testsuite/wanted-results/parallel-local-1s @@ -252,7 +252,7 @@ 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=~/privat/parallel/testsuite par_pxz_complains bug #44250: pxz complains File format not recognized but decompresses anyway -par_pxz_complains pxz: execution of xz binary failed: No such file or directory +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 par_pxz_complains ls: cannot access '/OK-if-missing-file': No such file or directory par_replacement_rename ### Test --basenamereplace diff --git a/testsuite/wanted-results/parallel-local-300s b/testsuite/wanted-results/parallel-local-300s index 3eb7b994..2b5fc332 100644 --- a/testsuite/wanted-results/parallel-local-300s +++ b/testsuite/wanted-results/parallel-local-300s @@ -174,11 +174,16 @@ par_retries_unreachable 2 par_test_build_and_install make[0]: Entering directory '~/privat/parallel' par_test_build_and_install make dist-gzip am__post_remove_distdir='@:' par_test_build_and_install make[0]: Entering directory '~/privat/parallel' +par_test_build_and_install make distdir-am +par_test_build_and_install make[0]: Entering directory '~/privat/parallel' par_test_build_and_install if test -d "parallel-00000000"; then find "parallel-00000000" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "parallel-00000000" || { sleep 5 && rm -rf "parallel-00000000"; }; else :; fi par_test_build_and_install test -d "parallel-00000000" || mkdir "parallel-00000000" par_test_build_and_install (cd src && make top_distdir=../parallel-00000000 distdir=../parallel-00000000/src \ par_test_build_and_install am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) par_test_build_and_install make[0]: Entering directory '~/privat/parallel/src' +par_test_build_and_install make distdir-am +par_test_build_and_install make[0]: Entering directory '~/privat/parallel/src' +par_test_build_and_install make[0]: Leaving directory '~/privat/parallel/src' par_test_build_and_install make[0]: Leaving directory '~/privat/parallel/src' par_test_build_and_install test -n "" \ par_test_build_and_install || find "parallel-00000000" -type d ! -perm -755 \ @@ -187,6 +192,7 @@ par_test_build_and_install ! -type d ! -perm -444 -links 1 -exec chmod a+r {} par_test_build_and_install ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ par_test_build_and_install ! -type d ! -perm -444 -exec /bin/bash ~/privat/parallel/install-sh -c -m a+r {} {} \; \ par_test_build_and_install || chmod -R a+r "parallel-00000000" +par_test_build_and_install make[0]: Leaving directory '~/privat/parallel' par_test_build_and_install tardir=parallel-00000000 && ${TAR-tar} chof - "$tardir" | eval GZIP= gzip --best -c >parallel-00000000.tar.gz par_test_build_and_install make[0]: Leaving directory '~/privat/parallel' par_test_build_and_install if test -d "parallel-00000000"; then find "parallel-00000000" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "parallel-00000000" || { sleep 5 && rm -rf "parallel-00000000"; }; else :; fi diff --git a/testsuite/wanted-results/parallel-local-30s b/testsuite/wanted-results/parallel-local-30s index 1c6d128d..9b468e43 100644 --- a/testsuite/wanted-results/parallel-local-30s +++ b/testsuite/wanted-results/parallel-local-30s @@ -1,4 +1,3 @@ -par_bug57364 ### bug #57364: Race condition creating len cache file. par_exit_code bug #52207: Exit status 0 when child job is killed, even with "now,fail=1" par_exit_code # Ideally the command should return the same par_exit_code # with or without parallel @@ -9,180 +8,180 @@ par_exit_code ash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 par_exit_code ash parallel --halt-on-error now,done=1 /bin/true ::: 100 0 par_exit_code ash parallel --halt-on-error now,done=1 exit ::: 100 100 par_exit_code ash true;/tmp/mysleep 100 137 -par_exit_code ash parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code ash parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code ash parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code ash parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 -par_exit_code bash /tmp/mysleep 100 0 -par_exit_code bash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 -par_exit_code bash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 -par_exit_code bash parallel --halt-on-error now,done=1 /bin/true ::: 100 0 -par_exit_code bash parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code bash true;/tmp/mysleep 100 137 -par_exit_code bash parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code bash parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code bash parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code bash parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 +par_exit_code ash parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code ash parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code ash parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code ash parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 par_exit_code csh /tmp/mysleep 100 137 par_exit_code csh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code csh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 par_exit_code csh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 par_exit_code csh parallel --halt-on-error now,done=1 exit ::: 100 100 par_exit_code csh true;/tmp/mysleep 100 137 -par_exit_code csh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code csh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code csh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code csh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 +par_exit_code csh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code csh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code csh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code csh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 par_exit_code dash /tmp/mysleep 100 137 par_exit_code dash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code dash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 par_exit_code dash parallel --halt-on-error now,done=1 /bin/true ::: 100 0 par_exit_code dash parallel --halt-on-error now,done=1 exit ::: 100 100 par_exit_code dash true;/tmp/mysleep 100 137 -par_exit_code dash parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code dash parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code dash parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code dash parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 +par_exit_code dash parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code dash parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code dash parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code dash parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 par_exit_code fish /tmp/mysleep 100 137 par_exit_code fish parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code fish parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 par_exit_code fish parallel --halt-on-error now,done=1 /bin/true ::: 100 0 par_exit_code fish parallel --halt-on-error now,done=1 exit ::: 100 100 par_exit_code fish true;/tmp/mysleep 100 137 -par_exit_code fish parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code fish parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code fish parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code fish parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 -par_exit_code mksh /tmp/mysleep 100 0 -par_exit_code mksh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 -par_exit_code mksh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 -par_exit_code mksh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 -par_exit_code mksh parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code mksh true;/tmp/mysleep 100 137 -par_exit_code mksh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code mksh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code mksh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code mksh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 -par_exit_code posh /tmp/mysleep 100 137 -par_exit_code posh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 -par_exit_code posh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 -par_exit_code posh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 -par_exit_code posh parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code posh true;/tmp/mysleep 100 137 -par_exit_code posh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code posh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code posh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code posh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 -par_exit_code rc /tmp/mysleep 100 1 -par_exit_code rc parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 1 -par_exit_code rc parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 1 -par_exit_code rc parallel --halt-on-error now,done=1 /bin/true ::: 100 1 -par_exit_code rc parallel --halt-on-error now,done=1 exit ::: 100 1 -par_exit_code rc true;/tmp/mysleep 100 1 -par_exit_code rc parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 1 -par_exit_code rc parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 1 -par_exit_code rc parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 1 -par_exit_code rc parallel --halt-on-error now,done=1 "true;exit" ::: 100 1 -par_exit_code sash /tmp/mysleep 100 255 -par_exit_code sash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 255 -par_exit_code sash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 255 -par_exit_code sash parallel --halt-on-error now,done=1 /bin/true ::: 100 0 -par_exit_code sash parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code sash true;/tmp/mysleep 100 0 -par_exit_code sash parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 0 -par_exit_code sash parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 0 -par_exit_code sash parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code sash parallel --halt-on-error now,done=1 "true;exit" ::: 100 0 -par_exit_code sh /tmp/mysleep 100 137 -par_exit_code sh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 -par_exit_code sh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 -par_exit_code sh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 -par_exit_code sh parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code sh true;/tmp/mysleep 100 137 -par_exit_code sh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code sh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code sh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code sh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 -par_exit_code static-sh /tmp/mysleep 100 137 -par_exit_code static-sh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 -par_exit_code static-sh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 -par_exit_code static-sh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 -par_exit_code static-sh parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code static-sh true;/tmp/mysleep 100 137 -par_exit_code static-sh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code static-sh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code static-sh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code static-sh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 -par_exit_code tcsh /tmp/mysleep 100 137 -par_exit_code tcsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 -par_exit_code tcsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 -par_exit_code tcsh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 -par_exit_code tcsh parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code tcsh true;/tmp/mysleep 100 137 -par_exit_code tcsh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code tcsh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code tcsh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code tcsh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 -par_exit_code fdsh /tmp/mysleep 100 137 -par_exit_code fdsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 /bin/true ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code fdsh true;/tmp/mysleep 100 137 -par_exit_code fdsh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 +par_exit_code fish parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code fish parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code fish parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code fish parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 par_exit_code fizsh /tmp/mysleep 100 137 par_exit_code fizsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code fizsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 par_exit_code fizsh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 par_exit_code fizsh parallel --halt-on-error now,done=1 exit ::: 100 100 par_exit_code fizsh true;/tmp/mysleep 100 137 -par_exit_code fizsh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code fizsh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code fizsh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code fizsh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 -par_exit_code ksh /tmp/mysleep 100 0 -par_exit_code ksh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 -par_exit_code ksh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 -par_exit_code ksh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 -par_exit_code ksh parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code ksh true;/tmp/mysleep 100 0 -par_exit_code ksh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code ksh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code ksh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code ksh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 +par_exit_code fizsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code fizsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code fizsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code fizsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code ksh2020 /tmp/mysleep 100 137 +par_exit_code ksh2020 parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 +par_exit_code ksh2020 parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 +par_exit_code ksh2020 parallel --halt-on-error now,done=1 /bin/true ::: 100 0 +par_exit_code ksh2020 parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code ksh2020 true;/tmp/mysleep 100 137 +par_exit_code ksh2020 parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code posh /tmp/mysleep 100 137 +par_exit_code posh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 +par_exit_code posh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 +par_exit_code posh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 +par_exit_code posh parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code posh true;/tmp/mysleep 100 137 +par_exit_code posh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code posh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code posh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code posh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code rc /tmp/mysleep 100 1 +par_exit_code rc parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 1 +par_exit_code rc parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 1 +par_exit_code rc parallel --halt-on-error now,done=1 /bin/true ::: 100 0 +par_exit_code rc parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code rc true;/tmp/mysleep 100 1 +par_exit_code rc parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 1 +par_exit_code rc parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 1 +par_exit_code rc parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code rc parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code sash /tmp/mysleep 100 255 +par_exit_code sash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 255 +par_exit_code sash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 255 +par_exit_code sash parallel --halt-on-error now,done=1 /bin/true ::: 100 0 +par_exit_code sash parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code sash true;/tmp/mysleep 100 0 +par_exit_code sash parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 0 +par_exit_code sash parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 0 +par_exit_code sash parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code sash parallel --halt-on-error now,done=1 'true;exit' ::: 100 0 +par_exit_code sh /tmp/mysleep 100 137 +par_exit_code sh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 +par_exit_code sh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 +par_exit_code sh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 +par_exit_code sh parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code sh true;/tmp/mysleep 100 137 +par_exit_code sh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code sh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code sh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code sh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code tcsh /tmp/mysleep 100 137 +par_exit_code tcsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 +par_exit_code tcsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 +par_exit_code tcsh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 +par_exit_code tcsh parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code tcsh true;/tmp/mysleep 100 137 +par_exit_code tcsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code tcsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code tcsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code tcsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code bash /tmp/mysleep 100 0 +par_exit_code bash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 +par_exit_code bash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 +par_exit_code bash parallel --halt-on-error now,done=1 /bin/true ::: 100 0 +par_exit_code bash parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code bash true;/tmp/mysleep 100 137 +par_exit_code bash parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code bash parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code bash parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code bash parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code fdsh /tmp/mysleep 100 137 +par_exit_code fdsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 /bin/true ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code fdsh true;/tmp/mysleep 100 137 +par_exit_code fdsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 par_exit_code ksh93 /tmp/mysleep 100 0 par_exit_code ksh93 parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code ksh93 parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 par_exit_code ksh93 parallel --halt-on-error now,done=1 /bin/true ::: 100 0 par_exit_code ksh93 parallel --halt-on-error now,done=1 exit ::: 100 100 par_exit_code ksh93 true;/tmp/mysleep 100 0 -par_exit_code ksh93 parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code ksh93 parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code ksh93 parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code ksh93 parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 +par_exit_code ksh93 parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code ksh93 parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code ksh93 parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code ksh93 parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code mksh /tmp/mysleep 100 0 +par_exit_code mksh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 +par_exit_code mksh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 +par_exit_code mksh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 +par_exit_code mksh parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code mksh true;/tmp/mysleep 100 137 +par_exit_code mksh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code mksh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code mksh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code mksh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code static-sh /tmp/mysleep 100 0 +par_exit_code static-sh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 +par_exit_code static-sh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 +par_exit_code static-sh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 +par_exit_code static-sh parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code static-sh true;/tmp/mysleep 100 0 +par_exit_code static-sh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code static-sh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code static-sh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code static-sh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 par_exit_code yash /tmp/mysleep 100 0 par_exit_code yash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code yash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 par_exit_code yash parallel --halt-on-error now,done=1 /bin/true ::: 100 0 par_exit_code yash parallel --halt-on-error now,done=1 exit ::: 100 100 par_exit_code yash true;/tmp/mysleep 100 0 -par_exit_code yash parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code yash parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code yash parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code yash parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 +par_exit_code yash parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code yash parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code yash parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code yash parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 par_exit_code zsh /tmp/mysleep 100 0 par_exit_code zsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code zsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 par_exit_code zsh parallel --halt-on-error now,done=1 /bin/true ::: 100 0 par_exit_code zsh parallel --halt-on-error now,done=1 exit ::: 100 100 par_exit_code zsh true;/tmp/mysleep 100 0 -par_exit_code zsh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code zsh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137 -par_exit_code zsh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0 -par_exit_code zsh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100 +par_exit_code zsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code zsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 +par_exit_code zsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 +par_exit_code zsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 par_exit_code parallel: This job finished: par_exit_code runit par_groupby -N1 3 $_%=2 tsv \t ### test tsv | --colsep \t --groupby 3 $_%=2 -N1 diff --git a/testsuite/wanted-results/parallel-local-3s b/testsuite/wanted-results/parallel-local-3s index 16d0b7b5..eb76172a 100644 --- a/testsuite/wanted-results/parallel-local-3s +++ b/testsuite/wanted-results/parallel-local-3s @@ -198,10 +198,6 @@ par_multiline_commands echo finish 4 par_multiline_commands parallel: Warning: Command lines contain newline. Forcing --null. par_multiline_commands 4 par_multiline_commands finish 4 -par_nice Check that --nice works -par_nice load_10 -par_nice bzip2 18 -par_nice bzip2 18 par_pipepart_block ### --pipepart --block -# (# < 0) par_pipepart_block 1 par_pipepart_block 2 @@ -426,8 +422,6 @@ par_test_X_with_multiple_source b-b f-f par_test_X_with_multiple_source c-c d-d par_test_X_with_multiple_source c-c e-e par_test_X_with_multiple_source c-c f-f -par_test_diff_roundrobin_k ### test there is difference on -k -par_test_diff_roundrobin_k OK par_totaljob_repl {##} bug #45841: Replacement string for total no of jobs par_totaljob_repl 10 par_totaljob_repl 10 diff --git a/testsuite/wanted-results/parallel-local-sql01 b/testsuite/wanted-results/parallel-local-sql01 index 4ed5b8c5..2828d019 100644 --- a/testsuite/wanted-results/parallel-local-sql01 +++ b/testsuite/wanted-results/parallel-local-sql01 @@ -262,6 +262,13 @@ par_append $SQLITE hostname|sleep .3;echo 15 D|15|D|15 D par_append $SQLITE | par_append $SQLITE hostname|sleep .3;echo 15 E|15|E|15 E par_append $SQLITE | +par_append $CSV p_wrapper par_append '$CSV' +par_append $CSV Exit=0 +par_append $CSV Exit=0 +par_append $CSV Error: +par_append $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_append $CSV +par_append $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_empty $MYSQL p_wrapper par_empty '$MYSQL' par_empty $MYSQL Exit=0 par_empty $MYSQL Exit=0 @@ -276,6 +283,13 @@ par_empty $SQLITE p_wrapper par_empty '$SQLITE' par_empty $SQLITE Exit=0 par_empty $SQLITE Exit=0 par_empty $SQLITE Error: near line 1: no such table: TBL99999 +par_empty $CSV p_wrapper par_empty '$CSV' +par_empty $CSV Exit=0 +par_empty $CSV Exit=0 +par_empty $CSV Error: +par_empty $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_empty $CSV +par_empty $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_shuf $MYSQL p_wrapper par_shuf '$MYSQL' par_shuf $MYSQL 1 a par_shuf $MYSQL 1 b @@ -443,6 +457,38 @@ par_shuf $SQLITE hostname|sleep .3;echo 5 b|5|b|/tmp/parallel-bug49791-932/1/5/2 par_shuf $SQLITE hostname|sleep .3;echo 5 c|5|c|/tmp/parallel-bug49791-932/1/5/2/c/stdout|/tmp/parallel-bug49791-932/1/5/2/c/stderr par_shuf $SQLITE hostname|sleep .3;echo 5 d|5|d|/tmp/parallel-bug49791-932/1/5/2/d/stdout|/tmp/parallel-bug49791-932/1/5/2/d/stderr par_shuf $SQLITE hostname|sleep .3;echo 5 e|5|e|/tmp/parallel-bug49791-932/1/5/2/e/stdout|/tmp/parallel-bug49791-932/1/5/2/e/stderr +par_shuf $CSV p_wrapper par_shuf '$CSV' +par_shuf $CSV 1 a +par_shuf $CSV 1 b +par_shuf $CSV 1 c +par_shuf $CSV 1 d +par_shuf $CSV 1 e +par_shuf $CSV 2 a +par_shuf $CSV 2 b +par_shuf $CSV 2 c +par_shuf $CSV 2 d +par_shuf $CSV 2 e +par_shuf $CSV 3 a +par_shuf $CSV 3 b +par_shuf $CSV 3 c +par_shuf $CSV 3 d +par_shuf $CSV 3 e +par_shuf $CSV 4 a +par_shuf $CSV 4 b +par_shuf $CSV 4 c +par_shuf $CSV 4 d +par_shuf $CSV 4 e +par_shuf $CSV 5 a +par_shuf $CSV 5 b +par_shuf $CSV 5 c +par_shuf $CSV 5 d +par_shuf $CSV 5 e +par_shuf $CSV Exit=0 +par_shuf $CSV Exit=0 +par_shuf $CSV Error: +par_shuf $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_shuf $CSV +par_shuf $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_sqlandworker $MYSQL p_wrapper par_sqlandworker '$MYSQL' par_sqlandworker $MYSQL Exit=0 par_sqlandworker $MYSQL Exit=0 @@ -582,6 +628,13 @@ par_sqlandworker $SQLITE hostname|sleep .3;echo 5 d|5|d|5 d par_sqlandworker $SQLITE | par_sqlandworker $SQLITE hostname|sleep .3;echo 5 e|5|e|5 e par_sqlandworker $SQLITE | +par_sqlandworker $CSV p_wrapper par_sqlandworker '$CSV' +par_sqlandworker $CSV Exit=0 +par_sqlandworker $CSV Exit=0 +par_sqlandworker $CSV Error: +par_sqlandworker $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_sqlandworker $CSV +par_sqlandworker $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_sqlandworker_compress_linebuffer_tag $MYSQL p_wrapper par_sqlandworker_compress_linebuffer_tag '$MYSQL' par_sqlandworker_compress_linebuffer_tag $MYSQL Exit=0 par_sqlandworker_compress_linebuffer_tag $MYSQL Exit=0 @@ -721,6 +774,13 @@ par_sqlandworker_compress_linebuffer_tag $SQLITE hostname|sleep .3;echo 5 d|5|d| par_sqlandworker_compress_linebuffer_tag $SQLITE | par_sqlandworker_compress_linebuffer_tag $SQLITE hostname|sleep .3;echo 5 e|5|e|5 e 5 e par_sqlandworker_compress_linebuffer_tag $SQLITE | +par_sqlandworker_compress_linebuffer_tag $CSV p_wrapper par_sqlandworker_compress_linebuffer_tag '$CSV' +par_sqlandworker_compress_linebuffer_tag $CSV Exit=0 +par_sqlandworker_compress_linebuffer_tag $CSV Exit=0 +par_sqlandworker_compress_linebuffer_tag $CSV Error: +par_sqlandworker_compress_linebuffer_tag $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_sqlandworker_compress_linebuffer_tag $CSV +par_sqlandworker_compress_linebuffer_tag $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_sqlandworker_linebuffer $MYSQL p_wrapper par_sqlandworker_linebuffer '$MYSQL' par_sqlandworker_linebuffer $MYSQL Exit=0 par_sqlandworker_linebuffer $MYSQL Exit=0 @@ -860,6 +920,13 @@ par_sqlandworker_linebuffer $SQLITE hostname|sleep .3;echo 5 d|5|d|5 d par_sqlandworker_linebuffer $SQLITE | par_sqlandworker_linebuffer $SQLITE hostname|sleep .3;echo 5 e|5|e|5 e par_sqlandworker_linebuffer $SQLITE | +par_sqlandworker_linebuffer $CSV p_wrapper par_sqlandworker_linebuffer '$CSV' +par_sqlandworker_linebuffer $CSV Exit=0 +par_sqlandworker_linebuffer $CSV Exit=0 +par_sqlandworker_linebuffer $CSV Error: +par_sqlandworker_linebuffer $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_sqlandworker_linebuffer $CSV +par_sqlandworker_linebuffer $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_sqlandworker_linebuffer_tag $MYSQL p_wrapper par_sqlandworker_linebuffer_tag '$MYSQL' par_sqlandworker_linebuffer_tag $MYSQL Exit=0 par_sqlandworker_linebuffer_tag $MYSQL Exit=0 @@ -999,6 +1066,13 @@ par_sqlandworker_linebuffer_tag $SQLITE hostname|sleep .3;echo 5 d|5|d|5 d 5 d par_sqlandworker_linebuffer_tag $SQLITE | par_sqlandworker_linebuffer_tag $SQLITE hostname|sleep .3;echo 5 e|5|e|5 e 5 e par_sqlandworker_linebuffer_tag $SQLITE | +par_sqlandworker_linebuffer_tag $CSV p_wrapper par_sqlandworker_linebuffer_tag '$CSV' +par_sqlandworker_linebuffer_tag $CSV Exit=0 +par_sqlandworker_linebuffer_tag $CSV Exit=0 +par_sqlandworker_linebuffer_tag $CSV Error: +par_sqlandworker_linebuffer_tag $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_sqlandworker_linebuffer_tag $CSV +par_sqlandworker_linebuffer_tag $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_sqlandworker_lo $MYSQL p_wrapper par_sqlandworker_lo '$MYSQL' par_sqlandworker_lo $MYSQL Exit=0 par_sqlandworker_lo $MYSQL Exit=0 @@ -1138,6 +1212,13 @@ par_sqlandworker_lo $SQLITE lo|sleep .3;echo 5 d|5|d|5 d par_sqlandworker_lo $SQLITE | par_sqlandworker_lo $SQLITE lo|sleep .3;echo 5 e|5|e|5 e par_sqlandworker_lo $SQLITE | +par_sqlandworker_lo $CSV p_wrapper par_sqlandworker_lo '$CSV' +par_sqlandworker_lo $CSV Exit=0 +par_sqlandworker_lo $CSV Exit=0 +par_sqlandworker_lo $CSV Error: +par_sqlandworker_lo $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_sqlandworker_lo $CSV +par_sqlandworker_lo $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_sqlandworker_results $MYSQL p_wrapper par_sqlandworker_results '$MYSQL' par_sqlandworker_results $MYSQL Exit=0 par_sqlandworker_results $MYSQL Exit=0 @@ -1227,6 +1308,13 @@ par_sqlandworker_results $SQLITE hostname|sleep .3;echo 5 b|5|b|/tmp/out--sql/1/ par_sqlandworker_results $SQLITE hostname|sleep .3;echo 5 c|5|c|/tmp/out--sql/1/5/2/c/stdout|/tmp/out--sql/1/5/2/c/stderr par_sqlandworker_results $SQLITE hostname|sleep .3;echo 5 d|5|d|/tmp/out--sql/1/5/2/d/stdout|/tmp/out--sql/1/5/2/d/stderr par_sqlandworker_results $SQLITE hostname|sleep .3;echo 5 e|5|e|/tmp/out--sql/1/5/2/e/stdout|/tmp/out--sql/1/5/2/e/stderr +par_sqlandworker_results $CSV p_wrapper par_sqlandworker_results '$CSV' +par_sqlandworker_results $CSV Exit=0 +par_sqlandworker_results $CSV Exit=0 +par_sqlandworker_results $CSV Error: +par_sqlandworker_results $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_sqlandworker_results $CSV +par_sqlandworker_results $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_sqlandworker_tag $MYSQL p_wrapper par_sqlandworker_tag '$MYSQL' par_sqlandworker_tag $MYSQL Exit=0 par_sqlandworker_tag $MYSQL Exit=0 @@ -1366,6 +1454,13 @@ par_sqlandworker_tag $SQLITE hostname|sleep .3;echo 5 d|5|d|5 d 5 d par_sqlandworker_tag $SQLITE | par_sqlandworker_tag $SQLITE hostname|sleep .3;echo 5 e|5|e|5 e 5 e par_sqlandworker_tag $SQLITE | +par_sqlandworker_tag $CSV p_wrapper par_sqlandworker_tag '$CSV' +par_sqlandworker_tag $CSV Exit=0 +par_sqlandworker_tag $CSV Exit=0 +par_sqlandworker_tag $CSV Error: +par_sqlandworker_tag $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_sqlandworker_tag $CSV +par_sqlandworker_tag $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_sqlandworker_total_jobs $MYSQL p_wrapper par_sqlandworker_total_jobs '$MYSQL' par_sqlandworker_total_jobs $MYSQL Exit=0 par_sqlandworker_total_jobs $MYSQL Exit=0 @@ -1555,6 +1650,13 @@ par_sqlandworker_total_jobs $SQLITE | par_sqlandworker_total_jobs $SQLITE hostname|echo 25 of 25; sleep .3;echo|5|e|25 of 25 par_sqlandworker_total_jobs $SQLITE par_sqlandworker_total_jobs $SQLITE | +par_sqlandworker_total_jobs $CSV p_wrapper par_sqlandworker_total_jobs '$CSV' +par_sqlandworker_total_jobs $CSV Exit=0 +par_sqlandworker_total_jobs $CSV Exit=0 +par_sqlandworker_total_jobs $CSV Error: +par_sqlandworker_total_jobs $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_sqlandworker_total_jobs $CSV +par_sqlandworker_total_jobs $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] par_sqlandworker_unbuffer $MYSQL p_wrapper par_sqlandworker_unbuffer '$MYSQL' par_sqlandworker_unbuffer $MYSQL Exit=0 par_sqlandworker_unbuffer $MYSQL Exit=0 @@ -1644,3 +1746,10 @@ par_sqlandworker_unbuffer $SQLITE hostname|sleep .3;echo 5 b|5|b|| par_sqlandworker_unbuffer $SQLITE hostname|sleep .3;echo 5 c|5|c|| par_sqlandworker_unbuffer $SQLITE hostname|sleep .3;echo 5 d|5|d|| par_sqlandworker_unbuffer $SQLITE hostname|sleep .3;echo 5 e|5|e|| +par_sqlandworker_unbuffer $CSV p_wrapper par_sqlandworker_unbuffer '$CSV' +par_sqlandworker_unbuffer $CSV Exit=0 +par_sqlandworker_unbuffer $CSV Exit=0 +par_sqlandworker_unbuffer $CSV Error: +par_sqlandworker_unbuffer $CSV csv:///%2Frun%2Fshm is not a valid DBURL +par_sqlandworker_unbuffer $CSV +par_sqlandworker_unbuffer $CSV sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] diff --git a/testsuite/wanted-results/parallel-local-ssh7 b/testsuite/wanted-results/parallel-local-ssh7 index fbd2096a..bc7e8e12 100644 --- a/testsuite/wanted-results/parallel-local-ssh7 +++ b/testsuite/wanted-results/parallel-local-ssh7 @@ -1452,55 +1452,55 @@ par_fish_underscore ^ par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc par_fish_parset Not implemented par_fish_man ### fish +par_fish_man Unknown option: no-such-option +par_fish_man variables with = & " ! ' work +par_fish_man variables with = & " ! ' work +par_fish_man variables with = & " ! ' work +par_fish_man variables with = & " ! ' work +par_fish_man variables with = & " ! ' work par_fish_man ### From man env_parallel par_fish_man aliases with = & " ! ' work par_fish_man aliases with = & " ! ' work par_fish_man aliases with = & " ! ' work par_fish_man aliases with = & " ! ' work par_fish_man aliases with = & " ! ' work -par_fish_man functions with = & " ! ' work -par_fish_man functions with = & " ! ' work -par_fish_man functions with = & " ! ' work -par_fish_man functions with = & " ! ' work -par_fish_man functions with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man multiline -par_fish_man variables with = & " ! ' work -par_fish_man multiline -par_fish_man variables with = & " ! ' work -par_fish_man multiline -par_fish_man variables with = & " ! ' work -par_fish_man multiline -par_fish_man variables with = & " ! ' work -par_fish_man multiline -par_fish_man variables with = & " ! ' work +par_fish_man arrays +par_fish_man arrays +par_fish_man arrays +par_fish_man arrays par_fish_man arrays with = & " ! ' work, too -par_fish_man arrays -par_fish_man with = & " ! ' -par_fish_man work, -par_fish_man too -par_fish_man arrays -par_fish_man with = & " ! ' -par_fish_man work, -par_fish_man too -par_fish_man arrays -par_fish_man with = & " ! ' -par_fish_man work, -par_fish_man too -par_fish_man arrays -par_fish_man with = & " ! ' -par_fish_man work, -par_fish_man too -par_fish_man multi -par_fish_man level par_fish_man env_parallel par_fish_man exit value 2 should be 2 -par_fish_man Unknown option: no-such-option par_fish_man exit value 255 should be 255 `sleep 1` +par_fish_man functions with = & " ! ' work +par_fish_man functions with = & " ! ' work +par_fish_man functions with = & " ! ' work +par_fish_man functions with = & " ! ' work +par_fish_man functions with = & " ! ' work +par_fish_man level +par_fish_man multi +par_fish_man multiline +par_fish_man multiline +par_fish_man multiline +par_fish_man multiline +par_fish_man multiline +par_fish_man too +par_fish_man too +par_fish_man too +par_fish_man too +par_fish_man variables with = & " ! ' work +par_fish_man variables with = & " ! ' work +par_fish_man variables with = & " ! ' work +par_fish_man variables with = & " ! ' work +par_fish_man variables with = & " ! ' work +par_fish_man with = & " ! ' +par_fish_man with = & " ! ' +par_fish_man with = & " ! ' +par_fish_man with = & " ! ' +par_fish_man work, +par_fish_man work, +par_fish_man work, +par_fish_man work, par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported par_fish_funky 3 arg alias_works par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported @@ -1568,9 +1568,12 @@ par_fish_env_parallel data from stdin par_fish_env_parallel OK par_fish_env_parallel data from stdin par_fish_env_parallel OK -par_fish_env_parallel fish: $? is not the exit status. In fish, please use $status. -par_fish_env_parallel cat $PARALLEL_TMP; and echo $OK;perl -e '$bash=shift;$csh=shift;for(@ARGV){unlink;rmdir;}if($bash=~s/h//){exit$bash;}exit$csh;' "$?h" "$status" $PARALLEL_TMP -par_fish_env_parallel ^ +par_fish_env_parallel OK: 0==0 +par_fish_env_parallel ### Test failing command with --cat +par_fish_env_parallel data from stdin +par_fish_env_parallel OK: 1==1 +par_fish_env_parallel data from stdin +par_fish_env_parallel OK: 1==1 par_dash_underscore ### dash par_dash_underscore ### Testing of --env _ par_dash_underscore variables in aliases work