Merge commit 'e90f98f'

This commit is contained in:
Ole Tange 2017-07-22 00:31:52 +02:00
commit fb2a1753bf
32 changed files with 485 additions and 548 deletions

31
NEWS
View file

@ -1,3 +1,34 @@
20170722
* Vote for GNU Parallel's community ads on
http://meta.unix.stackexchange.com/a/4356/2972
http://meta.askubuntu.com/a/16750/22307
http://meta.serverfault.com/a/9040/45704
* GNU Parallel was cited in: Hayabusa: Simple and Fast Full-Text
Search Engine for Massive System Log Data
http://dl.acm.org/citation.cfm?id=3095788
* コマンドの並列化を行える『GNU parallel』の個人的使い方まとめ
https://orebibou.com/2017/07/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E4%B8%A6%E5%88%97%E5%8C%96%E3%82%92%E8%A1%8C%E3%81%88%E3%82%8B%E3%80%8Egnu-parallel%E3%80%8F%E3%81%AE%E5%80%8B%E4%BA%BA%E7%9A%84%E4%BD%BF%E3%81%84/
* How to play and play with thousands of digitized 78rpm records
https://blog.archive.org/2017/07/10/how-to-play-and-play-with-78rpm-record-transfers/
* 并行一个for循环 https://gxnotes.com/article/130363.html
* RFC 8142: GeoJSON Text Sequences
https://sgillies.net/2017/05/18/rfc-8142-geojson-text-sequences.html
* Git auto fetch script I run every day
https://lukas.zapletalovi.com/2017/07/git-auto-fetch-script-i-run-every-day.html
* cores, cpus and threads
http://crazyhottommy.blogspot.de/2017/07/cores-cpus-and-threads.html
* Bug fixes and man page updates.
20170622
* The command line can now contain \257 (Macron) or UTF characters

12
README
View file

@ -44,9 +44,9 @@ document.
Full installation of GNU Parallel is as simple as:
wget http://ftpmirror.gnu.org/parallel/parallel-20170622.tar.bz2
bzip2 -dc parallel-20170622.tar.bz2 | tar xvf -
cd parallel-20170622
wget http://ftpmirror.gnu.org/parallel/parallel-20170722.tar.bz2
bzip2 -dc parallel-20170722.tar.bz2 | tar xvf -
cd parallel-20170722
./configure && make && sudo make install
@ -55,9 +55,9 @@ Full installation of GNU Parallel is as simple as:
If you are not root you can add ~/bin to your path and install in
~/bin and ~/share:
wget http://ftpmirror.gnu.org/parallel/parallel-20170622.tar.bz2
bzip2 -dc parallel-20170622.tar.bz2 | tar xvf -
cd parallel-20170622
wget http://ftpmirror.gnu.org/parallel/parallel-20170722.tar.bz2
bzip2 -dc parallel-20170722.tar.bz2 | tar xvf -
cd parallel-20170722
./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for parallel 20170622.
# Generated by GNU Autoconf 2.69 for parallel 20170722.
#
# Report bugs to <bug-parallel@gnu.org>.
#
@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20170622'
PACKAGE_STRING='parallel 20170622'
PACKAGE_VERSION='20170722'
PACKAGE_STRING='parallel 20170722'
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL=''
@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures parallel 20170622 to adapt to many kinds of systems.
\`configure' configures parallel 20170722 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1281,7 +1281,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20170622:";;
short | recursive ) echo "Configuration of parallel 20170722:";;
esac
cat <<\_ACEOF
@ -1357,7 +1357,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
parallel configure 20170622
parallel configure 20170722
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20170622, which was
It was created by parallel $as_me 20170722, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -2237,7 +2237,7 @@ fi
# Define the identity of the package.
PACKAGE='parallel'
VERSION='20170622'
VERSION='20170722'
cat >>confdefs.h <<_ACEOF
@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by parallel $as_me 20170622, which was
This file was extended by parallel $as_me 20170722, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -2942,7 +2942,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
parallel config.status 20170622
parallel config.status 20170722
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel], [20170622], [bug-parallel@gnu.org])
AC_INIT([parallel], [20170722], [bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([

View file

@ -202,10 +202,11 @@ GNU Parallel 20170622 ('Grenfell') <<[stable]>> has been released. It is availab
<<No new functionality was introduced so this is a good candidate for a stable release.>>
Haiku of the month:
Quote of the month:
I don't care
I just need to get shit done
I don't care
I just need to get shit done
-- Sab
New in this release:
@ -214,9 +215,7 @@ New in this release:
http://meta.askubuntu.com/a/16750/22307
http://meta.serverfault.com/a/9040/45704
* GNU Parallel was cited in:
* GNU Parallel was used in: https://libraries.io/rubygems/aai
* GNU Parallel was cited in: Hayabusa: Simple and Fast Full-Text Search Engine for Massive System Log Data http://dl.acm.org/citation.cfm?id=3095788
* コマンドの並列化を行える『GNU parallel』の個人的使い方まとめhttps://orebibou.com/2017/07/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E4%B8%A6%E5%88%97%E5%8C%96%E3%82%92%E8%A1%8C%E3%81%88%E3%82%8B%E3%80%8Egnu-parallel%E3%80%8F%E3%81%AE%E5%80%8B%E4%BA%BA%E7%9A%84%E4%BD%BF%E3%81%84/

View file

@ -1,9 +1,6 @@
<directory name="parallel" rev="205" srcmd5="e2e19da7c1f6c27d3839a7392eb8a578" vrev="1">
<entry md5="8b165d9992ba7fe7586ce235a01fcf35" mtime="1495393172" name="parallel-20170522.tar.bz2" size="1564440" />
<entry md5="de9e3d33e95403d61714132133ccd69b" mtime="1498133905" name="parallel-20170622.tar.bz2" size="1559651" />
<entry md5="6b6f9a33704db05b64527a51b937ff7e" mtime="1498133906" name="parallel.spec" size="4482" />
<entry md5="b52694b459b4b1d1359c1f32db7565e2" mtime="1495393172" name="parallel_20170522.dsc" size="556" />
<entry md5="a007bf76a1cc36ef10041da03edcb535" mtime="1495393173" name="parallel_20170522.tar.gz" size="1748503" />
<entry md5="bcb7d924c9a89f7795c7bf4f018d3ab3" mtime="1498133908" name="parallel_20170622.dsc" size="556" />
<entry md5="e6f2106d20169b4cd583ec40ba8f0c26" mtime="1498133913" name="parallel_20170622.tar.gz" size="1731933" />
<directory name="parallel" rev="207" srcmd5="e83566ed42a3ff4e382d97f22958bef3" vrev="2">
<entry md5="3a0040468aa5d09c061702de23b09149" mtime="1500669127" name="parallel-20170722.tar.bz2" size="1584845" />
<entry md5="ec287aa8eba0aaabb12c52e9656f809a" mtime="1500669084" name="parallel.spec" size="4482" />
<entry md5="477f6e12373fb73c68ff088c887c5bab" mtime="1500669127" name="parallel_20170722.dsc" size="556" />
<entry md5="f15137b54f9edddcbd4c63a060edafab" mtime="1500669127" name="parallel_20170722.tar.gz" size="1781098" />
</directory>

View file

@ -1,6 +1,6 @@
Summary: Shell tool for executing jobs in parallel
Name: parallel
Version: 20170622
Version: 20170722
Release: 1.2
License: GPL
Group: Productivity/File utilities

View file

@ -1,6 +1,6 @@
Summary: Shell tool for executing jobs in parallel
Name: parallel
Version: 20170622
Version: 20170722
Release: 1.2
License: GPL
Group: Productivity/File utilities

View file

@ -24,7 +24,7 @@
use strict;
use Getopt::Long;
$Global::progname="niceload";
$Global::version = 20170623;
$Global::version = 20170722;
Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage();
if($opt::version) {

View file

@ -1376,7 +1376,7 @@ sub check_invalid_option_combinations {
sub init_globals {
# Defaults:
$Global::version = 20170707;
$Global::version = 20170722;
$Global::progname = 'parallel';
$Global::infinity = 2**31;
$Global::debug = 0;
@ -3726,7 +3726,7 @@ sub onall {
sub __SIGNAL_HANDLING__ {}
sub tstp {
sub sigtstp {
# Send TSTP signal (Ctrl-Z) to all children process groups
# Uses:
# %SIG
@ -3749,13 +3749,13 @@ sub signal_children {
# %SIG
# Returns: N/A
my $signal = shift;
debug("run", "Sending $signal ");
kill $signal, map { -$_ } keys %Global::running;
# Use default signal handler for GNU Parallel itself
$SIG{$signal} = undef;
kill $signal, $$;
}
sub save_original_signal_handler {
# Remember the original signal handler
# Uses:
@ -3773,11 +3773,11 @@ sub save_original_signal_handler {
$SIG{TERM} = sub {}; # Dummy until jobs really start
$SIG{ALRM} = 'IGNORE';
# Allow Ctrl-Z to suspend and `fg` to continue
$SIG{TSTP} = \&tstp;
$SIG{TSTP} = \&sigtstp;
$SIG{PIPE} = \&sigpipe;
$SIG{CONT} = sub {
# Set $SIG{TSTP} again (it is undef'ed in tstp() )
$SIG{TSTP} = \&tstp;
# Set $SIG{TSTP} again (it is undef'ed in sigtstp() )
$SIG{TSTP} = \&sigtstp;
# Send continue signal to all children process groups
kill "CONT", map { -$_ } keys %Global::running;
};
@ -6438,7 +6438,7 @@ sub rsync_transfer_cmd {
}
$file = ::shell_quote_file($file);
my $sshcmd = $self->sshcommand();
my $rsync_opt = "-KrlDzR -e" . ::shell_quote_scalar($sshcmd);
my $rsync_opt = "-rlDzR -e" . ::shell_quote_scalar($sshcmd);
my $serverlogin = $self->serverlogin();
# Make dir if it does not exist
return "$sshcmd $serverlogin -- mkdir -p $rsync_destdir && " .
@ -6980,6 +6980,10 @@ sub write {
# syswrite may not write all in one go,
# so make sure everything is written.
my $written;
# If writing is to a closed pipe:
# Do not call signal handler, but let nothing be written
local $SIG{PIPE} = undef;
while($written = syswrite($stdin_fh,$$remaining_ref)){
substr($$remaining_ref,0,$written) = "";
}

View file

@ -95,7 +95,7 @@ B<Zsh, Fish, Ksh, and Pdksh functions and aliases>: Use B<env_parallel>.
The command cannot contain the character \257 (macron: ¯).
=item B<{}> (beta testing)
=item B<{}>
Input line. This replacement string will be replaced by a full line
read from the input source. The input source is normally stdin
@ -112,7 +112,7 @@ parsed by the shell. The exception is if the command starts with a
replacement string; then the string is not quoted.
=item B<{.}> (beta testing)
=item B<{.}>
Input line without extension. This replacement string will be replaced
by the input with the extension removed. If the input line contains
@ -128,7 +128,7 @@ The replacement string B<{.}> can be changed with B<--er>.
To understand replacement strings see B<{}>.
=item B<{/}> (beta testing)
=item B<{/}>
Basename of input line. This replacement string will be replaced by
the input with the directory part removed.
@ -139,7 +139,7 @@ B<--basenamereplace>.
To understand replacement strings see B<{}>.
=item B<{//}> (beta testing)
=item B<{//}>
Dirname of input line. This replacement string will be replaced by the
dir of the input line. See B<dirname>(1).
@ -150,7 +150,7 @@ B<--dirnamereplace>.
To understand replacement strings see B<{}>.
=item B<{/.}> (beta testing)
=item B<{/.}>
Basename of input line without extension. This replacement string will
be replaced by the input with the directory and extension part
@ -162,7 +162,7 @@ B<--basenameextensionreplace>.
To understand replacement strings see B<{}>.
=item B<{#}> (beta testing)
=item B<{#}>
Sequence number of the job to run. This replacement string will be
replaced by the sequence number of the job being run. It contains the
@ -173,7 +173,7 @@ The replacement string B<{#}> can be changed with B<--seqreplace>.
To understand replacement strings see B<{}>.
=item B<{%}> (beta testing)
=item B<{%}>
Job slot number. This replacement string will be replaced by the job's
slot number between 1 and number of jobs to run in parallel. There
@ -185,7 +185,7 @@ The replacement string B<{%}> can be changed with B<--slotreplace>.
To understand replacement strings see B<{}>.
=item B<{>I<n>B<}> (beta testing)
=item B<{>I<n>B<}>
Argument from input source I<n> or the I<n>'th argument. This
positional replacement string will be replaced by the input from input
@ -196,7 +196,7 @@ I<n>'th last argument.
To understand replacement strings see B<{}>.
=item B<{>I<n>.B<}> (beta testing)
=item B<{>I<n>.B<}>
Argument from input source I<n> or the I<n>'th argument without
extension. It is a combination of B<{>I<n>B<}> and B<{.}>.
@ -209,7 +209,7 @@ extension removed.
To understand positional replacement strings see B<{>I<n>B<}>.
=item B<{>I<n>/B<}> (beta testing)
=item B<{>I<n>/B<}>
Basename of argument from input source I<n> or the I<n>'th argument.
It is a combination of B<{>I<n>B<}> and B<{/}>.
@ -222,7 +222,7 @@ directory (if any) removed.
To understand positional replacement strings see B<{>I<n>B<}>.
=item B<{>I<n>//B<}> (beta testing)
=item B<{>I<n>//B<}>
Dirname of argument from input source I<n> or the I<n>'th argument.
It is a combination of B<{>I<n>B<}> and B<{//}>.
@ -234,7 +234,7 @@ the I<n>'th argument (when used with B<-N>). See B<dirname>(1).
To understand positional replacement strings see B<{>I<n>B<}>.
=item B<{>I<n>/.B<}> (beta testing)
=item B<{>I<n>/.B<}>
Basename of argument from input source I<n> or the I<n>'th argument
without extension. It is a combination of B<{>I<n>B<}>, B<{/}>, and
@ -248,7 +248,7 @@ directory (if any) and extension removed.
To understand positional replacement strings see B<{>I<n>B<}>.
=item B<{=>I<perl expression>B<=}> (beta testing)
=item B<{=>I<perl expression>B<=}>
Replace with calculated I<perl expression>. B<$_> will contain the
same as B<{}>. After evaluating I<perl expression> B<$_> will be used
@ -294,7 +294,7 @@ Example:
See also: B<--rpl> B<--parens>
=item B<{=>I<n> I<perl expression>B<=}> (beta testing)
=item B<{=>I<n> I<perl expression>B<=}>
Positional equivalent to B<{=perl expression=}>. To understand
positional replacement strings see B<{>I<n>B<}>.
@ -1083,7 +1083,7 @@ Arguments will be recycled if one input source has more arguments than the other
See also B<--header>, B<:::+>, B<::::+>.
=item B<--load> I<max-load> (beta testing)
=item B<--load> I<max-load>
Do not start new jobs on a given computer unless the number of running
processes on the computer is less than I<max-load>. I<max-load> uses
@ -1261,7 +1261,7 @@ control on the command line (used by GNU B<parallel> internally when
called with B<--sshlogin>).
=item B<--plus> (beta testing)
=item B<--plus>
Activate additional replacement strings: {+/} {+.} {+..} {+...} {..}
{...} {/..} {/...} {##}. The idea being that '{+foo}' matches the opposite of
@ -1774,7 +1774,7 @@ impossible to track which input block corresponds to which output.
B<--round-robin> implies B<--pipe>, except if B<--pipepart> is given.
=item B<--rpl> 'I<tag> I<perl expression>' (beta testing)
=item B<--rpl> 'I<tag> I<perl expression>'
Use I<tag> as a replacement string for I<perl expression>. This makes
it possible to define your own replacement strings. GNU B<parallel>'s

View file

@ -576,7 +576,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err);
sub parse_options {
$Global::version = 20170623;
$Global::version = 20170722;
$Global::progname = 'sql';
# This must be done first as this may exec myself

View file

@ -174,17 +174,6 @@ echo 'bug #46016: --joblog should not log when --dryrun'
echo '**'
echo 'bug #45993: --wd ... should also work when run locally'
parallel --wd /bi 'pwd; echo $OLDPWD; echo' ::: fail
parallel --wd /bin 'pwd; echo $OLDPWD; echo' ::: OK
parallel --wd / 'pwd; echo $OLDPWD; echo' ::: OK
parallel --wd /tmp 'pwd; echo $OLDPWD; echo' ::: OK
parallel --wd ... 'pwd; echo $OLDPWD; echo' ::: OK | perl -pe 's/\d+/0/g'
parallel --wd . 'pwd; echo $OLDPWD; echo' ::: OK
echo '**'
echo 'bug #46232: {%} with --bar/--eta/--shuf or --halt xx% broken'
parallel --bar -kj2 --delay 0.1 echo {%} ::: a b ::: c d e 2>/dev/null
@ -552,13 +541,6 @@ echo '### bug #36260: {n} expansion in --colsep files fails for empty fields if
echo A,B,, | parallel --colsep , echo {1}{3}{2}
echo '**'
echo '### bug #34422: parallel -X --eta crashes with div by zero'
# We do not care how long it took
seq 2 | stdout parallel -X --eta echo | grep -E -v 'ETA:.*AVG'
echo '**'
bash -O extglob -c '. `which env_parallel.bash`;
@ -724,6 +706,28 @@ par_newline_in_command() {
" ::: O ::: K
}
par_wd_3dot_local() {
echo 'bug #45993: --wd ... should also work when run locally'
parallel --wd /bi 'pwd; echo $OLDPWD; echo' ::: fail
parallel --wd /bin 'pwd; echo $OLDPWD; echo' ::: OK
parallel --wd / 'pwd; echo $OLDPWD; echo' ::: OK
parallel --wd /tmp 'pwd; echo $OLDPWD; echo' ::: OK
parallel --wd ... 'pwd; echo $OLDPWD; echo' ::: OK |
perl -pe 's:/mnt/4tb::; s/'`hostname`'/hostname/g' |
perl -pe 's/\d+/0/g'
parallel --wd . 'pwd; echo $OLDPWD; echo' ::: OK
}
par_X_eta_div_zero() {
echo '### bug #34422: parallel -X --eta crashes with div by zero'
# We do not care how long it took
seq 2 | stdout parallel -X --eta echo |
grep -E -v 'ETA:.*AVG' |
perl -pe 's/\d+/0/g'
}
export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | sort |
parallel -j6 --tag -k --joblog +/tmp/jl-`basename $0` '{} 2>&1'

View file

@ -31,25 +31,29 @@ par_over_4GB() {
}
measure() {
par_mem_leak() {
echo "### test for mem leak"
no_mem_leak() {
measure() {
# Input:
# $1 = iterations
# $2 = sleep 1 sec for every $2
seq $1 | ramusage parallel -u sleep '{= $_=$_%'$2'?0:1 =}'
}
export -f measure
}
export -f measure
no_mem_leak() {
# Return false if leaking
max1000=$(parallel measure {} 100000 ::: 1000 1000 1000 1000 1000 1000 1000 1000 |
sort -n | tail -n 1)
min30000=$(parallel measure {} 100000 ::: 30000 30000 30000 |
min30000=$(parallel measure {} 100000 ::: 3000 3000 3000 |
sort -n | head -n 1)
if [ $max1000 -gt $min30000 ] ; then
# Make sure there are a few sleeps
max1000=$(parallel measure {} 100 ::: 1000 1000 1000 1000 1000 1000 1000 1000 |
sort -n | tail -n 1)
min30000=$(parallel measure {} 100 ::: 30000 30000 30000 |
min30000=$(parallel measure {} 100 ::: 3000 3000 3000 |
sort -n | head -n 1)
if [ $max1000 -gt $min30000 ] ; then
echo $max1000 -gt $min30000 = no leak
@ -62,11 +66,9 @@ no_mem_leak() {
echo not $max1000 -gt $min30000 = possible leak
return 1
fi
}
export -f no_mem_leak
}
par_mem_leak() {
echo "### test for mem leak"
renice -n 3 $$ 2>/dev/null >/dev/null
if no_mem_leak >/dev/null ; then
echo no mem leak detected
else
@ -82,6 +84,28 @@ par_timeout() {
perl -ne '10 < $_ and $_ < 100 and print "OK\n"'
}
par_halt_on_error() {
mytest() {
HALT=$1
BOOL1=$2
BOOL2=$3
(echo "sleep 1;$BOOL1";
echo "sleep 2;$BOOL2";
echo "sleep 3;$BOOL1") |
parallel -j10 --halt-on-error $HALT
echo $?
(echo "sleep 1;$BOOL1";
echo "sleep 2;$BOOL2";
echo "sleep 3;$BOOL1";
echo "sleep 4;non_exist";
) |
parallel -j10 --halt-on-error $HALT
echo $?
}
export -f mytest
parallel -j1 -k --tag mytest ::: -2 -1 0 1 2 ::: true false ::: true false
}
export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | sort | parallel -vj0 -k --tag --joblog /tmp/jl-`basename $0` '{} 2>&1'

View file

@ -98,52 +98,6 @@ par_k() {
echo "echo end") | stdout nice parallel -k -j0
}
par_halt_on_error() {
mytest() {
HALT=$1
BOOL1=$2
BOOL2=$3
(echo "sleep 1;$BOOL1";
echo "sleep 2;$BOOL2";
echo "sleep 3;$BOOL1") |
parallel -j10 --halt-on-error $HALT
echo $?
(echo "sleep 1;$BOOL1";
echo "sleep 2;$BOOL2";
echo "sleep 3;$BOOL1";
echo "sleep 4;non_exist";
) |
parallel -j10 --halt-on-error $HALT
echo $?
}
export -f mytest
parallel -j0 -k --tag mytest ::: -2 -1 0 1 2 ::: true false ::: true false
}
par_first_print_halt_on_error_1() {
echo '### Test first dying print --halt-on-error 1';
(echo 0; echo 3; seq 0 7;echo 0; echo 8) | parallel -j10 -kq --halt 1 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift';
echo exit code $?
}
par_first_print_halt_on_error_2() {
echo '### Test last dying print --halt-on-error 2';
(echo 0; echo 3; seq 0 7;echo 0; echo 8) | parallel -j10 -kq --halt 2 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit shift';
echo exit code $?
}
par_first_print_halt_on_error_minus_1() {
echo '### Test last dying print --halt-on-error -1';
(echo 0; echo 3; seq 0 7;echo 0; echo 8) | parallel -j10 -kq --halt -1 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit not shift';
echo exit code $?
}
par_first_print_halt_on_error_minus_2() {
echo '### Test last dying print --halt-on-error -2';
(echo 0; echo 3; seq 0 7;echo 0; echo 8) | parallel -j10 -kq --halt -2 perl -e 'sleep $ARGV[0];print STDERR @ARGV,"\n"; exit not shift';
echo exit code $?
}
par_k_linebuffer() {
echo '### bug #47750: -k --line-buffer should give current job up to now'

View file

@ -26,18 +26,24 @@ par_test_onall_u() {
par_test_nonall() {
echo '### Test --nonall'
parallel --nonall -k -S $SSHLOGIN1,$SSHLOGIN2 pwd |
perl -pe 's:/mnt/4tb::g' |
sort
}
par_test_nonall_u() {
echo '### Test --nonall -u - should be interleaved x y x y'
parallel --nonall -S $SSHLOGIN1,$SSHLOGIN2 -u 'pwd|grep -q csh && sleep 3; pwd;sleep 12;pwd;'
parallel --nonall -S $SSHLOGIN1,$SSHLOGIN2 -u 'pwd|grep -q csh && sleep 3; pwd;sleep 12;pwd;' |
perl -pe 's:/mnt/4tb::g'
}
par_read_sshloginfile_from_stdin() {
echo '### Test read sshloginfile from STDIN'
echo $SSHLOGIN1,$SSHLOGIN2 | parallel -S - -k --nonall pwd
echo $SSHLOGIN1,$SSHLOGIN2 | parallel --sshloginfile - -k --onall pwd\; echo ::: foo
echo $SSHLOGIN1,$SSHLOGIN2 |
parallel -S - -k --nonall pwd |
perl -pe 's:/mnt/4tb::g'
echo $SSHLOGIN1,$SSHLOGIN2 |
parallel --sshloginfile - -k --onall pwd\; echo ::: foo |
perl -pe 's:/mnt/4tb::g'
}
par_nonall_basefile() {
@ -77,7 +83,8 @@ par_workdir_dot() {
ssh $SSHLOGIN1 mkdir -p mydir
mkdir -p $HOME/mydir
cd $HOME/mydir
parallel --workdir . -S $SSHLOGIN1 ::: pwd
parallel --workdir . -S $SSHLOGIN1 ::: pwd |
perl -pe 's:/mnt/4tb::g'
}
par_wd_dot() {
@ -85,7 +92,8 @@ par_wd_dot() {
ssh $SSHLOGIN2 mkdir -p mydir
mkdir -p $HOME/mydir
cd $HOME/mydir
parallel --workdir . -S $SSHLOGIN2 ::: pwd
parallel --workdir . -S $SSHLOGIN2 ::: pwd |
perl -pe 's:/mnt/4tb::g'
}
par_wd_braces() {

View file

@ -945,16 +945,13 @@ par_bash_environment_too_big() {
myscript=$(cat <<'_EOF'
echo 'bug #50815: env_parallel should warn if the environment is too big'
. `which env_parallel.bash`;
bigvar="$(yes | head -c 119k)"
env_parallel echo ::: OK
env_parallel -S lo echo ::: OK
bigvar="$(yes \"| head -c 79k)"
bigvar="$(yes \"| head -c 76k)"
env_parallel echo ::: OK
env_parallel -S lo echo ::: OK
bigvar=u
eval 'bigfunc() { a="'"$(yes a| head -c 120k)"'"; };'
eval 'bigfunc() { a="'"$(yes a| head -c 115k)"'"; };'
env_parallel echo ::: OK
env_parallel -S lo echo ::: OK

View file

@ -7,7 +7,7 @@ par_path_remote_bash() {
rm -rf /tmp/parallel
cp /usr/local/bin/parallel /tmp
cat <<'_EOS' | stdout ssh nopathbash@lo -T | grep -Ev 'packages can be updated|System restart required|Welcome to|https://|Ubuntu|http://' | uniq
cat <<'_EOS' | stdout ssh nopathbash@lo -T | grep -Ev 'updates are security updates|packages can be updated|System restart required|Welcome to|https://|Ubuntu|http://|^$' | uniq
echo BASH Path before: $PATH with no parallel
parallel echo ::: 1
# Race condition stderr/stdout
@ -28,7 +28,7 @@ par_path_remote_csh() {
rm -rf /tmp/parallel
cp /usr/local/bin/parallel /tmp
cat <<'_EOS' | stdout ssh nopathcsh@lo -T | grep -Ev 'packages can be updated|System restart required|Welcome to|https://|Ubuntu|http://' | uniq
cat <<'_EOS' | stdout ssh nopathcsh@lo -T | grep -Ev 'updates are security updates|packages can be updated|System restart required|Welcome to|https://|Ubuntu|http://' | uniq
echo CSH Path before: $PATH with no parallel
which parallel >& /dev/stdout
echo '^^^^^^^^ Not found is OK'

View file

@ -2,7 +2,7 @@
# Check servers up on http://www.polarhome.com/service/status/
P_ALL="tru64 syllable pidora raspbian solaris openindiana aix hpux qnx debian-ppc suse solaris-x86 mandriva ubuntu scosysv unixware centos miros macosx redhat netbsd openbsd freebsd debian dragonfly hpux-ia64 vax alpha ultrix minix irix hurd beaglebone cubieboard2"
P_ALL="alpha tru64 hpux-ia64 syllable pidora raspbian solaris openindiana aix hpux qnx debian-ppc suse solaris-x86 mandriva ubuntu scosysv unixware centos miros macosx redhat netbsd openbsd freebsd debian dragonfly vax ultrix minix irix hurd beaglebone cubieboard2"
P_NOTWORKING="vax alpha openstep"
P_NOTWORKING_YET="ultrix irix"
@ -33,9 +33,22 @@ test_empty_cmd() {
bin/perl bin/parallel echo ::: OK_with_empty_cmd
}
export -f test_empty_cmd
stdout parallel -j0 -k --retries $RETRIES --timeout $TIMEOUT --delay 0.1 --tag \
stdout parallel -j0 -k --retries $RETRIES --timeout $TIMEOUT --delay 0.03 --tag \
--nonall --env test_empty_cmd -S macosx.polarhome.com test_empty_cmd > /tmp/test_empty_cmd &
copy() {
host=$1
src="$2"
dst="$3"
cat "$src" |
stdout ssh -oLogLevel=quiet $host "cat > bin/'$dst'.tmp && chmod 755 bin/'$dst'.tmp && mv bin/'$dst'.tmp bin/'$dst'"
}
export -f copy
stdout parallel -j100 -r --retries $RETRIES --timeout $TIMEOUT --delay 0.1 --tag -v \
copy {2} {1} {1/} \
::: /usr/local/bin/{parallel,env_parallel,env_parallel.*} \
::: $POLAR
copy_and_test() {
H=$1
# scp to each polarhome machine does not work. Use cat
@ -70,9 +83,9 @@ echo
echo '### env_parallel echo :::: <(echo OK)'
echo '(bash only)'
echo
parallel --retries $RETRIES --onall -j0 -k --tag --timeout $TIMEOUT $S_POLAR 'bin/env_parallel --install'
parallel --retries $RETRIES --onall -j0 -k --tag --timeout $TIMEOUT $S_POLAR 'env_parallel echo env_parallel ::: OK'
parallel --retries $RETRIES --onall -j0 -k --tag --timeout $TIMEOUT $S_POLAR 'env_parallel echo reading from process substitution :::: <(echo OK)'
parallel --retries $RETRIES --nonall -j0 -k --tag --timeout $TIMEOUT $S_POLAR 'bin/env_parallel --install'
parallel --retries $RETRIES --nonall -j0 -k --tag --timeout $TIMEOUT $S_POLAR 'env_parallel echo env_parallel ::: OK'
parallel --retries $RETRIES --nonall -j0 -k --tag --timeout $TIMEOUT $S_POLAR 'env_parallel echo reading from process substitution :::: <(echo OK)'
# eval 'myfunc() { echo '$(perl -e 'print "x"x20000')'; }'
# env_parallel myfunc ::: a | wc # OK

View file

@ -275,32 +275,6 @@ bug #46016: --joblog should not log when --dryrun
echo Only_this
echo '**'
**
echo 'bug #45993: --wd ... should also work when run locally'
bug #45993: --wd ... should also work when run locally
parallel --wd /bi 'pwd; echo $OLDPWD; echo' ::: fail
parallel: Error: Cannot change into non-executable dir /bi: No such file or directory
parallel --wd /bin 'pwd; echo $OLDPWD; echo' ::: OK
/bin
~/privat/parallel/testsuite
OK
parallel --wd / 'pwd; echo $OLDPWD; echo' ::: OK
/
~/privat/parallel/testsuite
OK
parallel --wd /tmp 'pwd; echo $OLDPWD; echo' ::: OK
/tmp
~/privat/parallel/testsuite
OK
parallel --wd ... 'pwd; echo $OLDPWD; echo' ::: OK | perl -pe 's/\d+/0/g'
~/.parallel/tmp/hk-0-0
~/privat/parallel/testsuite
OK
parallel --wd . 'pwd; echo $OLDPWD; echo' ::: OK
~/privat/parallel/testsuite
~/privat/parallel/testsuite
OK
echo '**'
**
echo 'bug #46232: {%} with --bar/--eta/--shuf or --halt xx% broken'
bug #46232: {%} with --bar/--eta/--shuf or --halt xx% broken
parallel --bar -kj2 --delay 0.1 echo {%} ::: a b ::: c d e 2>/dev/null
@ -1472,17 +1446,6 @@ echo '### bug #36260: {n} expansion in --colsep files fails for empty fields if
echo A,B,, | parallel --colsep , echo {1}{3}{2}
AB
echo '**'
**
echo '### bug #34422: parallel -X --eta crashes with div by zero'
### bug #34422: parallel -X --eta crashes with div by zero
# We do not care how long it took
seq 2 | stdout parallel -X --eta echo | grep -E -v 'ETA:.*AVG'
Computers / CPU cores / Max jobs to run
1:local / 2 / 2
Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
echo '**'
**
bash -O extglob -c '. `which env_parallel.bash`; _longopt () { case "$prev" in --+([-a-z0-9_])) echo foo;; esac; }; env_parallel echo ::: env_parallel 2>&1 '
env_parallel
@ -1592,6 +1555,12 @@ echo '**'
**
### 1 .par file from --files expected
10
par_X_eta_div_zero ### bug #34422: parallel -X --eta crashes with div by zero
par_X_eta_div_zero
par_X_eta_div_zero Computers / CPU cores / Max jobs to run
par_X_eta_div_zero 0:local / 0 / 0
par_X_eta_div_zero
par_X_eta_div_zero Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
par_append_joblog ### can you append to a joblog using +
par_append_joblog 1
par_append_joblog 1
@ -1683,3 +1652,20 @@ par_tee 4 -l 122853
par_tee 4 -c 815290
par_tee 5 -l 122853
par_tee 5 -c 815290
par_wd_3dot_local bug #45993: --wd ... should also work when run locally
par_wd_3dot_local parallel: Error: Cannot change into non-executable dir /bi: No such file or directory
par_wd_3dot_local /bin
par_wd_3dot_local ~/privat/parallel/testsuite
par_wd_3dot_local OK
par_wd_3dot_local /
par_wd_3dot_local ~/privat/parallel/testsuite
par_wd_3dot_local OK
par_wd_3dot_local /tmp
par_wd_3dot_local ~/privat/parallel/testsuite
par_wd_3dot_local OK
par_wd_3dot_local /home/tange/.parallel/tmp/hostname-0-0
par_wd_3dot_local /home/tange/privat/parallel/testsuite
par_wd_3dot_local OK
par_wd_3dot_local ~/privat/parallel/testsuite
par_wd_3dot_local ~/privat/parallel/testsuite
par_wd_3dot_local OK

View file

@ -1,3 +1,160 @@
par_halt_on_error 2>&1
par_halt_on_error -2 true true 0
par_halt_on_error -2 true true 0
par_halt_on_error -2 true true parallel: This job succeeded:
par_halt_on_error -2 true true sleep 1;true
par_halt_on_error -2 true true parallel: This job succeeded:
par_halt_on_error -2 true true sleep 1;true
par_halt_on_error -2 true false 0
par_halt_on_error -2 true false 0
par_halt_on_error -2 true false parallel: This job succeeded:
par_halt_on_error -2 true false sleep 1;true
par_halt_on_error -2 true false parallel: This job succeeded:
par_halt_on_error -2 true false sleep 1;true
par_halt_on_error -2 false true 0
par_halt_on_error -2 false true 0
par_halt_on_error -2 false true parallel: This job succeeded:
par_halt_on_error -2 false true sleep 2;true
par_halt_on_error -2 false true parallel: This job succeeded:
par_halt_on_error -2 false true sleep 2;true
par_halt_on_error -2 false false 3
par_halt_on_error -2 false false 4
par_halt_on_error -2 false false /bin/bash: non_exist: command not found
par_halt_on_error -1 true true 0
par_halt_on_error -1 true true 0
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 1;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 2;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 3;true
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 1;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 2;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 3;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true true /bin/bash: non_exist: command not found
par_halt_on_error -1 true false 0
par_halt_on_error -1 true false 0
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 1;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 3;true
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 1;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 3;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true false /bin/bash: non_exist: command not found
par_halt_on_error -1 false true 0
par_halt_on_error -1 false true 0
par_halt_on_error -1 false true parallel: This job succeeded:
par_halt_on_error -1 false true sleep 2;true
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 false true parallel: This job succeeded:
par_halt_on_error -1 false true sleep 2;true
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 false true /bin/bash: non_exist: command not found
par_halt_on_error -1 false false 3
par_halt_on_error -1 false false 4
par_halt_on_error -1 false false /bin/bash: non_exist: command not found
par_halt_on_error 0 true true 0
par_halt_on_error 0 true true 1
par_halt_on_error 0 true true /bin/bash: non_exist: command not found
par_halt_on_error 0 true false 1
par_halt_on_error 0 true false 2
par_halt_on_error 0 true false /bin/bash: non_exist: command not found
par_halt_on_error 0 false true 2
par_halt_on_error 0 false true 3
par_halt_on_error 0 false true /bin/bash: non_exist: command not found
par_halt_on_error 0 false false 3
par_halt_on_error 0 false false 4
par_halt_on_error 0 false false /bin/bash: non_exist: command not found
par_halt_on_error 1 true true 0
par_halt_on_error 1 true true 127
par_halt_on_error 1 true true /bin/bash: non_exist: command not found
par_halt_on_error 1 true true parallel: This job failed:
par_halt_on_error 1 true true sleep 4;non_exist
par_halt_on_error 1 true false 1
par_halt_on_error 1 true false 1
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 2;false
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 2;false
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 true false /bin/bash: non_exist: command not found
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 4;non_exist
par_halt_on_error 1 false true 1
par_halt_on_error 1 false true 1
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 1;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 3;false
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 1;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 3;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false true /bin/bash: non_exist: command not found
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 4;non_exist
par_halt_on_error 1 false false 1
par_halt_on_error 1 false false 1
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 1;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 2;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 3;false
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 1;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 2;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 3;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false false /bin/bash: non_exist: command not found
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 4;non_exist
par_halt_on_error 2 true true 0
par_halt_on_error 2 true true 127
par_halt_on_error 2 true true /bin/bash: non_exist: command not found
par_halt_on_error 2 true true parallel: This job failed:
par_halt_on_error 2 true true sleep 4;non_exist
par_halt_on_error 2 true false 1
par_halt_on_error 2 true false 1
par_halt_on_error 2 true false parallel: This job failed:
par_halt_on_error 2 true false sleep 2;false
par_halt_on_error 2 true false parallel: This job failed:
par_halt_on_error 2 true false sleep 2;false
par_halt_on_error 2 false true 1
par_halt_on_error 2 false true 1
par_halt_on_error 2 false true parallel: This job failed:
par_halt_on_error 2 false true sleep 1;false
par_halt_on_error 2 false true parallel: This job failed:
par_halt_on_error 2 false true sleep 1;false
par_halt_on_error 2 false false 1
par_halt_on_error 2 false false 1
par_halt_on_error 2 false false parallel: This job failed:
par_halt_on_error 2 false false sleep 1;false
par_halt_on_error 2 false false parallel: This job failed:
par_halt_on_error 2 false false sleep 1;false
par_mem_leak 2>&1
par_mem_leak ### test for mem leak
par_mem_leak no mem leak detected

View file

@ -7,259 +7,13 @@ par__pipe_tee bug #45479: --pipe/--pipepart --tee
par__pipe_tee --pipe --tee
par__pipe_tee 3221225472
par__pipepart_spawn ### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922
par__pipepart_spawn 1:local / 2 / 999
par__pipepart_spawn 1:local / 8 / 999
par__pipepart_tee bug #45479: --pipe/--pipepart --tee
par__pipepart_tee --pipepart --tee
par__pipepart_tee 3221225472
par_compress_fail ### bug #41609: --compress fails
par_compress_fail 24812dd0f24a26d08a780f988b9d5ad2 -
par_compress_fail 24812dd0f24a26d08a780f988b9d5ad2 -
par_first_print_halt_on_error_1 ### Test first dying print --halt-on-error 1
par_first_print_halt_on_error_1 0
par_first_print_halt_on_error_1 parallel: This job failed:
par_first_print_halt_on_error_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 1
par_first_print_halt_on_error_1 parallel: Starting no more jobs. Waiting for 8 jobs to finish.
par_first_print_halt_on_error_1 parallel: This job failed:
par_first_print_halt_on_error_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 2
par_first_print_halt_on_error_1 parallel: Starting no more jobs. Waiting for 7 jobs to finish.
par_first_print_halt_on_error_1 3
par_first_print_halt_on_error_1 0
par_first_print_halt_on_error_1 1
par_first_print_halt_on_error_1 2
par_first_print_halt_on_error_1 parallel: This job failed:
par_first_print_halt_on_error_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 3
par_first_print_halt_on_error_1 parallel: Starting no more jobs. Waiting for 6 jobs to finish.
par_first_print_halt_on_error_1 3
par_first_print_halt_on_error_1 parallel: This job failed:
par_first_print_halt_on_error_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 3
par_first_print_halt_on_error_1 parallel: Starting no more jobs. Waiting for 5 jobs to finish.
par_first_print_halt_on_error_1 4
par_first_print_halt_on_error_1 parallel: This job failed:
par_first_print_halt_on_error_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 4
par_first_print_halt_on_error_1 parallel: Starting no more jobs. Waiting for 4 jobs to finish.
par_first_print_halt_on_error_1 5
par_first_print_halt_on_error_1 parallel: This job failed:
par_first_print_halt_on_error_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 5
par_first_print_halt_on_error_1 parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_first_print_halt_on_error_1 6
par_first_print_halt_on_error_1 parallel: This job failed:
par_first_print_halt_on_error_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 6
par_first_print_halt_on_error_1 parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_first_print_halt_on_error_1 7
par_first_print_halt_on_error_1 0
par_first_print_halt_on_error_1 parallel: This job failed:
par_first_print_halt_on_error_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 7
par_first_print_halt_on_error_1 parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_first_print_halt_on_error_1 8
par_first_print_halt_on_error_1 parallel: This job failed:
par_first_print_halt_on_error_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 8
par_first_print_halt_on_error_1 exit code 1
par_first_print_halt_on_error_2 ### Test last dying print --halt-on-error 2
par_first_print_halt_on_error_2 0
par_first_print_halt_on_error_2 parallel: This job failed:
par_first_print_halt_on_error_2 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ shift 1
par_first_print_halt_on_error_2 exit code 1
par_first_print_halt_on_error_minus_1 ### Test last dying print --halt-on-error -1
par_first_print_halt_on_error_minus_1 0
par_first_print_halt_on_error_minus_1 parallel: This job succeeded:
par_first_print_halt_on_error_minus_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 1
par_first_print_halt_on_error_minus_1 parallel: Starting no more jobs. Waiting for 8 jobs to finish.
par_first_print_halt_on_error_minus_1 parallel: This job succeeded:
par_first_print_halt_on_error_minus_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 2
par_first_print_halt_on_error_minus_1 parallel: Starting no more jobs. Waiting for 7 jobs to finish.
par_first_print_halt_on_error_minus_1 3
par_first_print_halt_on_error_minus_1 0
par_first_print_halt_on_error_minus_1 1
par_first_print_halt_on_error_minus_1 2
par_first_print_halt_on_error_minus_1 parallel: This job succeeded:
par_first_print_halt_on_error_minus_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 3
par_first_print_halt_on_error_minus_1 parallel: Starting no more jobs. Waiting for 6 jobs to finish.
par_first_print_halt_on_error_minus_1 3
par_first_print_halt_on_error_minus_1 parallel: This job succeeded:
par_first_print_halt_on_error_minus_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 3
par_first_print_halt_on_error_minus_1 parallel: Starting no more jobs. Waiting for 5 jobs to finish.
par_first_print_halt_on_error_minus_1 4
par_first_print_halt_on_error_minus_1 parallel: This job succeeded:
par_first_print_halt_on_error_minus_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 4
par_first_print_halt_on_error_minus_1 parallel: Starting no more jobs. Waiting for 4 jobs to finish.
par_first_print_halt_on_error_minus_1 5
par_first_print_halt_on_error_minus_1 parallel: This job succeeded:
par_first_print_halt_on_error_minus_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 5
par_first_print_halt_on_error_minus_1 parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_first_print_halt_on_error_minus_1 6
par_first_print_halt_on_error_minus_1 parallel: This job succeeded:
par_first_print_halt_on_error_minus_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 6
par_first_print_halt_on_error_minus_1 parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_first_print_halt_on_error_minus_1 7
par_first_print_halt_on_error_minus_1 0
par_first_print_halt_on_error_minus_1 parallel: This job succeeded:
par_first_print_halt_on_error_minus_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 7
par_first_print_halt_on_error_minus_1 parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_first_print_halt_on_error_minus_1 8
par_first_print_halt_on_error_minus_1 parallel: This job succeeded:
par_first_print_halt_on_error_minus_1 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 8
par_first_print_halt_on_error_minus_1 exit code 0
par_first_print_halt_on_error_minus_2 ### Test last dying print --halt-on-error -2
par_first_print_halt_on_error_minus_2 0
par_first_print_halt_on_error_minus_2 parallel: This job succeeded:
par_first_print_halt_on_error_minus_2 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ exit\ not\ shift 1
par_first_print_halt_on_error_minus_2 exit code 0
par_halt_on_error -2 true true 0
par_halt_on_error -2 true true 0
par_halt_on_error -2 true true parallel: This job succeeded:
par_halt_on_error -2 true true sleep 1;true
par_halt_on_error -2 true true parallel: This job succeeded:
par_halt_on_error -2 true true sleep 1;true
par_halt_on_error -2 true false 0
par_halt_on_error -2 true false 0
par_halt_on_error -2 true false parallel: This job succeeded:
par_halt_on_error -2 true false sleep 1;true
par_halt_on_error -2 true false parallel: This job succeeded:
par_halt_on_error -2 true false sleep 1;true
par_halt_on_error -2 false true 0
par_halt_on_error -2 false true 0
par_halt_on_error -2 false true parallel: This job succeeded:
par_halt_on_error -2 false true sleep 2;true
par_halt_on_error -2 false true parallel: This job succeeded:
par_halt_on_error -2 false true sleep 2;true
par_halt_on_error -2 false false 3
par_halt_on_error -2 false false 4
par_halt_on_error -2 false false /bin/bash: non_exist: command not found
par_halt_on_error -1 true true 0
par_halt_on_error -1 true true 0
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 1;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 2;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 3;true
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 1;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 2;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 3;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true true /bin/bash: non_exist: command not found
par_halt_on_error -1 true false 0
par_halt_on_error -1 true false 0
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 1;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 3;true
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 1;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 3;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true false /bin/bash: non_exist: command not found
par_halt_on_error -1 false true 0
par_halt_on_error -1 false true 0
par_halt_on_error -1 false true parallel: This job succeeded:
par_halt_on_error -1 false true sleep 2;true
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 false true parallel: This job succeeded:
par_halt_on_error -1 false true sleep 2;true
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 false true /bin/bash: non_exist: command not found
par_halt_on_error -1 false false 3
par_halt_on_error -1 false false 4
par_halt_on_error -1 false false /bin/bash: non_exist: command not found
par_halt_on_error 0 true true 0
par_halt_on_error 0 true true 1
par_halt_on_error 0 true true /bin/bash: non_exist: command not found
par_halt_on_error 0 true false 1
par_halt_on_error 0 true false 2
par_halt_on_error 0 true false /bin/bash: non_exist: command not found
par_halt_on_error 0 false true 2
par_halt_on_error 0 false true 3
par_halt_on_error 0 false true /bin/bash: non_exist: command not found
par_halt_on_error 0 false false 3
par_halt_on_error 0 false false 4
par_halt_on_error 0 false false /bin/bash: non_exist: command not found
par_halt_on_error 1 true true 0
par_halt_on_error 1 true true 127
par_halt_on_error 1 true true /bin/bash: non_exist: command not found
par_halt_on_error 1 true true parallel: This job failed:
par_halt_on_error 1 true true sleep 4;non_exist
par_halt_on_error 1 true false 1
par_halt_on_error 1 true false 1
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 2;false
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 2;false
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 true false /bin/bash: non_exist: command not found
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 4;non_exist
par_halt_on_error 1 false true 1
par_halt_on_error 1 false true 1
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 1;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 3;false
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 1;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 3;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false true /bin/bash: non_exist: command not found
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 4;non_exist
par_halt_on_error 1 false false 1
par_halt_on_error 1 false false 1
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 1;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 2;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 3;false
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 1;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 2;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 3;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false false /bin/bash: non_exist: command not found
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 4;non_exist
par_halt_on_error 2 true true 0
par_halt_on_error 2 true true 127
par_halt_on_error 2 true true /bin/bash: non_exist: command not found
par_halt_on_error 2 true true parallel: This job failed:
par_halt_on_error 2 true true sleep 4;non_exist
par_halt_on_error 2 true false 1
par_halt_on_error 2 true false 1
par_halt_on_error 2 true false parallel: This job failed:
par_halt_on_error 2 true false sleep 2;false
par_halt_on_error 2 true false parallel: This job failed:
par_halt_on_error 2 true false sleep 2;false
par_halt_on_error 2 false true 1
par_halt_on_error 2 false true 1
par_halt_on_error 2 false true parallel: This job failed:
par_halt_on_error 2 false true sleep 1;false
par_halt_on_error 2 false true parallel: This job failed:
par_halt_on_error 2 false true sleep 1;false
par_halt_on_error 2 false false 1
par_halt_on_error 2 false false 1
par_halt_on_error 2 false false parallel: This job failed:
par_halt_on_error 2 false false sleep 1;false
par_halt_on_error 2 false false parallel: This job failed:
par_halt_on_error 2 false false sleep 1;false
par_interactive ### Test -p --interactive
par_interactive opt--interactive 1
par_interactive opt--interactive 3
@ -273,10 +27,12 @@ par_interactive sleep 0.1; echo opt-p 2 ?...n
par_interactive sleep 0.1; echo opt-p 3 ?...y
par_interactive spawn /tmp/parallel-script-for-expect
par_k ### Test -k
par_k parallel: Warning: Only enough file handles to run 8 jobs in parallel.
par_k parallel: Warning: Running 'parallel -j0 -N 8 --pipe parallel -j0' or
par_k parallel: Warning: Only enough file handles to run 9 jobs in parallel.
par_k parallel: Warning: Running 'parallel -j0 -N 9 --pipe parallel -j0' or
par_k parallel: Warning: raising 'ulimit -n' or 'nofile' in /etc/security/limits.conf
par_k parallel: Warning: or /proc/sys/fs/file-max may help.
par_k parallel: Warning: No more file handles.
par_k parallel: Warning: Raising ulimit -n or /etc/security/limits.conf may help.
par_k begin
par_k 1
par_k 2
@ -556,10 +312,10 @@ par_results_compress 0
par_results_compress 1
par_results_csv bug #: --results csv
par_results_csv --header : --tag --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --lb --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --lb --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
@ -584,10 +340,10 @@ par_results_csv --header : --tag --lb ",
par_results_csv --header : --tag --lb 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --header : --tag --lb ",
par_results_csv --header : --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
@ -612,10 +368,10 @@ par_results_csv --header : --tag ",
par_results_csv --header : --tag 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --header : --tag ",
par_results_csv --header : --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --lb --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --lb --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
@ -640,10 +396,10 @@ par_results_csv --header : --lb ",
par_results_csv --header : --lb 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --header : --lb ",
par_results_csv --header : --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
@ -668,15 +424,15 @@ par_results_csv --header : ",
par_results_csv --header : 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --header : ",
par_results_csv --tag --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --lb --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --lb --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
@ -726,15 +482,15 @@ par_results_csv --tag --lb ",
par_results_csv --tag --lb 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --tag --lb ",
par_results_csv --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
@ -784,15 +540,15 @@ par_results_csv --tag ",
par_results_csv --tag 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --tag ",
par_results_csv --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --lb --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --lb --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
@ -842,15 +598,15 @@ par_results_csv --lb ",
par_results_csv --lb 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --lb ",
par_results_csv --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,

View file

@ -1,6 +1,4 @@
par_linebuffer_matters_compress ### (--linebuffer) --compress should give different output
par_linebuffer_matters_compress environment: line 8: warning: command substitution: ignored null byte in input
par_linebuffer_matters_compress environment: line 11: warning: command substitution: ignored null byte in input
par_linebuffer_matters_compress OK: --linebuffer makes a difference
par_linebuffer_matters_compress_tag ### (--linebuffer) --compress --tag should give different output
par_linebuffer_matters_compress_tag OK: --linebuffer makes a difference

View file

@ -2,14 +2,14 @@ bug #46120: Suspend should suspend (at least local) children
it should burn 1.9 CPU seconds, but no more than that
The 5 second sleep will make it be killed by timeout when it fgs
stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | grep --color=auto -q CPUTIME=1
stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | grep -q CPUTIME=1
Zero=OK 0
echo 1 | stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" | grep --color=auto -q CPUTIME=1
echo 1 | stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" | grep -q CPUTIME=1
Zero=OK 0
Control case: Burn for 2.9 seconds
stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | grep --color=auto -q CPUTIME=1
stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | grep -q CPUTIME=1
1=OK 1
par_hostgroup ### --hostgroup force ncpu
par_hostgroup parallel
@ -23,7 +23,7 @@ par_hostgroup tange
par_hostgroup ### --hostgroup two group arg
par_hostgroup parallel
par_hostgroup parallel
par_hostgroup parallel
par_hostgroup tange
par_hostgroup tange
par_hostgroup tange
par_hostgroup tange
@ -41,7 +41,7 @@ par_hostgroup tange
par_hostgroup ### --hostgroup multiple group arg + unused group
par_hostgroup parallel
par_hostgroup parallel
par_hostgroup parallel
par_hostgroup tange
par_hostgroup tange
par_hostgroup tange
par_hostgroup tange
@ -62,21 +62,21 @@ par_hostgroup implicit_group
par_hostgroup ### --hostgroup -S @group
par_hostgroup tange
par_hostgroup tange
par_hostgroup tcsh
par_hostgroup tange
par_hostgroup tcsh
par_hostgroup tcsh
par_hostgroup tcsh
par_hostgroup ### --hostgroup -S @group1 -Sgrp2
par_hostgroup parallel
par_hostgroup parallel
par_hostgroup parallel
par_hostgroup tange
par_hostgroup tange
par_hostgroup tcsh
par_hostgroup tcsh
par_hostgroup ### --hostgroup -S @group1+grp2
par_hostgroup parallel
par_hostgroup parallel
par_hostgroup parallel
par_hostgroup tange
par_hostgroup tange
par_hostgroup tcsh
par_hostgroup tcsh
@ -1196,9 +1196,6 @@ par_testhalt soon done 0 false echo job 2; sleep 0.9; exit 0
par_testhalt soon done 0 false job 3
par_testhalt soon done 0 false parallel: This job finished:
par_testhalt soon done 0 false echo job 3; sleep 1.2; exit 0
par_testhalt soon done 0 false job 4
par_testhalt soon done 0 false parallel: This job finished:
par_testhalt soon done 0 false echo job 4; sleep 1.5; exit 0
par_testhalt soon done 0 false 0
par_testhalt soon done 1 true ### testhalt --halt soon,done=1
par_testhalt soon done 1 true job 1
@ -1224,9 +1221,6 @@ par_testhalt soon done 1 false echo job 2; sleep 0.9; exit 0
par_testhalt soon done 1 false job 3
par_testhalt soon done 1 false parallel: This job finished:
par_testhalt soon done 1 false echo job 3; sleep 1.2; exit 0
par_testhalt soon done 1 false job 4
par_testhalt soon done 1 false parallel: This job finished:
par_testhalt soon done 1 false echo job 4; sleep 1.5; exit 0
par_testhalt soon done 1 false 0
par_testhalt soon done 2 true ### testhalt --halt soon,done=2
par_testhalt soon done 2 true job 1

View file

@ -34,7 +34,7 @@ Environment variables are:
stderr
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [sender=3.1.2]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]
/usr/lib/autossh/autossh: invalid option -- '-'
usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS]
@ -66,7 +66,7 @@ Environment variables are:
stderr
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.2]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.1]
echo '### bug #46520: --basefile cleans up without --cleanup'
### bug #46520: --basefile cleans up without --cleanup
touch bug_46520; parallel -S parallel@lo --bf bug_46520 ls ::: bug_46520; ssh parallel@lo ls bug_46520; parallel -S parallel@lo --cleanup --bf bug_46520 ls ::: bug_46520; stdout ssh parallel@lo ls bug_46520 # should not exist

View file

@ -40,8 +40,6 @@ par_bash_environment_too_big OK
par_bash_environment_too_big OK
par_bash_environment_too_big OK
par_bash_environment_too_big OK
par_bash_environment_too_big OK
par_bash_environment_too_big OK
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 168: /usr/bin/which: Argument list too long
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
@ -79,11 +77,13 @@ par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
par_bash_funky
par_bash_funky
par_bash_funky
par_bash_funky \\\\\\\\
par_bash_funky 
par_bash_funky 
par_bash_funky -funkymultiline
par_bash_funky -funkymultiline
par_bash_funky
par_bash_funky
par_bash_funky space 6
par_bash_funky space 6
par_bash_funky 3 arg alias_works
@ -100,6 +100,8 @@ par_bash_funky function_works
par_bash_funky function_works_over_ssh
par_bash_funky myvar works
par_bash_funky myvar works
par_bash_funky -funkymultiline
par_bash_funky -funkymultiline
par_bash_man ### bash
par_bash_man ### From man env_parallel
par_bash_man aliases work
@ -137,21 +139,21 @@ par_bash_underscore variables in aliases in and arrays in functions work
par_bash_underscore variables in aliases in and arrays in functions work
par_bash_underscore variables in aliases in and arrays in functions work
par_bash_underscore variables in aliases in and arrays in functions work
par_bash_underscore /bin/bash: line 57: not_copied_alias: command not found
par_bash_underscore /bin/bash: line 57: not_copied_func: command not found
par_bash_underscore /bin/bash: line 56: not_copied_alias: command not found
par_bash_underscore /bin/bash: line 56: not_copied_func: command not found
par_bash_underscore error=OK
par_bash_underscore error=OK
par_bash_underscore aliases in and arrays in functions work
par_bash_underscore aliases in and arrays in functions work
par_bash_underscore aliases in functions work
par_bash_underscore aliases in functions work
par_bash_underscore environment: line 51: myecho: command not found
par_bash_underscore /bin/bash: line 49: myecho: command not found
par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^
par_bash_underscore environment: line 51: myecho: command not found
par_bash_underscore /bin/bash: line 49: myecho: command not found
par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^
par_bash_underscore /bin/bash: line 50: myfunc: command not found
par_bash_underscore /bin/bash: line 49: myfunc: command not found
par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^
par_bash_underscore /bin/bash: line 50: myfunc: command not found
par_bash_underscore /bin/bash: line 49: myfunc: command not found
par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^
par_csh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522
par_csh_env_parallel_fifo data from stdin
@ -540,7 +542,7 @@ par_tcsh_funky
par_tcsh_funky 3 arg alias_works
par_tcsh_funky 3 arg alias_works_over_ssh
par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7F>ƒ„…†‡ˆ‰ŠŒ<E280B9>Ž<EFBFBD><C5BD>“”•˜™šœ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works
par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works_over_ssh
par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<EFBFBD><EFBFBD><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-funky alias_var_works_over_ssh
par_tcsh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
par_tcsh_funky func_echo: Command not found.
par_tcsh_funky func_echo: Command not found.

View file

@ -9,7 +9,6 @@ par_keeporder job2
par_load_csh ### Gave Word too long.
par_load_csh a
par_path_remote_bash bug #47695: How to set $PATH on remote? Bash
par_path_remote_bash
par_path_remote_bash BASH Path before: /bin:/usr/bin with no parallel
par_path_remote_bash -bash: line 2: parallel: command not found
par_path_remote_bash ^^^^^^^^ Not found is OK

View file

@ -35,7 +35,7 @@ If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
To silence this citation notice: run 'parallel --citation'.
10 files to edit
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"file1" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lE173: 9 more files to edit[?12l[?25h[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"file1" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lE173: 9 more files to edit[?12l[?25h[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
If you use programs that use GNU Parallel to process data for an article in a
scientific publication, please cite:

View file

@ -146,8 +146,8 @@ echo '### Test make .deb package'; cd ~/privat/parallel/packager/debian; std
To install the GNU Parallel Debian package, run:
echo '### Test of segfaulting issue'
### Test of segfaulting issue
echo 'This gave ~/bin/stdout: line 3: 20374 Segmentation fault "$@" 2>&1'; echo 'before adding wait() before exit'; seq 1 300 | stdout parallel ./trysegfault
This gave ~/bin/stdout: line 3: 20374 Segmentation fault "$@" 2>&1
echo 'This gave /home/tange/bin/stdout: line 3: 20374 Segmentation fault "$@" 2>&1'; echo 'before adding wait() before exit'; seq 1 300 | stdout parallel ./trysegfault
This gave /home/tange/bin/stdout: line 3: 20374 Segmentation fault "$@" 2>&1
before adding wait() before exit
echo '### Test basic --arg-sep'
### Test basic --arg-sep

View file

@ -7,8 +7,6 @@ par_env_newline_backslash_bash 8
par_env_newline_backslash_csh ### Test --env for \n and \\ - single and double (*csh only) - no output is good but csh fails
par_env_newline_backslash_csh 2 2\ \92V2=\ \92
par_env_newline_backslash_csh 2 2\\ \92V2=\\ \92
par_env_newline_backslash_csh 2 Unmatched ".
par_env_newline_backslash_csh 2 Unmatched '"'.
par_env_newline_backslash_onall_bash ### Test --env for \n and \\ - single and double --onall (bash only) - no output is good
par_env_newline_backslash_onall_bash 16
par_env_newline_backslash_onall_bash 16
@ -17,6 +15,7 @@ par_env_newline_backslash_onall_bash 8 10
par_env_newline_backslash_onall_bash 8 10V2=
par_env_newline_backslash_onall_bash 8 2\\ \92V2=\\ \92
par_env_newline_backslash_onall_csh ### Test --env for \n and \\ - single and double --onall (*csh only) - no output is good but csh fails
par_env_newline_backslash_onall_csh 8 Unmatched ".
par_space ### Test --env - https://savannah.gnu.org/bugs/?37351
par_space a 2 spaces b 1
par_space a 2 spaces b 1

View file

@ -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
2
8
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

View file

@ -979,6 +979,21 @@ For details: see man env_parallel
parallel -vv --workdir ... --nice 17 --env _ --trc {}.out \
-S $SERVER1 my_func3 {} ::: abc-file
ssh -l parallel lo -- mkdir -p ./.TMPWORKDIR && rsync --protocol 30 -rlDzR -essh\ -l\ parallel ./abc-file lo:./.TMPWORKDIR;ssh -l parallel lo -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$chld\\\=\\\$SIG\\\{CHLD\\\}\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;open3\\\(\\\$in,\\\$out,\\\"\\\>\\\&STDERR\\\",\\\$zip,\\\"-dc\\\"\\\)\\\;if\\\(my\\\$perlpid\\\=fork\\\)\\\{close\\\$in\\\;\\\$eval\\\=join\\\"\\\",\\\<\\\$out\\\>\\\;close\\\$out\\\;\\\}else\\\{close\\\$out\\\;print\\\$in\\\(decode_base64\\\(join\\\"\\\",@ARGV\\\)\\\)\\\;close\\\$in\\\;exit\\\;\\\}wait\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\$chld\\\;eval\\\$eval\\\; BASE64;_EXIT_status=$?; mkdir -p ./. && rsync --protocol 30 --rsync-path=cd\ ./.TMPWORKDIR/./.\;\ rsync -rlDzR -essh\ -l\ parallel lo:./abc-file.out ./.;ssh -l parallel lo -- rm\ -f\ ./.TMPWORKDIR/abc-file\;\ sh\ -c\ rmdir\\\ ./.TMPWORKDIR/\\\ ./.parallel/tmp/\\\ ./.parallel/\\\ 2\\\>/dev/null\\\;rm\\\ -rf\\\ ./.TMPWORKDIR\\\;;ssh -l parallel lo -- rm\ -f\ ./.TMPWORKDIR/abc-file.out\;\ sh\ -c\ rmdir\\\ ./.TMPWORKDIR/\\\ ./.parallel/tmp/\\\ ./.parallel/\\\ 2\\\>/dev/null\\\;rm\\\ -rf\\\ ./.TMPWORKDIR\\\;;ssh -l parallel lo -- rm -rf .TMPWORKDIR; exit $_EXIT_status;
parset myvar1,myvar2 echo ::: a b
echo $myvar1
echo $myvar2
/bin/bash: parset: command not found
parset myarray seq {} 5 ::: 1 2 3
echo "${myarray[1]}"
/bin/bash: parset: command not found
cmd=("echo '<<joe \"double space\" cartoon>>'" "pwd")
parset data ::: "${cmd[@]}"
echo "${data[0]}"
echo "${data[1]}"
/bin/bash: line 1: parset: command not found
parallel --sqlandworker csv:////%2Ftmp%2Flog.csv \
seq ::: 10 ::: 12 13 14
cat /tmp/log.csv
@ -1298,8 +1313,8 @@ With --plus: {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} =
See 'man parallel' for details
Academic tradition requires you to cite works you base your article on.
When using programs that use GNU Parallel to process data for publication
please cite:
If you use programs that use GNU Parallel to process data for an article in a
scientific publication, please cite:
O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47.
@ -1325,8 +1340,8 @@ VERSION
Your version is at least VERSION.
parallel --citation
Academic tradition requires you to cite works you base your article on.
When using programs that use GNU Parallel to process data for publication
please cite:
If you use programs that use GNU Parallel to process data for an article in a
scientific publication, please cite:
@article{Tange2011a,
title = {GNU Parallel - The Command-Line Power Tool},