diff --git a/src/env_parallel b/src/env_parallel index 23adae80..41279adf 100755 --- a/src/env_parallel +++ b/src/env_parallel @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Copyright (C) 2016 # Ole Tange and Free Software Foundation, Inc. @@ -18,6 +18,43 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA +while test $# -gt 0; do + key="$1" + + case $key in + -i|--install) + grep env_parallel.bash $HOME/.bashrc 2>/dev/null || + echo '. `which env_parallel.bash`' >> $HOME/.bashrc + grep env_parallel.zsh $HOME/.zshenv 2>/dev/null || + echo '. `which env_parallel.zsh`' >> $HOME/.zshenv + mkdir -p $HOME/.config/fish + grep env_parallel.fish $HOME/.config/fish/config.fish 2>/dev/null || + echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish + grep env_parallel.ksh $HOME/.kshrc 2>/dev/null || + echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc + grep env_parallel.pdksh $HOME/.profile 2>/dev/null || + echo 'source `which env_parallel.pdksh`' >> $HOME/.profile + grep env_parallel.csh $HOME/.cshrc 2>/dev/null || + echo 'source `which env_parallel.csh`' >> $HOME/.cshrc + grep env_parallel.tcsh $HOME/.tcshrc 2>/dev/null || + echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc + echo 'Installed env_parallel in: ' + echo " " $HOME/.bashrc + echo " " $HOME/.zshenv + echo " " $HOME/.config/fish/config.fish + echo " " $HOME/.kshrc + echo " " $HOME/.profile + echo " " $HOME/.cshrc + echo " " $HOME/.tcshrc + exit + ;; + *) + echo "Unknown option: $key" + ;; + esac + shift # past argument or value +done + cat <<_EOS env_parallel only works if it is a function. Do the below and restart your shell. @@ -31,9 +68,9 @@ zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh` Supports: functions, variables, arrays fish: Put this in $HOME/.config/fish/config.fish: - source (which env_parallel.fish) + . (which env_parallel.fish) E.g. by doing: - echo 'source (which env_parallel.fish)' >> $HOME/.config/fish/config.fish + echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish Supports: aliases, functions, variables, arrays ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh` @@ -52,6 +89,10 @@ tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh` E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc Supports: aliases, variables, arrays with no special chars +To install in all shells run: + + env_parallel --install + For details: see man env_parallel _EOS diff --git a/src/env_parallel.fish b/src/env_parallel.fish index dd5b403c..e3e4bd44 100755 --- a/src/env_parallel.fish +++ b/src/env_parallel.fish @@ -48,7 +48,7 @@ function env_parallel # Convert scalar vars to fish \XX quoting eval (set -L | perl -ne 'chomp; ($name,$val)=split(/ /,$_,2); - $name=~/^(COLUMNS|FISH_VERSION|LINES|PWD|SHLVL|_|history|status|version)$/ and next; + $name=~/^(HOME|USER|COLUMNS|FISH_VERSION|LINES|PWD|SHLVL|_|history|status|version)$/ and next; if($val=~/^'"'"'/) { next; } print "set $name \"\$$name\";\n"; ') @@ -68,7 +68,7 @@ function env_parallel chop; ($name,$val)=split(/ /,$_,2); # Ignore read-only vars - $name=~/^(COLUMNS|FISH_VERSION|LINES|PWD|SHLVL|_|history|status|version)$/ and next; + $name=~/^(HOME|USER|COLUMNS|FISH_VERSION|LINES|PWD|SHLVL|_|history|status|version)$/ and next; # Quote $val $val=~s/[\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\^\*\<\=\>\~\|\; \"\!\$\&\202-\377]/\\\$&/go; # Quote single quote diff --git a/src/parallel b/src/parallel index ed46579c..1bccc174 100755 --- a/src/parallel +++ b/src/parallel @@ -3425,9 +3425,9 @@ sub reaper { } my $sshlogin = $job->sshlogin(); $sshlogin->dec_jobs_running(); - $sshlogin->inc_jobs_completed(); if(not $job->should_be_retried()) { # The job is done + $sshlogin->inc_jobs_completed(); # Free the jobslot $job->free_slot(); if($opt::timeout) { @@ -9145,6 +9145,9 @@ sub tmux_length { # If $opt::tmux set, find the limit for tmux # tmux 1.8 has a 2kB limit # tmux 1.9 has a 16kB limit + # tmux 2.0 has a 16kB limit + # tmux 2.1 has a 16kB limit + # tmux 2.2 has a 16kB limit # Input: # $len = maximal command line length # Returns: diff --git a/src/parallel.pod b/src/parallel.pod index fd9d2a6a..10357a88 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -637,6 +637,9 @@ Show the estimated number of seconds before finishing. This forces GNU B to read all jobs before starting to find the number of jobs. GNU B normally only reads the next job to run. +The estimate is based on the runtime of finished jobs, so the first +estimate will only be shown when the first job has finished. + Implies B<--progress>. See also: B<--bar>, B<--progress>. @@ -1401,6 +1404,8 @@ in two files: I//stdout and I//stderr, where source (if using B<--header :>) or the number of the input source and corresponding values. +I can contain replacement strings. + E.g: parallel --header : --results foo echo {a} {b} \ @@ -1432,6 +1437,25 @@ will generate the files: foo/1/II/2/IIII/stderr foo/1/II/2/IIII/stdout +and + + parallel --results foo-{1} echo {1} {2} ::: I II ::: III IIII + +will generate the files: + + foo-I/1/I/2/IIII/seq + foo-I/1/I/2/IIII/stderr + foo-I/1/I/2/IIII/stdout + foo-I/1/I/2/III/seq + foo-I/1/I/2/III/stderr + foo-I/1/I/2/III/stdout + foo-II/1/II/2/IIII/seq + foo-II/1/II/2/IIII/stderr + foo-II/1/II/2/IIII/stdout + foo-II/1/II/2/III/seq + foo-II/1/II/2/III/stderr + foo-II/1/II/2/III/stdout + If you do not want the dir structure, try B<--files> B<--tag> instead. See also B<--files>, B<--tag>, B<--header>, B<--joblog>. diff --git a/src/sql b/src/sql index fe18c72a..746eaa5d 100755 --- a/src/sql +++ b/src/sql @@ -649,7 +649,7 @@ sub mysql_commands { my $host = defined($opt{'host'}) ? "--host=".$opt{'host'} : ""; my $port = defined($opt{'port'}) ? "--port=".$opt{'port'} : ""; my $user = defined($opt{'user'}) ? "--user=".$opt{'user'} : ""; - my $database = defined($opt{'database'}) ? $opt{'database'} : ""; + my $database = defined($opt{'database'}) ? $opt{'database'} : $ENV{'USER'}; my $html = defined($::opt_html) ? "--html" : ""; my $no_headers = defined($::opt_n) ? "--skip-column-names" : ""; my $ssl = ""; diff --git a/testsuite/Makefile b/testsuite/Makefile index 30970f97..5c57db2d 100644 --- a/testsuite/Makefile +++ b/testsuite/Makefile @@ -49,7 +49,7 @@ prereqlocal: installparallel timeout 5 ssh csh@lo true || (echo ssh csh@lo is required for testsuite; /bin/false) prereqremote: installparallel startvm - parallel --timeout 10 --tag ssh parallel@parallel-server{} parallel --minversion 20121021 ::: 1 2 3 || (echo parallel on remote required for testsuite; /bin/true) + parallel -j0 --timeout 10 --tag ssh parallel@parallel-server{} parallel --minversion 20121021 ::: 1 2 3 || (echo parallel on remote required for testsuite; /bin/true) startvm: # Make sure we can reach the virtual machines diff --git a/testsuite/REQUIREMENTS b/testsuite/REQUIREMENTS new file mode 100644 index 00000000..2d4baaa6 --- /dev/null +++ b/testsuite/REQUIREMENTS @@ -0,0 +1,95 @@ +#!/bin/bash + +mysqlrootpass=${mysqlrootpass:-FoOo} + +# The testsuite depends on this: + +sudo aptitude install imagemagick expect autossh + +# DEBIAN package +sudo aptitude install dpkg-dev build-essential debhelper + + +# DATABASES +sudo aptitude install postgresql mysql-server +sudo su - postgres -c 'createdb '`whoami` +sudo su - postgres -c 'createuser '`whoami` +sudo su - postgres -c "sql pg:/// \"ALTER USER \\\"`whoami`\\\" WITH PASSWORD '`whoami`';\"" + +sudo su - mysql mysqladmin create `whoami` +sql mysql://root:$mysqlrootpass@/mysql "CREATE DATABASE `whoami`;CREATE USER '`whoami`'@'localhost' IDENTIFIED BY '`whoami`'; GRANT ALL ON `whoami`.* TO '`whoami`'@'localhost';" + + +# SHELLS +sudo aptitude install ash csh fdclone fish fizsh ksh mksh pdksh posh rush sash tcsh yash zsh + +SSHPASS=`goodpasswd` +export SSHPASS +shells="sh csh ash tcsh zsh ksh fish fizsh mksh pdksh posh rc sash yash nopathbash nopathcsh" +create_shell_user() { + shell="$1" + sudo deluser $shell && sudo mv /home/$shell /tmp/$shell.$RANDOM + sudo groupdel $shell + sudo adduser --disabled-password --gecos "$shell for parallel,,," $shell && + echo "$shell:$SSHPASS" | sudo chpasswd && + sshpass -e ssh-copy-id $shell@lo && + echo "ssh-keyscan" && + ssh $shell@lo 'ssh-keyscan -t rsa lo >> .ssh/known_hosts' && + echo "chsh" && + sudo chsh -s $(which $shell || which ${shell#"nopath"}) $shell && + echo | ssh -t $shell@lo ssh-keygen && + ssh $shell@lo 'cat .ssh/id_rsa.pub >> .ssh/authorized_keys' && + ssh $shell@lo cat .ssh/id_rsa.pub | ssh parallel@lo 'cat >> .ssh/authorized_keys' && + ssh $shell@lo env_parallel --install +} +export -f create_shell_user +parallel -u --timeout 15 --retries 2 --tag -j1 create_shell_user ::: $shells +# sh fails if not run by itself +parallel -u --timeout 15 --retries 2 --tag -j1 create_shell_user ::: sh +parallel -j10 ssh {}@lo ssh {}@lo echo {} OK ::: $shells + +( +ssh parallel@lo 'ssh-keyscan -t rsa lo >> .ssh/known_hosts' +ssh parallel@lo 'cat .ssh/id_rsa.pub >> .ssh/authorized_keys' +) +ssh_copy_id() { + from="$1" + to="$2" + ssh $from cat .ssh/id_rsa.pub | ssh $to 'cat >> .ssh/authorized_keys' +} +export -f ssh_copy_id +shellsplus="parallel $shells" +parallel --bar -j200% --timeout 3 --retries 10 --tag ssh_copy_id {1}@lo {2}@lo ::: $shellsplus ::: $shellsplus +parallel -j10 ssh {1}@lo ssh {2}@lo echo {} OK ::: $shellsplus ::: $shellsplus + +# change paths to no path +( + ssh nopathbash@lo 'echo >> .bashrc PATH=/bin:/usr/bin' + # Remove env_parallel from .profile + ssh nopathbash@lo 'perl -i.bak -pe s/.*env_parallel.*// .profile .bashrc' + ssh nopathcsh@lo 'echo >> .cshrc setenv PATH /bin:/usr/bin' + ssh nopathbash@lo 'echo $PATH' + ssh nopathcsh@lo 'echo $PATH' +) + +ssh-copy-id localhost + +# SHELLS: lsh-client against openssh server +sudo aptitude install lsh-client +cd +mkdir .lsh +lsh-make-seed -o ".lsh/yarrow-seed-file" +lsh --sloppy-host-authentication --capture-to ~/.lsh/host-acls lo +lsh-keygen | lsh-writekey -c none +lsh-export-key --openssh < ~/.lsh/identity.pub | lsh localhost 'cat >>.ssh/authorized_keys' +lsh-export-key --openssh < ~/.lsh/identity.pub | ssh csh@localhost 'cat >>.ssh/authorized_keys' + +# To configure zsh +zsh +parallel --record-env + + +# SHEBANG TOOLS +sudo aptitude install gnuplot octave ruby r-base-core libdbd-pg-perl libdbd-sqlite3-perl pxz pixz +sudo cp /usr/bin/tmux /usr/local/bin/tmux1.8 + diff --git a/testsuite/Start.sh b/testsuite/Start.sh index 64d81c11..5b5f6286 100644 --- a/testsuite/Start.sh +++ b/testsuite/Start.sh @@ -42,6 +42,7 @@ export -f run_test echo forever "'echo; pstree -lp '"$$"'; pstree -l'" $$ >/tmp/monitor chmod 755 /tmp/monitor # Log rotate +mkdir -p log seq 10 -1 1 | parallel -j1 mv log/testsuite.log.{} log/testsuite.log.'{= $_++ =}' mv testsuite.log log/testsuite.log.1 date diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index b6fb3fba..6d96591a 100644 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -11,7 +11,7 @@ export SMALLDISK sudo umount -l smalldisk.img dd if=/dev/zero of=smalldisk.img bs=100k count=1k yes|mkfs smalldisk.img - mkdir -p /mnt/ram + sudo mkdir -p /mnt/ram sudo mount smalldisk.img /mnt/ram sudo chmod 777 /mnt/ram ) >/dev/null 2>/dev/null @@ -606,10 +606,18 @@ echo '### --pipepart autoset --block => 10*joblots' echo '**' +echo '### bug #48295: --results should be dynamic like --wd' + + rm -rf /tmp/parallel-48295; + parallel --results /tmp/parallel-48295/{1} -k echo ::: A B ::: a b; + find /tmp/parallel-48295 -type f | sort + +echo '**' + EOF echo '### 1 .par file from --files expected' find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | wc -l find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | parallel rm -sudo umount -l /tmp/smalldisk.img \ No newline at end of file +sudo umount -l /tmp/smalldisk.img diff --git a/testsuite/tests-to-run/parallel-local-100s.sh b/testsuite/tests-to-run/parallel-local-100s.sh index 952d3c7d..d6cb104d 100644 --- a/testsuite/tests-to-run/parallel-local-100s.sh +++ b/testsuite/tests-to-run/parallel-local-100s.sh @@ -4,6 +4,7 @@ # Each should be taking >100s and be possible to run in parallel # I.e.: No race conditions, no logins +# tmpdir with > 5 GB available TMP5G=${TMP5G:-/dev/shm} export TMP5G diff --git a/testsuite/tests-to-run/parallel-local-sql.sh b/testsuite/tests-to-run/parallel-local-sql.sh index 6b126a5a..c1fd7458 100644 --- a/testsuite/tests-to-run/parallel-local-sql.sh +++ b/testsuite/tests-to-run/parallel-local-sql.sh @@ -4,7 +4,7 @@ export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db export SQLITETBL=$SQLITE/parsql export PG=pg://tange:tange@lo/tange export PGTBL=$PG/parsql -export MYSQL=mysql://tange:tange@lo/tange +export MYSQL=mysql://`whoami`:`whoami`@lo/tange export MYSQLTBL=$MYSQL/parsql export PGTBL2=${PGTBL}2 export PGTBL3=${PGTBL}3 @@ -72,4 +72,4 @@ echo '### --sqlandworker postgresql -u' EOF -eval rm '$T'{1..14} \ No newline at end of file +eval rm '$T'{1..14} diff --git a/testsuite/tests-to-run/parallel-local-ssh3.sh b/testsuite/tests-to-run/parallel-local-ssh3.sh index 25934939..9288cf05 100644 --- a/testsuite/tests-to-run/parallel-local-ssh3.sh +++ b/testsuite/tests-to-run/parallel-local-ssh3.sh @@ -111,8 +111,8 @@ _EOS # Exporting a big variable should not fail setenv A "`seq 1000`" setenv PATH ${PATH}:/tmp - cp /usr/local/bin/env_parallel.csh /tmp + cp /usr/local/bin/env_parallel.*csh /tmp # --filter to see if $PATH with parallel is transferred env_parallel --filter --env A,PATH -Slo echo '$PATH' ::: OK _EOS - + diff --git a/testsuite/tests-to-run/sql01.sh b/testsuite/tests-to-run/sql01.sh index bc7c4318..122ede0b 100755 --- a/testsuite/tests-to-run/sql01.sh +++ b/testsuite/tests-to-run/sql01.sh @@ -1,6 +1,6 @@ #!/bin/bash -MYSQL_ADMIN_DBURL=mysql://tange:tange@ +MYSQL_ADMIN_DBURL=mysql://`whoami`:`whoami`@ # Setup sql $MYSQL_ADMIN_DBURL "drop user 'sqlunittest'@'localhost'" diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index c2f84009..9e2524a0 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -306,7 +306,7 @@ OK /home/tange/privat/parallel/testsuite OK parallel --wd ... 'pwd; echo $OLDPWD; echo' ::: OK | perl -pe 's/\d+/0/g' -/home/tange/.parallel/tmp/aspire-0-0 +/home/tange/.parallel/tmp/hp-0-0 /home/tange/privat/parallel/testsuite OK parallel --wd . 'pwd; echo $OLDPWD; echo' ::: OK @@ -595,7 +595,7 @@ e echo '### test too long args' ### test too long args perl -e 'print "z"x1000000' | parallel echo 2>&1 -parallel: Error: Command line too long (1000005 >= 65528) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... +parallel: Error: Command line too long (1000005 >= 65524) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... perl -e 'print "z"x1000000' | xargs echo 2>&1 xargs: argument line too long (seq 1 10; perl -e 'print "z"x1000000'; seq 12 15) | stdout parallel -j1 -km -s 10 echo @@ -862,7 +862,7 @@ echo far ### Test --show-limits (echo b; echo c; echo f) | parallel -k --show-limits echo {}ar Maximal size of command: 131049 -Maximal used size of command: 65528 +Maximal used size of command: 65524 Execution of will continue now, and it will try to read its input and run commands; if this is not what you wanted to happen, please @@ -1243,26 +1243,17 @@ a b seq 1 92 | parallel -j+0 -kX -s 100 echo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 -66 67 68 69 -70 71 72 73 -74 75 76 77 -78 79 80 81 -82 83 84 85 -86 87 88 89 -90 91 92 +66 67 68 69 70 71 72 73 74 75 76 77 78 79 +80 81 82 83 84 85 86 87 88 89 90 91 92 echo '### Test distribute arguments at EOF to 5 jobslots' ### Test distribute arguments at EOF to 5 jobslots seq 1 92 | parallel -j+3 -kX -s 100 echo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 -66 67 68 -69 70 71 -72 73 74 -75 76 77 -78 79 80 -81 82 83 -84 85 86 -87 88 89 +66 67 68 69 70 71 +72 73 74 75 76 77 +78 79 80 81 82 83 +84 85 86 87 88 89 90 91 92 echo '### Test distribute arguments at EOF to infinity jobslots' ### Test distribute arguments at EOF to infinity jobslots @@ -1635,7 +1626,7 @@ echo '### bug #34422: parallel -X --eta crashes with div by zero' seq 2 | stdout parallel -X --eta echo | grep -E -v 'ETA:.*AVG' Computers / CPU cores / Max jobs to run -1:local / 8 / 2 +1:local / 2 / 2 Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete echo '**' @@ -1665,5 +1656,26 @@ echo '### --pipepart autoset --block => 10*joblots' 20 echo '**' ** +echo '### bug #48295: --results should be dynamic like --wd' +### bug #48295: --results should be dynamic like --wd + rm -rf /tmp/parallel-48295; parallel --results /tmp/parallel-48295/{1} -k echo ::: A B ::: a b; find /tmp/parallel-48295 -type f | sort +A a +A b +B a +B b +/tmp/parallel-48295/A/1/A/2/a/seq +/tmp/parallel-48295/A/1/A/2/a/stderr +/tmp/parallel-48295/A/1/A/2/a/stdout +/tmp/parallel-48295/A/1/A/2/b/seq +/tmp/parallel-48295/A/1/A/2/b/stderr +/tmp/parallel-48295/A/1/A/2/b/stdout +/tmp/parallel-48295/B/1/B/2/a/seq +/tmp/parallel-48295/B/1/B/2/a/stderr +/tmp/parallel-48295/B/1/B/2/a/stdout +/tmp/parallel-48295/B/1/B/2/b/seq +/tmp/parallel-48295/B/1/B/2/b/stderr +/tmp/parallel-48295/B/1/B/2/b/stdout +echo '**' +** ### 1 .par file from --files expected 0 diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index 8e20e388..355ced75 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -1,7 +1,7 @@ echo '### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922' ### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922 seq 1000000 > /tmp/num1000000; stdout parallel --pipepart --progress -a /tmp/num1000000 --block 10k -j0 true |grep 1:local -1:local / 8 / 252 +1:local / 2 / 252 echo '**' ** testhalt() { echo '### testhalt --halt '$1; (yes 0 | head -n 10; seq 10) | stdout parallel -kj4 --halt $1 'sleep {= $_=$_*0.3+1 =}; exit {}'; echo $?; (seq 10; yes 0 | head -n 10) | stdout parallel -kj4 --halt $1 'sleep {= $_=$_*0.3+1 =}; exit {}'; echo $?; }; export -f testhalt; parallel -kj0 testhalt ::: now,fail=0 now,fail=1 now,fail=2 now,fail=30% now,fail=70% soon,fail=0 soon,fail=1 soon,fail=2 soon,fail=30% soon,fail=70% now,success=0 now,success=1 now,success=2 now,success=30% now,success=70% soon,success=0 soon,success=1 soon,success=2 soon,success=30% now,success=70% @@ -863,12 +863,12 @@ echo '**' echo "### Test max line length -m -I" ### Test max line length -m -I seq 1 60000 | parallel -I :: -m -j1 echo a::b::c | sort >/tmp/114-a$$; md5sum /tmp/114-b$$; md5sum ?@ABCDEFG ### csh environment * Documentation: http://www.linuxmint.com - - Warning: no access to tty (Bad file descriptor). Thus no job control in this shell. 3 arg alias_works diff --git a/testsuite/wanted-results/parallel-local13 b/testsuite/wanted-results/parallel-local13 index d1479feb..eb4ab02b 100644 --- a/testsuite/wanted-results/parallel-local13 +++ b/testsuite/wanted-results/parallel-local13 @@ -456,7 +456,7 @@ echo '### true < 32767-ys.xi' ### true < 32767-ys.xi stdout xargs true < 32767-ys.xi stdout parallel -k true < 32767-ys.xi -parallel: Error: Command line too long (98306 >= 65528) at input 0: y y y y y y y y y y y y y y y y y y y y y y y y y ... +parallel: Error: Command line too long (98306 >= 65524) at input 0: y y y y y y y y y y y y y y y y y y y y y y y y y ... echo '### true < 16383-ys.xi' ### true < 16383-ys.xi stdout xargs true < 16383-ys.xi diff --git a/testsuite/wanted-results/parallel-local19 b/testsuite/wanted-results/parallel-local19 index fe9f911a..6144b49e 100644 --- a/testsuite/wanted-results/parallel-local19 +++ b/testsuite/wanted-results/parallel-local19 @@ -111,7 +111,7 @@ echo '### Test -m with 60000 args'; seq 1 60000 | perl -pe 's/$/.gif/' | par 20 179960 1286702 echo '### Test -X with 60000 args'; seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.} | tee >(wc; sleep 1) >(md5sum; sleep 1) >/dev/null; wait; sleep 1 ### Test -X with 60000 args -97715240fa65309902932877d24273db - +8646e0f7fd5f8795e4b1a831ede50e85 - 21 60000 1346682 echo '### Test -X with 60000 args and 5 expansions' ### Test -X with 60000 args and 5 expansions diff --git a/testsuite/wanted-results/parallel-local23 b/testsuite/wanted-results/parallel-local23 index 617b251e..941f070b 100644 --- a/testsuite/wanted-results/parallel-local23 +++ b/testsuite/wanted-results/parallel-local23 @@ -86,9 +86,9 @@ please cite as described in 'parallel --citation'. echo '### bug #39787: --xargs broken' ### bug #39787: --xargs broken nice perl -e 'for(1..30000){print "$_\n"}' | $NICEPAR --xargs -k echo | perl -ne 'print length $_,"\n"' -65520 -65520 -37854 +65514 +65514 +37866 echo '### --delay should grow by 3 sec per arg' ### --delay should grow by 3 sec per arg stdout /usr/bin/time -f %e parallel --delay 3 true ::: 1 2 | perl -ne '$_ >= 3 and $_ <= 8 and print "OK\n"' diff --git a/testsuite/wanted-results/parallel-local4 b/testsuite/wanted-results/parallel-local4 index 70df5ad3..a6581540 100644 --- a/testsuite/wanted-results/parallel-local4 +++ b/testsuite/wanted-results/parallel-local4 @@ -1,15 +1,9 @@ bug #46120: Suspend should suspend (at least local) children -2048 0a:c0:70:5b:ec:f6:c2:de:67:c3:53:7f:29:81:65:54 tange@hk (RSA1) -1024 93:d1:21:c5:ff:e3:c3:be:6d:73:ea:aa:1e:a2:dc:06 /home/tange/.ssh/id_dsa (DSA) -8192 e1:95:e3:ff:99:a6:3a:b5:53:5a:54:59:d0:72:94:7f /home/tange/.ssh/id_rsa (RSA) -4096 94:2a:e3:cb:6b:66:63:21:13:51:8d:e8:4e:09:49:b2 /home/tange/.ssh/id_rsa_openindiana (RSA) +2048 4b:d0:08:9c:88:c1:b9:20:ce:69:91:73:e0:07:5d:13 /home/tange/.ssh/id_rsa (RSA) stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 burnP6 ::: 1 | grep --colour=auto -q CPUTIME=1 Zero=OK 0 -2048 0a:c0:70:5b:ec:f6:c2:de:67:c3:53:7f:29:81:65:54 tange@hk (RSA1) -1024 93:d1:21:c5:ff:e3:c3:be:6d:73:ea:aa:1e:a2:dc:06 /home/tange/.ssh/id_dsa (DSA) -8192 e1:95:e3:ff:99:a6:3a:b5:53:5a:54:59:d0:72:94:7f /home/tange/.ssh/id_rsa (RSA) -4096 94:2a:e3:cb:6b:66:63:21:13:51:8d:e8:4e:09:49:b2 /home/tange/.ssh/id_rsa_openindiana (RSA) +2048 4b:d0:08:9c:88:c1:b9:20:ce:69:91:73:e0:07:5d:13 /home/tange/.ssh/id_rsa (RSA) echo 1 | stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 burnP6 | grep --colour=auto -q CPUTIME=1 Zero=OK 0 diff --git a/testsuite/wanted-results/parallel-local9 b/testsuite/wanted-results/parallel-local9 index f7a307b4..990f8d5f 100644 --- a/testsuite/wanted-results/parallel-local9 +++ b/testsuite/wanted-results/parallel-local9 @@ -63,7 +63,7 @@ echo '### Test --number-of-cpus'; stdout $NICEPAR --number-of-cpus 1 echo '### Test --number-of-cores'; stdout $NICEPAR --number-of-cores ### Test --number-of-cores -8 +2 echo '### Test --use-cpus-instead-of-cores'; (seq 1 8 | stdout parallel --use-cpus-instead-of-cores -j100% sleep) && echo CPUs done & (seq 1 8 | stdout parallel -j100% sleep) && echo cores done & echo 'Cores should complete first on machines with less than 8 physical CPUs'; wait ### Test --use-cpus-instead-of-cores Cores should complete first on machines with less than 8 physical CPUs @@ -400,7 +400,7 @@ echo "### BUG: empty lines with --show-limit" ### BUG: empty lines with --show-limit echo | $NICEPAR --show-limits Maximal size of command: 131049 -Maximal used size of command: 65528 +Maximal used size of command: 65524 Execution of will continue now, and it will try to read its input and run commands; if this is not what you wanted to happen, please