mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-12-22 12:47:54 +00:00
parallel: Fixed to pass local testsuite and some Perl::Critic issues.
This commit is contained in:
parent
c60cc12b24
commit
fcaf41b325
|
@ -10,8 +10,6 @@ Luk filen ved EOF - lad være med bare at læse videre.
|
|||
|
||||
> /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
|
||||
|
||||
Fhqwhgads som 20120122 pga 10 års jubliæum.
|
||||
|
||||
--timeout auto: If a jobs takes > 3*moving average runtime then kill it. Only after job 3.
|
||||
|
||||
niceload seeks last column:
|
||||
|
@ -31,9 +29,6 @@ cat <<'_EOF' | parallel -v echo
|
|||
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
|
||||
_EOF
|
||||
|
||||
\'-tricket
|
||||
ls *bed | parallel -j 10 intersectBed -a good-genes.gff -b {} -c \| awk \''BEGIN{OFS="\t\";} {print $1,$9,$4,$5,$7,$10}'\' > test.txt
|
||||
|
||||
FN="two spaces"
|
||||
echo 1 | parallel -q echo {} "$FN"
|
||||
# Prints 2 spaces between 'two' and 'spaces'
|
||||
|
|
|
@ -171,19 +171,28 @@ cc:Sandro Cazzaniga <kharec@mandriva.org>,
|
|||
Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>,
|
||||
Jesse Alama <jesse.alama@gmail.com>
|
||||
|
||||
Subject: GNU Parallel 20120922 ('X') released
|
||||
Subject: GNU Parallel 20121022 ('Hanne Vilmann') released
|
||||
|
||||
GNU Parallel 20120922 ('X') has been released. It is
|
||||
GNU Parallel 20121022 ('Hanne Vilmann') has been released. It is
|
||||
available for download at: http://ftp.gnu.org/gnu/parallel/
|
||||
|
||||
New in this release:
|
||||
|
||||
* When using GNU Parallel for simulations --results makes it easy to
|
||||
select output from some arguments.
|
||||
|
||||
* Use --env to transfer environment variables through ssh to remote
|
||||
machines.
|
||||
|
||||
* GNU Parallel is accepted for Ubuntu Quantal.
|
||||
http://packages.ubuntu.com/quantal/parallel
|
||||
|
||||
* GNU Parallel was requested for OpenSUSE (go vote!)
|
||||
https://features.opensuse.org/314461
|
||||
|
||||
* Kneth's Korner: Map/Reduce and GNU Parallel
|
||||
http://kenneth.geisshirt.dk/2012/10/mapreduce-and-gnu-parallel.html
|
||||
|
||||
* Blog post in Japanese by Siguniang.
|
||||
https://siguniang.wordpress.com/2012/09/09/notes-on-gnu-parallel-the-command-line-power-tool/
|
||||
(Siguniang mentions the logo is called 'The Cafe Wall Illusion')
|
||||
|
|
61
src/parallel
61
src/parallel
|
@ -208,6 +208,7 @@ if($::opt_nonall or $::opt_onall) {
|
|||
((defined $::opt_D) ? "-D" : ""),
|
||||
((defined $::opt_timeout) ? "--timeout ".$::opt_timeout : ""),
|
||||
((defined $::opt_plain) ? "--plain" : ""),
|
||||
((defined @::opt_env) ? map { "--env ".::shell_quote_scalar($_) } @::opt_env : ""),
|
||||
);
|
||||
::debug("| $0 $options\n");
|
||||
open(my $parallel_fh, "|-", "$0 -j0 $options") ||
|
||||
|
@ -605,7 +606,7 @@ sub get_options_from_array {
|
|||
sub parse_options {
|
||||
# Returns: N/A
|
||||
# Defaults:
|
||||
$Global::version = 20120930;
|
||||
$Global::version = 20121015;
|
||||
$Global::progname = 'parallel';
|
||||
$Global::infinity = 2**31;
|
||||
$Global::debug = 0;
|
||||
|
@ -837,6 +838,13 @@ sub parse_options {
|
|||
open_joblog();
|
||||
}
|
||||
|
||||
sub env_quote {
|
||||
my $v = shift;
|
||||
$v =~ s/([\\])/\\$1/g;
|
||||
$v =~ s/([\[\] \#\'\n\&\<\>\(\)\;\{\}\t\"\$\`\*\174\!\?\~])/\\$1/g;
|
||||
return $v;
|
||||
}
|
||||
|
||||
sub parse_env_var {
|
||||
# Parse --env and set $Global::envvar
|
||||
# Returns: N/A
|
||||
|
@ -846,15 +854,22 @@ sub parse_env_var {
|
|||
# Split up --env VAR1,VAR2
|
||||
push @vars, split /,/, $varstring;
|
||||
}
|
||||
$Global::envvar =
|
||||
(q{eval `echo $SHELL | grep -E "/(t)?csh" > /dev/null}
|
||||
. q{ && echo }
|
||||
. join("", map { "setenv $_ "
|
||||
. ::shell_quote_scalar(::shell_quote_scalar($ENV{$_})).'\;' } @vars)
|
||||
. q{ || echo }
|
||||
. join("", map { "export $_="
|
||||
. ::shell_quote_scalar(::shell_quote_scalar($ENV{$_})).'\;' } @vars)
|
||||
.q{`;});
|
||||
# Keep only defined variables
|
||||
@vars = grep { defined($ENV{$_}) } @vars;
|
||||
my @qcsh = map { my $a=$_; "setenv $a " . env_quote($ENV{$a}) } @vars;
|
||||
my @qbash = map { my $a=$_; "export $a=" . env_quote($ENV{$a}) } @vars;
|
||||
|
||||
# Create lines like:
|
||||
# echo $SHELL | grep -E "/t?csh" >/dev/null && setenv V1 val1 && setenv V2 val2 || export V1=val1 && export V2=val2 ; echo "$V1$V2"
|
||||
if(@vars) {
|
||||
$Global::envvar =
|
||||
join"",
|
||||
(q{echo $SHELL | grep -E "/t?csh" > /dev/null && }
|
||||
. join(" && ", @qcsh)
|
||||
. q{ || }
|
||||
. join(" && ", @qbash)
|
||||
.q{;});
|
||||
}
|
||||
$Global::envvarlen = length $Global::envvar;
|
||||
}
|
||||
|
||||
|
@ -1041,7 +1056,7 @@ sub __QUOTING_ARGUMENTS_FOR_SHELL__ {}
|
|||
sub shell_quote {
|
||||
my @strings = (@_);
|
||||
for my $a (@strings) {
|
||||
$a =~ s/([\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\*\>\<\~\|\; \"\!\$\&\'])/\\$1/g;
|
||||
$a =~ s/([\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\*\>\<\~\|\; \"\!\$\&\'\202-\377])/\\$1/g;
|
||||
$a =~ s/[\n]/'\n'/g; # filenames with '\n' is quoted using \'
|
||||
}
|
||||
return wantarray ? @strings : "@strings";
|
||||
|
@ -1052,8 +1067,10 @@ sub shell_quote_scalar {
|
|||
# Returns:
|
||||
# string quoted with \ as needed by the shell
|
||||
my $a = shift;
|
||||
$a =~ s/([\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\*\>\<\~\|\; \"\!\$\&\'])/\\$1/g;
|
||||
$a =~ s/[\n]/'\n'/g; # filenames with '\n' is quoted using \'
|
||||
if(defined $a) {
|
||||
$a =~ s/([\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\*\>\<\~\|\; \"\!\$\&\'\202-\377])/\\$1/g;
|
||||
$a =~ s/[\n]/'\n'/g; # filenames with '\n' is quoted using \'
|
||||
}
|
||||
return $a;
|
||||
}
|
||||
|
||||
|
@ -3216,13 +3233,13 @@ sub openresultsfile {
|
|||
my $self = shift;
|
||||
my $args_as_filename = $self->{'commandline'}->args_as_filename();
|
||||
my ($outfh,$errfh,$name);
|
||||
$name = $::opt_results."stdout_".$args_as_filename;
|
||||
$name = $::opt_results."stdout\t".$args_as_filename;
|
||||
if(not open($outfh,"+>",$name)) {
|
||||
::error("Cannot write to `$name'.\n");
|
||||
::wait_and_exit(255);
|
||||
}
|
||||
$self->set_stdoutfilename($name);
|
||||
$name = $::opt_results."stderr_".$args_as_filename;
|
||||
$name = $::opt_results."stderr\t".$args_as_filename;
|
||||
if(not open($errfh,"+>",$name)) {
|
||||
::error("Cannot write to `$name'.\n");
|
||||
::wait_and_exit(255);
|
||||
|
@ -4295,7 +4312,7 @@ sub multi_regexp {
|
|||
if(not $CommandLine::multi_regexp) {
|
||||
$CommandLine::multi_regexp =
|
||||
"(?:".
|
||||
join("|",map {my ($a = $_) =~ s/(\W)/\\$1/g; $a }
|
||||
join("|",map {my $a=$_; $a =~ s/(\W)/\\$1/g; $a}
|
||||
($Global::replace{"{}"},
|
||||
$Global::replace{"{.}"},
|
||||
$Global::replace{"{/}"},
|
||||
|
@ -4321,7 +4338,7 @@ sub number_of_replacements {
|
|||
'\d+(?:|\.|/\.|/|//)?' . # {n} {n.} {n/.} {n/} {n//}
|
||||
::maybe_quote('\}') .
|
||||
'|'.
|
||||
join("|",map { my ($a = $_) =~ s/(\W)/\\$1/g; $a } values %Global::replace).
|
||||
join("|",map {$a=$_;$a=~s/(\W)/\\$1/g; $a} values %Global::replace).
|
||||
")";
|
||||
my %c = ();
|
||||
$cmd =~ s/($replacement_regexp)/$c{$1}++;"\0"/ogex;
|
||||
|
@ -4370,7 +4387,7 @@ sub replaced {
|
|||
# Is this really a command in $PATH starting with '-'?
|
||||
my $cmd = $1;
|
||||
if(not grep { -e $_."/".$cmd } split(":",$ENV{'PATH'})) {
|
||||
::error("Command ($cmd) starts with '-'. Is this a wrong option?.\n");
|
||||
::error("Command ($cmd) starts with '-'. Is this a wrong option?\n");
|
||||
::wait_and_exit(255);
|
||||
}
|
||||
}
|
||||
|
@ -4450,9 +4467,9 @@ sub context_replace_placeholders {
|
|||
# Inner part of replacement functions
|
||||
my @rep_inner = ('', '/', '//', '.', '/.');
|
||||
# Regexp for replacement functions
|
||||
my $rep_regexp = "(?:". join('|', map { my ($s = $_) =~ s/(\W)/\\$1/g; $s } @rep) . ")";
|
||||
my $rep_regexp = "(?:". join('|', map { my $s = $_; $s =~ s/(\W)/\\$1/g; $s } @rep) . ")";
|
||||
# Regexp for inner replacement functions
|
||||
my $rep_inner_regexp = "(?:". join('|', map { my ($s = $_) =~ s/(\W)/\\$1/g; $s } @rep_inner) . ")";
|
||||
my $rep_inner_regexp = "(?:". join('|', map { my $s = $_; $s =~ s/(\W)/\\$1/g; $s } @rep_inner) . ")";
|
||||
# Seq replace string: {#}
|
||||
my $rep_seq_regexp = '(?:'.::maybe_quote('\{\#\}').")";
|
||||
# Normal replace strings
|
||||
|
@ -4526,7 +4543,7 @@ sub context_replace_placeholders {
|
|||
}
|
||||
# Substitute the replace strings with the replacement values
|
||||
# Must be sorted by length if a short word is a substring of a long word
|
||||
my $regexp = join('|', map { my ($s = $_) =~ s/(\W)/\\$1/g; $s }
|
||||
my $regexp = join('|', map { my $s = $_; $s =~ s/(\W)/\\$1/g; $s }
|
||||
sort { length $b <=> length $a } keys %word);
|
||||
$target =~ s/($regexp)/join(" ",@{$replace{$1}})/ge;
|
||||
return $target;
|
||||
|
@ -4580,7 +4597,7 @@ sub simple_replace_placeholders {
|
|||
}
|
||||
}
|
||||
# Substitute the replace strings with the replacement values
|
||||
my $regexp = join('|', map { my ($s = $_) =~ s/(\W)/\\$1/g; $s } keys %replace);
|
||||
my $regexp = join('|', map { my $s = $_; $s =~ s/(\W)/\\$1/g; $s } keys %replace);
|
||||
if($regexp) {
|
||||
if($quoteall) {
|
||||
# This is for --return: The whole expression must be
|
||||
|
|
|
@ -992,7 +992,7 @@ E.g:
|
|||
|
||||
parallel --header : --results foo/bar echo {a} {b} ::: a I II ::: b III IIII
|
||||
|
||||
will generate:
|
||||
will generate the files:
|
||||
|
||||
foo/barstderr_a I b III
|
||||
foo/barstderr_a I b IIII
|
||||
|
@ -1007,7 +1007,7 @@ and
|
|||
|
||||
parallel --results foo/bar echo {1} {2} ::: 1 2 ::: 3 4
|
||||
|
||||
will generate:
|
||||
will generate the files:
|
||||
|
||||
foo/barstderr_1 I 2 III
|
||||
foo/barstderr_1 I 2 IIII
|
||||
|
@ -1857,14 +1857,14 @@ big overhead if the job takes very few ms to run. Often you can group
|
|||
small jobs together using B<-X> which will make the overhead less
|
||||
significant. Compare the speed of these:
|
||||
|
||||
B<seq -w 0 9999 | parallel touch pict{}.jpg>
|
||||
seq -w 0 9999 | parallel touch pict{}.jpg
|
||||
|
||||
B<seq -w 0 9999 | parallel -X touch pict{}.jpg>
|
||||
seq -w 0 9999 | parallel -X touch pict{}.jpg
|
||||
|
||||
If your program cannot take multiple arguments, then you can use GNU
|
||||
B<parallel> to spawn multiple GNU B<parallel>s:
|
||||
|
||||
B<seq -w 0 999999 | parallel -j10 --pipe parallel -j0 touch pict{}.jpg>
|
||||
seq -w 0 999999 | parallel -j10 --pipe parallel -j0 touch pict{}.jpg
|
||||
|
||||
If B<-j0> normally spawns 506 jobs, then the above will try to spawn
|
||||
5060 jobs. It is likely that you this way will hit the limit of number
|
||||
|
@ -2413,18 +2413,18 @@ characters that have special meaning in shell:
|
|||
|
||||
and depending on context these needs to be quoted, too:
|
||||
|
||||
* ~ & # ! ? space * {
|
||||
~ & # ! ? space * {
|
||||
|
||||
Therefore most people will never need more quoting than putting '\'
|
||||
in front of the special characters.
|
||||
|
||||
Often you can simply put \' around every ':
|
||||
|
||||
B<perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' file>
|
||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' file
|
||||
|
||||
can be quoted:
|
||||
|
||||
B<parallel perl -ne \''/^\S+\s+\S+$/ and print $ARGV,"\n"'\' ::: file>
|
||||
parallel perl -ne \''/^\S+\s+\S+$/ and print $ARGV,"\n"'\' ::: file
|
||||
|
||||
However, when you want to use a shell variable you need to quote the
|
||||
$-sign. Here is an example using $PARALLEL_SEQ. This variable is set
|
||||
|
|
|
@ -8,5 +8,4 @@ echo '### See if we get compile error'
|
|||
PATH=input-files/perllib:../input-files/perllib:$PATH
|
||||
perl32 `which parallel` ::: 'echo perl'
|
||||
echo '### See if we read modules outside perllib'
|
||||
echo perl | stdout strace -ff parallel echo | grep open | grep perl | grep -v input-files/perllib
|
||||
|
||||
echo perl | stdout strace -ff perl32 `which parallel` echo | grep open | grep perl | grep -v input-files/perllib
|
||||
|
|
|
@ -6,15 +6,49 @@ seq 1 3 | parallel -j1 "sleep 2; echo {}" | parallel -kj2 echo
|
|||
echo '### Test --env - https://savannah.gnu.org/bugs/?37351'
|
||||
export TWOSPACES=' 2 spaces '
|
||||
export THREESPACES=" > My brother's 12\" records < "
|
||||
echo a"$TWOSPACES"b 1
|
||||
parallel --env TWOSPACES echo 'a"$TWOSPACES"b' ::: 1
|
||||
parallel --env TWOSPACES --env THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2
|
||||
parallel --env TWOSPACES,THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2a
|
||||
parallel -S localhost --env TWOSPACES echo 'a"$TWOSPACES"b' ::: 1
|
||||
parallel -S localhost --env TWOSPACES --env THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2
|
||||
parallel -S localhost --env TWOSPACES,THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2a
|
||||
parallel -S csh@localhost --env TWOSPACES echo 'a"$TWOSPACES"b' ::: 1
|
||||
parallel -S tcsh@localhost --env TWOSPACES echo 'a"$TWOSPACES"b' ::: 1
|
||||
|
||||
echo a"$TWOSPACES"b a"$THREESPACES"b 2
|
||||
parallel --env TWOSPACES --env THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2
|
||||
parallel -S localhost --env TWOSPACES --env THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2
|
||||
parallel -S csh@localhost --env TWOSPACES --env THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2
|
||||
parallel -S csh@localhost --env TWOSPACES,THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2a
|
||||
parallel -S tcsh@localhost --env TWOSPACES --env THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 2
|
||||
|
||||
echo a"$TWOSPACES"b a"$THREESPACES"b 3
|
||||
parallel --env TWOSPACES,THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 3
|
||||
parallel -S localhost --env TWOSPACES,THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 3
|
||||
parallel -S csh@localhost --env TWOSPACES,THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 3
|
||||
parallel -S tcsh@localhost --env TWOSPACES,THREESPACES echo 'a"$TWOSPACES"b' 'a"$THREESPACES"b' ::: 3
|
||||
|
||||
export MIN=" \'\""
|
||||
echo a"$MIN"b 4
|
||||
parallel --env MIN echo 'a"$MIN"b' ::: 4
|
||||
parallel -S localhost --env MIN echo 'a"$MIN"b' ::: 4
|
||||
parallel -S csh@localhost --env MIN echo 'a"$MIN"b' ::: 4
|
||||
parallel -S tcsh@localhost --env MIN echo 'a"$MIN"b' ::: 4
|
||||
|
||||
export SPC="'"' * ? >o <i*? ][\!#¤%=( ) | }'
|
||||
echo a"$SPC"b 5
|
||||
parallel --env SPC echo 'a"$SPC"b' ::: 5
|
||||
parallel -S localhost --env SPC echo 'a"$SPC"b' ::: 5
|
||||
parallel -S csh@localhost --env SPC echo 'a"$SPC"b' ::: 5
|
||||
parallel -S tcsh@localhost --env SPC echo 'a"$SPC"b' ::: 5
|
||||
|
||||
echo '### Test --env for \n and \\ - single and double - no output is good'
|
||||
perl -e 'for(10,92) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} {#} | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11
|
||||
|
||||
echo '### Test --env for \n and \\ - single and double --onall - no output is good'
|
||||
perl -e 'for(10,92) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --onall --env V,V2 echo \''"{}$V$V2"'\' ::: {#} | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11
|
||||
|
||||
echo '### Test --env for \160 - which kills csh - single and double - no output is good'
|
||||
perl -e 'for(160) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} | uniq -c | grep -v ' 3 '|grep -v xauth |grep -v X11
|
||||
|
||||
echo '### Test --env for \160 - which kills csh - single and double --onall - no output is good'
|
||||
perl -e 'for(160) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo --onall --env V,V2 echo \''"{}$V$V2"'\' ::: {#} | uniq -c | grep -v ' 3 '|grep -v xauth |grep -v X11
|
||||
|
||||
echo '### Test too slow spawning'
|
||||
killall -9 burnP6 2>/dev/null
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo '### Test --joblog with exitval and Test --joblog with signal'
|
||||
parallel --joblog /tmp/parallel_joblog_exitval 'sleep {} && echo foo' ::: 100 2>/dev/null &
|
||||
parallel --joblog /tmp/parallel_joblog_exitval 'sleep {} && echo sleep was not killed=BAD' ::: 100 2>/dev/null &
|
||||
parallel --joblog /tmp/parallel_joblog_signal 'sleep {}' ::: 100 2>/dev/null &
|
||||
sleep 0.5
|
||||
sleep 1
|
||||
killall -6 sleep
|
||||
sleep 0.1
|
||||
grep -q 134 /tmp/parallel_joblog_exitval && echo exitval OK
|
||||
|
@ -11,3 +11,10 @@ grep -q '[^0-9]6[^0-9]' /tmp/parallel_joblog_signal && echo signal OK
|
|||
|
||||
rm /tmp/parallel_joblog_exitval /tmp/parallel_joblog_signal
|
||||
|
||||
echo '### Test --env all chars except \n,\92,\160 - single and double - no output is good'
|
||||
# 92 and 160 are special for csh
|
||||
perl -e 'for(1..9,9,11..91,91,93..159,159,161..255) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} {#} | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11
|
||||
|
||||
echo '### Test --env all chars except \n,\92,\160 - single and double --onall - no output is good'
|
||||
# 92 and 160 are special for csh
|
||||
perl -e 'for(1..9,9,11..91,91,93..159,159,161..255) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 19 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --onall --env V,V2 echo \''"{}$V$V2"'\' ::: {#} | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11
|
||||
|
|
Binary file not shown.
|
@ -1,8 +1,8 @@
|
|||
dcf2c2d2262ebbd3a97bb5e1d759cd38 -
|
||||
33802d2d7671966df3c40ddd35c56c67 -
|
||||
There are 6246 dirs with 6246 files
|
||||
Removing files
|
||||
b001b66cebd62b43bf78f1ab282495c9 -
|
||||
e364fd590106adc42f4d052d1cd64b37 -
|
||||
There are 6246 dirs with files
|
||||
Removing dirs
|
||||
b88970f52ad2ae3d922bc44c3ed99657 -
|
||||
404a3f0c1ca9a1f0024ae97b3d24a878 -
|
||||
There are 1 dirs with files
|
||||
|
|
|
@ -77,10 +77,10 @@ a8 b1 2 3 4 5 6 7 8
|
|||
a9 b1 2 3 4 5 6 7 8 9
|
||||
a10 b1 2 3 4 5 6 7 8 9 10
|
||||
### Test max line length -m -I
|
||||
623249e8b509099d71745dbddc3fe5ce -
|
||||
31d9274be5fdc2de59487cb05ba57776 -
|
||||
Chars per line (697800/6): 116300
|
||||
### Test max line length -X -I
|
||||
ae59907d4a33798608843da7ffcb29ed -
|
||||
22074f9acada52462defb18ba912d744 -
|
||||
Chars per line (817788/7): 116826
|
||||
### bug #36659: --sshlogin strips leading slash from ssh command
|
||||
OK
|
||||
|
@ -121,66 +121,66 @@ I III
|
|||
I IIII
|
||||
II III
|
||||
II IIII
|
||||
/tmp/parallel_results_test/testAstderr_1 I 2 III
|
||||
/tmp/parallel_results_test/testAstderr_1 I 2 IIII
|
||||
/tmp/parallel_results_test/testAstderr_1 II 2 III
|
||||
/tmp/parallel_results_test/testAstderr_1 II 2 IIII
|
||||
/tmp/parallel_results_test/testAstdout_1 I 2 III
|
||||
/tmp/parallel_results_test/testAstdout_1 I 2 IIII
|
||||
/tmp/parallel_results_test/testAstdout_1 II 2 III
|
||||
/tmp/parallel_results_test/testAstdout_1 II 2 IIII
|
||||
/tmp/parallel_results_test/testAstderr 1 I 2 III
|
||||
/tmp/parallel_results_test/testAstderr 1 I 2 IIII
|
||||
/tmp/parallel_results_test/testAstderr 1 II 2 III
|
||||
/tmp/parallel_results_test/testAstderr 1 II 2 IIII
|
||||
/tmp/parallel_results_test/testAstdout 1 I 2 III
|
||||
/tmp/parallel_results_test/testAstdout 1 I 2 IIII
|
||||
/tmp/parallel_results_test/testAstdout 1 II 2 III
|
||||
/tmp/parallel_results_test/testAstdout 1 II 2 IIII
|
||||
### Test --res
|
||||
I III
|
||||
I IIII
|
||||
II III
|
||||
II IIII
|
||||
/tmp/parallel_results_test/testDstderr_1 I 2 III
|
||||
/tmp/parallel_results_test/testDstderr_1 I 2 IIII
|
||||
/tmp/parallel_results_test/testDstderr_1 II 2 III
|
||||
/tmp/parallel_results_test/testDstderr_1 II 2 IIII
|
||||
/tmp/parallel_results_test/testDstdout_1 I 2 III
|
||||
/tmp/parallel_results_test/testDstdout_1 I 2 IIII
|
||||
/tmp/parallel_results_test/testDstdout_1 II 2 III
|
||||
/tmp/parallel_results_test/testDstdout_1 II 2 IIII
|
||||
/tmp/parallel_results_test/testDstderr 1 I 2 III
|
||||
/tmp/parallel_results_test/testDstderr 1 I 2 IIII
|
||||
/tmp/parallel_results_test/testDstderr 1 II 2 III
|
||||
/tmp/parallel_results_test/testDstderr 1 II 2 IIII
|
||||
/tmp/parallel_results_test/testDstdout 1 I 2 III
|
||||
/tmp/parallel_results_test/testDstdout 1 I 2 IIII
|
||||
/tmp/parallel_results_test/testDstdout 1 II 2 III
|
||||
/tmp/parallel_results_test/testDstdout 1 II 2 IIII
|
||||
### Test --result
|
||||
I III
|
||||
I IIII
|
||||
II III
|
||||
II IIII
|
||||
/tmp/parallel_results_test/testEstderr_1 I 2 III
|
||||
/tmp/parallel_results_test/testEstderr_1 I 2 IIII
|
||||
/tmp/parallel_results_test/testEstderr_1 II 2 III
|
||||
/tmp/parallel_results_test/testEstderr_1 II 2 IIII
|
||||
/tmp/parallel_results_test/testEstdout_1 I 2 III
|
||||
/tmp/parallel_results_test/testEstdout_1 I 2 IIII
|
||||
/tmp/parallel_results_test/testEstdout_1 II 2 III
|
||||
/tmp/parallel_results_test/testEstdout_1 II 2 IIII
|
||||
/tmp/parallel_results_test/testEstderr 1 I 2 III
|
||||
/tmp/parallel_results_test/testEstderr 1 I 2 IIII
|
||||
/tmp/parallel_results_test/testEstderr 1 II 2 III
|
||||
/tmp/parallel_results_test/testEstderr 1 II 2 IIII
|
||||
/tmp/parallel_results_test/testEstdout 1 I 2 III
|
||||
/tmp/parallel_results_test/testEstdout 1 I 2 IIII
|
||||
/tmp/parallel_results_test/testEstdout 1 II 2 III
|
||||
/tmp/parallel_results_test/testEstdout 1 II 2 IIII
|
||||
### Test --results --header :
|
||||
I III
|
||||
I IIII
|
||||
II III
|
||||
II IIII
|
||||
/tmp/parallel_results_test/testBstderr_a I b III
|
||||
/tmp/parallel_results_test/testBstderr_a I b IIII
|
||||
/tmp/parallel_results_test/testBstderr_a II b III
|
||||
/tmp/parallel_results_test/testBstderr_a II b IIII
|
||||
/tmp/parallel_results_test/testBstdout_a I b III
|
||||
/tmp/parallel_results_test/testBstdout_a I b IIII
|
||||
/tmp/parallel_results_test/testBstdout_a II b III
|
||||
/tmp/parallel_results_test/testBstdout_a II b IIII
|
||||
/tmp/parallel_results_test/testBstderr a I b III
|
||||
/tmp/parallel_results_test/testBstderr a I b IIII
|
||||
/tmp/parallel_results_test/testBstderr a II b III
|
||||
/tmp/parallel_results_test/testBstderr a II b IIII
|
||||
/tmp/parallel_results_test/testBstdout a I b III
|
||||
/tmp/parallel_results_test/testBstdout a I b IIII
|
||||
/tmp/parallel_results_test/testBstdout a II b III
|
||||
/tmp/parallel_results_test/testBstdout a II b IIII
|
||||
### Test --results --header :
|
||||
I III
|
||||
I IIII
|
||||
II III
|
||||
II IIII
|
||||
/tmp/parallel_results_test/testCstderr_a I b III
|
||||
/tmp/parallel_results_test/testCstderr_a I b IIII
|
||||
/tmp/parallel_results_test/testCstderr_a II b III
|
||||
/tmp/parallel_results_test/testCstderr_a II b IIII
|
||||
/tmp/parallel_results_test/testCstdout_a I b III
|
||||
/tmp/parallel_results_test/testCstdout_a I b IIII
|
||||
/tmp/parallel_results_test/testCstdout_a II b III
|
||||
/tmp/parallel_results_test/testCstdout_a II b IIII
|
||||
/tmp/parallel_results_test/testCstderr a I b III
|
||||
/tmp/parallel_results_test/testCstderr a I b IIII
|
||||
/tmp/parallel_results_test/testCstderr a II b III
|
||||
/tmp/parallel_results_test/testCstderr a II b IIII
|
||||
/tmp/parallel_results_test/testCstdout a I b III
|
||||
/tmp/parallel_results_test/testCstdout a I b IIII
|
||||
/tmp/parallel_results_test/testCstdout a II b III
|
||||
/tmp/parallel_results_test/testCstdout a II b IIII
|
||||
### Test --results --header : piped
|
||||
/tmp/parallel_results_test/testF_stderr_Col backslash\\tab\tslash\_null\0eof
|
||||
/tmp/parallel_results_test/testF_stdout_Col backslash\\tab\tslash\_null\0eof
|
||||
/tmp/parallel_results_test/testF_stderr Col backslash\\tab\tslash\_null\0eof
|
||||
/tmp/parallel_results_test/testF_stdout Col backslash\\tab\tslash\_null\0eof
|
||||
|
|
|
@ -22,7 +22,7 @@ a
|
|||
ls b|wc;echo b
|
||||
4 4 26
|
||||
b
|
||||
ls 中国\ \(Zhōngguó\)|wc;echo 中国\ \(Zhōngguó\)
|
||||
ls \ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)|wc;echo \ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)
|
||||
4 12 118
|
||||
中国 (Zhōngguó)
|
||||
1 1-col.diff
|
||||
|
@ -47,7 +47,7 @@ touch -- 2-col/abc-2-col-2-col.diff
|
|||
touch -- 2-col/abc-2-col-2-col.txt
|
||||
touch -- a/abc-a-a
|
||||
touch -- b/abc-b-b
|
||||
touch -- 中国\ \(Zhōngguó\)/abc-中国\ \(Zhōngguó\)-中国\ \(Zhōngguó\)
|
||||
touch -- \ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)/abc-\ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)-\ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)
|
||||
rm -- 1-col/abc-1-col-1-col
|
||||
rm -- 1-col/abc-1-col-1-col.diff
|
||||
rm -- 1-col/abc-1-col-1-col.txt
|
||||
|
@ -56,7 +56,7 @@ rm -- 2-col/abc-2-col-2-col.diff
|
|||
rm -- 2-col/abc-2-col-2-col.txt
|
||||
rm -- a/abc-a-a
|
||||
rm -- b/abc-b-b
|
||||
rm -- 中国\ \(Zhōngguó\)/abc-中国\ \(Zhōngguó\)-中国\ \(Zhōngguó\)
|
||||
rm -- \ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)/abc-\ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)-\ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)
|
||||
### Test -m
|
||||
1foo bar joe.gif2foo bar joe3 Afoo bar joeBfoo bar joeC
|
||||
1foo2foo3 1bar2bar3 1joe.gif2joe3 AfooBfooC AbarBbarC AjoeBjoeC
|
||||
|
|
|
@ -2,5 +2,47 @@
|
|||
1
|
||||
2
|
||||
3
|
||||
### Test --env - https://savannah.gnu.org/bugs/?37351
|
||||
a 2 spaces b 1
|
||||
a 2 spaces b 1
|
||||
a 2 spaces b 1
|
||||
a 2 spaces b 1
|
||||
a 2 spaces b 1
|
||||
a 2 spaces b a > My brother's 12" records < b 2
|
||||
a 2 spaces b a > My brother's 12" records < b 2
|
||||
a 2 spaces b a > My brother's 12" records < b 2
|
||||
a 2 spaces b a > My brother's 12" records < b 2
|
||||
a 2 spaces b a > My brother's 12" records < b 2
|
||||
a 2 spaces b a > My brother's 12" records < b 3
|
||||
a 2 spaces b a > My brother's 12" records < b 3
|
||||
a 2 spaces b a > My brother's 12" records < b 3
|
||||
a 2 spaces b a > My brother's 12" records < b 3
|
||||
a 2 spaces b a > My brother's 12" records < b 3
|
||||
a \'"b 4
|
||||
a \'"b 4
|
||||
a \'"b 4
|
||||
a \'"b 4
|
||||
a \'"b 4
|
||||
a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
||||
a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
||||
a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
||||
a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
||||
a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
||||
### Test --env for \n and \\ - single and double - no output is good
|
||||
2 setenv: Too many arguments.
|
||||
1 export: Command not found.
|
||||
1 V: Undefined variable.
|
||||
2 1 10V2= 10
|
||||
3 2\\ \92V2=\\ \92
|
||||
1 2\ \92V2=\ \92
|
||||
### Test --env for \n and \\ - single and double --onall - no output is good
|
||||
2 setenv: Too many arguments.
|
||||
1 export: Command not found.
|
||||
1 V: Undefined variable.
|
||||
2 1 10V2= 10
|
||||
3 2\\ \92V2=\\ \92
|
||||
1 2\ \92V2=\ \92
|
||||
### Test --env for \160 - which kills csh - single and double - no output is good
|
||||
### Test --env for \160 - which kills csh - single and double --onall - no output is good
|
||||
### Test too slow spawning
|
||||
OK
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
### Test --joblog with exitval and Test --joblog with signal
|
||||
exitval OK
|
||||
signal OK
|
||||
### 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 --onall - no output is good
|
||||
|
|
Loading…
Reference in a new issue