mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-12-22 20:57:53 +00:00
parallel: --return /./ fixed.
This commit is contained in:
parent
627d2808d0
commit
546f5aea03
271
src/parallel
271
src/parallel
|
@ -2353,8 +2353,10 @@ sub save_original_signal_handler {
|
|||
# Remember the original signal handler
|
||||
# Returns: N/A
|
||||
$SIG{TERM} ||= sub { exit 0; }; # $SIG{TERM} is not set on Mac OS X
|
||||
$SIG{INT} = sub { if($opt::tmux) { qx { tmux kill-session -t p$$ }; } exit -1 };
|
||||
$SIG{TERM} = sub { if($opt::tmux) { qx { tmux kill-session -t p$$ }; } exit -1 };
|
||||
$SIG{INT} = sub { if($opt::tmux) { qx { tmux kill-session -t p$$ }; }
|
||||
unlink keys %Global::unlink; exit -1 };
|
||||
$SIG{TERM} = sub { if($opt::tmux) { qx { tmux kill-session -t p$$ }; }
|
||||
unlink keys %Global::unlink; exit -1 };
|
||||
%Global::original_sig = %SIG;
|
||||
$SIG{TERM} = sub {}; # Dummy until jobs really start
|
||||
}
|
||||
|
@ -3070,128 +3072,135 @@ sub swap_activity {
|
|||
return $self->{'swap_activity'};
|
||||
}
|
||||
|
||||
sub swapactivityscript {
|
||||
# Returns:
|
||||
# shellscript for detecting swap activity
|
||||
#
|
||||
# arguments for vmstat are OS dependant
|
||||
# swap_in and swap_out are in different columns depending on OS
|
||||
#
|
||||
my %vmstat = (
|
||||
# linux: $7*$8
|
||||
# $ vmstat 1 2
|
||||
# procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
|
||||
# r b swpd free buff cache si so bi bo in cs us sy id wa
|
||||
# 5 0 51208 1701096 198012 18857888 0 0 37 153 28 19 56 11 33 1
|
||||
# 3 0 51208 1701288 198012 18857972 0 0 0 0 3638 10412 15 3 82 0
|
||||
'linux' => ['vmstat 1 2 | tail -n1', '$7*$8'],
|
||||
{
|
||||
my $script;
|
||||
|
||||
# solaris: $6*$7
|
||||
# $ vmstat -S 1 2
|
||||
# kthr memory page disk faults cpu
|
||||
# r b w swap free si so pi po fr de sr s3 s4 -- -- in sy cs us sy id
|
||||
# 0 0 0 4628952 3208408 0 0 3 1 1 0 0 -0 2 0 0 263 613 246 1 2 97
|
||||
# 0 0 0 4552504 3166360 0 0 0 0 0 0 0 0 0 0 0 246 213 240 1 1 98
|
||||
'solaris' => ['vmstat -S 1 2 | tail -1', '$6*$7'],
|
||||
|
||||
# darwin (macosx): $21*$22
|
||||
# $ vm_stat -c 2 1
|
||||
# Mach Virtual Memory Statistics: (page size of 4096 bytes)
|
||||
# free active specul inactive throttle wired prgable faults copy 0fill reactive purged file-backed anonymous cmprssed cmprssor dcomprs comprs pageins pageout swapins swapouts
|
||||
# 346306 829050 74871 606027 0 240231 90367 544858K 62343596 270837K 14178 415070 570102 939846 356 370 116 922 4019813 4 0 0
|
||||
# 345740 830383 74875 606031 0 239234 90369 2696 359 553 0 0 570110 941179 356 370 0 0 0 0 0 0
|
||||
'darwin' => ['vm_stat -c 2 1 | tail -n1', '$21*$22'],
|
||||
|
||||
# ultrix: $12*$13
|
||||
# $ vmstat -S 1 2
|
||||
# procs faults cpu memory page disk
|
||||
# r b w in sy cs us sy id avm fre si so pi po fr de sr s0
|
||||
# 1 0 0 4 23 2 3 0 97 7743 217k 0 0 0 0 0 0 0 0
|
||||
# 1 0 0 6 40 8 0 1 99 7743 217k 0 0 3 0 0 0 0 0
|
||||
'ultrix' => ['vmstat -S 1 2 | tail -1', '$12*$13'],
|
||||
|
||||
# aix: $6*$7
|
||||
# $ vmstat 1 2
|
||||
# System configuration: lcpu=1 mem=2048MB
|
||||
#
|
||||
# kthr memory page faults cpu
|
||||
# ----- ----------- ------------------------ ------------ -----------
|
||||
# r b avm fre re pi po fr sr cy in sy cs us sy id wa
|
||||
# 0 0 333933 241803 0 0 0 0 0 0 10 143 90 0 0 99 0
|
||||
# 0 0 334125 241569 0 0 0 0 0 0 37 5368 184 0 9 86 5
|
||||
'aix' => ['vmstat 1 2 | tail -n1', '$6*$7'],
|
||||
|
||||
# freebsd: $8*$9
|
||||
# $ vmstat -H 1 2
|
||||
# procs memory page disks faults cpu
|
||||
# r b w avm fre flt re pi po fr sr ad0 ad1 in sy cs us sy id
|
||||
# 1 0 0 596716 19560 32 0 0 0 33 8 0 0 11 220 277 0 0 99
|
||||
# 0 0 0 596716 19560 2 0 0 0 0 0 0 0 11 144 263 0 1 99
|
||||
'freebsd' => ['vmstat -H 1 2 | tail -n1', '$8*$9'],
|
||||
|
||||
# mirbsd: $8*$9
|
||||
# $ vmstat 1 2
|
||||
# procs memory page disks traps cpu
|
||||
# r b w avm fre flt re pi po fr sr wd0 cd0 int sys cs us sy id
|
||||
# 0 0 0 25776 164968 34 0 0 0 0 0 0 0 230 259 38 4 0 96
|
||||
# 0 0 0 25776 164968 24 0 0 0 0 0 0 0 237 275 37 0 0 100
|
||||
'mirbsd' => ['vmstat 1 2 | tail -n1', '$8*$9'],
|
||||
|
||||
# netbsd: $7*$8
|
||||
# $ vmstat 1 2
|
||||
# procs memory page disks faults cpu
|
||||
# r b avm fre flt re pi po fr sr w0 w1 in sy cs us sy id
|
||||
# 0 0 138452 6012 54 0 0 0 1 2 3 0 4 100 23 0 0 100
|
||||
# 0 0 138456 6008 1 0 0 0 0 0 0 0 7 26 19 0 0 100
|
||||
'netbsd' => ['vmstat 1 2 | tail -n1', '$7*$8'],
|
||||
|
||||
# openbsd: $8*$9
|
||||
# $ vmstat 1 2
|
||||
# procs memory page disks traps cpu
|
||||
# r b w avm fre flt re pi po fr sr wd0 wd1 int sys cs us sy id
|
||||
# 0 0 0 76596 109944 73 0 0 0 0 0 0 1 5 259 22 0 1 99
|
||||
# 0 0 0 76604 109936 24 0 0 0 0 0 0 0 7 114 20 0 1 99
|
||||
'openbsd' => ['vmstat 1 2 | tail -n1', '$8*$9'],
|
||||
|
||||
# hpux: $8*$9
|
||||
# $ vmstat 1 2
|
||||
# procs memory page faults cpu
|
||||
# r b w avm free re at pi po fr de sr in sy cs us sy id
|
||||
# 1 0 0 247211 216476 4 1 0 0 0 0 0 102 73005 54 6 11 83
|
||||
# 1 0 0 247211 216421 43 9 0 0 0 0 0 144 1675 96 25269512791222387000 25269512791222387000 105
|
||||
'hpux' => ['vmstat 1 2 | tail -n1', '$8*$9'],
|
||||
|
||||
# dec_osf (tru64): $11*$12
|
||||
# $ vmstat 1 2
|
||||
# Virtual Memory Statistics: (pagesize = 8192)
|
||||
# procs memory pages intr cpu
|
||||
# r w u act free wire fault cow zero react pin pout in sy cs us sy id
|
||||
# 3 181 36 51K 1895 8696 348M 59M 122M 259 79M 0 5 218 302 4 1 94
|
||||
# 3 181 36 51K 1893 8696 3 15 21 0 28 0 4 81 321 1 1 98
|
||||
'dec_osf' => ['vmstat 1 2 | tail -n1', '$11*$12'],
|
||||
|
||||
# gnu (hurd): $7*$8
|
||||
# $ vmstat -k 1 2
|
||||
# (pagesize: 4, size: 512288, swap size: 894972)
|
||||
# free actv inact wired zeroed react pgins pgouts pfaults cowpfs hrat caobj cache swfree
|
||||
# 371940 30844 89228 20276 298348 0 48192 19016 756105 99808 98% 876 20628 894972
|
||||
# 371940 30844 89228 20276 +0 +0 +0 +0 +42 +2 98% 876 20628 894972
|
||||
'gnu' => ['vmstat -k 1 2 | tail -n1', '$7*$8'],
|
||||
|
||||
# -nto (qnx has no swap)
|
||||
#-irix
|
||||
#-svr5 (scosysv)
|
||||
);
|
||||
my $perlscript = "";
|
||||
for my $os (keys %vmstat) {
|
||||
#q[ { vmstat 1 2 2> /dev/null || vmstat -c 1 2; } | ].
|
||||
# q[ awk 'NR!=4{next} NF==17||NF==16{print $7*$8} NF==22{print $21*$22} {exit}' ];
|
||||
$vmstat{$os}[1] =~ s/\$/\\\\\\\$/g; # $ => \\\$
|
||||
$perlscript .= 'if($^O eq "'.$os.'") { print `'.$vmstat{$os}[0].' | awk "{print ' .
|
||||
$vmstat{$os}[1] . '}"` }';
|
||||
sub swapactivityscript {
|
||||
# Returns:
|
||||
# shellscript for detecting swap activity
|
||||
#
|
||||
# arguments for vmstat are OS dependant
|
||||
# swap_in and swap_out are in different columns depending on OS
|
||||
#
|
||||
if(not $script) {
|
||||
my %vmstat = (
|
||||
# linux: $7*$8
|
||||
# $ vmstat 1 2
|
||||
# procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
|
||||
# r b swpd free buff cache si so bi bo in cs us sy id wa
|
||||
# 5 0 51208 1701096 198012 18857888 0 0 37 153 28 19 56 11 33 1
|
||||
# 3 0 51208 1701288 198012 18857972 0 0 0 0 3638 10412 15 3 82 0
|
||||
'linux' => ['vmstat 1 2 | tail -n1', '$7*$8'],
|
||||
|
||||
# solaris: $6*$7
|
||||
# $ vmstat -S 1 2
|
||||
# kthr memory page disk faults cpu
|
||||
# r b w swap free si so pi po fr de sr s3 s4 -- -- in sy cs us sy id
|
||||
# 0 0 0 4628952 3208408 0 0 3 1 1 0 0 -0 2 0 0 263 613 246 1 2 97
|
||||
# 0 0 0 4552504 3166360 0 0 0 0 0 0 0 0 0 0 0 246 213 240 1 1 98
|
||||
'solaris' => ['vmstat -S 1 2 | tail -1', '$6*$7'],
|
||||
|
||||
# darwin (macosx): $21*$22
|
||||
# $ vm_stat -c 2 1
|
||||
# Mach Virtual Memory Statistics: (page size of 4096 bytes)
|
||||
# free active specul inactive throttle wired prgable faults copy 0fill reactive purged file-backed anonymous cmprssed cmprssor dcomprs comprs pageins pageout swapins swapouts
|
||||
# 346306 829050 74871 606027 0 240231 90367 544858K 62343596 270837K 14178 415070 570102 939846 356 370 116 922 4019813 4 0 0
|
||||
# 345740 830383 74875 606031 0 239234 90369 2696 359 553 0 0 570110 941179 356 370 0 0 0 0 0 0
|
||||
'darwin' => ['vm_stat -c 2 1 | tail -n1', '$21*$22'],
|
||||
|
||||
# ultrix: $12*$13
|
||||
# $ vmstat -S 1 2
|
||||
# procs faults cpu memory page disk
|
||||
# r b w in sy cs us sy id avm fre si so pi po fr de sr s0
|
||||
# 1 0 0 4 23 2 3 0 97 7743 217k 0 0 0 0 0 0 0 0
|
||||
# 1 0 0 6 40 8 0 1 99 7743 217k 0 0 3 0 0 0 0 0
|
||||
'ultrix' => ['vmstat -S 1 2 | tail -1', '$12*$13'],
|
||||
|
||||
# aix: $6*$7
|
||||
# $ vmstat 1 2
|
||||
# System configuration: lcpu=1 mem=2048MB
|
||||
#
|
||||
# kthr memory page faults cpu
|
||||
# ----- ----------- ------------------------ ------------ -----------
|
||||
# r b avm fre re pi po fr sr cy in sy cs us sy id wa
|
||||
# 0 0 333933 241803 0 0 0 0 0 0 10 143 90 0 0 99 0
|
||||
# 0 0 334125 241569 0 0 0 0 0 0 37 5368 184 0 9 86 5
|
||||
'aix' => ['vmstat 1 2 | tail -n1', '$6*$7'],
|
||||
|
||||
# freebsd: $8*$9
|
||||
# $ vmstat -H 1 2
|
||||
# procs memory page disks faults cpu
|
||||
# r b w avm fre flt re pi po fr sr ad0 ad1 in sy cs us sy id
|
||||
# 1 0 0 596716 19560 32 0 0 0 33 8 0 0 11 220 277 0 0 99
|
||||
# 0 0 0 596716 19560 2 0 0 0 0 0 0 0 11 144 263 0 1 99
|
||||
'freebsd' => ['vmstat -H 1 2 | tail -n1', '$8*$9'],
|
||||
|
||||
# mirbsd: $8*$9
|
||||
# $ vmstat 1 2
|
||||
# procs memory page disks traps cpu
|
||||
# r b w avm fre flt re pi po fr sr wd0 cd0 int sys cs us sy id
|
||||
# 0 0 0 25776 164968 34 0 0 0 0 0 0 0 230 259 38 4 0 96
|
||||
# 0 0 0 25776 164968 24 0 0 0 0 0 0 0 237 275 37 0 0 100
|
||||
'mirbsd' => ['vmstat 1 2 | tail -n1', '$8*$9'],
|
||||
|
||||
# netbsd: $7*$8
|
||||
# $ vmstat 1 2
|
||||
# procs memory page disks faults cpu
|
||||
# r b avm fre flt re pi po fr sr w0 w1 in sy cs us sy id
|
||||
# 0 0 138452 6012 54 0 0 0 1 2 3 0 4 100 23 0 0 100
|
||||
# 0 0 138456 6008 1 0 0 0 0 0 0 0 7 26 19 0 0 100
|
||||
'netbsd' => ['vmstat 1 2 | tail -n1', '$7*$8'],
|
||||
|
||||
# openbsd: $8*$9
|
||||
# $ vmstat 1 2
|
||||
# procs memory page disks traps cpu
|
||||
# r b w avm fre flt re pi po fr sr wd0 wd1 int sys cs us sy id
|
||||
# 0 0 0 76596 109944 73 0 0 0 0 0 0 1 5 259 22 0 1 99
|
||||
# 0 0 0 76604 109936 24 0 0 0 0 0 0 0 7 114 20 0 1 99
|
||||
'openbsd' => ['vmstat 1 2 | tail -n1', '$8*$9'],
|
||||
|
||||
# hpux: $8*$9
|
||||
# $ vmstat 1 2
|
||||
# procs memory page faults cpu
|
||||
# r b w avm free re at pi po fr de sr in sy cs us sy id
|
||||
# 1 0 0 247211 216476 4 1 0 0 0 0 0 102 73005 54 6 11 83
|
||||
# 1 0 0 247211 216421 43 9 0 0 0 0 0 144 1675 96 25269512791222387000 25269512791222387000 105
|
||||
'hpux' => ['vmstat 1 2 | tail -n1', '$8*$9'],
|
||||
|
||||
# dec_osf (tru64): $11*$12
|
||||
# $ vmstat 1 2
|
||||
# Virtual Memory Statistics: (pagesize = 8192)
|
||||
# procs memory pages intr cpu
|
||||
# r w u act free wire fault cow zero react pin pout in sy cs us sy id
|
||||
# 3 181 36 51K 1895 8696 348M 59M 122M 259 79M 0 5 218 302 4 1 94
|
||||
# 3 181 36 51K 1893 8696 3 15 21 0 28 0 4 81 321 1 1 98
|
||||
'dec_osf' => ['vmstat 1 2 | tail -n1', '$11*$12'],
|
||||
|
||||
# gnu (hurd): $7*$8
|
||||
# $ vmstat -k 1 2
|
||||
# (pagesize: 4, size: 512288, swap size: 894972)
|
||||
# free actv inact wired zeroed react pgins pgouts pfaults cowpfs hrat caobj cache swfree
|
||||
# 371940 30844 89228 20276 298348 0 48192 19016 756105 99808 98% 876 20628 894972
|
||||
# 371940 30844 89228 20276 +0 +0 +0 +0 +42 +2 98% 876 20628 894972
|
||||
'gnu' => ['vmstat -k 1 2 | tail -n1', '$7*$8'],
|
||||
|
||||
# -nto (qnx has no swap)
|
||||
#-irix
|
||||
#-svr5 (scosysv)
|
||||
);
|
||||
my $perlscript = "";
|
||||
for my $os (keys %vmstat) {
|
||||
#q[ { vmstat 1 2 2> /dev/null || vmstat -c 1 2; } | ].
|
||||
# q[ awk 'NR!=4{next} NF==17||NF==16{print $7*$8} NF==22{print $21*$22} {exit}' ];
|
||||
$vmstat{$os}[1] =~ s/\$/\\\\\\\$/g; # $ => \\\$
|
||||
$perlscript .= 'if($^O eq "'.$os.'") { print `'.$vmstat{$os}[0].' | awk "{print ' .
|
||||
$vmstat{$os}[1] . '}"` }';
|
||||
}
|
||||
$perlscript = "perl -e " . ::shell_quote_scalar($perlscript);
|
||||
$script = $Global::envvar. " " .$perlscript;
|
||||
}
|
||||
return $script;
|
||||
}
|
||||
$perlscript = "perl -e " . ::shell_quote_scalar($perlscript);
|
||||
return $Global::envvar. " " .$perlscript;
|
||||
}
|
||||
|
||||
sub too_fast_remote_login {
|
||||
|
@ -4804,14 +4813,16 @@ sub kill {
|
|||
@pidtable = `$pid_parentpid_cmd{$^O}`;
|
||||
for (@pidtable) {
|
||||
/(\S+)\s+(\S+)/ or ::die_bug("pidtable format");
|
||||
push(@{$children_of{$2}},$1);
|
||||
push @{$children_of{$2}}, $1;
|
||||
}
|
||||
my @more = ($pid);
|
||||
# While more (grand)*children
|
||||
while(@more) {
|
||||
my @m;
|
||||
push @pids,@more;
|
||||
push @pids, @more;
|
||||
for my $parent (@more) {
|
||||
if($children_of{$parent}) {
|
||||
# add the children of this parent
|
||||
push @m, @{$children_of{$parent}};
|
||||
}
|
||||
}
|
||||
|
@ -5057,7 +5068,6 @@ sub sshreturn {
|
|||
my $rsync_opt = "-rlDzR -e".::shell_quote_scalar($sshcmd);
|
||||
my $pre = "";
|
||||
for my $file ($self->return()) {
|
||||
$file =~ s:/\./:/:g; # Rsync treats /./ special. We dont want that
|
||||
$file =~ s:^\./::g; # Remove ./ if any
|
||||
my $relpath = ($file !~ m:^/:); # Is the path relative?
|
||||
my $cd = "";
|
||||
|
@ -5070,15 +5080,20 @@ sub sshreturn {
|
|||
}
|
||||
# Only load File::Basename if actually needed
|
||||
$Global::use{"File::Basename"} ||= eval "use File::Basename; 1;";
|
||||
$cd = ::shell_quote_file(::dirname($file));
|
||||
# dir/./file means relative to dir, so remove dir on remote
|
||||
$file =~ m:(.*)/\./:;
|
||||
my $basedir = $1 ? ::shell_quote_file($1."/") : "";
|
||||
my $nobasedir = $file;
|
||||
$nobasedir =~ s:.*/\./::;
|
||||
$cd = ::shell_quote_file(::dirname($nobasedir));
|
||||
my $rsync_cd = '--rsync-path='.::shell_quote_scalar("cd $wd$cd; rsync");
|
||||
my $basename = ::shell_quote_scalar(::shell_quote_file(basename($file)));
|
||||
# --return
|
||||
# mkdir -p /home/tange/dir/subdir/;
|
||||
# rsync -rlDzR --rsync-path="cd /home/tange/dir/subdir/; rsync"
|
||||
# server:file.gz /home/tange/dir/subdir/
|
||||
$pre .= "mkdir -p $cd; rsync $rsync_cd $rsync_opt $serverlogin:".
|
||||
$basename . " ".$cd.";";
|
||||
$pre .= "mkdir -p $basedir$cd; rsync $rsync_cd $rsync_opt $serverlogin:".
|
||||
$basename . " ".$basedir.$cd.";";
|
||||
}
|
||||
return $pre;
|
||||
}
|
||||
|
|
|
@ -768,9 +768,9 @@ status will be the exit status from the failing job.
|
|||
@item 1-99%
|
||||
@anchor{1-99%}
|
||||
|
||||
If @emph{val}% of the jobs fail: Do not start new jobs, but complete the
|
||||
running jobs including cleanup. The exit status will be the exit
|
||||
status from the last failing job.
|
||||
If @emph{val}% of the jobs fail and minimum 3: Do not start new jobs, but
|
||||
complete the running jobs including cleanup. The exit status will be
|
||||
the exit status from the last failing job.
|
||||
|
||||
@end table
|
||||
|
||||
|
@ -975,11 +975,11 @@ processes on the computer is less than @emph{max-load}. @emph{max-load} uses
|
|||
the same syntax as @strong{--jobs}, so @emph{100%} for one per CPU is a valid
|
||||
setting. Only difference is 0 which is interpreted as 0.01.
|
||||
|
||||
@item @strong{--controlmaster} (experimental)
|
||||
@anchor{@strong{--controlmaster} (experimental)}
|
||||
@item @strong{--controlmaster}
|
||||
@anchor{@strong{--controlmaster}}
|
||||
|
||||
@item @strong{-M} (experimental)
|
||||
@anchor{@strong{-M} (experimental)}
|
||||
@item @strong{-M}
|
||||
@anchor{@strong{-M}}
|
||||
|
||||
Use ssh's ControlMaster to make ssh connections faster. Useful if jobs
|
||||
run remote and are very fast to run. This is disabled for sshlogins
|
||||
|
|
|
@ -124,7 +124,7 @@
|
|||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "PARALLEL_TUTORIAL 1"
|
||||
.TH PARALLEL_TUTORIAL 1 "2014-07-18" "20140711" "parallel"
|
||||
.TH PARALLEL_TUTORIAL 1 "2014-07-20" "20140711" "parallel"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.if n .ad l
|
||||
|
@ -1631,6 +1631,29 @@ Output:
|
|||
\& echo 1; exit 1
|
||||
.Ve
|
||||
.PP
|
||||
If \-\-halt is given a percentage this percentage of the jobs must fail
|
||||
(though minimum 3) before \s-1GNU\s0 Parallel stops spawning more jobs:
|
||||
.PP
|
||||
.Vb 1
|
||||
\& parallel \-j2 \-\-halt 20% echo {}\e; exit {} ::: 0 0 1 2 3 4 5 6 7
|
||||
.Ve
|
||||
.PP
|
||||
Output:
|
||||
.PP
|
||||
.Vb 11
|
||||
\& 0
|
||||
\& 0
|
||||
\& 1
|
||||
\& 2
|
||||
\& 3
|
||||
\& 4
|
||||
\& parallel: Starting no more jobs. Waiting for 2 jobs to finish. This job failed:
|
||||
\& echo 4; exit 4
|
||||
\& 5
|
||||
\& parallel: Starting no more jobs. Waiting for 1 jobs to finish. This job failed:
|
||||
\& echo 5; exit 5
|
||||
.Ve
|
||||
.PP
|
||||
\&\s-1GNU\s0 Parallel can retry the command with \-\-retries. This is useful if a
|
||||
command fails for unkown reasons now and then.
|
||||
.PP
|
||||
|
|
|
@ -1116,6 +1116,23 @@ with --halt 1:</p>
|
|||
1
|
||||
parallel: This job failed:
|
||||
echo 1; exit 1</pre>
|
||||
<p>If --halt is given a percentage this percentage of the jobs must fail
|
||||
(though minimum 3) before GNU Parallel stops spawning more jobs:</p>
|
||||
<pre>
|
||||
parallel -j2 --halt 20% echo {}\; exit {} ::: 0 0 1 2 3 4 5 6 7</pre>
|
||||
<p>Output:</p>
|
||||
<pre>
|
||||
0
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
parallel: Starting no more jobs. Waiting for 2 jobs to finish. This job failed:
|
||||
echo 4; exit 4
|
||||
5
|
||||
parallel: Starting no more jobs. Waiting for 1 jobs to finish. This job failed:
|
||||
echo 5; exit 5</pre>
|
||||
<p>GNU Parallel can retry the command with --retries. This is useful if a
|
||||
command fails for unkown reasons now and then.</p>
|
||||
<pre>
|
||||
|
|
Binary file not shown.
|
@ -14,7 +14,6 @@ perl -e '$|=1;while($t++<3){sleep(1);print "."}' &
|
|||
stdout /usr/bin/time -f %e niceload -l 8 -p $! | perl -ne '$_ >= 5 and print "OK\n"'
|
||||
|
||||
echo "### Test --sensor -l negative"
|
||||
# The test does not currently work on my laptop
|
||||
#timeout 10 nice nice dd iflag=fullblock if=/dev/zero of=/dev/null bs=11G &
|
||||
#niceload -t 1 --sensor 'free | field 3 | head -3|tail -1' -l -10000000 "free -g|egrep -q /.*1[0-9]. && echo more than 6 GB used"
|
||||
timeout 10 nice nice dd iflag=fullblock if=/dev/zero of=/dev/null bs=11G &
|
||||
niceload -t 1 --sensor 'free | field 3 | head -3|tail -1' -l -10000000 "free -g|egrep -q /.*1[0-9]. && echo more than 6 GB used"
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@ echo '### Test installation missing pod2*'
|
|||
parallel which ::: pod2html pod2man pod2texi pod2pdf | sudo parallel mv {} {}.hidden
|
||||
|
||||
cd ~/privat/parallel
|
||||
stdout make dist | perl -pe 's/\d{8}/00000000/g'
|
||||
stdout make dist | perl -pe 's/make\[\d\]/make[0]/g;s/\d{8}/00000000/g'
|
||||
LAST=$(ls *tar.gz | tail -n1)
|
||||
cd /tmp
|
||||
rm -rf parallel-20??????/
|
||||
tar xf ~/privat/parallel/$LAST
|
||||
cd parallel-20??????/
|
||||
touch src/*pod src/sql
|
||||
./configure && sudo stdout make install | perl -pe 's/\d{8}/00000000/g'
|
||||
./configure && sudo stdout make install | perl -pe 's/make\[\d\]/make[0]/g;s/\d{8}/00000000/g'
|
||||
|
||||
parallel which {}.hidden ::: pod2html pod2man pod2texi pod2pdf | sudo parallel mv {} {.}
|
||||
|
|
|
@ -75,50 +75,42 @@ echo "### Test --wd \"'\""
|
|||
cat ~/"'"/uNiQuE_sTrInG.9;
|
||||
stdout rm ~/"'"/uNiQuE_sTrInG.9
|
||||
|
||||
echo '### Test --trc --/--foo1'
|
||||
echo '### Test --trc ./--/--foo1'
|
||||
mkdir -p ./--; echo 'Content --/--foo1' > ./--/--foo1;
|
||||
stdout parallel --trc {}.1 -S lo '(cat {}; echo remote1) > {}.1' ::: ./--/--foo1; cat ./--/--foo1.1;
|
||||
stdout parallel --trc {}.2 -S lo '(cat ./{}; echo remote2) > {}.2' ::: --/--foo1; cat ./--/--foo1.2
|
||||
|
||||
echo '### Test --trc :dir/:foo2'
|
||||
echo '### Test --trc ./:dir/:foo2'
|
||||
mkdir -p ./:dir; echo 'Content :dir/:foo2' > ./:dir/:foo2;
|
||||
stdout parallel --trc {}.1 -S lo '(cat {}; echo remote1) > {}.1' ::: ./:dir/:foo2; cat ./:dir/:foo2.1;
|
||||
stdout parallel --trc {}.2 -S lo '(cat ./{}; echo remote2) > {}.2' ::: :dir/:foo2; cat ./:dir/:foo2.2
|
||||
|
||||
echo '### Test --trc " "/" "foo3'
|
||||
echo '### Test --trc ./" "/" "foo3'
|
||||
mkdir -p ./" "; echo 'Content _/_foo3' > ./" "/" "foo3;
|
||||
stdout parallel --trc {}.1 -S lo '(cat {}; echo remote1) > {}.1' ::: ./" "/" "foo3; cat ./" "/" "foo3.1;
|
||||
stdout parallel --trc {}.2 -S lo '(cat ./{}; echo remote2) > {}.2' ::: " "/" "foo3; cat ./" "/" "foo3.2
|
||||
|
||||
#echo '### Test --trc --/./--foo4'
|
||||
# mkdir -p ./--; echo 'Content --/./--foo4' > ./--/./--foo4;
|
||||
# stdout parallel --trc {}.1 -S lo '(cat ./--foo4; echo remote{}) > --foo4.1' ::: --/./--foo4; cat ./--/./--foo4.1
|
||||
#
|
||||
#echo '### Test --trc :/:foo2'
|
||||
# mkdir -p ./:; echo 'Content :/:foo2' > ./:/:foo2;
|
||||
# stdout parallel --trc {}.1 -S lo '(cat {}; echo remote) > {}.1' ::: ./:/:foo2; cat ./:/:foo2.1
|
||||
#
|
||||
#echo '### Test --trc " "/" "foo3'
|
||||
# mkdir -p ./" "; echo 'Content _/_foo2' > ./" "/" "foo3;
|
||||
# stdout parallel --trc {}.1 -S lo '(cat {}; echo remote) > {}.1' ::: ./" "/" "foo3; cat ./" "/" "foo3.1
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#echo '### Test --trc --/./--foo4 :/./:foo5 " "/./" "foo6 ./foo10/./foo10'
|
||||
# mkdir ./--; echo 'Content --/--foo4' > ./--/--foo4;
|
||||
# mkdir ./:; echo 'Content :/:foo5' > ./:/:foo5;
|
||||
# mkdir ./" "; echo 'Content _/_foo2' > ./" "/" "foo3;
|
||||
echo '### Test --trc ./--/./--foo4'
|
||||
mkdir -p ./--; echo 'Content --/./--foo4' > ./--/./--foo4;
|
||||
stdout parallel --trc {}.1 -S lo '(cat ./--foo4; echo remote{}) > --foo4.1' ::: --/./--foo4; cat ./--/./--foo4.1
|
||||
|
||||
### echo '### Test --trc --basefile --/./--foo7 :/./:foo8 " "/./" "foo9 ./foo11/./foo11'
|
||||
### echo missing
|
||||
### echo '### Test --trc "-- "'
|
||||
### echo missing
|
||||
### echo '### Test --trc " --"'
|
||||
### echo missing
|
||||
###
|
||||
echo '### Test --trc ./:/./:foo5'
|
||||
mkdir -p ./:; echo 'Content :/./:foo5' > ./:/./:foo5;
|
||||
stdout parallel --trc {}.1 -S lo '(cat ./:foo5; echo remote{}) > ./:foo5.1' ::: ./:/./:foo5; cat ./:/./:foo5.1
|
||||
|
||||
echo '### Test --trc ./" "/./" "foo6'
|
||||
mkdir -p ./" "; echo 'Content _/./_foo6' > ./" "/./" "foo6;
|
||||
stdout parallel --trc {}.1 -S lo '(cat ./" "foo6; echo remote{}) > ./" "foo6.1' ::: ./" "/./" "foo6; cat ./" "/./" "foo6.1
|
||||
|
||||
echo TODO
|
||||
|
||||
## echo '### Test --trc --basefile --/./--foo7 :/./:foo8 " "/./" "foo9 ./foo11/./foo11'
|
||||
## echo missing
|
||||
## echo '### Test --trc "-- "'
|
||||
## echo missing
|
||||
## echo '### Test --trc " --"'
|
||||
## echo missing
|
||||
##
|
||||
EOF
|
||||
|
||||
rm -rf tmp
|
||||
|
|
|
@ -33,29 +33,21 @@ echo 'bug #41613: --compress --line-buffer with --tagstring';
|
|||
|
||||
echo 'bug #41613: --compress --line-buffer - no newline';
|
||||
echo 'pipe compress tagstring'
|
||||
perl -e 'print "O"'| parallel --compress --tagstring {#} --pipe --line-buffer cat
|
||||
echo "K"
|
||||
perl -e 'print "O"'| parallel --compress --tagstring {#} --pipe --line-buffer cat; echo "K"
|
||||
echo 'pipe compress notagstring'
|
||||
perl -e 'print "O"'| parallel --compress --pipe --line-buffer cat
|
||||
echo "K"
|
||||
perl -e 'print "O"'| parallel --compress --pipe --line-buffer cat; echo "K"
|
||||
echo 'pipe nocompress tagstring'
|
||||
perl -e 'print "O"'| parallel --tagstring {#} --pipe --line-buffer cat
|
||||
echo "K"
|
||||
perl -e 'print "O"'| parallel --tagstring {#} --pipe --line-buffer cat; echo "K"
|
||||
echo 'pipe nocompress notagstring'
|
||||
perl -e 'print "O"'| parallel --pipe --line-buffer cat
|
||||
echo "K"
|
||||
perl -e 'print "O"'| parallel --pipe --line-buffer cat; echo "K"
|
||||
echo 'nopipe compress tagstring'
|
||||
parallel --compress --tagstring {#} --line-buffer echo {} O ::: -n
|
||||
echo "K"
|
||||
parallel --compress --tagstring {#} --line-buffer echo {} O ::: -n; echo "K"
|
||||
echo 'nopipe compress notagstring'
|
||||
parallel --compress --line-buffer echo {} O ::: -n
|
||||
echo "K"
|
||||
parallel --compress --line-buffer echo {} O ::: -n; echo "K"
|
||||
echo 'nopipe nocompress tagstring'
|
||||
parallel --tagstring {#} --line-buffer echo {} O ::: -n
|
||||
echo "K"
|
||||
parallel --tagstring {#} --line-buffer echo {} O ::: -n; echo "K"
|
||||
echo 'nopipe nocompress notagstring'
|
||||
parallel --line-buffer echo {} O ::: -n
|
||||
echo "K"
|
||||
parallel --line-buffer echo {} O ::: -n; echo "K"
|
||||
|
||||
echo 'bug #41412: --timeout + --delay causes deadlock';
|
||||
seq 10 | parallel -j10 --timeout 1 --delay .3 echo;
|
||||
|
|
|
@ -35,9 +35,9 @@ _EOF
|
|||
echo
|
||||
cat <<'EOF' | parallel -vj0 -k -L1
|
||||
echo '### Test killing children with --timeout and exit value (failed if timed out)'
|
||||
pstree | grep sleep | grep -v anacron | grep -v screensave | wc;
|
||||
pstree $$ | grep sleep | grep -v anacron | grep -v screensave | wc;
|
||||
parallel --timeout 3 'true {} ; for i in `seq 100 120`; do bash -c "(sleep $i)" & sleep $i & done; wait; echo No good' ::: 1000000000 1000000001 ;
|
||||
echo $?; sleep 7; pstree | grep sleep | grep -v anacron | grep -v screensave | wc
|
||||
echo $?; sleep 2; pstree $$ | grep sleep | grep -v anacron | grep -v screensave | wc
|
||||
|
||||
echo '### Test -L -l and --max-lines'
|
||||
(echo a_b;echo c) | parallel -km -L2 echo
|
||||
|
|
|
@ -4,3 +4,4 @@
|
|||
### Test -p
|
||||
...OK
|
||||
### Test --sensor -l negative
|
||||
more than 6 GB used
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
### Test installation missing pod2*
|
||||
make[1]: Entering directory `/home/tange/privat/parallel'
|
||||
make[0]: Entering directory `/home/tange/privat/parallel'
|
||||
if test -d "parallel-00000000"; then find "parallel-00000000" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "parallel-00000000" || { sleep 5 && rm -rf "parallel-00000000"; }; else :; fi
|
||||
test -d "parallel-00000000" || mkdir "parallel-00000000"
|
||||
(cd src && make top_distdir=../parallel-00000000 distdir=../parallel-00000000/src \
|
||||
am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)
|
||||
make[2]: Entering directory `/home/tange/privat/parallel/src'
|
||||
make[2]: Leaving directory `/home/tange/privat/parallel/src'
|
||||
make[0]: Entering directory `/home/tange/privat/parallel/src'
|
||||
make[0]: Leaving directory `/home/tange/privat/parallel/src'
|
||||
test -n "" \
|
||||
|| find "parallel-00000000" -type d ! -perm -755 \
|
||||
-exec chmod u+rwx,go+rx {} \; -o \
|
||||
|
@ -15,7 +15,7 @@ test -n "" \
|
|||
|| chmod -R a+r "parallel-00000000"
|
||||
tardir=parallel-00000000 && ${TAR-tar} chof - "$tardir" | GZIP=--best gzip -c >parallel-00000000.tar.gz
|
||||
if test -d "parallel-00000000"; then find "parallel-00000000" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "parallel-00000000" || { sleep 5 && rm -rf "parallel-00000000"; }; else :; fi
|
||||
make[1]: Leaving directory `/home/tange/privat/parallel'
|
||||
make[0]: Leaving directory `/home/tange/privat/parallel'
|
||||
checking for a BSD-compatible install... /usr/bin/install -c
|
||||
checking whether build environment is sane... yes
|
||||
checking for a thread-safe mkdir -p... /bin/mkdir -p
|
||||
|
@ -26,7 +26,7 @@ config.status: creating Makefile
|
|||
config.status: creating src/Makefile
|
||||
config.status: creating config.h
|
||||
Making install in src
|
||||
make[1]: Entering directory `/tmp/parallel-00000000/src'
|
||||
make[0]: Entering directory `/tmp/parallel-00000000/src'
|
||||
pod2man --release='00000000' --center='parallel' \
|
||||
--section=1 ./parallel.pod > ./parallel.1n \
|
||||
&& mv ./parallel.1n ./parallel.1 \
|
||||
|
@ -127,7 +127,7 @@ pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "G
|
|||
|| echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
|
||||
/bin/bash: pod2pdf: command not found
|
||||
Warning: pod2pdf not found. Using old parallel_tutorial.pdf
|
||||
make[2]: Entering directory `/tmp/parallel-00000000/src'
|
||||
make[0]: Entering directory `/tmp/parallel-00000000/src'
|
||||
/bin/mkdir -p '/usr/local/bin'
|
||||
/usr/bin/install -c parallel sem sql niceload '/usr/local/bin'
|
||||
pod2html ./parallel.pod > ./parallel.htmln \
|
||||
|
@ -234,11 +234,11 @@ pod2man --release='00000000' --center='parallel' \
|
|||
Warning: pod2man not found. Using old parallel_tutorial.1
|
||||
/bin/mkdir -p '/usr/local/share/man/man1'
|
||||
/usr/bin/install -c -m 644 parallel.1 sem.1 sql.1 niceload.1 parallel_tutorial.1 '/usr/local/share/man/man1'
|
||||
make[2]: Leaving directory `/tmp/parallel-00000000/src'
|
||||
make[1]: Leaving directory `/tmp/parallel-00000000/src'
|
||||
make[1]: Entering directory `/tmp/parallel-00000000'
|
||||
make[2]: Entering directory `/tmp/parallel-00000000'
|
||||
make[2]: Nothing to be done for `install-exec-am'.
|
||||
make[2]: Nothing to be done for `install-data-am'.
|
||||
make[2]: Leaving directory `/tmp/parallel-00000000'
|
||||
make[1]: Leaving directory `/tmp/parallel-00000000'
|
||||
make[0]: Leaving directory `/tmp/parallel-00000000/src'
|
||||
make[0]: Leaving directory `/tmp/parallel-00000000/src'
|
||||
make[0]: Entering directory `/tmp/parallel-00000000'
|
||||
make[0]: Entering directory `/tmp/parallel-00000000'
|
||||
make[0]: Nothing to be done for `install-exec-am'.
|
||||
make[0]: Nothing to be done for `install-data-am'.
|
||||
make[0]: Leaving directory `/tmp/parallel-00000000'
|
||||
make[0]: Leaving directory `/tmp/parallel-00000000'
|
||||
|
|
|
@ -98,46 +98,48 @@ echo "### Test --wd \"'\""
|
|||
### Test --wd "'"
|
||||
stdout parallel --wd "'" -S lo echo OK ">"{}.9 ::: uNiQuE_sTrInG; cat ~/"'"/uNiQuE_sTrInG.9; stdout rm ~/"'"/uNiQuE_sTrInG.9
|
||||
OK
|
||||
echo '### Test --trc --/--foo1'
|
||||
### Test --trc --/--foo1
|
||||
echo '### Test --trc ./--/--foo1'
|
||||
### Test --trc ./--/--foo1
|
||||
mkdir -p ./--; echo 'Content --/--foo1' > ./--/--foo1; stdout parallel --trc {}.1 -S lo '(cat {}; echo remote1) > {}.1' ::: ./--/--foo1; cat ./--/--foo1.1; stdout parallel --trc {}.2 -S lo '(cat ./{}; echo remote2) > {}.2' ::: --/--foo1; cat ./--/--foo1.2
|
||||
Content --/--foo1
|
||||
remote1
|
||||
Content --/--foo1
|
||||
remote2
|
||||
echo '### Test --trc :dir/:foo2'
|
||||
### Test --trc :dir/:foo2
|
||||
echo '### Test --trc ./:dir/:foo2'
|
||||
### Test --trc ./:dir/:foo2
|
||||
mkdir -p ./:dir; echo 'Content :dir/:foo2' > ./:dir/:foo2; stdout parallel --trc {}.1 -S lo '(cat {}; echo remote1) > {}.1' ::: ./:dir/:foo2; cat ./:dir/:foo2.1; stdout parallel --trc {}.2 -S lo '(cat ./{}; echo remote2) > {}.2' ::: :dir/:foo2; cat ./:dir/:foo2.2
|
||||
Content :dir/:foo2
|
||||
remote1
|
||||
Content :dir/:foo2
|
||||
remote2
|
||||
echo '### Test --trc " "/" "foo3'
|
||||
### Test --trc " "/" "foo3
|
||||
echo '### Test --trc ./" "/" "foo3'
|
||||
### Test --trc ./" "/" "foo3
|
||||
mkdir -p ./" "; echo 'Content _/_foo3' > ./" "/" "foo3; stdout parallel --trc {}.1 -S lo '(cat {}; echo remote1) > {}.1' ::: ./" "/" "foo3; cat ./" "/" "foo3.1; stdout parallel --trc {}.2 -S lo '(cat ./{}; echo remote2) > {}.2' ::: " "/" "foo3; cat ./" "/" "foo3.2
|
||||
Content _/_foo3
|
||||
remote1
|
||||
Content _/_foo3
|
||||
remote2
|
||||
#echo '### Test --trc --/./--foo4'
|
||||
# mkdir -p ./--; echo 'Content --/./--foo4' > ./--/./--foo4; # stdout parallel --trc {}.1 -S lo '(cat ./--foo4; echo remote{}) > --foo4.1' ::: --/./--foo4; cat ./--/./--foo4.1
|
||||
#
|
||||
#echo '### Test --trc :/:foo2'
|
||||
# mkdir -p ./:; echo 'Content :/:foo2' > ./:/:foo2; # stdout parallel --trc {}.1 -S lo '(cat {}; echo remote) > {}.1' ::: ./:/:foo2; cat ./:/:foo2.1
|
||||
#
|
||||
#echo '### Test --trc " "/" "foo3'
|
||||
# mkdir -p ./" "; echo 'Content _/_foo2' > ./" "/" "foo3; # stdout parallel --trc {}.1 -S lo '(cat {}; echo remote) > {}.1' ::: ./" "/" "foo3; cat ./" "/" "foo3.1
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#echo '### Test --trc --/./--foo4 :/./:foo5 " "/./" "foo6 ./foo10/./foo10'
|
||||
# mkdir ./--; echo 'Content --/--foo4' > ./--/--foo4; # mkdir ./:; echo 'Content :/:foo5' > ./:/:foo5; # mkdir ./" "; echo 'Content _/_foo2' > ./" "/" "foo3; ### echo '### Test --trc --basefile --/./--foo7 :/./:foo8 " "/./" "foo9 ./foo11/./foo11'
|
||||
### echo missing
|
||||
### echo '### Test --trc "-- "'
|
||||
### echo missing
|
||||
### echo '### Test --trc " --"'
|
||||
### echo missing
|
||||
###
|
||||
echo '### Test --trc ./--/./--foo4'
|
||||
### Test --trc ./--/./--foo4
|
||||
mkdir -p ./--; echo 'Content --/./--foo4' > ./--/./--foo4; stdout parallel --trc {}.1 -S lo '(cat ./--foo4; echo remote{}) > --foo4.1' ::: --/./--foo4; cat ./--/./--foo4.1
|
||||
Content --/./--foo4
|
||||
remote--/./--foo4
|
||||
echo '### Test --trc ./:/./:foo5'
|
||||
### Test --trc ./:/./:foo5
|
||||
mkdir -p ./:; echo 'Content :/./:foo5' > ./:/./:foo5; stdout parallel --trc {}.1 -S lo '(cat ./:foo5; echo remote{}) > ./:foo5.1' ::: ./:/./:foo5; cat ./:/./:foo5.1
|
||||
Content :/./:foo5
|
||||
remote./:/./:foo5
|
||||
echo '### Test --trc ./" "/./" "foo6'
|
||||
### Test --trc ./" "/./" "foo6
|
||||
mkdir -p ./" "; echo 'Content _/./_foo6' > ./" "/./" "foo6; stdout parallel --trc {}.1 -S lo '(cat ./" "foo6; echo remote{}) > ./" "foo6.1' ::: ./" "/./" "foo6; cat ./" "/./" "foo6.1
|
||||
Content _/./_foo6
|
||||
remote./ /./ foo6
|
||||
echo TODO
|
||||
TODO
|
||||
## echo '### Test --trc --basefile --/./--foo7 :/./:foo8 " "/./" "foo9 ./foo11/./foo11'
|
||||
## echo missing
|
||||
## echo '### Test --trc "-- "'
|
||||
## echo missing
|
||||
## echo '### Test --trc " --"'
|
||||
## echo missing
|
||||
##
|
||||
|
|
|
@ -23,6 +23,6 @@ Exit code 1
|
|||
echo '### bug #42725: csh with \n in variables'
|
||||
### bug #42725: csh with \n in variables
|
||||
not_csh() { echo This is not csh/tcsh; }; export -f not_csh; parallel --env not_csh -S csh@lo not_csh ::: 1; parallel --env not_csh -S tcsh@lo not_csh ::: 1; parallel --env not_csh -S parallel@lo not_csh ::: 1;
|
||||
CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS
|
||||
CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS
|
||||
CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS
|
||||
CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS
|
||||
This is not csh/tcsh
|
||||
|
|
|
@ -30,9 +30,6 @@ a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
|||
### Test --env for \n and \\ - single and double (*csh only) - no output is good but csh fails
|
||||
2 2\ \92V2=\ \92
|
||||
2 2\\ \92V2=\\ \92
|
||||
16 : Command not found.
|
||||
8 Unmatched ".
|
||||
16 \ : Command not found.
|
||||
### Test --env for \n and \\ - single and double --onall (bash only) - no output is good
|
||||
2 1
|
||||
2 10
|
||||
|
@ -41,8 +38,5 @@ a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
|||
### Test --env for \n and \\ - single and double --onall (*csh only) - no output is good but csh fails
|
||||
1 2\ \92V2=\ \92
|
||||
1 2\\ \92V2=\\ \92
|
||||
8 : Command not found.
|
||||
4 Unmatched ".
|
||||
8 \ : Command not found.
|
||||
### 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
|
||||
|
|
|
@ -14,44 +14,36 @@ echo 'bug #41613: --compress --line-buffer - no newline';
|
|||
bug #41613: --compress --line-buffer - no newline
|
||||
echo 'pipe compress tagstring'
|
||||
pipe compress tagstring
|
||||
perl -e 'print "O"'| parallel --compress --tagstring {#} --pipe --line-buffer cat
|
||||
1 O echo "K"
|
||||
K
|
||||
perl -e 'print "O"'| parallel --compress --tagstring {#} --pipe --line-buffer cat; echo "K"
|
||||
1 OK
|
||||
echo 'pipe compress notagstring'
|
||||
pipe compress notagstring
|
||||
perl -e 'print "O"'| parallel --compress --pipe --line-buffer cat
|
||||
O echo "K"
|
||||
K
|
||||
perl -e 'print "O"'| parallel --compress --pipe --line-buffer cat; echo "K"
|
||||
OK
|
||||
echo 'pipe nocompress tagstring'
|
||||
pipe nocompress tagstring
|
||||
perl -e 'print "O"'| parallel --tagstring {#} --pipe --line-buffer cat
|
||||
1 O echo "K"
|
||||
K
|
||||
perl -e 'print "O"'| parallel --tagstring {#} --pipe --line-buffer cat; echo "K"
|
||||
1 OK
|
||||
echo 'pipe nocompress notagstring'
|
||||
pipe nocompress notagstring
|
||||
perl -e 'print "O"'| parallel --pipe --line-buffer cat
|
||||
O echo "K"
|
||||
K
|
||||
perl -e 'print "O"'| parallel --pipe --line-buffer cat; echo "K"
|
||||
OK
|
||||
echo 'nopipe compress tagstring'
|
||||
nopipe compress tagstring
|
||||
parallel --compress --tagstring {#} --line-buffer echo {} O ::: -n
|
||||
1 O echo "K"
|
||||
K
|
||||
parallel --compress --tagstring {#} --line-buffer echo {} O ::: -n; echo "K"
|
||||
1 OK
|
||||
echo 'nopipe compress notagstring'
|
||||
nopipe compress notagstring
|
||||
parallel --compress --line-buffer echo {} O ::: -n
|
||||
O echo "K"
|
||||
K
|
||||
parallel --compress --line-buffer echo {} O ::: -n; echo "K"
|
||||
OK
|
||||
echo 'nopipe nocompress tagstring'
|
||||
nopipe nocompress tagstring
|
||||
parallel --tagstring {#} --line-buffer echo {} O ::: -n
|
||||
1 O echo "K"
|
||||
K
|
||||
parallel --tagstring {#} --line-buffer echo {} O ::: -n; echo "K"
|
||||
1 OK
|
||||
echo 'nopipe nocompress notagstring'
|
||||
nopipe nocompress notagstring
|
||||
parallel --line-buffer echo {} O ::: -n
|
||||
O echo "K"
|
||||
K
|
||||
parallel --line-buffer echo {} O ::: -n; echo "K"
|
||||
OK
|
||||
echo 'bug #41412: --timeout + --delay causes deadlock';
|
||||
bug #41412: --timeout + --delay causes deadlock
|
||||
seq 10 | parallel -j10 --timeout 1 --delay .3 echo;
|
||||
|
|
|
@ -31,7 +31,7 @@ opt--interactive 3
|
|||
|
||||
echo '### Test killing children with --timeout and exit value (failed if timed out)'
|
||||
### Test killing children with --timeout and exit value (failed if timed out)
|
||||
pstree | grep sleep | grep -v anacron | grep -v screensave | wc; parallel --timeout 3 'true {} ; for i in `seq 100 120`; do bash -c "(sleep $i)" & sleep $i & done; wait; echo No good' ::: 1000000000 1000000001 ; echo $?; sleep 7; pstree | grep sleep | grep -v anacron | grep -v screensave | wc
|
||||
pstree $$ | grep sleep | grep -v anacron | grep -v screensave | wc; parallel --timeout 3 'true {} ; for i in `seq 100 120`; do bash -c "(sleep $i)" & sleep $i & done; wait; echo No good' ::: 1000000000 1000000001 ; echo $?; sleep 2; pstree $$ | grep sleep | grep -v anacron | grep -v screensave | wc
|
||||
0 0 0
|
||||
2
|
||||
0 0 0
|
||||
|
|
Loading…
Reference in a new issue