testsuite: --env test now much faster.

parallel: Small code cleanup.
This commit is contained in:
Ole Tange 2013-03-24 19:36:56 +01:00
parent 02d6dcece5
commit 828843fa15
6 changed files with 18 additions and 22 deletions

View file

@ -199,6 +199,7 @@ if($opt::nonall or $opt::onall) {
((defined $opt::group) ? "-g" : ""),
((defined $opt::D) ? "-D" : ""),
((defined $opt::plain) ? "--plain" : ""),
((defined $opt::max_chars) ? "--max-chars ".$opt::max_chars : ""),
);
my $suboptions =
join(" ",
@ -211,6 +212,7 @@ if($opt::nonall or $opt::onall) {
((defined $opt::timeout) ? "--timeout ".$opt::timeout : ""),
((defined $opt::plain) ? "--plain" : ""),
((defined $opt::retries) ? "--retries ".$opt::retries : ""),
((defined $opt::max_chars) ? "--max-chars ".$opt::max_chars : ""),
(@opt::env ? map { "--env ".::shell_quote_scalar($_) } @opt::env : ""),
);
::debug("| $0 $options\n");
@ -578,7 +580,7 @@ sub options_hash {
# xargs-compatibility - implemented, man, testsuite
"max-procs|P=s" => \$opt::P,
"delimiter|d=s" => \$opt::d,
"max-chars|s=i" => \$opt::s,
"max-chars|s=i" => \$opt::max_chars,
"arg-file|a=s" => \@opt::a,
"no-run-if-empty|r" => \$opt::r,
"replace|i:s" => \$opt::i,
@ -4118,7 +4120,7 @@ sub print {
# Verbose level > 1: Print the rsync and stuff
$cmd = $command;
}
printf $Global::joblog
print $Global::joblog
join("\t", $self->seq(), $self->sshlogin()->string(),
$self->starttime(), $self->runtime(),
$self->transfersize(), $self->returnsize(),
@ -4917,15 +4919,15 @@ sub max_length {
# Returns:
# number of chars on the longest command line allowed
if(not $Limits::Command::line_max_len) {
if($opt::s) {
if(is_acceptable_command_line_length($opt::s)) {
$Limits::Command::line_max_len = $opt::s;
if($opt::max_chars) {
if(is_acceptable_command_line_length($opt::max_chars)) {
$Limits::Command::line_max_len = $opt::max_chars;
} else {
# -s is too long: Find the correct
$Limits::Command::line_max_len = binary_find_max_length(0,$opt::s);
$Limits::Command::line_max_len = binary_find_max_length(0,$opt::max_chars);
}
if($opt::s <= $Limits::Command::line_max_len) {
$Limits::Command::line_max_len = $opt::s;
if($opt::max_chars <= $Limits::Command::line_max_len) {
$Limits::Command::line_max_len = $opt::max_chars;
} else {
::warning("Value for -s option ",
"should be < $Limits::Command::line_max_len.\n");

View file

@ -2412,7 +2412,7 @@ files over high speed connections.
The following will start one @strong{rsync} per big file in @emph{src-dir} to
@emph{dest-dir} on the server @emph{fooserver}:
@strong{find src-dir -type f -size +100000 | parallel -v ssh fooserver
@strong{cd src-dir; find . -type f -size +100000 | parallel -v ssh fooserver
mkdir -p /dest-dir/@{//@}\;rsync -Havessh @{@} fooserver:/dest-dir/@{@}}
The dirs created may end up with wrong permissions and smaller files
@ -2420,6 +2420,11 @@ are not being transferred. To fix those run @strong{rsync} a final time:
@strong{rsync -Havessh src-dir/ fooserver:/dest-dir/}
If you are unable to push data, but need to pull them and the files
are called digits.png (e.g. 000000.png) you might be able to do:
<seq -w 0 99 | parallel rsync -Havessh fooserver:src-path/*@{@}.png destdir/>
@chapter EXAMPLE: Use multiple inputs in one command
@anchor{EXAMPLE: Use multiple inputs in one command}
@ -3694,10 +3699,10 @@ released version you should specify why you believe the problem is not
fixed in that version.
@item A complete example that others can run that shows the problem. This
should preferably be small and simple. A combination of @strong{seq},
should preferably be small and simple. A combination of @strong{yes}, @strong{seq},
@strong{cat}, @strong{echo}, and @strong{sleep} can reproduce most errors. If your
example requires large files, see if you can make them by something
like @strong{seq 1000000} > @strong{file}.
like @strong{seq 1000000} > @strong{file} or @strong{yes | head -n 10000000} > @strong{file}.
@item The output of your example. If your problem is not easily reproduced
by others, the output might help them figure out the problem.

View file

@ -1,5 +0,0 @@
#!/bin/bash
echo '### Test --env all chars except \n,\92,\160 - single and double - no output is good'
# 92 and 160 are special for csh
perl -e 'for(1..9,9,11..91,91,93..159,159,161..255) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 10 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel --retries 3 -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --env V,V2 echo \''"{}$V$V2"'\' ::: {#} {#} {#} {#} | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11

View file

@ -1,5 +0,0 @@
#!/bin/bash
echo '### Test --env all chars except \n,\92,\160 - single and double --onall - no output is good'
# 92 and 160 are special for csh
perl -e 'for(1..9,9,11..91,91,93..159,159,161..255) { printf "%c%c %c%d\0",$_,$_,$_,$_ }' | stdout parallel --nice 10 -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// parallel --retries 5 -k -j1 -S :,1/lo,1/tcsh@lo,1/csh@lo --onall --env V,V2 echo \''"{}$V$V2"'\' ::: {#} | uniq -c | grep -v ' 4 '|grep -v xauth |grep -v X11

View file

@ -1 +0,0 @@
### Test --env all chars except \n,\92,\160 - single and double --onall - no output is good