parallel: Re-fixed bug #37042: -J foo is taken from the whole command line - not just the part before the command

This commit is contained in:
Ole Tange 2013-07-04 00:50:08 +02:00
parent ea151d0837
commit c1f6354375
19 changed files with 215 additions and 137 deletions

View file

@ -1,17 +1,9 @@
Aliases for bash -c:
bash -c 'shopt -s expand_aliases; alias llll="ls -l"; alias bbb=ls;
bbb; llll'
Luk filen ved EOF - lad være med bare at læse videre. Luk filen ved EOF - lad være med bare at læse videre.
> /tmp/ged; tail -f /tmp/ged| xargs -n1 -E eof & sleep 1; echo echo a >>/tmp/ged; echo eof >>/tmp/ged; seq 4 >>/tmp/ged; wait > /tmp/ged; tail -f /tmp/ged| xargs -n1 -E eof & sleep 1; echo echo a >>/tmp/ged; echo eof >>/tmp/ged; seq 4 >>/tmp/ged; wait
> /tmp/ged; tail -f /tmp/ged| parallel -n1 -E eof & sleep 1; echo echo a >>/tmp/ged; echo eof >>/tmp/ged; seq 4 >>/tmp/ged; wait > /tmp/ged; tail -f /tmp/ged| parallel -n1 -E eof & sleep 1; echo echo a >>/tmp/ged; echo eof >>/tmp/ged; seq 4 >>/tmp/ged; wait
--timeout auto: If a jobs takes > 3*moving average runtime then kill it. Only after job 3.
niceload seeks last column: niceload seeks last column:
iostat -x 1 2 iostat -x 1 2
@ -59,8 +51,8 @@ locate .gz | parallel -X find {} -size +1000 -size -2000 | parallel --workdir ..
== Compare == == Compare ==
http://code.google.com/p/spawntool/ Unchanged since 2008 http://code.google.com/p/spawntool/
http://code.google.com/p/push/ Unchanged since 2011 http://code.google.com/p/push/
== Bug? == == Bug? ==
@ -106,8 +98,6 @@ for potentiel:
colsep = [sepchars]{no_of_sepchars} colsep = [sepchars]{no_of_sepchars}
# TODO max_line_length on remote
# TODO compute how many can be transferred within max_line_length # TODO compute how many can be transferred within max_line_length
Til inspiration. Til inspiration.

View file

@ -204,6 +204,17 @@ Very few changes so this can be considered a stable release.
New in this release: New in this release:
* GNU Parallel was used (unfortunately with improper citation) in:
Understanding the Impact of E-Commerce Software on the Adoption of Structured Data on the Web
http://link.springer.com/chapter/10.1007/978-3-642-38366-3_9#page-1
* GNU Parallel was used (unfortunately with improper citation) in:
CWI at TREC 2012, KBA track and Session Track
http://trec.nist.gov/pubs/trec21/papers/CWI.kba.session.final.pdf
* Mitigation of Adverse Effects Caused by Shock Wave Boundary Layer Interactions through Optimal Wall Shaping
http://arc.aiaa.org/doi/abs/10.2514/6.2013-2653
* http://www.brunokim.com.br/blog/?p=18 * http://www.brunokim.com.br/blog/?p=18
* http://www.open-open.com/news/view/371301 * http://www.open-open.com/news/view/371301

View file

@ -643,6 +643,7 @@ sub get_options_from_array {
# false if parsing failed # false if parsing failed
# @array is changed # @array is changed
my $array_ref = shift; my $array_ref = shift;
my @keep_only = @_;
# A bit of shuffling of @ARGV needed as GetOptionsFromArray is not # A bit of shuffling of @ARGV needed as GetOptionsFromArray is not
# supported everywhere # supported everywhere
my @save_argv; my @save_argv;
@ -651,7 +652,17 @@ sub get_options_from_array {
@save_argv = @::ARGV; @save_argv = @::ARGV;
@::ARGV = @{$array_ref}; @::ARGV = @{$array_ref};
} }
my @retval = GetOptions(options_hash()); # If @keep_only set: Ignore all values except @keep_only
my %options = options_hash();
if(@keep_only) {
my (%keep,@dummy);
@keep{@keep_only} = @keep_only;
for my $k (grep { not $keep{$_} } keys %options) {
# Store the value of the option in @dummy
$options{$k} = \@dummy;
}
}
my @retval = GetOptions(%options);
if(not $this_is_ARGV) { if(not $this_is_ARGV) {
@{$array_ref} = @::ARGV; @{$array_ref} = @::ARGV;
@::ARGV = @save_argv; @::ARGV = @save_argv;
@ -1035,7 +1046,7 @@ sub read_options {
Getopt::Long::Configure("bundling","require_order"); Getopt::Long::Configure("bundling","require_order");
my @ARGV_copy = @ARGV; my @ARGV_copy = @ARGV;
# Check if there is a --profile to set @opt::profile # Check if there is a --profile to set @opt::profile
get_options_from_array(\@ARGV_copy) || die_usage(); get_options_from_array(\@ARGV_copy,"profile|J=s","plain") || die_usage();
my @ARGV_profile = (); my @ARGV_profile = ();
my @ARGV_env = (); my @ARGV_env = ();
if(not $opt::plain) { if(not $opt::plain) {
@ -2192,32 +2203,44 @@ sub now {
sub multiply_binary_prefix { sub multiply_binary_prefix {
# Evalualte numbers with binary prefix # Evalualte numbers with binary prefix
# k=10^3, m=10^6, g=10^9, t=10^12, p=10^15, e=10^18, z=10^21, y=10^24
# K=2^10, M=2^20, G=2^30, T=2^40, P=2^50, E=2^70, Z=2^80, Y=2^80
# Ki=2^10, Mi=2^20, Gi=2^30, Ti=2^40, Pi=2^50, Ei=2^70, Zi=2^80, Yi=2^80 # Ki=2^10, Mi=2^20, Gi=2^30, Ti=2^40, Pi=2^50, Ei=2^70, Zi=2^80, Yi=2^80
# ki=2^10, mi=2^20, gi=2^30, ti=2^40, pi=2^50, ei=2^70, zi=2^80, yi=2^80 # ki=2^10, mi=2^20, gi=2^30, ti=2^40, pi=2^50, ei=2^70, zi=2^80, yi=2^80
# K =2^10, M =2^20, G =2^30, T =2^40, P =2^50, E =2^70, Z =2^80, Y =2^80
# k =10^3, m =10^6, g =10^9, t=10^12, p=10^15, e=10^18, z=10^21, y=10^24
# 13G = 13*1024*1024*1024 = 13958643712 # 13G = 13*1024*1024*1024 = 13958643712
my $s = shift; my $s = shift;
$s =~ s/k/*1000/g; $s =~ s/ki/*1024/gi;
$s =~ s/M/*1000*1000/g; $s =~ s/mi/*1024*1024/gi;
$s =~ s/G/*1000*1000*1000/g; $s =~ s/gi/*1024*1024*1024/gi;
$s =~ s/T/*1000*1000*1000*1000/g; $s =~ s/ti/*1024*1024*1024*1024/gi;
$s =~ s/P/*1000*1000*1000*1000*1000/g; $s =~ s/pi/*1024*1024*1024*1024*1024/gi;
$s =~ s/E/*1000*1000*1000*1000*1000*1000/g; $s =~ s/ei/*1024*1024*1024*1024*1024*1024/gi;
$s =~ s/Z/*1000*1000*1000*1000*1000*1000*1000/g; $s =~ s/zi/*1024*1024*1024*1024*1024*1024*1024/gi;
$s =~ s/Y/*1000*1000*1000*1000*1000*1000*1000*1000/g; $s =~ s/yi/*1024*1024*1024*1024*1024*1024*1024*1024/gi;
$s =~ s/X/*1000*1000*1000*1000*1000*1000*1000*1000*1000/g; $s =~ s/xi/*1024*1024*1024*1024*1024*1024*1024*1024*1024/gi;
$s =~ s/K/*1024/g;
$s =~ s/M/*1024*1024/g;
$s =~ s/G/*1024*1024*1024/g;
$s =~ s/T/*1024*1024*1024*1024/g;
$s =~ s/P/*1024*1024*1024*1024*1024/g;
$s =~ s/E/*1024*1024*1024*1024*1024*1024/g;
$s =~ s/Z/*1024*1024*1024*1024*1024*1024*1024/g;
$s =~ s/Y/*1024*1024*1024*1024*1024*1024*1024*1024/g;
$s =~ s/X/*1024*1024*1024*1024*1024*1024*1024*1024*1024/g;
$s =~ s/k/*1000/g;
$s =~ s/m/*1000*1000/g;
$s =~ s/g/*1000*1000*1000/g;
$s =~ s/t/*1000*1000*1000*1000/g;
$s =~ s/p/*1000*1000*1000*1000*1000/g;
$s =~ s/e/*1000*1000*1000*1000*1000*1000/g;
$s =~ s/z/*1000*1000*1000*1000*1000*1000*1000/g;
$s =~ s/y/*1000*1000*1000*1000*1000*1000*1000*1000/g;
$s =~ s/x/*1000*1000*1000*1000*1000*1000*1000*1000*1000/g;
$s =~ s/Ki?/*1024/gi;
$s =~ s/Mi?/*1024*1024/gi;
$s =~ s/Gi?/*1024*1024*1024/gi;
$s =~ s/Ti?/*1024*1024*1024*1024/gi;
$s =~ s/Pi?/*1024*1024*1024*1024*1024/gi;
$s =~ s/Ei?/*1024*1024*1024*1024*1024*1024/gi;
$s =~ s/Zi?/*1024*1024*1024*1024*1024*1024*1024/gi;
$s =~ s/Yi?/*1024*1024*1024*1024*1024*1024*1024*1024/gi;
$s =~ s/Xi?/*1024*1024*1024*1024*1024*1024*1024*1024*1024/gi;
$s = eval $s; $s = eval $s;
::debug($s);
return $s; return $s;
} }

View file

@ -2616,7 +2616,8 @@ B<perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' file>
It needs to be quoted like this: It needs to be quoted like this:
B<ls | parallel perl -ne '/^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\"'> B<ls | parallel perl -ne '/^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\"'>
B<ls | parallel perl -ne \''/^\S+\s+\S+$/ and print $ARGV,"\n"'\'>
Notice how spaces, \'s, "'s, and $'s need to be quoted. GNU B<parallel> Notice how spaces, \'s, "'s, and $'s need to be quoted. GNU B<parallel>
can do the quoting by using option -q: can do the quoting by using option -q:
@ -2651,8 +2652,8 @@ Or for substituting output:
B<ls | parallel -q bash -c 'tar c {} | tee >>B<(gzip >>B<{}.tar.gz) | bzip2 >>B<{}.tar.bz2'> B<ls | parallel -q bash -c 'tar c {} | tee >>B<(gzip >>B<{}.tar.gz) | bzip2 >>B<{}.tar.bz2'>
B<Conclusion>: To avoid dealing with the quoting problems it may be B<Conclusion>: To avoid dealing with the quoting problems it may be
easier just to write a small script and have GNU B<parallel> call that easier just to write a small script or a function (remember to
script. B<export -f> the function) and have GNU B<parallel> call that.
=head1 LIST RUNNING JOBS =head1 LIST RUNNING JOBS

View file

@ -2820,7 +2820,8 @@ This is particularly useful if you have lots of quoting. If you want to run a pe
It needs to be quoted like this: It needs to be quoted like this:
@strong{ls | parallel perl -ne '/^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\"'} @strong{ls | parallel perl -ne '/^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\"'}
@strong{ls | parallel perl -ne \''/^\S+\s+\S+$/ and print $ARGV,"\n"'\'}
Notice how spaces, \'s, "'s, and $'s need to be quoted. GNU @strong{parallel} Notice how spaces, \'s, "'s, and $'s need to be quoted. GNU @strong{parallel}
can do the quoting by using option -q: can do the quoting by using option -q:
@ -2857,8 +2858,8 @@ Or for substituting output:
@strong{ls | parallel -q bash -c 'tar c @{@} | tee }>@strong{(gzip }>@strong{@{@}.tar.gz) | bzip2 }>@strong{@{@}.tar.bz2'} @strong{ls | parallel -q bash -c 'tar c @{@} | tee }>@strong{(gzip }>@strong{@{@}.tar.gz) | bzip2 }>@strong{@{@}.tar.bz2'}
@strong{Conclusion}: To avoid dealing with the quoting problems it may be @strong{Conclusion}: To avoid dealing with the quoting problems it may be
easier just to write a small script and have GNU @strong{parallel} call that easier just to write a small script or a function (remember to
script. @strong{export -f} the function) and have GNU @strong{parallel} call that.
@chapter LIST RUNNING JOBS @chapter LIST RUNNING JOBS
@anchor{LIST RUNNING JOBS} @anchor{LIST RUNNING JOBS}

View file

@ -144,4 +144,24 @@ echo '### Test {#}'
echo '### Test --seqreplace and line too long' echo '### Test --seqreplace and line too long'
seq 1 100 | stdout parallel -k --seqreplace I echo $(perl -e 'print "I"x130000') \|wc seq 1 100 | stdout parallel -k --seqreplace I echo $(perl -e 'print "I"x130000') \|wc
echo '### bug #37042: -J foo is taken from the whole command line - not just the part before the command'
echo '--tagstring foo' > ~/.parallel/bug_37042_profile;
parallel -J bug_37042_profile echo ::: tag_with_foo;
parallel --tagstring a -J bug_37042_profile echo ::: tag_with_a;
parallel --tagstring a echo -J bug_37042_profile ::: print_-J_bug_37042_profile;
echo '### Bug introduce by fixing bug #37042'
parallel --xapply -a <(printf 'abc') --colsep '\t' echo {1}
echo "### Test --header with -N"
(echo h1; echo h2; echo 1a;echo 1b; echo 2a;echo 2b; echo 3a)| parallel -j1 --pipe -N2 -k --header '\n.*\n' echo Start\;cat \; echo Stop
echo "### Test --header with --block 1k"
(echo h1; echo h2; perl -e '$a="x"x110;for(1..22){print $_,$a,"\n"'})| parallel -j1 --pipe -k --block 1k --header '\n.*\n' echo Start\;cat \; echo Stop
echo "### Test --header with multiple :::"
parallel --header : echo {a} {b} {1} {2} ::: b b1 ::: a a2
EOF EOF

View file

@ -18,12 +18,12 @@ echo '### Test --timeout';
nice parallel -j0 -k --timeout 1 echo {}\; sleep {}\; echo {} ::: 1.1 7.7 8.8 9.9 nice parallel -j0 -k --timeout 1 echo {}\; sleep {}\; echo {} ::: 1.1 7.7 8.8 9.9
echo '### Test retired'; echo '### Test retired';
stdout parallel -B; stdout parallel -B foo;
stdout parallel -g; stdout parallel -g;
stdout parallel -H; stdout parallel -H 1;
stdout parallel -T; stdout parallel -T;
stdout parallel -U; stdout parallel -U foo;
stdout parallel -W; stdout parallel -W foo;
stdout parallel -Y; stdout parallel -Y;
echo '### Test --joblog followed by --resume --joblog' echo '### Test --joblog followed by --resume --joblog'

View file

@ -142,7 +142,7 @@ echo '### Negative replacement strings'
parallel --colsep ' ' echo '{-3}orrect' ::: "1 c 3 4" parallel --colsep ' ' echo '{-3}orrect' ::: "1 c 3 4"
echo 'bug #38439: "open files" with --files --pipe blocks after a while' echo 'bug #38439: "open files" with --files --pipe blocks after a while'
ulimit -n 20; yes |head -n 10M | parallel --pipe -k echo {#} of 21 ulimit -n 20; yes |head -n 10M | parallel --pipe -k echo {#} of 20
echo 'bug #34241: --pipe should not spawn unneeded processes - part 2' echo 'bug #34241: --pipe should not spawn unneeded processes - part 2'
seq 500 | parallel --tmpdir . -j10 --pipe --block 1k --files wc >/dev/null; seq 500 | parallel --tmpdir . -j10 --pipe --block 1k --files wc >/dev/null;

View file

@ -17,7 +17,7 @@ echo '### Test 200M records with too small block';
echo start; echo start;
seq 1 44 | parallel -uj1 cat /tmp/blocktest\;true; seq 1 44 | parallel -uj1 cat /tmp/blocktest\;true;
echo end; echo end;
) | stdout parallel -k --block 200M -j2 --pipe --recend 'end\n' wc -c | ) | stdout parallel -k --block 200m -j2 --pipe --recend 'end\n' wc -c |
egrep -v '^0$' egrep -v '^0$'
echo '### Test -N with multiple jobslots and multiple args' echo '### Test -N with multiple jobslots and multiple args'
@ -90,7 +90,7 @@ echo '### Test -N even+2';
seq 1 12 | parallel -j2 -k -N 2 --pipe cat";echo ole;sleep 1.\$PARALLEL_SEQ" seq 1 12 | parallel -j2 -k -N 2 --pipe cat";echo ole;sleep 1.\$PARALLEL_SEQ"
echo '### Test --recstart + --recend'; echo '### Test --recstart + --recend';
cat /tmp/blocktest | parallel --block 1m -k --recstart 44 --recend "44" -j10 --pipe sort -n |md5sum cat /tmp/blocktest | parallel --block 1M -k --recstart 44 --recend "44" -j10 --pipe sort -n |md5sum
echo '### Race condition bug - 1 - would block'; echo '### Race condition bug - 1 - would block';
seq 1 80 | nice parallel -j0 'seq 1 10| parallel --block 1 --recend "" --pipe cat;true' >/dev/null seq 1 80 | nice parallel -j0 'seq 1 10| parallel --block 1 --recend "" --pipe cat;true' >/dev/null

View file

@ -10,6 +10,10 @@ VBoxManage startvm CentOS3-root:centos3 >/dev/null 2>&1
VBoxManage startvm CentOS5-root:centos5 >/dev/null 2>&1 VBoxManage startvm CentOS5-root:centos5 >/dev/null 2>&1
VBoxManage startvm RedHat9-root:redhat9 >/dev/null 2>&1 VBoxManage startvm RedHat9-root:redhat9 >/dev/null 2>&1
VBoxManage startvm FreeBSD71 >/dev/null 2>&1 VBoxManage startvm FreeBSD71 >/dev/null 2>&1
ping -c 1 centos3.tange.dk >/dev/null 2>&1
ping -c 1 centos5.tange.dk >/dev/null 2>&1
ping -c 1 redhat9.tange.dk >/dev/null 2>&1
ping -c 1 freebsd7.tange.dk >/dev/null 2>&1
echo "### bug #37589: Red Hat 9 (Shrike) perl v5.8.0 built for i386-linux-thread-multi error" echo "### bug #37589: Red Hat 9 (Shrike) perl v5.8.0 built for i386-linux-thread-multi error"
cp `which parallel` /tmp/parallel cp `which parallel` /tmp/parallel

View file

@ -2,24 +2,17 @@
# -L1 will join lines ending in ' ' # -L1 will join lines ending in ' '
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -j10 -k -L1 cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -j10 -k -L1
echo "### Test memory consumption stays (almost) the same for 30 and 300 jobs"
out30=$( stdout memusg parallel -j2 true :::: <(perl -e '$a="x"x100000;for(1..30){print $a,"\n"}') );
out300=$( stdout memusg parallel -j2 true :::: <(perl -e '$a="x"x100000;for(1..300){print $a,"\n"}') );
mem30=$(echo $out30 | tr -cd 0-9);
mem300=$(echo $out300 | tr -cd 0-9);
echo "Test if memory consumption(300 jobs) < memory consumption(30 jobs) * 150% ";
echo $(($mem300*100 < $mem30 * 150))
EOF EOF
echo "### Test memory consumption stays (almost) the same for 30 and 300 jobs";
out30=$( stdout memusg parallel -j2 true :::: <(perl -e '$a="x"x100000;for(1..30){print $a,"\n"}') );
out300=$( stdout memusg parallel -j2 true :::: <(perl -e '$a="x"x100000;for(1..300){print $a,"\n"}') );
mem30=$(echo $out30 | tr -cd 0-9);
mem300=$(echo $out300 | tr -cd 0-9);
echo "Test if memory consumption(300 jobs) < memory consumption(30 jobs) * 150% ";
echo $(($mem300*100 < $mem30 * 150))
echo "### Test --header with -N";
(echo h1; echo h2; echo 1a;echo 1b; echo 2a;echo 2b; echo 3a)| parallel -j1 --pipe -N2 -k --header '\n.*\n' echo Start\;cat \; echo Stop
echo "### Test --header with --block 1k";
(echo h1; echo h2; perl -e '$a="x"x110;for(1..22){print $_,$a,"\n"'})| parallel -j1 --pipe -k --block 1k --header '\n.*\n' echo Start\;cat \; echo Stop
echo "### Test --header with multiple :::"
parallel --header : echo {a} {b} {1} {2} ::: b b1 ::: a a2
echo '### Test --shellquote' echo '### Test --shellquote'
cat <<'_EOF' | parallel --shellquote cat <<'_EOF' | parallel --shellquote

View file

@ -266,3 +266,60 @@ o
1 1 130001 1 1 130001
1 1 130001 1 1 130001
parallel: Command line too long (260009 >= 131071) at number 9: 10... parallel: Command line too long (260009 >= 131071) at number 9: 10...
### bug #37042: -J foo is taken from the whole command line - not just the part before the command
foo tag_with_foo
a tag_with_a
a -J bug_37042_profile print_-J_bug_37042_profile
### Bug introduce by fixing bug #37042
abc
### Test --header with -N
Start
h1
h2
1a
1b
Stop
Start
h1
h2
2a
2b
Stop
Start
h1
h2
3a
Stop
### Test --header with --block 1k
Start
h1
h2
1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
8xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
10xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
11xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
12xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
13xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
14xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
15xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
16xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
17xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Stop
Start
h1
h2
18xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
19xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
20xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
21xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
22xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Stop
### Test --header with multiple :::
a2 b1 b1 a2

View file

@ -1,7 +1,7 @@
### Test if we can deal with output > 4 GB ### Test if we can deal with output > 4 GB
46a318993dfc8e2afd71ff2bc6f605f1 - 46a318993dfc8e2afd71ff2bc6f605f1 -
### Test Force outside the file handle limit, 2009-02-17 Gave fork error ### Test Force outside the file handle limit, 2009-02-17 Gave fork error
parallel: Warning: Only enough filehandles to run 507 jobs in parallel. Raising ulimit -n may help. parallel: Warning: Only enough filehandles to run 506 jobs in parallel. Raising ulimit -n may help.
Start Start
end end
### Test of --retries on unreachable host ### Test of --retries on unreachable host

View file

@ -45,6 +45,34 @@ parallel: Error: -U has been retired. Use --er.
parallel: Error: -W has been retired. Use --wd. parallel: Error: -W has been retired. Use --wd.
parallel: Error: -Y has been retired. Use --shebang. parallel: Error: -Y has been retired. Use --shebang.
parallel: Error: -H has been retired. Use --halt. parallel: Error: -H has been retired. Use --halt.
parallel: Error: -g has been retired. Use --group.
parallel: Error: -B has been retired. Use --bf.
parallel: Error: -T has been retired. Use --tty.
parallel: Error: -U has been retired. Use --er.
parallel: Error: -W has been retired. Use --wd.
parallel: Error: -Y has been retired. Use --shebang.
parallel: Error: -H has been retired. Use --halt.
parallel: Error: -g has been retired. Use --group.
parallel: Error: -B has been retired. Use --bf.
parallel: Error: -T has been retired. Use --tty.
parallel: Error: -U has been retired. Use --er.
parallel: Error: -W has been retired. Use --wd.
parallel: Error: -Y has been retired. Use --shebang.
parallel: Error: -H has been retired. Use --halt.
parallel: Error: -g has been retired. Use --group.
parallel: Error: -B has been retired. Use --bf.
parallel: Error: -T has been retired. Use --tty.
parallel: Error: -U has been retired. Use --er.
parallel: Error: -W has been retired. Use --wd.
parallel: Error: -Y has been retired. Use --shebang.
parallel: Error: -H has been retired. Use --halt.
parallel: Error: -g has been retired. Use --group.
parallel: Error: -B has been retired. Use --bf.
parallel: Error: -T has been retired. Use --tty.
parallel: Error: -U has been retired. Use --er.
parallel: Error: -W has been retired. Use --wd.
parallel: Error: -Y has been retired. Use --shebang.
parallel: Error: -H has been retired. Use --halt.
### Test --joblog followed by --resume --joblog ### Test --joblog followed by --resume --joblog
5 49 5 49
### Test --resume --joblog followed by --resume --joblog ### Test --resume --joblog followed by --resume --joblog

View file

@ -239,27 +239,26 @@ correct
2 + 4 = 2 + 4= 6 2 + 4 = 2 + 4= 6
correct correct
bug #38439: "open files" with --files --pipe blocks after a while bug #38439: "open files" with --files --pipe blocks after a while
1 of 21 1 of 20
2 of 21 2 of 20
3 of 21 3 of 20
4 of 21 4 of 20
5 of 21 5 of 20
6 of 21 6 of 20
7 of 21 7 of 20
8 of 21 8 of 20
9 of 21 9 of 20
10 of 21 10 of 20
11 of 21 11 of 20
12 of 21 12 of 20
13 of 21 13 of 20
14 of 21 14 of 20
15 of 21 15 of 20
16 of 21 16 of 20
17 of 21 17 of 20
18 of 21 18 of 20
19 of 21 19 of 20
20 of 21 20 of 20
21 of 21
bug #34241: --pipe should not spawn unneeded processes - part 2 bug #34241: --pipe should not spawn unneeded processes - part 2
2 2
No .par should exist No .par should exist

View file

@ -1 +1,3 @@
### Test --env all chars except \n,\92,\160 - single and double - no output is good ### Test --env all chars except \n,\92,\160 - single and double - no output is good
### bug #37262: --slf + --filter-hosts fails
OK

View file

@ -207,7 +207,7 @@ hurd.polarhome.com Welcome to hurd ...member of polarhome.com realm.
hurd.polarhome.com Works on hurd.polarhome.com hurd.polarhome.com Works on hurd.polarhome.com
irix.polarhome.com irix.polarhome.com
irix.polarhome.com IRIX64 6.5 07202013 IP35 irix.polarhome.com IRIX64 6.5 07202013 IP35
irix.polarhome.com Unknown open() mode '>&' at bin/parallel line 1274, <$fh> line 1. irix.polarhome.com Unknown open() mode '>&' at bin/parallel line 1310.
irix.polarhome.com Welcome to irix ...member of polarhome.com realm irix.polarhome.com Welcome to irix ...member of polarhome.com realm
mandriva.polarhome.com mandriva.polarhome.com
mandriva.polarhome.com mandriva.polarhome.com

View file

@ -1,5 +1,5 @@
### Test -k ### Test -k
parallel: Warning: Only enough filehandles to run 20 jobs in parallel. Raising ulimit -n may help. parallel: Warning: Only enough filehandles to run 19 jobs in parallel. Raising ulimit -n may help.
begin begin
1 1
2 2

View file

@ -1,56 +1,5 @@
### Test memory consumption stays (almost) the same for 30 and 300 jobs ### Test memory consumption stays (almost) the same for 30 and 300 jobs
Test if memory consumption(300 jobs) < memory consumption(30 jobs) * 150% Test if memory consumption(300 jobs) < memory consumption(30 jobs) * 150%
1 1
### Test --header with -N
Start
h1
h2
1a
1b
Stop
Start
h1
h2
2a
2b
Stop
Start
h1
h2
3a
Stop
### Test --header with --block 1k
Start
h1
h2
1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
8xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
10xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
11xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
12xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
13xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
14xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
15xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
16xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
17xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Stop
Start
h1
h2
18xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
19xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
20xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
21xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
22xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Stop
### Test --header with multiple :::
a2 b1 b1 a2
### Test --shellquote ### Test --shellquote
awk\ -v\ FS=\"\\\",\\\"\"\ \'\{print\ \$1,\ \$3,\ \$4,\ \$5,\ \$9,\ \$14\}\'\ \|\ grep\ -v\ \"\#\"\ \|\ sed\ -e\ \'1d\'\ -e\ \'s/\\\"//g\'\ -e\ \'s/\\/\\/\\//\\t/g\'\ \|\ cut\ -f1-6,11\ \|\ sed\ -e\ \'s/\\/\\//\\t/g\'\ -e\ \'s/\ /\\t/g awk\ -v\ FS=\"\\\",\\\"\"\ \'\{print\ \$1,\ \$3,\ \$4,\ \$5,\ \$9,\ \$14\}\'\ \|\ grep\ -v\ \"\#\"\ \|\ sed\ -e\ \'1d\'\ -e\ \'s/\\\"//g\'\ -e\ \'s/\\/\\/\\//\\t/g\'\ \|\ cut\ -f1-6,11\ \|\ sed\ -e\ \'s/\\/\\//\\t/g\'\ -e\ \'s/\ /\\t/g