parallel: --line-buffer speedup.

parallel: Max command line length relaxed due to bzip2'ing before transfer.
This commit is contained in:
Ole Tange 2017-08-20 01:15:28 +02:00
parent 67c4377715
commit 3eef90da33
22 changed files with 745 additions and 1260 deletions

View file

@ -198,41 +198,50 @@ to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
Subject: GNU Parallel 20170822 ('<<>>') released <<[stable]>>
Subject: GNU Parallel 20170822 ('La Rambla') released <<[stable]>>
GNU Parallel 20170822 ('<<>>') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
GNU Parallel 20170822 ('La Rambla') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
<<No new functionality was introduced so this is a good candidate for a stable release.>>
Haiku of the month:
<<>>
--line-buffer
touches files on disk no more
faster than before
-- Ole Tange
New in this release:
* Vote for GNU Parallel's community ads on
http://meta.unix.stackexchange.com/a/4356/2972
http://meta.askubuntu.com/a/16750/22307
http://meta.serverfault.com/a/9040/45704
* --line-buffer no longer uses tempfiles. This is faster and makes it possible for a single process to output more data than there is free disk space.
* Vote for GNU Parallel's community ads on http://meta.unix.stackexchange.com/a/4356/2972 http://meta.askubuntu.com/a/16750/22307 http://meta.serverfault.com/a/9040/45704
* GNU Parallel was cited in: https://springerplus.springeropen.com/articles/10.1186/s40064-016-2022-y
https://dzone.com/articles/running-bash-commands-in-parallel-1
* Edit images with GNU Parallel and ImageMagick https://fedoramagazine.org/edit-images-parallel-imagemagick/
* https://medium.com/@nornagon/today-i-learned-gnu-parallel-plate-tectonics-9fcf24045e63
* Running Bash Commands in Parallel https://dzone.com/articles/running-bash-commands-in-parallel-1
* https://www.upf.edu/web/sct-sit/gnu-parallel-tutorial
* Today I Learned: GNU parallel, plate tectonics https://medium.com/@nornagon/today-i-learned-gnu-parallel-plate-tectonics-9fcf24045e63
* GNU Parallel Tutorial https://www.upf.edu/web/sct-sit/gnu-parallel-tutorial
http://blogs.fluidinfo.com/terry/2017/08/05/do-stuff-on-things-in-parallel/
* Validating half a million TIFF files http://www.dpoc.ac.uk/2017/08/17/validating-half-a-million-tiff-files-part-two/
http://ino.pm/outreach/presentations/2014/03/genomics-wranglers/index.html#/5
http://www.ettemalab.org/using-for-loop-vs-gnu-parallel-for-blast/
* Blender and GNU Parallel https://www.blendernation.com/2017/08/16/blender-gnu-parallel/
https://medium.com/@nornagon/today-i-learned-gnu-parallel-plate-tectonics-9fcf24045e63
* Quick Introduction to GNU Parallel https://github.com/LangilleLab/microbiome_helper/wiki/Quick-Introduction-to-GNU-Parallel
https://gxnotes.com/article/175866.html
* A simple distributed animation render example using GNU Parallel https://gitlab.com/skororu/scripts
* Do stuff on things, in parallel http://blogs.fluidinfo.com/terry/2017/08/05/do-stuff-on-things-in-parallel/
* Bash And GNU Parallel NGS Bidniz http://ino.pm/outreach/presentations/2014/03/genomics-wranglers/index.html
* Using for loop vs Gnu parallel for BLAST http://www.ettemalab.org/using-for-loop-vs-gnu-parallel-for-blast/
* 并行rsync https://gxnotes.com/article/175866.html
<<Citation not OK: BAMClipper: removing primers from alignments to minimize false-negative mutations in amplicon next-generation sequencing https://www.nature.com/articles/s41598-017-01703-6>>

View file

@ -3202,12 +3202,8 @@ sub parse_sshlogin {
$Global::host{$sshlogin_string}->set_max_jobs_running(undef);
next;
}
if($sshlogin_string eq ":") {
$sshlogin->set_maxlength(Limits::Command::max_length());
} else {
# If all chars needs to be quoted, every other character will be \
$sshlogin->set_maxlength(int(Limits::Command::max_length()/2));
}
$Global::minimal_command_line_length =
::min($Global::minimal_command_line_length, $sshlogin->maxlength());
$Global::host{$sshlogin_string} = $sshlogin;
@ -4673,22 +4669,28 @@ sub reap_usleep {
if($opt::memfree) {
kill_youngster_if_not_enough_mem();
}
if($ms > 0.002) {
# When a child dies, wake up from sleep (or select(,,,))
$SIG{CHLD} = sub { kill "ALRM", $$ };
usleep($ms);
# --compress needs $SIG{CHLD} unset
$SIG{CHLD} = 'DEFAULT';
}
exit_if_disk_full();
if($opt::linebuffer) {
my $something_printed = 0;
if($opt::keeporder) {
for my $job (values %Global::running) {
$job->print_earlier_jobs();
$something_printed += $job->print_earlier_jobs();
}
} else {
for my $job (values %Global::running) {
$job->print();
$something_printed += $job->print();
}
}
if($something_printed) {
$ms = $ms/2+0.001;
}
}
# Sleep exponentially longer (1.1^n) if a job did not finish,
# though at most 1000 ms.
@ -6652,6 +6654,7 @@ sub new {
'virgin' => 1,
# Output used for SQL and CSV-output
'output' => { 1 => [], 2 => [] },
'halfline' => [],
}, ref($class) || $class;
}
@ -6769,7 +6772,25 @@ sub openoutputfiles {
my $self = shift;
my ($outfhw, $errfhw, $outname, $errname);
if($opt::results and not $Global::csv) {
if($opt::linebuffer and not
($opt::keeporder or $opt::files or $opt::results or
$opt::compress or $opt::compress_program or
$opt::decompress_program)) {
# Do not save to files: Use non-blocking pipe
my ($outfhr, $errfhr);
pipe($outfhr, $outfhw) || die;
pipe($errfhr, $errfhw) || die;
$self->set_fh(1,'w',$outfhw);
$self->set_fh(2,'w',$errfhw);
$self->set_fh(1,'r',$outfhr);
$self->set_fh(2,'r',$errfhr);
# Make it possible to read non-blocking from the pipe
for my $fdno (1,2) {
::set_fh_non_blocking($self->fh($fdno,'r'));
}
# Return immediately because we do not need setting filenames
return;
} elsif($opt::results and not $Global::csv) {
my $out = $self->{'commandline'}->results_out();
my $seqname;
if($out eq $opt::results or $out =~ m:/$:) {
@ -6849,6 +6870,7 @@ sub openoutputfiles {
if($opt::linebuffer) {
# Make it possible to read non-blocking from
# the buffer files
# Used for --linebuffer with -k, --files, --res, --compress*
for my $fdno (1,2) {
::set_fh_non_blocking($self->fh($fdno,'r'));
}
@ -8370,12 +8392,13 @@ sub should_be_retried {
my $job = shift;
$print_later{$job->seq()} = $job;
$job_seq_to_print ||= 1;
my $returnsize = 0;
::debug("run", "Looking for: $job_seq_to_print ",
"This: ", $job->seq(), "\n");
for(;vec($Global::job_already_run,$job_seq_to_print,1);
$job_seq_to_print++) {}
while(my $j = $print_later{$job_seq_to_print}) {
$j->print();
$returnsize += $j->print();
if($j->endtime()) {
# Job finished - look at the next
delete $print_later{$job_seq_to_print};
@ -8386,6 +8409,7 @@ sub should_be_retried {
last;
}
}
return $returnsize;
}
}
@ -8437,6 +8461,7 @@ sub print {
flush STDOUT;
}
}
my $returnsize = $self->returnsize();
for my $fdno (sort { $a <=> $b } keys %Global::fd) {
# Sort by file descriptor numerically: 1,2,3,..,9,10,11
$fdno == 0 and next;
@ -8476,6 +8501,7 @@ sub print {
$self->print_csv();
}
}
return $returnsize - $self->returnsize();
}
{
@ -8621,7 +8647,6 @@ sub print_files {
sub print_linebuffer {
my $self = shift;
my ($fdno,$in_fh,$out_fd) = @_;
my $partial = \$self->{'partial_line',$fdno};
if(defined $self->{'exitstatus'}) {
# If the job is dead: close printing fh. Needed for --compress
@ -8647,38 +8672,32 @@ sub print_linebuffer {
}
# No need for reading $in_fh, as it it from "cat >/dev/null"
} else {
# This seek will clear EOF
seek $in_fh, tell($in_fh), 0;
my $outputlength = 0;
# The read is non-blocking: The $in_fh is set to non-blocking.
# 32768 --tag = 5.1s
# 327680 --tag = 4.4s
# 1024000 --tag = 4.4s
# 3276800 --tag = 4.3s
# 10240000 --tag = 4.3s
# 32768000 --tag = 4.7s
while(read($in_fh,substr($$partial,length $$partial),3276800)) {
# Append to $$partial
# Find the last \n or \r
my $i = (::rindex64($partial,"\n")+1) || (::rindex64($partial,"\r")+1);
my $halfline_ref = $self->{'halfline'};
my ($buf,$i,$rv);
while($rv = sysread($in_fh, $buf, 131072)) {
$outputlength += $rv;
$i = (rindex($buf,"\n")+1) || (rindex($buf,"\r")+1);
if($i) {
# One or more complete lines were found
$outputlength += $i;
if($opt::tag or defined $opt::tagstring) {
# Replace ^ with $tag within the full line
my $tag = $self->tag();
substr($$partial,0,$i) =~ s/^/$tag/gm;
# Length of partial line has changed: Find the last \n/\r again
$i = (::rindex64($partial,"\n")+1) || (::rindex64($partial,"\r")+1);
substr($buf,0,$i-1) =~ s/(?<=[\n\r])/$tag/gm;
$i = (rindex($buf,"\n")+1) || (rindex($buf,"\r")+1);
unshift @$halfline_ref, $tag;
}
# Print up to and including the last \n
print $out_fd substr($$partial,0,$i);
# Print the partial line (halfline) and the last half
print $out_fd @$halfline_ref, substr($buf,0,$i);
# Buffer in memory for SQL and CSV-output
if($Global::membuffer) {
push @{$self->{'output'}{$fdno}}, substr($$partial,0,$i);
push(@{$self->{'output'}{$fdno}},
@$halfline_ref, substr($buf,0,$i));
}
# Remove the printed part
substr($$partial,0,$i) = "";
# Remove the printed part by keeping the unprinted part
@$halfline_ref = (substr($buf,$i));
} else {
push @$halfline_ref, $buf;
}
}
$self->add_returnsize($outputlength);
@ -8689,18 +8708,22 @@ sub print_linebuffer {
} else {
# If the job is dead: print the remaining partial line
# read remaining
$self->add_returnsize(length $$partial);
if(length $$partial and ($opt::tag or defined $opt::tagstring)) {
my $tag = $self->tag();
$$partial =~ s/^/$tag/gm;
my $halfline_ref = $self->{'halfline'};
if(grep /./, @$halfline_ref) {
$self->add_returnsize(length join("",@$halfline_ref));
if($opt::tag or defined $opt::tagstring) {
# Prepend $tag the the remaining half line
unshift @$halfline_ref, $self->tag();
}
print $out_fd $$partial;
# Print the partial line (halfline)
print $out_fd @{$self->{'halfline'}};
# Buffer in memory for SQL and CSV-output
if($Global::membuffer) {
push @{$self->{'output'}{$fdno}}, $$partial;
push(@{$self->{'output'}{$fdno}}, @$halfline_ref);
}
@$halfline_ref = ();
}
}
# Release the memory
undef $$partial;
if($self->fh($fdno,"rpid") and CORE::kill 0, $self->fh($fdno,"rpid")) {
# decompress still running
} else {
@ -9971,15 +9994,14 @@ sub max_length {
}
$Limits::Command::line_max_len = tmux_length($cached_limit);
if($opt::max_chars) {
if($opt::max_chars * 2 <= $cached_limit) {
# $opt::max_chars quoting causes the length to double
$Limits::Command::line_max_len = $opt::max_chars * 2;
if($opt::max_chars <= $cached_limit) {
$Limits::Command::line_max_len = $opt::max_chars;
} else {
::warning("Value for -s option should be < $cached_limit.");
}
}
}
return int($Limits::Command::line_max_len/2);
return int($Limits::Command::line_max_len);
}
sub real_max_length {

View file

@ -1042,9 +1042,9 @@ B<-l 0> is an alias for B<-l 1>.
Implies B<-X> unless B<-m>, B<--xargs>, or B<--pipe> is set.
=item B<--line-buffer>
=item B<--line-buffer> (alpha testing)
=item B<--lb>
=item B<--lb> (alpha testing)
Buffer output on line basis. B<--group> will keep the output together
for a whole job. B<--ungroup> allows output to mixup with half a line
@ -1052,9 +1052,23 @@ coming from one job and half a line coming from another
job. B<--line-buffer> fits between these two: GNU B<parallel> will
print a full line, but will allow for mixing lines of different jobs.
B<--line-buffer> takes more CPU power than than both B<--group> and
B<--ungroup>, but can be faster than B<--group> if the CPU is not the
limiting factor.
B<--line-buffer> takes more CPU power than both B<--group> and
B<--ungroup>, but can be much faster than B<--group> if the CPU is not
the limiting factor.
Normally B<--line-buffer> does not buffer on disk, and can thus
process an infinite amount of data, but it will buffer on disk when
combined with: B<--keep-order>, B<--results>, B<--compress>, and
B<--files>. This will make it as slow as B<--group> and will limit
output to the available disk space.
With B<--keep-order> B<--line-buffer> will output lines from the first
job while it is running, then lines from the second job while that is
running. It will buffer full lines, but jobs will not mix. Compare:
parallel -j0 'echo {};sleep {};echo {}' ::: 1 3 2 4
parallel -j0 --lb 'echo {};sleep {};echo {}' ::: 1 3 2 4
parallel -j0 -k --lb 'echo {};sleep {};echo {}' ::: 1 3 2 4
See also: B<--group> B<--ungroup>

View file

@ -6,7 +6,7 @@ parcat - cat files or fifos in parallel
=head1 SYNOPSIS
B<parcat> file(s)
B<parcat> [--rm] [-#] file(s) [-#] file(s)
=head1 DESCRIPTION
@ -16,6 +16,29 @@ you use:
(cat file1 & cat file2 &) | ...
Arguments can be given on the command line or passed in on stdin
(standard input).
=head1 OPTIONS
=over 9
=item -B<#>
Arguments following this will be sent to the file descriptor B<#>. E.g.
parcat -1 stdout1 stdout2 -2 stderr1 stderr2
will send I<stdout1> and I<stdout2> to stdout (standard output = file
descriptor 1), and send I<stderr1> and I<stderr2> to stderr (standard
error = file descriptor 2).
=item --rm
Remove files after opening. As soon as the files are opened, unlink
the files.
=back
=head1 EXAMPLES

View file

@ -7,7 +7,7 @@ testsuite: 3
make stopvm
1: ../src/parallel tests-to-run/* wanted-results/* prereqlocal startdb prereqremote
TRIES=1 time bash Start.sh '' 'mem|polarhome' || true
TRIES=1 time bash Start.sh '' 'mem|polarhome|tutorial' || true
touch ~/.parallel/will-cite
make stopvm

View file

@ -492,57 +492,65 @@ echo '### Test --tty'
seq 0.1 0.1 0.5 | parallel -j1 --tty tty\;sleep
echo '**'
echo '### Test bugfix if no command given'
(echo echo; seq 1 5; perl -e 'print "z"x1000000'; seq 12 15) | stdout parallel -j1 -km -s 10
EOF
echo '### 1 .par file from --files expected'
find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | wc -l
find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | parallel rm
echo '**'
sudo umount -l /tmp/smalldisk.img
echo "bug #34958: --pipe with record size measured in lines"
seq 10 | parallel -k --pipe -l 4 cat\;echo bug 34958-2
par_no_command_given() {
echo '### Test bugfix if no command given'
echo '**'
(echo echo; seq 1 5; perl -e 'print "z"x1000000'; seq 12 15) |
stdout parallel -j1 -km -s 10
}
par_inefficient_L() {
echo "bug #37325: Inefficiency of --pipe -L"
echo "bug #37325: Inefficiency of --pipe -L"
seq 2000 | parallel -k --pipe --block 1k -L 4 wc\;echo FOO | uniq
}
echo '**'
par_pipe_record_size_in_lines() {
echo "bug #34958: --pipe with record size measured in lines"
echo "bug #34958: --pipe with record size measured in lines"
seq 10 | parallel -k --pipe -L 4 cat\;echo bug 34958-1
seq 10 | parallel -k --pipe -l 4 cat\;echo bug 34958-2
}
echo '**'
echo "### bug #41482: --pipe --compress blocks at different -j/seq combinations"
seq 1 | parallel -k -j2 --compress -N1 -L1 --pipe cat;
par_pipe_compress_blocks() {
echo "### bug #41482: --pipe --compress blocks at different -j/seq combinations"
seq 1 | parallel -k -j2 --compress -N1 -L1 --pipe cat
echo echo 1-4 + 1-4
seq 4 | parallel -k -j3 --compress -N1 -L1 -vv echo;
seq 4 | parallel -k -j3 --compress -N1 -L1 -vv echo
echo 4 times wc to stderr to stdout
(seq 4 | parallel -k -j3 --compress -N1 -L1 --pipe wc '>&2') 2>&1 >/dev/null
echo 1 2 3 4
seq 4 | parallel -k -j3 --compress echo;
seq 4 | parallel -k -j3 --compress echo
echo 1 2 3 4
seq 4 | parallel -k -j1 --compress echo;
seq 4 | parallel -k -j1 --compress echo
echo 1 2
seq 2 | parallel -k -j1 --compress echo;
seq 2 | parallel -k -j1 --compress echo
echo 1 2 3
seq 3 | parallel -k -j2 --compress -N1 -L1 --pipe cat;
seq 3 | parallel -k -j2 --compress -N1 -L1 --pipe cat
}
echo '**'
echo '### --pipe without command'
par_pipe_no_command() {
echo '### --pipe without command'
seq -w 10 | stdout parallel --pipe
}
echo '**'
echo '### bug #36260: {n} expansion in --colsep files fails for empty fields if all following fields are also empty'
par_expansion_in_colsep() {
echo '### bug #36260: {n} expansion in --colsep files fails for empty fields if all following fields are also empty'
echo A,B,, | parallel --colsep , echo {1}{3}{2}
}
echo '**'
par_extglob() {
bash -O extglob -c '. `which env_parallel.bash`;
_longopt () {
case "$prev" in
@ -552,24 +560,18 @@ echo '**'
};
env_parallel echo ::: env_parallel 2>&1
'
}
echo '**'
echo '### bug #48745: :::+ bug'
par_tricolonplus() {
echo '### bug #48745: :::+ bug'
parallel -k echo ::: 11 22 33 ::::+ <(seq 3) <(seq 21 23) ::: a b c :::+ aa bb cc
parallel -k echo :::: <(seq 3) <(seq 21 23) :::+ a b c ::: aa bb cc
parallel -k echo :::: <(seq 3) :::: <(seq 21 23) :::+ a b c ::: aa bb cc
}
echo '**'
echo '### bug #48658: --linebuffer --files'
stdout parallel --files --linebuffer 'sleep .1;seq {};sleep .1' ::: {1..10} | wc -l
echo '**'
echo 'bug #49538: --header and {= =}'
par_header_parens() {
echo 'bug #49538: --header and {= =}'
parallel --header : echo '{=v2=}{=v1 $_=Q($_)=}' ::: v1 K ::: v2 O
parallel --header : echo '{2}{=1 $_=Q($_)=}' ::: v2 K ::: v1 O
@ -578,22 +580,14 @@ echo 'bug #49538: --header and {= =}'
parallel --header : echo {var/.} ::: var sub/dir/file.ext
parallel --header : echo {var/} ::: var sub/dir/file.ext
parallel --header : echo {var.} ::: var sub/dir/file.ext
}
echo '**'
echo 'bug --colsep 0'
par_colsep_0() {
echo 'bug --colsep 0'
parallel --colsep 0 echo {2} ::: a0OK0c
parallel --header : --colsep 0 echo {ok} ::: A0ok0B a0OK0b
echo '**'
EOF
echo '### 1 .par file from --files expected'
find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | wc -l
find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | parallel rm
sudo umount -l /tmp/smalldisk.img
}
par_empty() {
echo "bug #:"
@ -747,6 +741,12 @@ par_parcat_rm() {
rm $tmp1 2>/dev/null || echo OK file removed
}
par_linebuffer_files() {
echo '### bug #48658: --linebuffer --files'
stdout parallel --files --linebuffer 'sleep .1;seq {};sleep .1' ::: {1..10} | wc -l
}
export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | sort |
parallel -j6 --tag -k --joblog +/tmp/jl-`basename $0` '{} 2>&1'

View file

@ -146,7 +146,7 @@ par_results_csv() {
}
export -f doit
parallel -k --tag doit ::: '--header :' '' \
::: --tag '' ::: --lb '' ::: --files '' ::: --compress '' |
::: --tag '' ::: --files '' ::: --compress '' |
perl -pe 's:/par......par:/tmpfile:g;s/\d+\.\d+/999.999/g'
}
@ -258,6 +258,12 @@ par_plus_dyn_repl() {
parallel --plus echo '{-2,,A}' ::: "wrong" ::: "$myvar" ::: "wrong"
}
par_linebuffer_tag_slow_output() {
echo "Test output tag with mixing halflines"
parallel --delay 0.5 --tag --line-buffer ping -c 4 ::: localhost lo | field 1
}
export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | sort |
parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1'

View file

@ -48,21 +48,23 @@ par_sqlandworker_results() {
p_template --results /tmp/out--sql
}
par_sqlandworker_linebuffer() {
p_template --linebuffer
}
par_sqlandworker_tag() {
p_template --tag
}
par_sqlandworker_linebuffer_tag() {
p_template --linebuffer --tag
}
par_sqlandworker_compress_linebuffer_tag() {
p_template --compress --linebuffer --tag
}
# --linebuffer no longer works with sql
#
# par_sqlandworker_linebuffer() {
# p_template --linebuffer
# }
#
# par_sqlandworker_linebuffer_tag() {
# p_template --linebuffer --tag
# }
#
# par_sqlandworker_compress_linebuffer_tag() {
# p_template --compress --linebuffer --tag
# }
par_sqlandworker_unbuffer() {
p_template -u

View file

@ -32,7 +32,7 @@ echo '### bug #41805: Idea: propagate --env for parallel --number-of-cores'
echo '** bug #41805 done'
echo '### Deal with long command lines on remote servers'
perl -e 'print((("\""x5000)."\n")x10)' | parallel -j1 -S lo -N 10000 echo {} |wc
perl -e 'print((("\""x5000)."\n")x26)' | parallel -j1 -S lo -N 10000 echo {} |wc
echo '### Test bug #34241: --pipe should not spawn unneeded processes'
seq 5 | ssh csh@lo parallel -k --block 5 --pipe -j10 cat\\\;echo Block_end

View file

@ -7,7 +7,10 @@ par_tmux_filter() {
export -f par_tmux_filter
par_tmux() {
(stdout parallel --timeout 3 --tmux --delay 0.03 echo '{}{=$_="\\"x$_=}'; echo $?) | par_tmux_filter
# Read command line length on stdin
# The line will be a number of \'s
(stdout parallel --timeout 3 --tmux --delay 0.03 echo '{}{=$_="\\"x$_=}'; echo $?) |
par_tmux_filter
}
export -f par_tmux
@ -34,20 +37,30 @@ echo '### tmux-1.9'
seq 700 800 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 800 900 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 900 1000 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1000 1006 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1000 1100 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1100 1200 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1200 1300 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1300 1400 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1400 1500 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1500 1600 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1600 1700 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1700 1800 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1800 1900 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1900 2000 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 2000 2018 | PARALLEL_TMUX=tmux-1.9 par_tmux
echo '### tmux-1.9 fails'
echo 1007 | PARALLEL_TMUX=tmux-1.9 par_tmux
echo 1008 | PARALLEL_TMUX=tmux-1.9 par_tmux
echo 1009 | PARALLEL_TMUX=tmux-1.9 par_tmux
echo 2019 | PARALLEL_TMUX=tmux-1.9 par_tmux
echo 2020 | PARALLEL_TMUX=tmux-1.9 par_tmux
echo 2021 | PARALLEL_TMUX=tmux-1.9 par_tmux
echo '### tmux-1.8'
seq 1 50 | PARALLEL_TMUX=tmux-1.8 par_tmux
seq 51 100 | PARALLEL_TMUX=tmux-1.8 par_tmux
seq 101 113 | PARALLEL_TMUX=tmux-1.8 par_tmux
seq 1 100 | PARALLEL_TMUX=tmux-1.8 par_tmux
seq 101 200 | PARALLEL_TMUX=tmux-1.8 par_tmux
seq 201 231 | PARALLEL_TMUX=tmux-1.8 par_tmux
echo '### tmux-1.8 fails'
echo 114 | PARALLEL_TMUX=tmux-1.8 par_tmux
echo 115 | PARALLEL_TMUX=tmux-1.8 par_tmux
echo 116 | PARALLEL_TMUX=tmux-1.8 par_tmux
echo 232 | PARALLEL_TMUX=tmux-1.8 par_tmux
echo 233 | PARALLEL_TMUX=tmux-1.8 par_tmux
echo 234 | PARALLEL_TMUX=tmux-1.8 par_tmux
echo '### tmux-1.8 0..255 ascii'
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } $_-110..$_),"\n" } 0..255' |
@ -63,10 +76,10 @@ echo '### Test output ascii'
sort /tmp/paralocal7-ascii* | md5sum
echo '### Test critical lengths. Must not block'
seq 70 130 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
seq 70 130 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
seq 280 425 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
seq 280 425 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
seq 140 260 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
seq 140 260 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
seq 560 850 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
seq 560 850 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
EOF

View file

@ -552,7 +552,7 @@ e
echo '### test too long args'
### test too long args
perl -e 'print "z"x1000000' | parallel echo 2>&1
parallel: Error: Command line too long (1000005 >= 65524) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
parallel: Error: Command line too long (1000005 >= 131057) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
perl -e 'print "z"x1000000' | xargs echo 2>&1
xargs: argument line too long
(seq 1 10; perl -e 'print "z"x1000000'; seq 12 15) | stdsort parallel -j1 -km -s 10 echo
@ -819,7 +819,7 @@ echo far
### Test --show-limits
(echo b; echo c; echo f) | parallel -k --show-limits echo {}ar
Maximal size of command: 131049
Maximal used size of command: 65524
Maximal used size of command: 131057
Execution of will continue now, and it will try to read its input
and run commands; if this is not what you wanted to happen, please
@ -1325,236 +1325,8 @@ echo '### Test --tty'
/dev/tty
/dev/tty
/dev/tty
echo '**'
**
echo '### Test bugfix if no command given'
### Test bugfix if no command given
(echo echo; seq 1 5; perl -e 'print "z"x1000000'; seq 12 15) | stdout parallel -j1 -km -s 10
1 2
/bin/bash: 3: command not found
parallel: Error: Command line too long (1000002 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
echo '**'
**
echo "bug #34958: --pipe with record size measured in lines"
bug #34958: --pipe with record size measured in lines
seq 10 | parallel -k --pipe -l 4 cat\;echo bug 34958-2
1
2
3
4
5
6
7
8
bug 34958-2
9
10
bug 34958-2
echo '**'
**
echo "bug #37325: Inefficiency of --pipe -L"
bug #37325: Inefficiency of --pipe -L
seq 2000 | parallel -k --pipe --block 1k -L 4 wc\;echo FOO | uniq
276 276 996
FOO
248 248 992
FOO
248 248 992
FOO
244 244 993
FOO
200 200 1000
FOO
200 200 1000
FOO
200 200 1000
FOO
200 200 1000
FOO
184 184 920
FOO
echo '**'
**
echo "bug #34958: --pipe with record size measured in lines"
bug #34958: --pipe with record size measured in lines
seq 10 | parallel -k --pipe -L 4 cat\;echo bug 34958-1
1
2
3
4
5
6
7
8
bug 34958-1
9
10
bug 34958-1
echo '**'
**
echo "### bug #41482: --pipe --compress blocks at different -j/seq combinations"
### bug #41482: --pipe --compress blocks at different -j/seq combinations
seq 1 | parallel -k -j2 --compress -N1 -L1 --pipe cat; echo echo 1-4 + 1-4
1
echo 1-4 + 1-4
seq 4 | parallel -k -j3 --compress -N1 -L1 -vv echo; echo 4 times wc to stderr to stdout
echo 1
1
echo 2
2
echo 3
3
echo 4
4
4 times wc to stderr to stdout
(seq 4 | parallel -k -j3 --compress -N1 -L1 --pipe wc '>&2') 2>&1 >/dev/null
1 1 2
1 1 2
1 1 2
1 1 2
echo 1 2 3 4
1 2 3 4
seq 4 | parallel -k -j3 --compress echo; echo 1 2 3 4
1
2
3
4
1 2 3 4
seq 4 | parallel -k -j1 --compress echo; echo 1 2
1
2
3
4
1 2
seq 2 | parallel -k -j1 --compress echo; echo 1 2 3
1
2
1 2 3
seq 3 | parallel -k -j2 --compress -N1 -L1 --pipe cat; echo '**'
1
2
3
**
echo '### --pipe without command'
### --pipe without command
seq -w 10 | stdout parallel --pipe
parallel: Error: --pipe/--pipepart must have a command to pipe into (e.g. 'cat').
echo '**'
**
echo '### bug #36260: {n} expansion in --colsep files fails for empty fields if all following fields are also empty'
### bug #36260: {n} expansion in --colsep files fails for empty fields if all following fields are also empty
echo A,B,, | parallel --colsep , echo {1}{3}{2}
AB
echo '**'
**
bash -O extglob -c '. `which env_parallel.bash`; _longopt () { case "$prev" in --+([-a-z0-9_])) echo foo;; esac; }; env_parallel echo ::: env_parallel 2>&1 '
env_parallel
echo '**'
**
echo '### bug #48745: :::+ bug'
### bug #48745: :::+ bug
parallel -k echo ::: 11 22 33 ::::+ <(seq 3) <(seq 21 23) ::: a b c :::+ aa bb cc
11 1 21 a aa
11 1 21 b bb
11 1 21 c cc
22 2 22 a aa
22 2 22 b bb
22 2 22 c cc
33 3 23 a aa
33 3 23 b bb
33 3 23 c cc
parallel -k echo :::: <(seq 3) <(seq 21 23) :::+ a b c ::: aa bb cc
1 21 a aa
1 21 a bb
1 21 a cc
1 22 b aa
1 22 b bb
1 22 b cc
1 23 c aa
1 23 c bb
1 23 c cc
2 21 a aa
2 21 a bb
2 21 a cc
2 22 b aa
2 22 b bb
2 22 b cc
2 23 c aa
2 23 c bb
2 23 c cc
3 21 a aa
3 21 a bb
3 21 a cc
3 22 b aa
3 22 b bb
3 22 b cc
3 23 c aa
3 23 c bb
3 23 c cc
parallel -k echo :::: <(seq 3) :::: <(seq 21 23) :::+ a b c ::: aa bb cc
1 21 a aa
1 21 a bb
1 21 a cc
1 22 b aa
1 22 b bb
1 22 b cc
1 23 c aa
1 23 c bb
1 23 c cc
2 21 a aa
2 21 a bb
2 21 a cc
2 22 b aa
2 22 b bb
2 22 b cc
2 23 c aa
2 23 c bb
2 23 c cc
3 21 a aa
3 21 a bb
3 21 a cc
3 22 b aa
3 22 b bb
3 22 b cc
3 23 c aa
3 23 c bb
3 23 c cc
echo '**'
**
echo '### bug #48658: --linebuffer --files'
### bug #48658: --linebuffer --files
stdout parallel --files --linebuffer 'sleep .1;seq {};sleep .1' ::: {1..10} | wc -l
10
echo '**'
**
echo 'bug #49538: --header and {= =}'
bug #49538: --header and {= =}
parallel --header : echo '{=v2=}{=v1 $_=Q($_)=}' ::: v1 K ::: v2 O
OK
parallel --header : echo '{2}{=1 $_=Q($_)=}' ::: v2 K ::: v1 O
OK
parallel --header : echo {var/.} ::: var sub/dir/file.ext
file
parallel --header : echo {var//} ::: var sub/dir/file.ext
sub/dir
parallel --header : echo {var/.} ::: var sub/dir/file.ext
file
parallel --header : echo {var/} ::: var sub/dir/file.ext
file.ext
parallel --header : echo {var.} ::: var sub/dir/file.ext
sub/dir/file
echo '**'
**
echo 'bug --colsep 0'
bug --colsep 0
parallel --colsep 0 echo {2} ::: a0OK0c
OK
parallel --header : --colsep 0 echo {ok} ::: A0ok0B a0OK0b
OK
echo '**'
**
### 1 .par file from --files expected
10
0
par_X_eta_div_zero ### bug #34422: parallel -X --eta crashes with div by zero
par_X_eta_div_zero
par_X_eta_div_zero Computers / CPU cores / Max jobs to run
@ -1572,15 +1344,50 @@ par_basic_halt true
par_basic_halt parallel: Error: --halt must have 'never', 'soon', or 'now'.
par_basic_halt parallel: Error: --halt soon must be followed by ,success or ,fail.
par_basic_halt parallel: Error: --halt now must be followed by ,success or ,fail.
par_colsep_0 bug --colsep 0
par_colsep_0 OK
par_colsep_0 OK
par_empty bug #:
par_empty true
par_empty_line ### Test bug: empty line for | sh with -k
par_empty_line a
par_empty_line b
par_expansion_in_colsep ### bug #36260: {n} expansion in --colsep files fails for empty fields if all following fields are also empty
par_expansion_in_colsep AB
par_extglob env_parallel
par_file_ending_in_newline ### Hans found a bug giving unitialized variable
par_file_ending_in_newline gzip /tmp/parallel_f1
par_file_ending_in_newline gzip /tmp/parallel_f2'
par_file_ending_in_newline '
par_header_parens bug #49538: --header and {= =}
par_header_parens OK
par_header_parens OK
par_header_parens file
par_header_parens sub/dir
par_header_parens file
par_header_parens file.ext
par_header_parens sub/dir/file
par_inefficient_L bug #37325: Inefficiency of --pipe -L
par_inefficient_L 276 276 996
par_inefficient_L FOO
par_inefficient_L 248 248 992
par_inefficient_L FOO
par_inefficient_L 248 248 992
par_inefficient_L FOO
par_inefficient_L 244 244 993
par_inefficient_L FOO
par_inefficient_L 200 200 1000
par_inefficient_L FOO
par_inefficient_L 200 200 1000
par_inefficient_L FOO
par_inefficient_L 200 200 1000
par_inefficient_L FOO
par_inefficient_L 200 200 1000
par_inefficient_L FOO
par_inefficient_L 184 184 920
par_inefficient_L FOO
par_linebuffer_files ### bug #48658: --linebuffer --files
par_linebuffer_files 10
par_link_files_as_only_arg bug #50685: single ::::+ does not work
par_link_files_as_only_arg 1 1 1
par_link_files_as_only_arg 2 2 2
@ -1609,6 +1416,76 @@ par_macron
par_macron "¯<¯<¯>¯>" ¯<¯<¯>¯>
par_newline_in_command Command with newline and positional replacement strings
par_newline_in_command O K
par_no_command_given ### Test bugfix if no command given
par_no_command_given 1 2
par_no_command_given /bin/bash: 3: command not found
par_no_command_given parallel: Error: Command line too long (1000002 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
par_parcat_args_stdin bug #51690: parcat: read args from stdin
par_parcat_args_stdin OK1
par_parcat_args_stdin OK2
par_parcat_rm bug #51691: parcat --rm remove fifo when opened
par_parcat_rm OK1
par_parcat_rm OK file removed
par_pipe_compress_blocks ### bug #41482: --pipe --compress blocks at different -j/seq combinations
par_pipe_compress_blocks 1
par_pipe_compress_blocks echo 1-4 + 1-4
par_pipe_compress_blocks echo 1
par_pipe_compress_blocks 1
par_pipe_compress_blocks echo 2
par_pipe_compress_blocks 2
par_pipe_compress_blocks echo 3
par_pipe_compress_blocks 3
par_pipe_compress_blocks echo 4
par_pipe_compress_blocks 4
par_pipe_compress_blocks 4 times wc to stderr to stdout
par_pipe_compress_blocks 1 1 2
par_pipe_compress_blocks 1 1 2
par_pipe_compress_blocks 1 1 2
par_pipe_compress_blocks 1 1 2
par_pipe_compress_blocks 1 2 3 4
par_pipe_compress_blocks 1
par_pipe_compress_blocks 2
par_pipe_compress_blocks 3
par_pipe_compress_blocks 4
par_pipe_compress_blocks 1 2 3 4
par_pipe_compress_blocks 1
par_pipe_compress_blocks 2
par_pipe_compress_blocks 3
par_pipe_compress_blocks 4
par_pipe_compress_blocks 1 2
par_pipe_compress_blocks 1
par_pipe_compress_blocks 2
par_pipe_compress_blocks 1 2 3
par_pipe_compress_blocks 1
par_pipe_compress_blocks 2
par_pipe_compress_blocks 3
par_pipe_no_command ### --pipe without command
par_pipe_no_command parallel: Error: --pipe/--pipepart must have a command to pipe into (e.g. 'cat').
par_pipe_record_size_in_lines bug #34958: --pipe with record size measured in lines
par_pipe_record_size_in_lines 1
par_pipe_record_size_in_lines 2
par_pipe_record_size_in_lines 3
par_pipe_record_size_in_lines 4
par_pipe_record_size_in_lines 5
par_pipe_record_size_in_lines 6
par_pipe_record_size_in_lines 7
par_pipe_record_size_in_lines 8
par_pipe_record_size_in_lines bug 34958-1
par_pipe_record_size_in_lines 9
par_pipe_record_size_in_lines 10
par_pipe_record_size_in_lines bug 34958-1
par_pipe_record_size_in_lines 1
par_pipe_record_size_in_lines 2
par_pipe_record_size_in_lines 3
par_pipe_record_size_in_lines 4
par_pipe_record_size_in_lines 5
par_pipe_record_size_in_lines 6
par_pipe_record_size_in_lines 7
par_pipe_record_size_in_lines 8
par_pipe_record_size_in_lines bug 34958-2
par_pipe_record_size_in_lines 9
par_pipe_record_size_in_lines 10
par_pipe_record_size_in_lines bug 34958-2
par_pipepart_block_bigger_2G ### Test that --pipepart can have blocks > 2GB
par_pipepart_block_bigger_2G 1 1 4
par_python_children ### bug #49970: Python child process dies if --env is used
@ -1652,6 +1529,70 @@ par_tee 4 -l 122853
par_tee 4 -c 815290
par_tee 5 -l 122853
par_tee 5 -c 815290
par_tricolonplus ### bug #48745: :::+ bug
par_tricolonplus 11 1 21 a aa
par_tricolonplus 11 1 21 b bb
par_tricolonplus 11 1 21 c cc
par_tricolonplus 22 2 22 a aa
par_tricolonplus 22 2 22 b bb
par_tricolonplus 22 2 22 c cc
par_tricolonplus 33 3 23 a aa
par_tricolonplus 33 3 23 b bb
par_tricolonplus 33 3 23 c cc
par_tricolonplus 1 21 a aa
par_tricolonplus 1 21 a bb
par_tricolonplus 1 21 a cc
par_tricolonplus 1 22 b aa
par_tricolonplus 1 22 b bb
par_tricolonplus 1 22 b cc
par_tricolonplus 1 23 c aa
par_tricolonplus 1 23 c bb
par_tricolonplus 1 23 c cc
par_tricolonplus 2 21 a aa
par_tricolonplus 2 21 a bb
par_tricolonplus 2 21 a cc
par_tricolonplus 2 22 b aa
par_tricolonplus 2 22 b bb
par_tricolonplus 2 22 b cc
par_tricolonplus 2 23 c aa
par_tricolonplus 2 23 c bb
par_tricolonplus 2 23 c cc
par_tricolonplus 3 21 a aa
par_tricolonplus 3 21 a bb
par_tricolonplus 3 21 a cc
par_tricolonplus 3 22 b aa
par_tricolonplus 3 22 b bb
par_tricolonplus 3 22 b cc
par_tricolonplus 3 23 c aa
par_tricolonplus 3 23 c bb
par_tricolonplus 3 23 c cc
par_tricolonplus 1 21 a aa
par_tricolonplus 1 21 a bb
par_tricolonplus 1 21 a cc
par_tricolonplus 1 22 b aa
par_tricolonplus 1 22 b bb
par_tricolonplus 1 22 b cc
par_tricolonplus 1 23 c aa
par_tricolonplus 1 23 c bb
par_tricolonplus 1 23 c cc
par_tricolonplus 2 21 a aa
par_tricolonplus 2 21 a bb
par_tricolonplus 2 21 a cc
par_tricolonplus 2 22 b aa
par_tricolonplus 2 22 b bb
par_tricolonplus 2 22 b cc
par_tricolonplus 2 23 c aa
par_tricolonplus 2 23 c bb
par_tricolonplus 2 23 c cc
par_tricolonplus 3 21 a aa
par_tricolonplus 3 21 a bb
par_tricolonplus 3 21 a cc
par_tricolonplus 3 22 b aa
par_tricolonplus 3 22 b bb
par_tricolonplus 3 22 b cc
par_tricolonplus 3 23 c aa
par_tricolonplus 3 23 c bb
par_tricolonplus 3 23 c cc
par_wd_3dot_local bug #45993: --wd ... should also work when run locally
par_wd_3dot_local parallel: Error: Cannot change into non-executable dir /bi: No such file or directory
par_wd_3dot_local /bin

View file

@ -238,12 +238,31 @@ par_kill_children_timeout ### Test killing children with --timeout and exit valu
par_kill_children_timeout 0 0 0
par_kill_children_timeout 2
par_kill_children_timeout 0 0 0
par_linebuffer_tag_slow_output Test output tag with mixing halflines
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output lo
par_maxlinelen_X_I ### Test max line length -X -I
par_maxlinelen_X_I 47ec7550232044dc1e7a504705a45184 -
par_maxlinelen_X_I Chars per line (817788/13): 62906
par_maxlinelen_X_I 201ecb8ca789cecf39ee914a6d75611b -
par_maxlinelen_X_I Chars per line (817788/7): 116826
par_maxlinelen_m_I ### Test max line length -m -I
par_maxlinelen_m_I d10d5c84fc4716b21d90afa92cf44d73 -
par_maxlinelen_m_I Chars per line (697810/11): 63437
par_maxlinelen_m_I c78bd0799bc23d8946732f8b3ae3c94e -
par_maxlinelen_m_I Chars per line (697800/6): 116300
par_plus_dyn_repl Dynamic replacement strings defined by --plus
par_plus_dyn_repl myval
par_plus_dyn_repl myval
@ -311,34 +330,6 @@ par_plus_dyn_repl abcaaadef
par_results_compress 0
par_results_compress 1
par_results_csv bug #: --results csv
par_results_csv --header : --tag --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --lb --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --lb --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --lb --compress 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --header : --tag --lb --compress ",
par_results_csv --header : --tag --lb --compress 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --header : --tag --lb --compress ",
par_results_csv --header : --tag --lb --compress 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --header : --tag --lb --compress ",
par_results_csv --header : --tag --lb --compress 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --header : --tag --lb --compress ",
par_results_csv --header : --tag --lb Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --lb 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --header : --tag --lb ",
par_results_csv --header : --tag --lb 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --header : --tag --lb ",
par_results_csv --header : --tag --lb 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --header : --tag --lb ",
par_results_csv --header : --tag --lb 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --header : --tag --lb ",
par_results_csv --header : --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
@ -367,34 +358,6 @@ par_results_csv --header : --tag 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,
par_results_csv --header : --tag ",
par_results_csv --header : --tag 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --header : --tag ",
par_results_csv --header : --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --lb --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --lb --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --lb --compress 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --header : --lb --compress ",
par_results_csv --header : --lb --compress 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --header : --lb --compress ",
par_results_csv --header : --lb --compress 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --header : --lb --compress ",
par_results_csv --header : --lb --compress 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --header : --lb --compress ",
par_results_csv --header : --lb Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --lb 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --header : --lb ",
par_results_csv --header : --lb 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --header : --lb ",
par_results_csv --header : --lb 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --header : --lb ",
par_results_csv --header : --lb 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --header : --lb ",
par_results_csv --header : --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
@ -423,64 +386,6 @@ par_results_csv --header : 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"2
par_results_csv --header : ",
par_results_csv --header : 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --header : ",
par_results_csv --tag --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --lb --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --lb --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --lb --compress 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 H2 H1
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 H2 11
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 H2 12
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 22 H1
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 23 H1
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --lb 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 H2 H1
par_results_csv --tag --lb ",
par_results_csv --tag --lb 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 H2 11
par_results_csv --tag --lb ",
par_results_csv --tag --lb 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 H2 12
par_results_csv --tag --lb ",
par_results_csv --tag --lb 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 22 H1
par_results_csv --tag --lb ",
par_results_csv --tag --lb 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --tag --lb ",
par_results_csv --tag --lb 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --tag --lb ",
par_results_csv --tag --lb 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 23 H1
par_results_csv --tag --lb ",
par_results_csv --tag --lb 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --tag --lb ",
par_results_csv --tag --lb 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --tag --lb ",
par_results_csv --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
@ -539,64 +444,6 @@ par_results_csv --tag 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --tag ",
par_results_csv --tag 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --tag ",
par_results_csv --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --lb --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --lb --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --lb --compress 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1
par_results_csv --lb --compress ",
par_results_csv --lb --compress 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11
par_results_csv --lb --compress ",
par_results_csv --lb --compress 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12
par_results_csv --lb --compress ",
par_results_csv --lb --compress 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1
par_results_csv --lb --compress ",
par_results_csv --lb --compress 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --lb --compress ",
par_results_csv --lb --compress 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --lb --compress ",
par_results_csv --lb --compress 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1
par_results_csv --lb --compress ",
par_results_csv --lb --compress 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --lb --compress ",
par_results_csv --lb --compress 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --lb --compress ",
par_results_csv --lb Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --lb 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1
par_results_csv --lb ",
par_results_csv --lb 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11
par_results_csv --lb ",
par_results_csv --lb 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12
par_results_csv --lb ",
par_results_csv --lb 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1
par_results_csv --lb ",
par_results_csv --lb 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --lb ",
par_results_csv --lb 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --lb ",
par_results_csv --lb 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1
par_results_csv --lb ",
par_results_csv --lb 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --lb ",
par_results_csv --lb 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --lb ",
par_results_csv --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,

View file

@ -1,16 +1,16 @@
echo "### BUG: The length for -X is not close to max (131072)"; seq 1 60000 | parallel -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
### BUG: The length for -X is not close to max (131072)
1 6861 65500
1 12817 131016
seq 1 60000 | parallel -X echo a{}b{}c |head -n 1 |wc
1 5644 65514
1 10947 131046
seq 1 60000 | parallel -X echo |head -n 1 |wc
1 12770 65514
1 23693 131052
seq 1 60000 | parallel -X echo a{}b{}c {} |head -n 1 |wc
1 8098 65512
1 15808 131047
seq 1 60000 | parallel -X echo {}aa{} |head -n 1 |wc
1 6157 65513
1 11789 131045
seq 1 60000 | parallel -X echo {} aa {} |head -n 1 |wc
1 13547 65519
1 25543 131043
echo '### Test --fifo under csh'
### Test --fifo under csh
csh -c "seq 3000000 | parallel -k --pipe --fifo 'sleep .{#};cat {}|wc -c ; false; echo \$status; false'"; echo exit $?

View file

@ -55,8 +55,8 @@ par_multiline_commands finish 3
par_parcat_mixing parcat output should mix: a b a b
par_parcat_mixing astart
par_parcat_mixing bstart
par_parcat_mixing bend
par_parcat_mixing aend
par_parcat_mixing bend
par_pipepart_block ### --pipepart --block -# (# < 0)
par_pipepart_block 1
par_pipepart_block 2

View file

@ -1065,426 +1065,6 @@ par_sqlandworker $SQLITE sleep .3;echo 5 d|5|d|5 d
par_sqlandworker $SQLITE |
par_sqlandworker $SQLITE sleep .3;echo 5 e|5|e|5 e
par_sqlandworker $SQLITE |
p_wrapper par_sqlandworker_compress_linebuffer_tag \$MYSQL
par_sqlandworker_compress_linebuffer_tag $MYSQL Exit=0
par_sqlandworker_compress_linebuffer_tag $MYSQL Exit=0
par_sqlandworker_compress_linebuffer_tag $MYSQL Command V1 V2 Stdout Stderr
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 1 a 1 a 1 a\t1 a\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 1 b 1 b 1 b\t1 b\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 1 c 1 c 1 c\t1 c\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 1 d 1 d 1 d\t1 d\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 1 e 1 e 1 e\t1 e\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 2 a 2 a 2 a\t2 a\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 2 b 2 b 2 b\t2 b\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 2 c 2 c 2 c\t2 c\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 2 d 2 d 2 d\t2 d\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 2 e 2 e 2 e\t2 e\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 3 a 3 a 3 a\t3 a\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 3 b 3 b 3 b\t3 b\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 3 c 3 c 3 c\t3 c\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 3 d 3 d 3 d\t3 d\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 3 e 3 e 3 e\t3 e\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 4 a 4 a 4 a\t4 a\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 4 b 4 b 4 b\t4 b\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 4 c 4 c 4 c\t4 c\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 4 d 4 d 4 d\t4 d\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 4 e 4 e 4 e\t4 e\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 5 a 5 a 5 a\t5 a\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 5 b 5 b 5 b\t5 b\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 5 c 5 c 5 c\t5 c\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 5 d 5 d 5 d\t5 d\n
par_sqlandworker_compress_linebuffer_tag $MYSQL sleep .3;echo 5 e 5 e 5 e\t5 e\n
p_wrapper par_sqlandworker_compress_linebuffer_tag \$PG
par_sqlandworker_compress_linebuffer_tag $PG Exit=0
par_sqlandworker_compress_linebuffer_tag $PG Exit=0
par_sqlandworker_compress_linebuffer_tag $PG command | v1 | v2 | stdout | stderr
par_sqlandworker_compress_linebuffer_tag $PG -------------------+----+----+-------------+--------
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 1 a | 1 | a | 1 a 1 a+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 1 b | 1 | b | 1 b 1 b+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 1 c | 1 | c | 1 c 1 c+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 1 d | 1 | d | 1 d 1 d+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 1 e | 1 | e | 1 e 1 e+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 2 a | 2 | a | 2 a 2 a+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 2 b | 2 | b | 2 b 2 b+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 2 c | 2 | c | 2 c 2 c+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 2 d | 2 | d | 2 d 2 d+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 2 e | 2 | e | 2 e 2 e+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 3 a | 3 | a | 3 a 3 a+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 3 b | 3 | b | 3 b 3 b+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 3 c | 3 | c | 3 c 3 c+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 3 d | 3 | d | 3 d 3 d+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 3 e | 3 | e | 3 e 3 e+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 4 a | 4 | a | 4 a 4 a+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 4 b | 4 | b | 4 b 4 b+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 4 c | 4 | c | 4 c 4 c+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 4 d | 4 | d | 4 d 4 d+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 4 e | 4 | e | 4 e 4 e+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 5 a | 5 | a | 5 a 5 a+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 5 b | 5 | b | 5 b 5 b+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 5 c | 5 | c | 5 c 5 c+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 5 d | 5 | d | 5 d 5 d+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG sleep .3;echo 5 e | 5 | e | 5 e 5 e+|
par_sqlandworker_compress_linebuffer_tag $PG | | | |
par_sqlandworker_compress_linebuffer_tag $PG (25 rows)
par_sqlandworker_compress_linebuffer_tag $PG
p_wrapper par_sqlandworker_compress_linebuffer_tag \$SQLITE
par_sqlandworker_compress_linebuffer_tag $SQLITE Exit=0
par_sqlandworker_compress_linebuffer_tag $SQLITE Exit=0
par_sqlandworker_compress_linebuffer_tag $SQLITE Command|V1|V2|Stdout|Stderr
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 1 a|1|a|1 a 1 a
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 1 b|1|b|1 b 1 b
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 1 c|1|c|1 c 1 c
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 1 d|1|d|1 d 1 d
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 1 e|1|e|1 e 1 e
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 2 a|2|a|2 a 2 a
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 2 b|2|b|2 b 2 b
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 2 c|2|c|2 c 2 c
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 2 d|2|d|2 d 2 d
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 2 e|2|e|2 e 2 e
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 3 a|3|a|3 a 3 a
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 3 b|3|b|3 b 3 b
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 3 c|3|c|3 c 3 c
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 3 d|3|d|3 d 3 d
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 3 e|3|e|3 e 3 e
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 4 a|4|a|4 a 4 a
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 4 b|4|b|4 b 4 b
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 4 c|4|c|4 c 4 c
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 4 d|4|d|4 d 4 d
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 4 e|4|e|4 e 4 e
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 5 a|5|a|5 a 5 a
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 5 b|5|b|5 b 5 b
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 5 c|5|c|5 c 5 c
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 5 d|5|d|5 d 5 d
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE sleep .3;echo 5 e|5|e|5 e 5 e
par_sqlandworker_compress_linebuffer_tag $SQLITE |
p_wrapper par_sqlandworker_linebuffer \$MYSQL
par_sqlandworker_linebuffer $MYSQL Exit=0
par_sqlandworker_linebuffer $MYSQL Exit=0
par_sqlandworker_linebuffer $MYSQL Command V1 V2 Stdout Stderr
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 1 a 1 a 1 a\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 1 b 1 b 1 b\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 1 c 1 c 1 c\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 1 d 1 d 1 d\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 1 e 1 e 1 e\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 2 a 2 a 2 a\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 2 b 2 b 2 b\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 2 c 2 c 2 c\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 2 d 2 d 2 d\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 2 e 2 e 2 e\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 3 a 3 a 3 a\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 3 b 3 b 3 b\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 3 c 3 c 3 c\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 3 d 3 d 3 d\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 3 e 3 e 3 e\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 4 a 4 a 4 a\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 4 b 4 b 4 b\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 4 c 4 c 4 c\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 4 d 4 d 4 d\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 4 e 4 e 4 e\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 5 a 5 a 5 a\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 5 b 5 b 5 b\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 5 c 5 c 5 c\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 5 d 5 d 5 d\n
par_sqlandworker_linebuffer $MYSQL sleep .3;echo 5 e 5 e 5 e\n
p_wrapper par_sqlandworker_linebuffer \$PG
par_sqlandworker_linebuffer $PG Exit=0
par_sqlandworker_linebuffer $PG Exit=0
par_sqlandworker_linebuffer $PG command | v1 | v2 | stdout | stderr
par_sqlandworker_linebuffer $PG -------------------+----+----+--------+--------
par_sqlandworker_linebuffer $PG sleep .3;echo 1 a | 1 | a | 1 a +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 1 b | 1 | b | 1 b +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 1 c | 1 | c | 1 c +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 1 d | 1 | d | 1 d +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 1 e | 1 | e | 1 e +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 2 a | 2 | a | 2 a +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 2 b | 2 | b | 2 b +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 2 c | 2 | c | 2 c +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 2 d | 2 | d | 2 d +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 2 e | 2 | e | 2 e +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 3 a | 3 | a | 3 a +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 3 b | 3 | b | 3 b +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 3 c | 3 | c | 3 c +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 3 d | 3 | d | 3 d +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 3 e | 3 | e | 3 e +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 4 a | 4 | a | 4 a +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 4 b | 4 | b | 4 b +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 4 c | 4 | c | 4 c +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 4 d | 4 | d | 4 d +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 4 e | 4 | e | 4 e +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 5 a | 5 | a | 5 a +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 5 b | 5 | b | 5 b +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 5 c | 5 | c | 5 c +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 5 d | 5 | d | 5 d +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG sleep .3;echo 5 e | 5 | e | 5 e +|
par_sqlandworker_linebuffer $PG | | | |
par_sqlandworker_linebuffer $PG (25 rows)
par_sqlandworker_linebuffer $PG
p_wrapper par_sqlandworker_linebuffer \$SQLITE
par_sqlandworker_linebuffer $SQLITE Exit=0
par_sqlandworker_linebuffer $SQLITE Exit=0
par_sqlandworker_linebuffer $SQLITE Command|V1|V2|Stdout|Stderr
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 1 a|1|a|1 a
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 1 b|1|b|1 b
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 1 c|1|c|1 c
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 1 d|1|d|1 d
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 1 e|1|e|1 e
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 2 a|2|a|2 a
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 2 b|2|b|2 b
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 2 c|2|c|2 c
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 2 d|2|d|2 d
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 2 e|2|e|2 e
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 3 a|3|a|3 a
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 3 b|3|b|3 b
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 3 c|3|c|3 c
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 3 d|3|d|3 d
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 3 e|3|e|3 e
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 4 a|4|a|4 a
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 4 b|4|b|4 b
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 4 c|4|c|4 c
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 4 d|4|d|4 d
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 4 e|4|e|4 e
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 5 a|5|a|5 a
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 5 b|5|b|5 b
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 5 c|5|c|5 c
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 5 d|5|d|5 d
par_sqlandworker_linebuffer $SQLITE |
par_sqlandworker_linebuffer $SQLITE sleep .3;echo 5 e|5|e|5 e
par_sqlandworker_linebuffer $SQLITE |
p_wrapper par_sqlandworker_linebuffer_tag \$MYSQL
par_sqlandworker_linebuffer_tag $MYSQL Exit=0
par_sqlandworker_linebuffer_tag $MYSQL Exit=0
par_sqlandworker_linebuffer_tag $MYSQL Command V1 V2 Stdout Stderr
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 1 a 1 a 1 a\t1 a\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 1 b 1 b 1 b\t1 b\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 1 c 1 c 1 c\t1 c\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 1 d 1 d 1 d\t1 d\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 1 e 1 e 1 e\t1 e\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 2 a 2 a 2 a\t2 a\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 2 b 2 b 2 b\t2 b\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 2 c 2 c 2 c\t2 c\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 2 d 2 d 2 d\t2 d\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 2 e 2 e 2 e\t2 e\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 3 a 3 a 3 a\t3 a\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 3 b 3 b 3 b\t3 b\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 3 c 3 c 3 c\t3 c\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 3 d 3 d 3 d\t3 d\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 3 e 3 e 3 e\t3 e\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 4 a 4 a 4 a\t4 a\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 4 b 4 b 4 b\t4 b\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 4 c 4 c 4 c\t4 c\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 4 d 4 d 4 d\t4 d\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 4 e 4 e 4 e\t4 e\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 5 a 5 a 5 a\t5 a\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 5 b 5 b 5 b\t5 b\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 5 c 5 c 5 c\t5 c\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 5 d 5 d 5 d\t5 d\n
par_sqlandworker_linebuffer_tag $MYSQL sleep .3;echo 5 e 5 e 5 e\t5 e\n
p_wrapper par_sqlandworker_linebuffer_tag \$PG
par_sqlandworker_linebuffer_tag $PG Exit=0
par_sqlandworker_linebuffer_tag $PG Exit=0
par_sqlandworker_linebuffer_tag $PG command | v1 | v2 | stdout | stderr
par_sqlandworker_linebuffer_tag $PG -------------------+----+----+-------------+--------
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 1 a | 1 | a | 1 a 1 a+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 1 b | 1 | b | 1 b 1 b+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 1 c | 1 | c | 1 c 1 c+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 1 d | 1 | d | 1 d 1 d+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 1 e | 1 | e | 1 e 1 e+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 2 a | 2 | a | 2 a 2 a+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 2 b | 2 | b | 2 b 2 b+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 2 c | 2 | c | 2 c 2 c+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 2 d | 2 | d | 2 d 2 d+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 2 e | 2 | e | 2 e 2 e+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 3 a | 3 | a | 3 a 3 a+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 3 b | 3 | b | 3 b 3 b+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 3 c | 3 | c | 3 c 3 c+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 3 d | 3 | d | 3 d 3 d+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 3 e | 3 | e | 3 e 3 e+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 4 a | 4 | a | 4 a 4 a+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 4 b | 4 | b | 4 b 4 b+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 4 c | 4 | c | 4 c 4 c+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 4 d | 4 | d | 4 d 4 d+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 4 e | 4 | e | 4 e 4 e+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 5 a | 5 | a | 5 a 5 a+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 5 b | 5 | b | 5 b 5 b+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 5 c | 5 | c | 5 c 5 c+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 5 d | 5 | d | 5 d 5 d+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG sleep .3;echo 5 e | 5 | e | 5 e 5 e+|
par_sqlandworker_linebuffer_tag $PG | | | |
par_sqlandworker_linebuffer_tag $PG (25 rows)
par_sqlandworker_linebuffer_tag $PG
p_wrapper par_sqlandworker_linebuffer_tag \$SQLITE
par_sqlandworker_linebuffer_tag $SQLITE Exit=0
par_sqlandworker_linebuffer_tag $SQLITE Exit=0
par_sqlandworker_linebuffer_tag $SQLITE Command|V1|V2|Stdout|Stderr
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 1 a|1|a|1 a 1 a
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 1 b|1|b|1 b 1 b
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 1 c|1|c|1 c 1 c
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 1 d|1|d|1 d 1 d
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 1 e|1|e|1 e 1 e
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 2 a|2|a|2 a 2 a
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 2 b|2|b|2 b 2 b
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 2 c|2|c|2 c 2 c
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 2 d|2|d|2 d 2 d
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 2 e|2|e|2 e 2 e
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 3 a|3|a|3 a 3 a
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 3 b|3|b|3 b 3 b
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 3 c|3|c|3 c 3 c
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 3 d|3|d|3 d 3 d
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 3 e|3|e|3 e 3 e
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 4 a|4|a|4 a 4 a
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 4 b|4|b|4 b 4 b
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 4 c|4|c|4 c 4 c
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 4 d|4|d|4 d 4 d
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 4 e|4|e|4 e 4 e
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 5 a|5|a|5 a 5 a
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 5 b|5|b|5 b 5 b
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 5 c|5|c|5 c 5 c
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 5 d|5|d|5 d 5 d
par_sqlandworker_linebuffer_tag $SQLITE |
par_sqlandworker_linebuffer_tag $SQLITE sleep .3;echo 5 e|5|e|5 e 5 e
par_sqlandworker_linebuffer_tag $SQLITE |
p_wrapper par_sqlandworker_lo \$MYSQL
par_sqlandworker_lo $MYSQL Exit=0
par_sqlandworker_lo $MYSQL Exit=0

View file

@ -40,8 +40,8 @@ HOME=~
** bug #41805 done
echo '### Deal with long command lines on remote servers'
### Deal with long command lines on remote servers
perl -e 'print((("\""x5000)."\n")x10)' | parallel -j1 -S lo -N 10000 echo {} |wc
4 10 50010
perl -e 'print((("\""x5000)."\n")x26)' | parallel -j1 -S lo -N 10000 echo {} |wc
2 26 130026
echo '### Test bug #34241: --pipe should not spawn unneeded processes'
### Test bug #34241: --pipe should not spawn unneeded processes
seq 5 | ssh csh@lo parallel -k --block 5 --pipe -j10 cat\\\;echo Block_end

View file

@ -458,7 +458,6 @@ echo '### true < 32767-ys.xi'
### true < 32767-ys.xi
stdout xargs true < 32767-ys.xi
stdout parallel -k true < 32767-ys.xi
parallel: Error: Command line too long (98306 >= 65524) at input 0: y y y y y y y y y y y y y y y y y y y y y y y y y ...
echo '### true < 16383-ys.xi'
### true < 16383-ys.xi
stdout xargs true < 16383-ys.xi

View file

@ -107,24 +107,24 @@ a1.gif 2.gif 3.gif 4.gif 5.gif 6.gifb1 2 3 4 5 6c1 2 3 4 5 6
a1.gifb1c1 a2.gifb2c2 a3.gifb3c3 a4.gifb4c4 a5.gifb5c5 a6.gifb6c6
echo '### Test -m with 60000 args'; seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -km echo a{}b{.}c{.} | tee >(wc; sleep 1) >(md5sum; sleep 1) >/dev/null; wait; sleep 1
### Test -m with 60000 args
0891d955e7e2659ee6a88a96f3309b5c -
20 179960 1286702
d025d2d552a9ff809216d17d408de0b4 -
10 179980 1286692
echo '### Test -X with 60000 args'; seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.} | tee >(wc; sleep 1) >(md5sum; sleep 1) >/dev/null; wait; sleep 1
### Test -X with 60000 args
8646e0f7fd5f8795e4b1a831ede50e85 -
21 60000 1346682
3f7c4c261957ac7186bbe97cddcf5ae9 -
11 60000 1346682
echo '### Test -X with 60000 args and 5 expansions'
### Test -X with 60000 args and 5 expansions
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.}{} | wc -l
34
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.} | wc -l
25
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.} | wc -l
21
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c | wc -l
17
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b | wc -l
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.} | wc -l
13
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.} | wc -l
11
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c | wc -l
9
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b | wc -l
6
echo '### Test {.} does not repeat more than {}'
### Test {.} does not repeat more than {}
seq 1 15 | perl -pe 's/$/.gif/' | parallel -j1 -s 80 -kX echo a{}b{.}c{.}
@ -146,13 +146,13 @@ a14.gif 15.gifb14 15c14 15
echo '### Test -I with shell meta chars'
### Test -I with shell meta chars
seq 1 60000 | parallel -j1 -I :: -X echo a::b::c:: | wc -l
17
9
seq 1 60000 | parallel -j1 -I '<>' -X echo 'a<>b<>c<>' | wc -l
17
9
seq 1 60000 | parallel -j1 -I '<' -X echo 'a<b<c<' | wc -l
17
9
seq 1 60000 | parallel -j1 -I '>' -X echo 'a>b>c>' | wc -l
17
9
echo '### Test {.}'
### Test {.}
echo a | parallel -qX echo "'"{.}"' "

View file

@ -1,16 +1,16 @@
echo '### Test of xargs -m command lines > 130k'; seq 1 60000 | parallel -m -j1 echo a{}b{}c | tee >(wc >/tmp/awc$$) >(sort | md5sum) >/tmp/a$$; wait; CHAR=$(cat /tmp/a$$ | wc -c); LINES=$(cat /tmp/a$$ | wc -l); echo "Chars per line:" $(echo "$CHAR/$LINES" | bc); cat /tmp/awc$$; rm /tmp/a$$ /tmp/awc$$
### Test of xargs -m command lines > 130k
d10d5c84fc4716b21d90afa92cf44d73 -
Chars per line: 63437
11 119989 697810
c78bd0799bc23d8946732f8b3ae3c94e -
Chars per line: 116300
6 119994 697800
echo '### Test of xargs -X command lines > 130k'; seq 1 60000 | parallel -X -j1 echo a{}b{}c | tee >(wc >/tmp/bwc$$) >(sort | (sleep 1; md5sum)) >/tmp/b$$; wait; CHAR=$(cat /tmp/b$$ | wc -c); LINES=$(cat /tmp/b$$ | wc -l); echo "Chars per line:" $(echo "$CHAR/$LINES" | bc); cat /tmp/bwc$$; rm /tmp/b$$ /tmp/bwc$$
### Test of xargs -X command lines > 130k
47ec7550232044dc1e7a504705a45184 -
Chars per line: 62906
13 60000 817788
201ecb8ca789cecf39ee914a6d75611b -
Chars per line: 116826
7 60000 817788
echo '### Test of xargs -m command lines > 130k'; seq 1 60000 | parallel -k -j1 -m echo | md5sum
### Test of xargs -m command lines > 130k
4d3752b433dc963c466adc859e8d793f -
590091fd85dcb98f91c5e89cdddf21ef -
echo '### This causes problems if we kill child processes'; # 2>/dev/null to avoid parallel: Warning: Starting 45 processes took > 2 sec.
### This causes problems if we kill child processes
seq 2 40 | parallel -j 0 seq 1 10 2>/dev/null | sort | md5sum

View file

@ -74,9 +74,8 @@ please cite as described in 'parallel --citation'.
echo '### bug #39787: --xargs broken'
### bug #39787: --xargs broken
nice perl -e 'for(1..30000){print "$_\n"}' | $NICEPAR --xargs -k echo | perl -ne 'print length $_,"\n"'
65514
65514
37866
131052
37842
echo '### --delay should grow by 3 sec per arg'
### --delay should grow by 3 sec per arg
stdout /usr/bin/time -f %e parallel --delay 3 true ::: 1 2 | perl -ne '$_ >= 3 and $_ <= 8 and print "OK\n"'

View file

@ -30,41 +30,71 @@ See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
seq 900 1000 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 1000 1006 | PARALLEL_TMUX=tmux-1.9 par_tmux
seq 1000 1100 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 1100 1200 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 1200 1300 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 1300 1400 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 1400 1500 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 1500 1600 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 1600 1700 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 1700 1800 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 1800 1900 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 1900 2000 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 2000 2018 | PARALLEL_TMUX=tmux-1.9 par_tmux
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
echo '### tmux-1.9 fails'
### tmux-1.9 fails
echo 1007 | PARALLEL_TMUX=tmux-1.9 par_tmux
parallel: Error: Command line too long (2023 >= 2023) at input 0: 1007
echo 2019 | PARALLEL_TMUX=tmux-1.9 par_tmux
parallel: Error: Command line too long (4047 >= 4047) at input 0: 2019
255
echo 1008 | PARALLEL_TMUX=tmux-1.9 par_tmux
parallel: Error: Command line too long (2025 >= 2023) at input 0: 1008
echo 2020 | PARALLEL_TMUX=tmux-1.9 par_tmux
parallel: Error: Command line too long (4049 >= 4047) at input 0: 2020
255
echo 1009 | PARALLEL_TMUX=tmux-1.9 par_tmux
parallel: Error: Command line too long (2027 >= 2023) at input 0: 1009
echo 2021 | PARALLEL_TMUX=tmux-1.9 par_tmux
parallel: Error: Command line too long (4051 >= 4047) at input 0: 2021
255
echo '### tmux-1.8'
### tmux-1.8
seq 1 50 | PARALLEL_TMUX=tmux-1.8 par_tmux
seq 1 100 | PARALLEL_TMUX=tmux-1.8 par_tmux
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 51 100 | PARALLEL_TMUX=tmux-1.8 par_tmux
seq 101 200 | PARALLEL_TMUX=tmux-1.8 par_tmux
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
seq 101 113 | PARALLEL_TMUX=tmux-1.8 par_tmux
seq 201 231 | PARALLEL_TMUX=tmux-1.8 par_tmux
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
0
echo '### tmux-1.8 fails'
### tmux-1.8 fails
echo 114 | PARALLEL_TMUX=tmux-1.8 par_tmux
parallel: Error: Command line too long (236 >= 236) at input 0: 114
echo 232 | PARALLEL_TMUX=tmux-1.8 par_tmux
parallel: Error: Command line too long (472 >= 472) at input 0: 232
255
echo 115 | PARALLEL_TMUX=tmux-1.8 par_tmux
parallel: Error: Command line too long (238 >= 236) at input 0: 115
echo 233 | PARALLEL_TMUX=tmux-1.8 par_tmux
parallel: Error: Command line too long (474 >= 472) at input 0: 233
255
echo 116 | PARALLEL_TMUX=tmux-1.8 par_tmux
parallel: Error: Command line too long (240 >= 236) at input 0: 116
echo 234 | PARALLEL_TMUX=tmux-1.8 par_tmux
parallel: Error: Command line too long (476 >= 472) at input 0: 234
255
echo '### tmux-1.8 0..255 ascii'
### tmux-1.8 0..255 ascii
@ -83,12 +113,12 @@ See output with: tmux -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
053c7e8e945ef7641fc63bc309ac069d -
echo '### Test critical lengths. Must not block'
### Test critical lengths. Must not block
seq 70 130 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
seq 140 260 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
parallel: Error: Command line too long (236 >= 236) at input 0: 114
seq 70 130 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
parallel: Error: Command line too long (472 >= 472) at input 0: 232
seq 140 260 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
seq 280 425 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
parallel: Error: Command line too long (288 >= 236) at input 0: 280
seq 280 425 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
seq 560 850 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
parallel: Error: Command line too long (568 >= 472) at input 0: 560
seq 560 850 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach

View file

@ -395,12 +395,12 @@ a1b1^c1[.}c
echo "### BUG: The length for -X is not close to max (131072)"
### BUG: The length for -X is not close to max (131072)
seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
1 6861 65500
1 12817 131016
echo "### BUG: empty lines with --show-limit"
### BUG: empty lines with --show-limit
echo | $NICEPAR --show-limits
Maximal size of command: 131049
Maximal used size of command: 65524
Maximal used size of command: 131057
Execution of will continue now, and it will try to read its input
and run commands; if this is not what you wanted to happen, please