From 05ec7b93f42a6174ce95ec12aae169ae0a27ec8f Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Sun, 4 Aug 2024 10:47:04 +0200 Subject: [PATCH] parallel: --match from bug #64819: Regexp capture groups. --- NEWS | 17 +- doc/haikus | 4 + doc/release_new_version | 7 +- src/parallel | 136 ++- src/parallel.pod | 66 +- src/parallel_examples.pod | 54 +- testsuite/REQUIREMENTS | 5 +- testsuite/tests-to-run/parallel-centos3.sh | 2 +- testsuite/tests-to-run/parallel-hwdep1.sh | 4 +- testsuite/tests-to-run/parallel-local-0.3s.sh | 5 + testsuite/tests-to-run/parallel-local-10s.sh | 76 +- testsuite/tests-to-run/parallel-local-3s.sh | 6 +- .../tests-to-run/parallel-local-race02.sh | 20 +- .../tests-to-run/parallel-local-sql01.sh | 2 +- testsuite/tests-to-run/parallel-local-ssh4.sh | 16 - testsuite/tests-to-run/parallel-local-ssh9.sh | 6 +- testsuite/tests-to-run/parallel-local21.sh | 108 ++- testsuite/tests-to-run/sql01.sh | 2 +- testsuite/tests-to-run/sql02.sh | 2 +- testsuite/tests-to-run/sql03.sh | 2 +- testsuite/wanted-results/parallel-hwdep1 | 24 +- testsuite/wanted-results/parallel-local-0.3s | 10 +- testsuite/wanted-results/parallel-local-10s | 851 ++++++++++-------- testsuite/wanted-results/parallel-local-3s | 8 +- .../wanted-results/parallel-local-race02 | 4 + testsuite/wanted-results/parallel-local-sql01 | 2 +- testsuite/wanted-results/parallel-local-ssh1 | 4 +- testsuite/wanted-results/parallel-local-ssh4 | 9 +- testsuite/wanted-results/parallel-local-ssh7 | 56 +- testsuite/wanted-results/parallel-local-ssh8 | 1 - testsuite/wanted-results/parallel-local21 | 30 + testsuite/wanted-results/parallel-ssh-fish | 133 +++ testsuite/wanted-results/parallel-tutorial | 1 + testsuite/wanted-results/sem01 | 10 +- testsuite/wanted-results/sql01 | 4 +- testsuite/wanted-results/sql02 | 2 +- 36 files changed, 1142 insertions(+), 547 deletions(-) mode change 100644 => 100755 testsuite/tests-to-run/parallel-local-race02.sh mode change 100644 => 100755 testsuite/tests-to-run/parallel-local-ssh9.sh mode change 100644 => 100755 testsuite/tests-to-run/parallel-local21.sh mode change 100644 => 100755 testsuite/tests-to-run/sql03.sh create mode 100644 testsuite/wanted-results/parallel-ssh-fish diff --git a/NEWS b/NEWS index 424a25b3..215adeac 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,14 @@ +20240822 + +New in this release: + +* --match Match input source with regexp to set replacement fields. + +* {:%fmt} Use printf formatting of replacement strings. + + +<<>> + 20240722 New in this release: @@ -32,9 +43,11 @@ New in this release: News about GNU Parallel: -* Howto - Parallel: lanciare comandi in simultanea https://github.com/linuxhubit/linuxhub.it/blob/main/_posts/2024-06-14-howto-parallel-per-lanciare-comandi-in-simultanea.md +* Howto - Parallel: lanciare comandi in simultanea + https://github.com/linuxhubit/linuxhub.it/blob/main/_posts/2024-06-14-howto-parallel-per-lanciare-comandi-in-simultanea.md -* Implementing Concurrency in Shell Scripts https://dev.to/siddhantkcode/implementing-concurrency-in-shell-scripts-521o +* Implementing Concurrency in Shell Scripts + https://dev.to/siddhantkcode/implementing-concurrency-in-shell-scripts-521o 20240522 diff --git a/doc/haikus b/doc/haikus index bc298eaa..2cf696ca 100644 --- a/doc/haikus +++ b/doc/haikus @@ -4,6 +4,10 @@ Quote of the month: + honestly the coolest software i've ever seen gotta be gnu parallel or + ffmpeg, nothing like them + -- @scootykins scoot + Recently executed a flawless live data migration of ~2.4pb using GNU parallel for scale and bash scripts. -- @mechanicker@twitter Dhruva diff --git a/doc/release_new_version b/doc/release_new_version index 871dd9c4..202a318b 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -268,7 +268,7 @@ from:tange@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org stable-bcc: Jesse Alama -Subject: GNU Parallel 20240822 ('Southport/<<>>') released <<[stable]>> +Subject: GNU Parallel 20240822 ('Bangladesh/Southport/<<>>') released <<[stable]>> GNU Parallel 20240822 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4 @@ -278,13 +278,18 @@ Quote of the month: New in this release: +* A format string can be added to replacement strings: {#:%04d} + <<>> + <<* No new features. This is a candidate for a stable release.>> * Bug fixes and man page updates. News about GNU Parallel: +https://www.linkedin.com/pulse/powerful-gnu-parallel-more-than-loop-zhenguo-zhang-18dxc + https://contentbase.com/blog/increase-file-transfer-speed-parallel-rsync/ https://bytefreaks.net/2024/07/27 diff --git a/src/parallel b/src/parallel index 21a38bba..10a3cb28 100755 --- a/src/parallel +++ b/src/parallel @@ -65,7 +65,11 @@ sub set_input_source_header($$) { @opt::filter) { # Skip if undefined $_ or next; - s:\{$s(|/|//|\.|/\.)\}:\{$id$1\}:g; + s<\{$s( + (\.\d+)? # Sub position = {3.2} + (|/|//|\.|/\.) # Known replacement strings + (:%.*?)? # Formatting + )\}><\{$id$1\}>gx; # {=header1 ... =} => {=1 ... =} s:$left $s (.*?) $right:$l$id$1$r:gx; } @@ -2039,6 +2043,7 @@ sub options_completion_hash() { "[Use at most max-args arguments per command line]:max-args" => \$opt::max_replace_args), "col-sep|colsep|C=s[Column separator]:regexp" => \$opt::colsep, + "match=s[Matching regexp]:regexp" => \@opt::match, "csv[Treat input as CSV-format]"=> \$opt::csv, ("help|h[Print a summary of the options to GNU parallel and exit]" => \$opt::help), @@ -2793,7 +2798,7 @@ sub check_invalid_option_combinations() { sub init_globals() { # Defaults: - $Global::version = 20240723; + $Global::version = 20240808; $Global::progname = 'parallel'; $::name = "GNU Parallel"; $Global::infinity = 2**31; @@ -13358,21 +13363,35 @@ sub new($) { # # Replace $$1 in {= perl expr =} with groupings in shorthand string # - # parallel --rpl '{/(\.\S+)/(\.\S+)} s/$$1/$$2_REPLACE/g;' echo {/.gz/.lz} ::: UU.tar.gz + # parallel --rpl '{/(\.\S+)/(\.\S+)} s/$$1/$$2_REPLACE/g;' \ + # echo {/.gz/.lz} ::: UU.tar.gz # # {/.gz/.lz} => - # \177< $_pAr_gRp1 = ".gz";$_pAr_gRp2 = ".lz";s/${_pAr_gRp1}/${_pAr_gRp2}_REPLACE/g; \177> + # \177< + # $_pAr_gRp1 = ".gz"; + # $_pAr_gRp2 = ".lz"; + # s/${_pAr_gRp1}/${_pAr_gRp2}_REPLACE/g; + # \177> # {/.gz/.lz:%8.2s} => - # \177< $_pAr_gRp1 = ".gz";$_pAr_gRp2 = ".lz";s/${_pAr_gRp1}/${_pAr_gRp2}_REPLACE/g;; $_ = sprintf("%8.2f",$_); \177> + # \177< + # $_pAr_gRp1 = ".gz"; + # $_pAr_gRp2 = ".lz"; + # s/${_pAr_gRp1}/${_pAr_gRp2}_REPLACE/g;; + # $_ = sprintf("%8.2f",$_); + # \177> # - sub replacer_format { + sub replacer_rpl { my $rpl = shift; + my $rv = $Global::rpl{$rpl}; + return replacer($rv,@_); + } + sub replacer { + my $rv = shift; my $unchanged = shift; my $position = shift; my $grp_regexp = shift; my $grp_string = shift; my $formatstring = shift; - $grp_string =~ /^${grp_regexp}$/ or ::die_bug("Match failed: '$grp_regexp' on $grp_string"); # Dummy entry to start $grp[n] at 1. @@ -13384,10 +13403,9 @@ sub new($) { push @grp, eval '$'.$i; } } - my $rv = $Global::rpl{$rpl}; - # replace $$1 with $_pAr_gRp1, $$2 with $_pAr_gRp2 + # replace $$1 with ${_pAr_gRp1}, $$2 with ${_pAr_gRp2} # in the code to be executed - $rv =~ s/\$\$ (\d+)/\$_pAr_gRp$1/gx; + $rv =~ s/\$\$ (\d+)/\$\{_pAr_gRp$1\}/gx; # prepend with $_pAr_gRp1 = perlquote($1), my $set_args = ""; for(my $i = 1;defined $grp[$i]; $i++) { @@ -13400,17 +13418,32 @@ sub new($) { if(length $formatstring > 0) { $formatcode = ";\$_ = sprintf('$formatstring',\$_);"; } - ::debug("rpl","match: $rpl ¤ $unchanged ¤ $position ¤ ". - "$grp_regexp ¤ $formatstring\n"); + if($position =~ s/\.(\d+)//) { + # {2.3} => There must be a corresponding --match + my $field = $1; + my $re = $opt::match[$position-1]; + if($re=~/^\+(\d+)/) { + # multiple --match: Reuse --match $1 + $re = $opt::match[$1-1]; + } + if(not defined $re) { + ::error("{$position.$field} requires ". + "corresponding --match"); + ::wait_and_exit(255); + } + if($re =~ /\001/) { + ::error("\\001 is not supported in --match"); + ::wait_and_exit(255); + } + $rv = "m\001$re\001 or ". + "::warning(\"'\$_' did not match '$re'\"); ". + "\$_ = \$$field; $rv"; + } + ::debug("rpl","match: $rv ¤ $unchanged ¤ $position ¤ ". + "$set_args ¤ $rv ¤ $grp_regexp ¤ $formatstring\n"); return($unchanged . "\177<" . $position . $set_args . $rv . $formatcode. "\177>"); } - sub replacer_no_format { - replacer_format(@_); - } - sub replacer { - replacer_format(@_); - } if($rpl =~ /^\{/) { my ($prefix,$grp_regexp,$postfix) = # Ignore { and } @@ -13421,39 +13454,40 @@ sub new($) { \} $ # } /xs; my $format_regexp = ":%.*?"; - q { + q{ # Regexp using named captures - kept for documentation # It is easier to understand than the backward compatible version # Look for: { position prefix group format postfix } while($s =~ - s{(? (?: ^|\177> ) (?: [^\177]*|[\177][^<>] )*?) - \{ - (? -?\d+)? - \Q$prefix\E \s* + s{(? (?: ^|\177> ) (?: [^\177]*|[\177][^<>] )*?) + \{ + (? -?\d+(?:\.\d+)? \s*)? + \Q$prefix\E (?$grp_regexp) \Q$postfix\E (? $format_regexp) \} - } - { - replacer_format($rpl, $+{unchanged}, $+{position}, - $grp_regexp, $+{grp}, $+{format}); - }gsex){}; + } + { + replacer_rpl($rpl, $+{unchanged}, + $+{position}, $grp_regexp, + $+{grp}, $+{format}); + }gsex){}; # Look for: { position prefix group postfix } while($s =~ s{(? (?: ^|\177> ) (?: [^\177]*|[\177][^<>] )*?) \{ - (? -?\d+)? - \Q$prefix\E \s* + (? -?\d+(?:\.\d+)? \s*)? + \Q$prefix\E (?$grp_regexp) \Q$postfix\E \} } - { - replacer_no_format($rpl, $+{unchanged}, - $+{position}, $grp_regexp, - $+{grp}); - }gsex){} + { + replacer_rpl($rpl, $+{unchanged}, + $+{position}, $grp_regexp, + $+{grp}); + }gsex){} }; { # This a rewrite of the above to perl 5.8 @@ -13462,30 +13496,29 @@ sub new($) { while($s =~ s{( (?: ^|\177> ) (?: [^\177]*|[\177][^<>] )*?) \{ - (-?\d+)? - \Q$prefix\E \s* + (-?\d+(?:\.\d+)? \s*)? + \Q$prefix\E ($grp_regexp) \Q$postfix\E ($format_regexp) \} } { - replacer_format($rpl, $1, $2, - $grp_regexp, $3, $+); + replacer_rpl($rpl, $1, $2, $grp_regexp, $3, $+); }gsex){} # Look for: { position prefix group postfix } + # (Same above - except "format") while($s =~ s{( (?: ^|\177> ) (?: [^\177]*|[\177][^<>] )*?) \{ - (-?\d+)? - \Q$prefix\E \s* + (-?\d+(?:\.\d+)? \s*)? + \Q$prefix\E ($grp_regexp) \Q$postfix\E \} } { - replacer_no_format($rpl, $1, $2, - $grp_regexp, $3); + replacer_rpl($rpl, $1, $2, $grp_regexp, $3); }gsex){} } } else { @@ -13505,8 +13538,8 @@ sub new($) { \Q$postfix\E } { - replacer($rpl, $+{unchanged}, $+{position}, - $grp_regexp, $+{grp}); + replacer_rpl($rpl, $+{unchanged}, $+{position}, + $grp_regexp, $+{grp}); }gsex){}; }; { @@ -13520,10 +13553,20 @@ sub new($) { ($grp_regexp) \Q$postfix\E } - { replacer($rpl, $1, $2, $grp_regexp, $3); }gsex){}; + { + replacer_rpl($rpl, $1, $2, $grp_regexp, $3); + }gsex){}; } } } + # Perl positional replacement fields {=1.2 perlexpr =} + while($s =~ + s{ \177< # {= + (-?\d+(?:\.\d+)\s*) # position + (([^\177]+|\177\177)*) # perl expr + \177> # =} + } + { replacer($2, '', $1,''); }gsex){}; return $s; } @@ -13564,6 +13607,7 @@ sub new($) { # Replace rpl-definitions with the corresponding perl code $_ = replace_rpl_def($_); } + # Add {} if no replacement strings in @command ($replacecount_ref, $len_ref, @command) = replacement_counts_and_lengths($transfer_files, $return_files, diff --git a/src/parallel.pod b/src/parallel.pod index 0c8290e1..b7587861 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -134,7 +134,7 @@ B: Use B. B: Use B. -=item B<{}> +=item B<{}> (alpha testing) Input line. @@ -155,7 +155,7 @@ See also: B<--plus> B<{.}> B<{/}> B<{//}> B<{/.}> B<{#}> B<{%}> B<{>IB<}> B<{=>IB<=}> -=item B<{.}> +=item B<{.}> (alpha testing) Input line without extension. @@ -173,7 +173,7 @@ The replacement string B<{.}> can be changed with B<--extensionreplace> See also: B<{}> B<--extensionreplace> -=item B<{/}> +=item B<{/}> (alpha testing) Basename of input line. @@ -183,7 +183,7 @@ directory part removed. See also: B<{}> B<--basenamereplace> -=item B<{//}> +=item B<{//}> (alpha testing) Dirname of input line. @@ -193,7 +193,7 @@ line. See B(1). See also: B<{}> B<--dirnamereplace> -=item B<{/.}> +=item B<{/.}> (alpha testing) Basename of input line without extension. @@ -204,7 +204,7 @@ B<{/}> and B<{.}>. See also: B<{}> B<--basenameextensionreplace> -=item B<{#}> +=item B<{#}> (alpha testing) Sequence number of the job to run. @@ -214,7 +214,7 @@ job being run. It contains the same number as $PARALLEL_SEQ. See also: B<{}> B<--seqreplace> -=item B<{%}> +=item B<{%}> (alpha testing) Job slot number. @@ -249,7 +249,7 @@ Notice how {%} and $PARALLEL_JOBSLOT differ in the retry run of C and D. See also: B<{}> B<--jobs> B<--slotreplace> -=item B<{>IB<}> +=item B<{>IB<}> (alpha testing) Argument from input source I or the I'th argument. @@ -263,7 +263,7 @@ See also: B<{}> B<{>I.B<}> B<{>I/B<}> B<{>I//B<}> B<{>I/.B<}> B<--colsep> -=item B<{>I.B<}> +=item B<{>I.B<}> (alpha testing) Argument from input source I or the I'th argument without extension. @@ -278,7 +278,7 @@ extension removed. See also: B<{>IB<}> B<{.}> -=item B<{>I/B<}> +=item B<{>I/B<}> (alpha testing) Basename of argument from input source I or the I'th argument. @@ -292,7 +292,7 @@ directory (if any) removed. See also: B<{>IB<}> B<{/}> -=item B<{>I//B<}> +=item B<{>I//B<}> (alpha testing) Dirname of argument from input source I or the I'th argument. @@ -305,7 +305,7 @@ the I'th argument (when used with B<-N>). See B(1). See also: B<{>IB<}> B<{//}> -=item B<{>I/.B<}> +=item B<{>I/.B<}> (alpha testing) Basename of argument from input source I or the I'th argument without extension. @@ -321,7 +321,7 @@ directory (if any) and extension removed. See also: B<{>IB<}> B<{/.}> -=item B<{=>IB<=}> +=item B<{=>IB<=}> (alpha testing) Replace with calculated I. @@ -438,7 +438,7 @@ See also: B<--rpl> B<--parens> B<{}> B<{=>I IB<=}> B<--filter> -=item B<{=>I IB<=}> +=item B<{=>I IB<=}> (alpha testing) Positional equivalent to B<{=>IB<=}>. @@ -447,7 +447,7 @@ To understand positional replacement strings see B<{>IB<}>. See also: B<{=>IB<=}> B<{>IB<}> -=item B{I:I} (alpha testing) +=item B<{>I:IB<}> (alpha testing) Format replacement string. @@ -1796,6 +1796,34 @@ If in doubt use B<-X> as that will most likely do what is needed. See also: B<-X> B<--xargs> +=item B<--match> I (alpha testing) + +Match input source with regexp to set replacement fields. + +Each capture group i.e. '(...)' can be accessed with a replacement +field. The replacement fields are named B<{m.n}> where m is the input +source and n is the capture group number: + + parallel --match '(.*),(.*)_(.*)' echo {1.2} {1.3} {1.1} \ + ::: Gold,Heart_of + parallel --match '(.*),' --match '([a-z]+)' echo {1.1}{2.1} \ + ::: Milli,bar ::: 10ways + +To reuse a B<--match> simply use B<+n> where n is the input +source. E.g. B<+2> for the second: + + parallel --match +2 --match '([A-Za-z]+)' echo {1.1} {2.1} \ + ::: /Improbability/ ::: 10drive + +To only set B<--match> for input source 2, make a dummy B<--match> for +input source 1: + + parallel --match '' --match '([a-z]+)' echo {1} {2.1} \ + ::: Telephone ::: 10sanitizer + +See also: B<{>IB<}> + + =item B<--memfree> I Minimum memory free when starting another job. @@ -2759,10 +2787,10 @@ the replacement string and adding a regular expression between the parenthesis. The matching string will be inserted as $$1: parallel --rpl '{%(.*?)} s/$$1//' echo {%.tar.gz} ::: my.tar.gz - parallel --rpl '{:%(.+?)} s:$$1(\.[^/]+)*$::' \ - echo {:%_file} ::: my_file.tar.gz - parallel -n3 --rpl '{/:%(.*?)} s:.*/(.*)$$1(\.[^/]+)*$:$1:' \ - echo job {#}: {2} {2.} {3/:%_1} ::: a/b.c c/d.e f/g_1.h.i + parallel --rpl '{:+(.+?)} s:$$1(\.[^/]+)*$::' \ + echo {:+_file} ::: my_file.tar.gz + parallel -n3 --rpl '{/:+(.*?)} s:.*/(.*)$$1(\.[^/]+)*$:$1:' \ + echo job {#}: {2} {2.} {3/:+_1} ::: a/b.c c/d.e f/g_1.h.i You can even use multiple matches: diff --git a/src/parallel_examples.pod b/src/parallel_examples.pod index 81205168..dd33f7b3 100644 --- a/src/parallel_examples.pod +++ b/src/parallel_examples.pod @@ -178,6 +178,7 @@ You have a bunch of file. You want them sorted into dirs. The dir of each file should be named the first letter of the file name. parallel 'mkdir -p {=s/(.).*/$1/=}; mv {} {=s/(.).*/$1/=}' ::: * + parallel --match '(.)' 'mkdir -p {1.1} && mv {} {1.1}' ::: * =head2 EXAMPLE: Composed command with multiple input sources @@ -189,6 +190,57 @@ You have a dir with files named as 24 hours in 5 minute intervals: ::: {00..23} ::: {00..55..5} +=head2 EXAMPLE: Match parts of input source + +Match first initial and last name: + + parallel --match '(.).* (.*)' echo {1.1}. {1.2} \ + ::: "Arthur Dent" "Ford Prefect" "Tricia McMillan" "Zaphod Beeblebrox" + +Re-arrange (stupid) US date format into (nice) ISO-8601: + + parallel --match '(.*)/(.*)/(.*)' echo {1.3}-{1.1}-{1.2} \ + ::: 12/31/1969 01/19/2038 06/01/2002 + +Match url into domain and path: + + parallel --match 'https://(.*?)/(.*)' echo Domain: {1.1} Path: {1.2} \ + ::: https://example.com/dir/page https://gnu.org/s/parallel + +Match host:port from a log file: + + cat log | + parallel --match '\b([a-z0-9.]+):(\d+)\b' echo host:{1.1} port:{1.2} + +Reorder comma-separated values: + + parallel --match '(.*),(.*)' echo Second: {1.2}, First: {1.1} \ + ::: "Arthur,Babel fish" "Adams,Betelgeuse" "Arcturan,Bistro" + +Capitalize word: + + parallel --match '([a-z])([a-z]*) ([a-z])([a-z]*)' \ + echo '{=1.1 $_=uc($_) =}{1.2} {=1.3 $_=uc($_) =}{1.4}' \ + ::: "pan galactic" "gargle blaster" + +Make an international dialing prefix table: + + dial=( + "DK(Denmark) 00,45" + "US(United States) 011,1" + "JP(Japan) 010,81" + "AU(Australia) 0011,61" + "CA(Canada) 011,1" + "RU(Russia) 810,7" + "TH(Thailand) 001,66" + "TW(Taiwan) 002,886" + ) + parallel --match '(.*)\((.*)\) (.*),(.*)' --match +1 \ + echo From {1.1}/{1.2} to {2.1}/{2.2} dial {1.3}-{2.4} \ + ::: "${dial[@]}" ::: "${dial[@]}" + +Note how input source 2 reuses the B<--match> from input source 1. + =head2 EXAMPLE: Calling Bash functions If the composed command is longer than a line, it becomes hard to @@ -446,7 +498,7 @@ and the rest a ' ' a perl expression is used to look at the 3rd input source. If the value modulo 2 is 1: Use ":" otherwise use " ": parallel -k echo {1}'{=3 $_=$_%2?":":" "=}'{2}{3} \ - ::: {0..12} ::: {0..5} ::: {0..9} + ::: {0..23} ::: {0..5} ::: {0..9} =head2 EXAMPLE: Aggregating content of files diff --git a/testsuite/REQUIREMENTS b/testsuite/REQUIREMENTS index 4b06048d..c3676a31 100644 --- a/testsuite/REQUIREMENTS +++ b/testsuite/REQUIREMENTS @@ -504,8 +504,9 @@ lsh_setup() { mkdir -p .lsh rm -f ".lsh/yarrow-seed-file" lsh-make-seed -o ".lsh/yarrow-seed-file" - lsh -c aes256-ctr --sloppy-host-authentication \ - --capture-to ~/.lsh/host-acls -l $user server echo Added host-auth + # TODO need to enter 'y' here + lsh --sloppy-host-authentication \ + --capture-to ~/.lsh/host-acls -l $user $server echo Added host-auth rm -f .lsh/identity .lsh/identity.pub lsh-keygen | lsh-writekey -c none export_key_to_local_users() { diff --git a/testsuite/tests-to-run/parallel-centos3.sh b/testsuite/tests-to-run/parallel-centos3.sh index b0e5e43e..32eaa209 100644 --- a/testsuite/tests-to-run/parallel-centos3.sh +++ b/testsuite/tests-to-run/parallel-centos3.sh @@ -74,7 +74,6 @@ start_centos3 ssh $SSHLOGIN1 cat .ssh/id_rsa.pub | ssh $SSHLOGIN2 'cat >>.ssh/authorized_keys' ssh $SSHLOGIN1 'cat .ssh/id_rsa.pub >>.ssh/authorized_keys; chmod 600 .ssh/authorized_keys' ssh $SSHLOGIN1 'ssh -o StrictHostKeyChecking=no localhost true; ssh -o StrictHostKeyChecking=no '$SSHLOGIN2' true;' - ssh $SSHLOGIN1 parallel echo {}: ssh $SSHLOGIN1 parallel ::: OK ) & . env_parallel.bash @@ -105,3 +104,4 @@ env_parallel --env par_shellshock_bug --env LC_ALL --env SSHLOGIN2 \ -S $SSHLOGIN1 --tag '{} 2>&1' \ ::: $(compgen -A function | grep par_ | sort) \ 2> >(grep -Ev 'shopt: not found|declare: not found|No xauth data') +ssh $SSHLOGIN1 parallel echo {}: ssh $SSHLOGIN1 parallel ::: OK diff --git a/testsuite/tests-to-run/parallel-hwdep1.sh b/testsuite/tests-to-run/parallel-hwdep1.sh index e6af23e5..92ef69c9 100755 --- a/testsuite/tests-to-run/parallel-hwdep1.sh +++ b/testsuite/tests-to-run/parallel-hwdep1.sh @@ -155,13 +155,13 @@ par__environment_too_big_zsh() { . `which env_parallel.zsh`; len_var=16 - len_var_remote=$len_var-15 + len_var_remote=$len_var len_var_quote=$len_var len_var_quote_remote=$len_var-15 len_fun=18 len_fun_remote=$len_fun-10 len_fun_quote=$len_fun - len_fun_quote_remote=$len_fun-10 + len_fun_quote_remote=$len_fun-5 repeat_() { # Repeat input string n*1000 times diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index 8adf35cf..0dfde398 100755 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -16,6 +16,11 @@ export -f stdsort # Test amount of parallelization # parallel --shuf --jl /tmp/myjl -j1 'export JOBS={1};'bash tests-to-run/parallel-local-0.3s.sh ::: {1..16} ::: {1..5} +par_--rpl_group_bug() { + echo 'Bug in --rpl group: $$1_' + parallel --rpl '{a(.)b} s/$$1_c/o/g' echo {aDb} ::: GD_cD_cd +} + par_env_parallel_recordenv() { echo 'bug #65127: env_parallel --record-env and --recordenv should do the same.' . env_parallel.bash diff --git a/testsuite/tests-to-run/parallel-local-10s.sh b/testsuite/tests-to-run/parallel-local-10s.sh index f594ba41..c8fac023 100755 --- a/testsuite/tests-to-run/parallel-local-10s.sh +++ b/testsuite/tests-to-run/parallel-local-10s.sh @@ -8,7 +8,75 @@ # Each should be taking 10-30s and be possible to run in parallel # I.e.: No race conditions, no logins -par_tee_too_many_args() { +par_--match() { + export PARALLEL=-k + echo Basic match + parallel --match '(.*)/([a-zA-Z]+)' echo {1.2} {1.1} \ + ::: works/This "works, too"/This + + echo Simple CSV-parsing + echo https://gnu.org/s/parallel,myfile | + parallel --match '(.*),(.*)' echo url={1.1} filename={1.2} + + echo Dummy --match for input source 1, real --match for input source 2 + parallel --match '' --match '(.*)/([A-Z]+)' echo {2.1} {1} ::: works ::: This/SKIP + + echo Reuse --match + parallel --match +2 --match '([A-Z]+)' echo {2.1} {1.1} \ + ::: ignoreOK ::: ignoreALL + + echo With --header : + parallel --header : --match +2 --match '([A-Z]+)' echo {B.1} {A.1} \ + ::: A ignoreOK ::: B ignoreALL + + echo Failure to match/Partial match + parallel --match '([a-z]+)' echo {1.1} ::: matches FAILS MATCHESpartly + + echo Test error: missing --match + parallel --match 'dummy' echo {2.1} ::: should fail + + echo 'Test error: \001 in match' + ctrl_a=$(perl -e 'printf "%c",1') + parallel --match "$ctrl_a" echo {1.1} ::: fail + + echo From man parallel_examples + parallel --match '(.)' --dr 'mkdir -p {1.1} && mv {} {1.1}' ::: afile bfile adir + parallel --match '(.).* (.*)' echo {1.1}. {1.2} \ + ::: "Arthur Dent" "Ford Prefect" "Tricia McMillan" "Zaphod Beeblebrox" + parallel --match '(.*)/(.*)/(.*)' echo {1.3}-{1.1}-{1.2} \ + ::: 12/31/1969 01/19/2038 06/01/2002 + parallel --match 'https://(.*?)/(.*)' echo Domain: {1.1} Path: {1.2} \ + ::: https://example.com/dir/page https://gnu.org/s/parallel + parallel --match '(.*),(.*)' echo Second: {1.2}, First: {1.1} \ + ::: "Arthur,Babel fish" "Adams,Betelgeuse" "Arcturan,Bistro" + parallel --match '([a-z])([a-z]*) ([a-z])([a-z]*)' \ + echo '{=1.1 $_=uc($_) =}{1.2} {=1.3 $_=uc($_) =}{1.4}' \ + ::: "pan galactic" "gargle blaster" + dial=( + "DK(Denmark) 00,45" + "US(United States) 011,1" + "JP(Japan) 010,81" + "AU(Australia) 0011,61" + "CA(Canada) 011,1" + "RU(Russia) 810,7" + "TH(Thailand) 001,66" + "TW(Taiwan) 002,886" + ) + parallel --match '(.*)\((.*)\) (.*),(.*)' --match +1 \ + echo From {1.1}/{1.2} to {2.1}/{2.2} dial {1.3}-{2.4} \ + ::: "${dial[@]}" ::: "${dial[@]}" + + echo Capture groups CSV-parsing - not implemented + echo https://gnu.org/s/parallel,myfile | + parallel --match '(?.*),(?.*)' echo url={url} filename={file} + + echo Non posistional replacement fields - not implemented + parallel --match '(.*),(.*)_(.*)' echo {.2} {.3} {.1} ::: Gold,Heart_of + + echo TODO Ignore case? +} + +par__tee_too_many_args() { echo '### Fail if there are more arguments than --jobs' seq 11 | stdout parallel -k --tag --pipe -j4 --tee grep {} ::: {1..4} tmp=`mktemp` @@ -48,7 +116,7 @@ par__load_from_PARALLEL() { zcat | sort -n | md5sum } -par_quote_special_results() { +par__quote_special_results() { echo "### Test --results on file systems with limited UTF8 support" export LC_ALL=C doit() { @@ -217,7 +285,7 @@ par_opt_arg_eaten() { printf '1\0002\0003\0004\0005\000' | stdout parallel -k -0 -i repl echo repl OK } -par_nice() { +par__nice() { echo 'Check that --nice works' # parallel-20160422 OK check_for_2_bzip2s() { @@ -342,7 +410,7 @@ par_END() { (echo include this; echo END; echo not this) | parallel -k --eof END echo } -par_xargs_compat() { +par__xargs_compat() { echo xargs compatibility a_b-c() { echo a_b; echo c; } a_b_-c-d() { echo a_b' '; echo c; echo d; } diff --git a/testsuite/tests-to-run/parallel-local-3s.sh b/testsuite/tests-to-run/parallel-local-3s.sh index f0255afc..21825917 100755 --- a/testsuite/tests-to-run/parallel-local-3s.sh +++ b/testsuite/tests-to-run/parallel-local-3s.sh @@ -360,7 +360,7 @@ par__test_cpu_detection_topology() { ' } cpu20() { - echo '1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit)' + echo '1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit - detected wrong)' echo ' KLUv/QRovBQA1tU+IGBJ2wa2Edh2H/3+WsW1pqAixNFSp4VaZLdSOgQfA5ACMwA1ADcATO1J 9EsI6f//P65ZU+hjFfNJ/bjGHYG/E5T1fjgw67nF/3R4Jh4lRFYqGeWTyiMq/BEIRzMLcSll @@ -1024,7 +1024,7 @@ par__test_cpu_detection_cpuinfo() { ' | unpack } cpu20() { - echo '1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit)' + echo '1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit - detected wrong)' echo ' KLUv/QRoXSEApjqgIyBtrAMBfUS1S7lyNhBkqR+VRby1HGkcIfAfpUMCoQwIwQaLnACNAJAA LX4Zn3Z86/pt/rpvlN4QgwxJGnClhXdPzld527SrNxLxc8heffK1xyxR1NLZEqah89q9Q9Ze @@ -1330,7 +1330,7 @@ par__test_cpu_detection_lscpu() { ' | unpack } cpu20() { - echo '1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit)' + echo '1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit - detected wrong)' echo ' KLUv/QRoxSAACkYADCkAb7g52NOaaG9pWWVp1EK7UMah1zodCwjsgmz4tfgH/PMzcUVV1Ypq XsoAswCsALDiYJkWExTubWeGpVgcGJDHJOIB4lGeZGEwGAIeDEcjgwMIhuIWQu3JUsEBg1HA diff --git a/testsuite/tests-to-run/parallel-local-race02.sh b/testsuite/tests-to-run/parallel-local-race02.sh old mode 100644 new mode 100755 index dde8e2a8..af551b28 --- a/testsuite/tests-to-run/parallel-local-race02.sh +++ b/testsuite/tests-to-run/parallel-local-race02.sh @@ -6,6 +6,24 @@ # These fail regularly +env_underscore() { + echo WHY DOES THIS FAIL? + echo '### --env _' + echo ignored_var >> ~/.parallel/ignored_vars + unset $(compgen -A function | grep par_) + ignored_var="ERROR IF COPIED" + export ignored_var + fUbAr="OK from fubar" parallel -S parallel@lo --env _ echo '$fUbAr $ignored_var' ::: test + echo 'In csh this may fail with ignored_var: Undefined variable.' + fUbAr="OK from fubar" parallel -S csh@lo --env _ echo '$fUbAr $ignored_var' ::: test + + echo '### --env _ with explicit mentioning of normally ignored var $ignored_var' + ignored_var="should be copied" + fUbAr="OK from fubar" parallel -S parallel@lo --env ignored_var,_ echo '$fUbAr $ignored_var' ::: test + fUbAr="OK from fubar" parallel -S csh@lo --env ignored_var,_ echo '$fUbAr $ignored_var' ::: test +} +env_underscore + ctrlz_should_suspend_children() { echo 'bug #46120: Suspend should suspend (at least local) children' echo 'it should burn 1.9 CPU seconds, but no more than that' @@ -236,6 +254,6 @@ par_continuous_output() { } export -f $(compgen -A function | grep par_) -compgen -A function | grep par_ | sort | +compgen -A function | G "$@" | grep par_ | sort | # parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1' parallel -o --joblog /tmp/jl-`basename $0` -j1 --tag -k '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-local-sql01.sh b/testsuite/tests-to-run/parallel-local-sql01.sh index e3f00f93..cf30d2c0 100644 --- a/testsuite/tests-to-run/parallel-local-sql01.sh +++ b/testsuite/tests-to-run/parallel-local-sql01.sh @@ -201,7 +201,7 @@ do_dburl() { perl -pe 's/ +/ /g' | # SQLITE par_empty Error: near line 1: in prepare, no such table: TBL99999 (1) # SQLITE par_empty Parse error near line 1: no such table: TBL99999 - perl -pe 's/Error: near line 1: in prepare, (.*) .../Parse error near line 1: /' + perl -pe 's/Error: near line 1: in prepare, (.*)/Parse error near line 1: $1/' } export -f do_dburl parallel -vk --tag do_dburl ::: CSV INFLUX MYSQL PG SQLITE diff --git a/testsuite/tests-to-run/parallel-local-ssh4.sh b/testsuite/tests-to-run/parallel-local-ssh4.sh index 57f79e4b..ce7e7488 100755 --- a/testsuite/tests-to-run/parallel-local-ssh4.sh +++ b/testsuite/tests-to-run/parallel-local-ssh4.sh @@ -75,22 +75,6 @@ par_--nonall_results() { rm -r "$tmp" } -par_env_underscore() { - echo '### --env _' - echo ignored_var >> ~/.parallel/ignored_vars - unset $(compgen -A function | grep par_) - ignored_var="should not be copied" - export ignored_var - fUbAr="OK FUBAR" parallel -S parallel@lo --env _ echo '$fUbAr $ignored_var' ::: test - echo 'In csh this may fail with ignored_var: Undefined variable.' - fUbAr="OK FUBAR" parallel -S csh@lo --env _ echo '$fUbAr $ignored_var' ::: test 2>&1 - - echo '### --env _ with explicit mentioning of normally ignored var $ignored_var' - ignored_var="should be copied" - fUbAr="OK FUBAR" parallel -S parallel@lo --env ignored_var,_ echo '$fUbAr $ignored_var' ::: test - fUbAr="OK FUBAR" parallel -S csh@lo --env ignored_var,_ echo '$fUbAr $ignored_var' ::: test 2>&1 -} - par_warn_when_exporting_func() { echo 'bug #40137: SHELL not bash: Warning when exporting funcs' myrun() { diff --git a/testsuite/tests-to-run/parallel-local-ssh9.sh b/testsuite/tests-to-run/parallel-local-ssh9.sh old mode 100644 new mode 100755 index da442143..245f651a --- a/testsuite/tests-to-run/parallel-local-ssh9.sh +++ b/testsuite/tests-to-run/parallel-local-ssh9.sh @@ -157,10 +157,10 @@ par_env_parallel_big_env() { echo '### bug #54128: command too long when exporting big env' . env_parallel.bash env_parallel --session - a=`rand | perl -pe 's/\0//g'| head -c 10000` + a=`rand | perl -pe 's/\0//g'| head -c 40000` env_parallel -Slo echo ::: OK 2>&1 - a=`rand | perl -pe 's/\0//g'| head -c 20000` - env_parallel -Slo echo should ::: fail 2>/dev/null || echo OK + a=`rand | perl -pe 's/\0//g'| head -c 50000` + env_parallel -Slo echo THIS SHOULD ::: FAIL 2>/dev/null || echo OK } par_no_route_to_host() { diff --git a/testsuite/tests-to-run/parallel-local21.sh b/testsuite/tests-to-run/parallel-local21.sh old mode 100644 new mode 100755 index a5311473..c4b1ce2a --- a/testsuite/tests-to-run/parallel-local21.sh +++ b/testsuite/tests-to-run/parallel-local21.sh @@ -207,7 +207,7 @@ par_shebang_wrap_ruby() { script="$TMPDIR"/shebang_wrap_ruby cat <<'EOF' > "$script" #!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/ruby - + print "Arguments " puts ARGV EOF @@ -234,13 +234,117 @@ EOF rm "$script" } +par_shebang_wrap_groovy() { + script="$TMPDIR"/shebang_wrap_groovy + unset DISPLAY + cat <<'EOF' > "$script" +#!/usr/local/bin/parallel --shebang-wrap -k /snap/bin/groovy + +println "Arguments: ${args.join(' ')}" +EOF + chmod 755 "$script" + "$script" arg1 arg2 "arg3.1 arg3.2" + rm "$script" +} + +par_shebang_wrap_racket() { + script="$TMPDIR"/shebang_wrap_racket + unset DISPLAY + cat <<'EOF' > "$script" +#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/racket +#lang racket + +;; Get the command-line arguments, skipping the script name +(define args (vector->list (current-command-line-arguments))) + +;; Format the arguments as a string +(define formatted-args (string-join args " ")) + +;; Print the result +(printf "Arguments: ~a\n" formatted-args) +EOF + chmod 755 "$script" + "$script" arg1 arg2 "arg3.1 arg3.2" + rm "$script" +} + +par_shebang_wrap_scheme() { + script="$TMPDIR"/shebang_wrap_scheme + unset DISPLAY + cat <<'EOF' > "$script" +#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/env guile +!# + +(define (print-arguments args) + (display "Arguments: ") + (for-each (lambda (arg) + (display arg) + (display " ")) + args) + (newline)) + +(print-arguments (cdr (command-line))) +EOF + chmod 755 "$script" + stdout "$script" arg1 arg2 "arg3.1 arg3.2" | + grep -v ';;;' | grep -v shebang_wrap_sche + rm "$script" +} + +par_shebang_wrap_awk() { + script="$TMPDIR"/shebang_wrap_awk + unset DISPLAY + cat <<'EOF' > "$script" +#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/awk -f + +BEGIN { + printf "Arguments: " + for (i = 1; i < ARGC; i++) { + printf "%s ", ARGV[i] + } + printf "\n" +} +EOF + chmod 755 "$script" + "$script" arg1 arg2 "arg3.1 arg3.2" + rm "$script" +} + +par_shebang_wrap_fsharp() { + script="$TMPDIR"/shebang_wrap_fsharp.fsx + unset DISPLAY + cat <<'EOF' > "$script" +#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/fsharpi + +let args = (System.Environment.GetCommandLineArgs() + |> Array.tail |> Array.tail |> Array.tail) +printfn "Arguments: %A" args +EOF + chmod 755 "$script" + "$script" arg1 arg2 "arg3.1 arg3.2" + rm "$script" +} + +par_shebang_wrap_julia() { + script="$TMPDIR"/shebang_wrap_julia + unset DISPLAY + cat <<'EOF' > "$script" +#!/usr/local/bin/parallel --shebang-wrap -k /snap/bin/julia + +println("Arguments: ", join(ARGS, " ")) +EOF + chmod 755 "$script" + "$script" arg1 arg2 "arg3.1 arg3.2" + rm "$script" +} + par_shebang_wrap_clisp() { # clisp cannot handle dirs w/ shell wildcards TMPDIR=/tmp script="$TMPDIR"/shebang_wrap_clisp cat <<'EOF' > "$script" #!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/clisp - + (format t "~&~S~&" 'Arguments) (format t "~&~S~&" *args*) EOF diff --git a/testsuite/tests-to-run/sql01.sh b/testsuite/tests-to-run/sql01.sh index 97ea81a6..42fac15b 100755 --- a/testsuite/tests-to-run/sql01.sh +++ b/testsuite/tests-to-run/sql01.sh @@ -194,4 +194,4 @@ par_help() { export -f $(compgen -A function | grep par_) compgen -A function | G par_ "$@" | LC_ALL=C sort | - parallel --timeout 1000% -j0 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' + parallel --timeout 3000% -j0 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' diff --git a/testsuite/tests-to-run/sql02.sh b/testsuite/tests-to-run/sql02.sh index c37e6d55..03252bbf 100755 --- a/testsuite/tests-to-run/sql02.sh +++ b/testsuite/tests-to-run/sql02.sh @@ -14,7 +14,7 @@ par_sqlite() { # create database & table sql $CMDSQL:///sqltest.$CMDSQL "CREATE TABLE foo(n INT, t TEXT);" sql --list-tables $CMDSQL:///sqltest.$CMDSQL - file sqltest.$CMDSQL + file sqltest.$CMDSQL | perl -pe 's/ version \d+//' sql $CMDSQL:///sqltest.$CMDSQL "INSERT INTO foo VALUES(1,'Line 1');" sql $CMDSQL:///sqltest.$CMDSQL "INSERT INTO foo VALUES(2,'Line 2');" sql $CMDSQL:///sqltest.$CMDSQL "SELECT * FROM foo;" diff --git a/testsuite/tests-to-run/sql03.sh b/testsuite/tests-to-run/sql03.sh old mode 100644 new mode 100755 index 3c80f5f5..ac60c34e --- a/testsuite/tests-to-run/sql03.sh +++ b/testsuite/tests-to-run/sql03.sh @@ -111,7 +111,7 @@ par_listproc() { echo "### Test --listproc" sql --listproc :oraunittest | perl -ne '/select 1 from dual|user_objects|user_tablespaces|connect_by_filtering/ and next; - s/[21]\.\d+/1.99999/; + s/[21 ]\.\d{5}/1.99999/; s/ +/ /g; print' sql --listproc $MYSQL_TEST_DBURL | diff --git a/testsuite/wanted-results/parallel-hwdep1 b/testsuite/wanted-results/parallel-hwdep1 index 6b80082b..79204554 100644 --- a/testsuite/wanted-results/parallel-hwdep1 +++ b/testsuite/wanted-results/parallel-hwdep1 @@ -44,19 +44,19 @@ par__environment_too_big_zsh OK_bigfunc_remote par__environment_too_big_zsh OK_bigfunc_quote par__environment_too_big_zsh OK_bigfunc_quote_remote par__environment_too_big_zsh Rest should fail -par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 5XXXX) at input 0: fail_bigvar -par__environment_too_big_zsh parallel: Error: Command line too long (5XXXX >= 5XXXX) at input 0: fail_bigvar_remote -par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 5XXXX) at input 0: fail_bigvar_quote -par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 5XXXX) at input 0: fail_bigvar_quote_remote -par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 5XXXX) at input 0: fail_bigfunc -par__environment_too_big_zsh parallel: Error: Command line too long (7XXXX >= 5XXXX) at input 0: fail_bigfunc_remote -par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 5XXXX) at input 0: fail_bigfunc_quote -par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 5XXXX) at input 0: fail_bigfunc_quote_remote +par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 6XXXX) at input 0: fail_bigvar +par__environment_too_big_zsh parallel: Error: Command line too long (7XXXX >= 6XXXX) at input 0: fail_bigvar_remote +par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 6XXXX) at input 0: fail_bigvar_quote +par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 6XXXX) at input 0: fail_bigvar_quote_remote +par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 6XXXX) at input 0: fail_bigfunc +par__environment_too_big_zsh parallel: Error: Command line too long (7XXXX >= 6XXXX) at input 0: fail_bigfunc_remote +par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 6XXXX) at input 0: fail_bigfunc_quote +par__environment_too_big_zsh parallel: Error: Command line too long (6XXXX >= 6XXXX) at input 0: fail_bigfunc_quote_remote par__sockets_cores_threads ### Test --number-of-sockets/cores/threads par__sockets_cores_threads 1 -par__sockets_cores_threads 2 par__sockets_cores_threads 4 -par__sockets_cores_threads 2 +par__sockets_cores_threads 8 +par__sockets_cores_threads 4 par__sockets_cores_threads ### Test --use-sockets-instead-of-threads par__sockets_cores_threads threads done par__sockets_cores_threads sockets done @@ -69,13 +69,13 @@ par_progress Computer:jobs running/jobs completed/%of started jobs/Average secon par_progress local:0/3/100%/9.9s  par_progress par_progress Computers / CPU cores / Max jobs to run -par_progress 1:local / 2 / 2 +par_progress 1:local / 4 / 4 par_progress par_progress Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete par_progress local:0/3/100%/9.9s  par_progress par_progress Computers / CPU threads / Max jobs to run -par_progress 1:local / 4 / 4 +par_progress 1:local / 8 / 8 par_progress par_progress Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete par_progress local:0/3/100%/9.9s  diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index 387dfa6c..8ce4e927 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -1,3 +1,5 @@ +par_--rpl_group_bug Bug in --rpl group: $$1_ +par_--rpl_group_bug Good par_-q_perl_program ### test08 -q and perl par_-q_perl_program b par_-q_perl_program d @@ -982,10 +984,10 @@ par_sem_quote ### sem --quote should not add empty argument par_sem_quote echo par_sem_quote par_shellcompletion ### --shellcompletion -par_shellcompletion 1952015cc0c85c44d82d13e2673f4b28 - -par_shellcompletion 1952015cc0c85c44d82d13e2673f4b28 - -par_shellcompletion c23b2094e510526c322ea3af89b4c682 - -par_shellcompletion c23b2094e510526c322ea3af89b4c682 - +par_shellcompletion bf790ce8a53d1e7e5f8e78b063dc65bc - +par_shellcompletion bf790ce8a53d1e7e5f8e78b063dc65bc - +par_shellcompletion 2230e8ac0593f660fccd983596377613 - +par_shellcompletion 2230e8ac0593f660fccd983596377613 - par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks par_slow_pipe_regexp This should take a few ms, but took more than 2 hours par_slow_pipe_regexp 0 1 1 diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index 3d65d80b..7f60ba36 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -1,3 +1,110 @@ +par_--match Basic match +par_--match This works +par_--match This works, too +par_--match Simple CSV-parsing +par_--match url=https://gnu.org/s/parallel filename=myfile +par_--match Dummy --match for input source 1, real --match for input source 2 +par_--match This works +par_--match Reuse --match +par_--match ALL OK +par_--match With --header : +par_--match ALL OK +par_--match Failure to match/Partial match +par_--match parallel: Warning: 'FAILS' did not match '([a-z]+)' +par_--match matches +par_--match 1 +par_--match partly +par_--match Test error: missing --match +par_--match parallel: Error: {2.1} requires corresponding --match +par_--match Test error: \001 in match +par_--match parallel: Error: \001 is not supported in --match +par_--match From man parallel_examples +par_--match mkdir -p a && mv afile a +par_--match mkdir -p b && mv bfile b +par_--match mkdir -p a && mv adir a +par_--match A. Dent +par_--match F. Prefect +par_--match T. McMillan +par_--match Z. Beeblebrox +par_--match 1969-12-31 +par_--match 2038-01-19 +par_--match 2002-06-01 +par_--match Domain: example.com Path: dir/page +par_--match Domain: gnu.org Path: s/parallel +par_--match Second: Babel fish, First: Arthur +par_--match Second: Betelgeuse, First: Adams +par_--match Second: Bistro, First: Arcturan +par_--match Pan Galactic +par_--match Gargle Blaster +par_--match From DK/Denmark to DK/Denmark dial 00-45 +par_--match From DK/Denmark to US/United States dial 00-1 +par_--match From DK/Denmark to JP/Japan dial 00-81 +par_--match From DK/Denmark to AU/Australia dial 00-61 +par_--match From DK/Denmark to CA/Canada dial 00-1 +par_--match From DK/Denmark to RU/Russia dial 00-7 +par_--match From DK/Denmark to TH/Thailand dial 00-66 +par_--match From DK/Denmark to TW/Taiwan dial 00-886 +par_--match From US/United States to DK/Denmark dial 011-45 +par_--match From US/United States to US/United States dial 011-1 +par_--match From US/United States to JP/Japan dial 011-81 +par_--match From US/United States to AU/Australia dial 011-61 +par_--match From US/United States to CA/Canada dial 011-1 +par_--match From US/United States to RU/Russia dial 011-7 +par_--match From US/United States to TH/Thailand dial 011-66 +par_--match From US/United States to TW/Taiwan dial 011-886 +par_--match From JP/Japan to DK/Denmark dial 010-45 +par_--match From JP/Japan to US/United States dial 010-1 +par_--match From JP/Japan to JP/Japan dial 010-81 +par_--match From JP/Japan to AU/Australia dial 010-61 +par_--match From JP/Japan to CA/Canada dial 010-1 +par_--match From JP/Japan to RU/Russia dial 010-7 +par_--match From JP/Japan to TH/Thailand dial 010-66 +par_--match From JP/Japan to TW/Taiwan dial 010-886 +par_--match From AU/Australia to DK/Denmark dial 0011-45 +par_--match From AU/Australia to US/United States dial 0011-1 +par_--match From AU/Australia to JP/Japan dial 0011-81 +par_--match From AU/Australia to AU/Australia dial 0011-61 +par_--match From AU/Australia to CA/Canada dial 0011-1 +par_--match From AU/Australia to RU/Russia dial 0011-7 +par_--match From AU/Australia to TH/Thailand dial 0011-66 +par_--match From AU/Australia to TW/Taiwan dial 0011-886 +par_--match From CA/Canada to DK/Denmark dial 011-45 +par_--match From CA/Canada to US/United States dial 011-1 +par_--match From CA/Canada to JP/Japan dial 011-81 +par_--match From CA/Canada to AU/Australia dial 011-61 +par_--match From CA/Canada to CA/Canada dial 011-1 +par_--match From CA/Canada to RU/Russia dial 011-7 +par_--match From CA/Canada to TH/Thailand dial 011-66 +par_--match From CA/Canada to TW/Taiwan dial 011-886 +par_--match From RU/Russia to DK/Denmark dial 810-45 +par_--match From RU/Russia to US/United States dial 810-1 +par_--match From RU/Russia to JP/Japan dial 810-81 +par_--match From RU/Russia to AU/Australia dial 810-61 +par_--match From RU/Russia to CA/Canada dial 810-1 +par_--match From RU/Russia to RU/Russia dial 810-7 +par_--match From RU/Russia to TH/Thailand dial 810-66 +par_--match From RU/Russia to TW/Taiwan dial 810-886 +par_--match From TH/Thailand to DK/Denmark dial 001-45 +par_--match From TH/Thailand to US/United States dial 001-1 +par_--match From TH/Thailand to JP/Japan dial 001-81 +par_--match From TH/Thailand to AU/Australia dial 001-61 +par_--match From TH/Thailand to CA/Canada dial 001-1 +par_--match From TH/Thailand to RU/Russia dial 001-7 +par_--match From TH/Thailand to TH/Thailand dial 001-66 +par_--match From TH/Thailand to TW/Taiwan dial 001-886 +par_--match From TW/Taiwan to DK/Denmark dial 002-45 +par_--match From TW/Taiwan to US/United States dial 002-1 +par_--match From TW/Taiwan to JP/Japan dial 002-81 +par_--match From TW/Taiwan to AU/Australia dial 002-61 +par_--match From TW/Taiwan to CA/Canada dial 002-1 +par_--match From TW/Taiwan to RU/Russia dial 002-7 +par_--match From TW/Taiwan to TH/Thailand dial 002-66 +par_--match From TW/Taiwan to TW/Taiwan dial 002-886 +par_--match Capture groups CSV-parsing - not implemented +par_--match url={url} filename={file} https://gnu.org/s/parallel,myfile +par_--match Non posistional replacement fields - not implemented +par_--match {.2} {.3} {.1} Gold,Heart_of +par_--match TODO Ignore case? par_END ### Test -i and --replace: Replace with argument par_END replace par_END replace @@ -19,10 +126,381 @@ par_END include this par__load_from_PARALLEL ### Test reading load from PARALLEL par__load_from_PARALLEL 8a7095c1c23bfadc311fe6b16d950582 - par__load_from_PARALLEL 8a7095c1c23bfadc311fe6b16d950582 - +par__nice Check that --nice works +par__nice load_10 +par__nice bzip2 18 +par__nice bzip2 18 par__pipepart_spawn ### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922 par__pipepart_spawn 1:local / 2+ / 2+ +par__quote_special_results ### Test --results on file systems with limited UTF8 support +par__quote_special_results mkfs.btrfs +par__quote_special_results mkfs.btrfs NOTE: several default settings have changed in version 5.15, please make sure +par__quote_special_results mkfs.btrfs this does not affect your deployments: +par__quote_special_results mkfs.btrfs - DUP for metadata (-m dup) +par__quote_special_results mkfs.btrfs - enabled no-holes (-O no-holes) +par__quote_special_results mkfs.btrfs - enabled free-space-tree (-R free-space-tree) +par__quote_special_results mkfs.btrfs +par__quote_special_results mkfs.btrfs Label: (null) +par__quote_special_results mkfs.btrfs Node size: 16384 +par__quote_special_results mkfs.btrfs Sector size: 4096 +par__quote_special_results mkfs.btrfs Filesystem size: 301.00MiB +par__quote_special_results mkfs.btrfs Block group profiles: +par__quote_special_results mkfs.btrfs Data: single 8.00MiB +par__quote_special_results mkfs.btrfs Metadata: DUP 32.00MiB +par__quote_special_results mkfs.btrfs System: DUP 8.00MiB +par__quote_special_results mkfs.btrfs SSD detected: no +par__quote_special_results mkfs.btrfs Zoned device: no +par__quote_special_results mkfs.btrfs Runtime features: free-space-tree +par__quote_special_results mkfs.btrfs Checksum: crc32c +par__quote_special_results mkfs.btrfs Number of devices: 1 +par__quote_special_results mkfs.btrfs Devices: +par__quote_special_results mkfs.btrfs 1 301.00MiB /dev/shm/par-test-loop +par__quote_special_results mkfs.btrfs +par__quote_special_results mkfs.btrfs Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.btrfs /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.btrfs . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. +par__quote_special_results mkfs.btrfs +par__quote_special_results mkfs.btrfs . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par__quote_special_results mkfs.btrfs ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ +par__quote_special_results mkfs.btrfs . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.btrfs 301+0 records in +par__quote_special_results mkfs.btrfs 301+0 records out +par__quote_special_results mkfs.exfat Creating exFAT filesystem(/dev/shm/par-test-loop cluster size=32768) +par__quote_special_results mkfs.exfat +par__quote_special_results mkfs.exfat Writing volume boot record: done +par__quote_special_results mkfs.exfat Writing backup volume boot record: done +par__quote_special_results mkfs.exfat Fat table creation: done +par__quote_special_results mkfs.exfat Allocation bitmap creation: done +par__quote_special_results mkfs.exfat Upcase table creation: done +par__quote_special_results mkfs.exfat Writing root directory entry: done +par__quote_special_results mkfs.exfat Synchronizing... +par__quote_special_results mkfs.exfat +par__quote_special_results mkfs.exfat exFAT format complete! +par__quote_special_results mkfs.exfat Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.exfat /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.exfat . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./, +par__quote_special_results mkfs.exfat . ./ ./! ./# ./$ ./% ./& ./' ./( ./) ./++ ./+01 ./+02 ./+03 ./+04 ./+05 ./+06 ./+07 ./+08 ./+09 ./+0a ./+0b ./+0c ./+0d ./+0e ./+0f ./+10 ./+11 ./+12 ./+13 ./+14 ./+15 ./+16 ./+17 ./+18 ./+19 ./+1a ./+1b ./+1c ./+1d ./+1e ./+1f ./+80 ./+_ ./+a ./+b ./+d ./+g ./+k ./+l ./+p ./+y ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./; ./= ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./] ./^ ./_ ./` ./{ ./} ./~ ./ +par__quote_special_results mkfs.exfat . ./+80 ./+81 ./+82 ./+83 ./+84 ./+85 ./+86 ./+87 ./+88 ./+89 ./+8a ./+8b ./+8c ./+8d ./+8e ./+8f ./+90 ./+91 ./+92 ./+93 ./+94 ./+95 ./+96 ./+97 ./+98 ./+99 ./+9a ./+9b ./+9c ./+9d ./+9e ./+9f ./+a0 ./+a1 ./+a2 ./+a3 ./+a4 ./+a5 ./+a6 ./+a7 ./+a8 ./+a9 ./+aa ./+ab ./+ac ./+ad ./+ae ./+af ./+b0 ./+b1 ./+b2 ./+b3 ./+b4 ./+b5 ./+b6 ./+b7 ./+b8 ./+b9 ./+ba ./+bb ./+bc ./+bd ./+be ./+bf ./+c0 ./+c1 ./+c2 ./+c3 ./+c4 ./+c5 ./+c6 ./+c7 ./+c8 ./+c9 ./+ca ./+cb ./+cc ./+cd ./+ce ./+cf ./+d0 ./+d1 ./+d2 ./+d3 ./+d4 ./+d5 ./+d6 ./+d7 ./+d8 ./+d9 ./+da ./+db ./+dc ./+dd ./+de ./+df ./+e0 ./+e1 ./+e2 ./+e3 ./+e4 ./+e5 ./+e6 ./+e7 ./+e8 ./+e9 ./+ea ./+eb ./+ec ./+ed ./+ee ./+ef ./+f0 ./+f1 ./+f2 ./+f3 ./+f4 ./+f5 ./+f6 ./+f7 ./+f8 ./+f9 ./+fa ./+fb ./+fc ./+fd ./+fe ./+ff +par__quote_special_results mkfs.exfat 301+0 records in +par__quote_special_results mkfs.exfat 301+0 records out +par__quote_special_results mkfs.ext2 Discarding device blocks: 0/77056 done +par__quote_special_results mkfs.ext2 Creating filesystem with 77056 4k blocks and 77088 inodes +par__quote_special_results mkfs.ext2 Superblock backups stored on blocks: +par__quote_special_results mkfs.ext2 32768 +par__quote_special_results mkfs.ext2 +par__quote_special_results mkfs.ext2 Allocating group tables: 0/3 done +par__quote_special_results mkfs.ext2 Writing inode tables: 0/3 done +par__quote_special_results mkfs.ext2 Writing superblocks and filesystem accounting information: 0/3 done +par__quote_special_results mkfs.ext2 +par__quote_special_results mkfs.ext2 Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.ext2 /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.ext2 . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. +par__quote_special_results mkfs.ext2 +par__quote_special_results mkfs.ext2 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par__quote_special_results mkfs.ext2 ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ +par__quote_special_results mkfs.ext2 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.ext2 301+0 records in +par__quote_special_results mkfs.ext2 301+0 records out +par__quote_special_results mkfs.ext3 Discarding device blocks: 0/77056 done +par__quote_special_results mkfs.ext3 Creating filesystem with 77056 4k blocks and 77088 inodes +par__quote_special_results mkfs.ext3 Superblock backups stored on blocks: +par__quote_special_results mkfs.ext3 32768 +par__quote_special_results mkfs.ext3 +par__quote_special_results mkfs.ext3 Allocating group tables: 0/3 done +par__quote_special_results mkfs.ext3 Writing inode tables: 0/3 done +par__quote_special_results mkfs.ext3 Creating journal (4096 blocks): done +par__quote_special_results mkfs.ext3 Writing superblocks and filesystem accounting information: 0/3 done +par__quote_special_results mkfs.ext3 +par__quote_special_results mkfs.ext3 Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.ext3 /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.ext3 . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. +par__quote_special_results mkfs.ext3 +par__quote_special_results mkfs.ext3 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par__quote_special_results mkfs.ext3 ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ +par__quote_special_results mkfs.ext3 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.ext3 301+0 records in +par__quote_special_results mkfs.ext3 301+0 records out +par__quote_special_results mkfs.ext4 Discarding device blocks: 0/77056 done +par__quote_special_results mkfs.ext4 Creating filesystem with 77056 4k blocks and 77088 inodes +par__quote_special_results mkfs.ext4 Superblock backups stored on blocks: +par__quote_special_results mkfs.ext4 32768 +par__quote_special_results mkfs.ext4 +par__quote_special_results mkfs.ext4 Allocating group tables: 0/3 done +par__quote_special_results mkfs.ext4 Writing inode tables: 0/3 done +par__quote_special_results mkfs.ext4 Creating journal (4096 blocks): done +par__quote_special_results mkfs.ext4 Writing superblocks and filesystem accounting information: 0/3 done +par__quote_special_results mkfs.ext4 +par__quote_special_results mkfs.ext4 Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.ext4 /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.ext4 . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. +par__quote_special_results mkfs.ext4 +par__quote_special_results mkfs.ext4 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par__quote_special_results mkfs.ext4 ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ +par__quote_special_results mkfs.ext4 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.ext4 301+0 records in +par__quote_special_results mkfs.ext4 301+0 records out +par__quote_special_results mkfs.reiserfs -fq Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.reiserfs -fq /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.reiserfs -fq . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. +par__quote_special_results mkfs.reiserfs -fq +par__quote_special_results mkfs.reiserfs -fq . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par__quote_special_results mkfs.reiserfs -fq ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ +par__quote_special_results mkfs.reiserfs -fq . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.reiserfs -fq 301+0 records in +par__quote_special_results mkfs.reiserfs -fq 301+0 records out +par__quote_special_results mkfs.reiserfs -fq mkfs.reiserfs 3.6.27 +par__quote_special_results mkfs.reiserfs -fq +par__quote_special_results mkfs.ntfs -F Cluster size has been automatically set to 4096 bytes. +par__quote_special_results mkfs.ntfs -F Initializing device with zeroes: 0% 0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% 11% 12% 13% 14% 15% 16% 17% 18% 19% 20% 21% 22% 23% 24% 25% 26% 27% 28% 29% 30% 31% 32% 33% 34% 35% 36% 37% 38% 39% 40% 41% 42% 43% 44% 45% 46% 47% 48% 49% 50% 51% 52% 53% 54% 55% 56% 57% 58% 59% 60% 61% 62% 63% 64% 65% 66% 67% 68% 69% 70% 71% 72% 73% 74% 75% 76% 77% 78% 79% 80% 81% 82% 83% 84% 85% 86% 87% 88% 89% 90% 91% 92% 93% 94% 95% 96% 97% 98% 99%100% - Done. +par__quote_special_results mkfs.ntfs -F Creating NTFS volume structures. +par__quote_special_results mkfs.ntfs -F mkntfs completed successfully. Have a nice day. +par__quote_special_results mkfs.ntfs -F Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.ntfs -F /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.ntfs -F . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. +par__quote_special_results mkfs.ntfs -F +par__quote_special_results mkfs.ntfs -F . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par__quote_special_results mkfs.ntfs -F ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+80 ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ +par__quote_special_results mkfs.ntfs -F . ./+80 ./+81 ./+82 ./+83 ./+84 ./+85 ./+86 ./+87 ./+88 ./+89 ./+8a ./+8b ./+8c ./+8d ./+8e ./+8f ./+90 ./+91 ./+92 ./+93 ./+94 ./+95 ./+96 ./+97 ./+98 ./+99 ./+9a ./+9b ./+9c ./+9d ./+9e ./+9f ./+a0 ./+a1 ./+a2 ./+a3 ./+a4 ./+a5 ./+a6 ./+a7 ./+a8 ./+a9 ./+aa ./+ab ./+ac ./+ad ./+ae ./+af ./+b0 ./+b1 ./+b2 ./+b3 ./+b4 ./+b5 ./+b6 ./+b7 ./+b8 ./+b9 ./+ba ./+bb ./+bc ./+bd ./+be ./+bf ./+c0 ./+c1 ./+c2 ./+c3 ./+c4 ./+c5 ./+c6 ./+c7 ./+c8 ./+c9 ./+ca ./+cb ./+cc ./+cd ./+ce ./+cf ./+d0 ./+d1 ./+d2 ./+d3 ./+d4 ./+d5 ./+d6 ./+d7 ./+d8 ./+d9 ./+da ./+db ./+dc ./+dd ./+de ./+df ./+e0 ./+e1 ./+e2 ./+e3 ./+e4 ./+e5 ./+e6 ./+e7 ./+e8 ./+e9 ./+ea ./+eb ./+ec ./+ed ./+ee ./+ef ./+f0 ./+f1 ./+f2 ./+f3 ./+f4 ./+f5 ./+f6 ./+f7 ./+f8 ./+f9 ./+fa ./+fb ./+fc ./+fd ./+fe ./+ff +par__quote_special_results mkfs.ntfs -F 301+0 records in +par__quote_special_results mkfs.ntfs -F 301+0 records out +par__quote_special_results mkfs.ntfs -F /dev/shm/par-test-loop is not a block device. +par__quote_special_results mkfs.ntfs -F mkntfs forced anyway. +par__quote_special_results mkfs.ntfs -F The sector size was not specified for /dev/shm/par-test-loop and it could not be obtained automatically. It has been set to 512 bytes. +par__quote_special_results mkfs.ntfs -F The partition start sector was not specified for /dev/shm/par-test-loop and it could not be obtained automatically. It has been set to 0. +par__quote_special_results mkfs.ntfs -F The number of sectors per track was not specified for /dev/shm/par-test-loop and it could not be obtained automatically. It has been set to 0. +par__quote_special_results mkfs.ntfs -F The number of heads was not specified for /dev/shm/par-test-loop and it could not be obtained automatically. It has been set to 0. +par__quote_special_results mkfs.ntfs -F To boot from a device, Windows needs the 'partition start sector', the 'sectors per track' and the 'number of heads' to be set. +par__quote_special_results mkfs.ntfs -F Windows will not be able to boot from this device. +par__quote_special_results mkfs.xfs -f meta-data=/dev/shm/par-test-loop isize=512 agcount=4, agsize=19264 blks +par__quote_special_results mkfs.xfs -f = sectsz=512 attr=2, projid32bit=1 +par__quote_special_results mkfs.xfs -f data = bsize=4096 blocks=77056, imaxpct=25 +par__quote_special_results mkfs.xfs -f = sunit=0 swidth=0 blks +par__quote_special_results mkfs.xfs -f naming =version 2 bsize=4096 ascii-ci=0, ftype=1 +par__quote_special_results mkfs.xfs -f = sectsz=512 sunit=0 blks, lazy-count=1 +par__quote_special_results mkfs.xfs -f realtime =none extsz=4096 blocks=0, rtextents=0 +par__quote_special_results mkfs.xfs -f Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.xfs -f /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.xfs -f . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. +par__quote_special_results mkfs.xfs -f +par__quote_special_results mkfs.xfs -f . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par__quote_special_results mkfs.xfs -f ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ +par__quote_special_results mkfs.xfs -f . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.xfs -f 301+0 records in +par__quote_special_results mkfs.xfs -f 301+0 records out +par__quote_special_results mkfs.minix 21856 inodes +par__quote_special_results mkfs.minix 65535 blocks +par__quote_special_results mkfs.minix Firstdatazone=696 (696) +par__quote_special_results mkfs.minix Zonesize=1024 +par__quote_special_results mkfs.minix Maxsize=268966912 +par__quote_special_results mkfs.minix +par__quote_special_results mkfs.minix Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.minix /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.minix . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. +par__quote_special_results mkfs.minix +par__quote_special_results mkfs.minix . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par__quote_special_results mkfs.minix ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ +par__quote_special_results mkfs.minix . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.minix 301+0 records in +par__quote_special_results mkfs.minix 301+0 records out +par__quote_special_results mkfs.fat mkfs.fat 4.2 (2021-01-31) +par__quote_special_results mkfs.fat Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.fat /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.fat . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./, +par__quote_special_results mkfs.fat . ./! ./# ./$ ./% ./& ./' ./( ./) ./++ ./+01 ./+02 ./+03 ./+04 ./+05 ./+06 ./+07 ./+08 ./+09 ./+0a ./+0b ./+0c ./+0d ./+0e ./+0f ./+10 ./+11 ./+12 ./+13 ./+14 ./+15 ./+16 ./+17 ./+18 ./+19 ./+1a ./+1b ./+1c ./+1d ./+1e ./+1f ./+20 ./+_ ./+a ./+b ./+d ./+g ./+k ./+l ./+p ./+y ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./; ./= ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./] ./^ ./_ ./` ./{ ./} ./~ ./ ./ +par__quote_special_results mkfs.fat . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.fat 301+0 records in +par__quote_special_results mkfs.fat 301+0 records out +par__quote_special_results mkfs.vfat mkfs.fat 4.2 (2021-01-31) +par__quote_special_results mkfs.vfat Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.vfat /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.vfat . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./, +par__quote_special_results mkfs.vfat . ./! ./# ./$ ./% ./& ./' ./( ./) ./++ ./+01 ./+02 ./+03 ./+04 ./+05 ./+06 ./+07 ./+08 ./+09 ./+0a ./+0b ./+0c ./+0d ./+0e ./+0f ./+10 ./+11 ./+12 ./+13 ./+14 ./+15 ./+16 ./+17 ./+18 ./+19 ./+1a ./+1b ./+1c ./+1d ./+1e ./+1f ./+20 ./+_ ./+a ./+b ./+d ./+g ./+k ./+l ./+p ./+y ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./; ./= ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./] ./^ ./_ ./` ./{ ./} ./~ ./ ./ +par__quote_special_results mkfs.vfat . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.vfat 301+0 records in +par__quote_special_results mkfs.vfat 301+0 records out +par__quote_special_results mkfs.msdos mkfs.fat 4.2 (2021-01-31) +par__quote_special_results mkfs.msdos Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.msdos /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.msdos . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./, +par__quote_special_results mkfs.msdos . ./! ./# ./$ ./% ./& ./' ./( ./) ./++ ./+01 ./+02 ./+03 ./+04 ./+05 ./+06 ./+07 ./+08 ./+09 ./+0a ./+0b ./+0c ./+0d ./+0e ./+0f ./+10 ./+11 ./+12 ./+13 ./+14 ./+15 ./+16 ./+17 ./+18 ./+19 ./+1a ./+1b ./+1c ./+1d ./+1e ./+1f ./+20 ./+_ ./+a ./+b ./+d ./+g ./+k ./+l ./+p ./+y ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./; ./= ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./] ./^ ./_ ./` ./{ ./} ./~ ./ ./ +par__quote_special_results mkfs.msdos . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.msdos 301+0 records in +par__quote_special_results mkfs.msdos 301+0 records out +par__quote_special_results mkfs.f2fs +par__quote_special_results mkfs.f2fs +par__quote_special_results mkfs.f2fs Info: Disable heap-based policy +par__quote_special_results mkfs.f2fs Info: Debug level = 0 +par__quote_special_results mkfs.f2fs Info: Trim is enabled +par__quote_special_results mkfs.f2fs Info: Segments per section = 1 +par__quote_special_results mkfs.f2fs Info: Sections per zone = 1 +par__quote_special_results mkfs.f2fs Info: sector size = 512 +par__quote_special_results mkfs.f2fs Info: total sectors = 616448 (301 MB) +par__quote_special_results mkfs.f2fs Info: zone aligned segment0 blkaddr: 512 +par__quote_special_results mkfs.f2fs Info: format version with +par__quote_special_results mkfs.f2fs Info: [/dev/shm/par-test-loop Discarding device +par__quote_special_results mkfs.f2fs Info: format successful +par__quote_special_results mkfs.f2fs Filesystem 1K-blocks Used Available Use% Mounted on +par__quote_special_results mkfs.f2fs /dev/loop 999999 99999 99999 9% /tmp/par-test-loop +par__quote_special_results mkfs.f2fs . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. +par__quote_special_results mkfs.f2fs +par__quote_special_results mkfs.f2fs . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par__quote_special_results mkfs.f2fs ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ +par__quote_special_results mkfs.f2fs . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ +par__quote_special_results mkfs.f2fs 301+0 records in +par__quote_special_results mkfs.f2fs 301+0 records out par__round_robin_blocks bug #49664: --round-robin does not complete par__round_robin_blocks 8 +par__tee_too_many_args ### Fail if there are more arguments than --jobs +par__tee_too_many_args 1 1 +par__tee_too_many_args 1 10 +par__tee_too_many_args 1 11 +par__tee_too_many_args 2 2 +par__tee_too_many_args 3 3 +par__tee_too_many_args 4 4 +par__tee_too_many_args parallel: Warning: Only enough file handles to run 999 jobs in parallel. +par__tee_too_many_args parallel: Warning: Try running 'parallel -j999 -N 999 --pipe parallel -j999' +par__tee_too_many_args parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`) +par__tee_too_many_args parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf +par__tee_too_many_args parallel: Warning: or increasing /proc/sys/fs/file-max +par__tee_too_many_args parallel: Error: --tee requires --jobs to be higher. Try --jobs 999. +par__xargs_compat xargs compatibility +par__xargs_compat ### Test -L -l and --max-lines +par__xargs_compat a_b +par__xargs_compat c +par__xargs_compat a_b c +par__xargs_compat a_b c +par__xargs_compat ### xargs -L1 echo +par__xargs_compat a_b +par__xargs_compat c +par__xargs_compat a_b +par__xargs_compat c +par__xargs_compat a_b +par__xargs_compat c +par__xargs_compat Lines ending in space should continue on next line +par__xargs_compat ### xargs -L1 echo +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat ### xargs -L2 echo +par__xargs_compat a_b c d +par__xargs_compat e +par__xargs_compat a_b c d +par__xargs_compat e +par__xargs_compat a_b c d +par__xargs_compat e +par__xargs_compat ### xargs -l echo +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat e +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat e +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat e +par__xargs_compat ### xargs -l2 echo +par__xargs_compat a_b c d +par__xargs_compat e +par__xargs_compat a_b c d +par__xargs_compat e +par__xargs_compat a_b c d +par__xargs_compat e +par__xargs_compat ### xargs -l1 echo +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat e +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat e +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat e +par__xargs_compat ### xargs --max-lines=2 echo +par__xargs_compat a_b c d +par__xargs_compat e +par__xargs_compat a_b c d +par__xargs_compat e +par__xargs_compat a_b c d +par__xargs_compat e +par__xargs_compat ### xargs --max-lines echo +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat e +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat e +par__xargs_compat a_b c +par__xargs_compat d +par__xargs_compat e +par__xargs_compat ### test too long args +par__xargs_compat parallel: Error: Command line too long (1000005 >= 63543) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... +par__xargs_compat xargs: argument line too long +par__xargs_compat parallel: Error: Command line too long (1000007 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... +par__xargs_compat 1 2 +par__xargs_compat 3 4 +par__xargs_compat 5 6 +par__xargs_compat 7 8 +par__xargs_compat 9 10 +par__xargs_compat xargs: argument line too long +par__xargs_compat 1 2 +par__xargs_compat 3 4 +par__xargs_compat 5 6 +par__xargs_compat 7 8 +par__xargs_compat 9 10 +par__xargs_compat parallel: Error: Command line too long (1000007 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... +par__xargs_compat 1 2 +par__xargs_compat 3 4 +par__xargs_compat 5 6 +par__xargs_compat 7 8 +par__xargs_compat 9 10 +par__xargs_compat ### Test -x +par__xargs_compat -km +par__xargs_compat parallel: Error: Command line too long (10 >= 10) at input 0: 12345 +par__xargs_compat 1 2 +par__xargs_compat 3 4 +par__xargs_compat 5 6 +par__xargs_compat 7 8 +par__xargs_compat 9 10 +par__xargs_compat -kX +par__xargs_compat parallel: Error: Command line too long (10 >= 10) at input 0: 12345 +par__xargs_compat 1 2 +par__xargs_compat 3 4 +par__xargs_compat 5 6 +par__xargs_compat 7 8 +par__xargs_compat 9 10 +par__xargs_compat -x +par__xargs_compat xargs: argument line too long +par__xargs_compat 1 2 +par__xargs_compat 3 4 +par__xargs_compat 5 6 +par__xargs_compat 7 8 +par__xargs_compat -km -x +par__xargs_compat 1 2 +par__xargs_compat 12 +par__xargs_compat 1234 +par__xargs_compat 13 +par__xargs_compat 14 +par__xargs_compat 15 +par__xargs_compat 3 4 +par__xargs_compat 5 6 +par__xargs_compat 7 8 +par__xargs_compat 9 10 +par__xargs_compat -kX -x +par__xargs_compat 1 2 +par__xargs_compat 12 +par__xargs_compat 1234 +par__xargs_compat 13 +par__xargs_compat 14 +par__xargs_compat 15 +par__xargs_compat 3 4 +par__xargs_compat 5 6 +par__xargs_compat 7 8 +par__xargs_compat 9 10 +par__xargs_compat -x +par__xargs_compat 1 2 +par__xargs_compat 12 +par__xargs_compat 1234 +par__xargs_compat 13 +par__xargs_compat 14 +par__xargs_compat 15 +par__xargs_compat 3 4 +par__xargs_compat 5 6 +par__xargs_compat 7 8 +par__xargs_compat 9 10 par_colsep ### Test of --colsep par_colsep a b c par_colsep a b c @@ -92,7 +570,7 @@ par_compress_prg_fails --tag --files parallel: Error: false failed. par_compress_prg_fails --line-buffer 1 par_compress_prg_fails --line-buffer parallel: Error: false failed. par_compress_prg_fails --line-buffer parallel: Error: false failed. -par_compress_prg_fails --line-buffer --files 9 +par_compress_prg_fails --line-buffer --files 1 par_compress_prg_fails --line-buffer --files parallel: Warning: Use --files0 when $TMPDIR contains newline. par_compress_prg_fails --line-buffer --files parallel: Error: false failed. par_compress_prg_fails --line-buffer --files parallel: Error: false failed. @@ -615,10 +1093,6 @@ par_maxlinelen_X_I Chars per line (817788/13): 62906 par_maxlinelen_m_I ### Test max line length -m -I par_maxlinelen_m_I 183794839f45c8f7e38fe7c677c49958 - par_maxlinelen_m_I Chars per line (697810/11): 63437 -par_nice Check that --nice works -par_nice load_10 -par_nice bzip2 18 -par_nice bzip2 18 par_opt_arg_eaten bug #31716: Options with optional arguments may eat next argument par_opt_arg_eaten ### Test https://savannah.gnu.org/bugs/index.php?31716 par_opt_arg_eaten 1 OK @@ -708,213 +1182,6 @@ par_pipe_tee 314572800 par_pipepart_tee bug #45479: --pipe/--pipepart --tee par_pipepart_tee --pipepart --tee par_pipepart_tee 314572800 -par_quote_special_results ### Test --results on file systems with limited UTF8 support -par_quote_special_results mkfs.btrfs -par_quote_special_results mkfs.btrfs NOTE: several default settings have changed in version 5.15, please make sure -par_quote_special_results mkfs.btrfs this does not affect your deployments: -par_quote_special_results mkfs.btrfs - DUP for metadata (-m dup) -par_quote_special_results mkfs.btrfs - enabled no-holes (-O no-holes) -par_quote_special_results mkfs.btrfs - enabled free-space-tree (-R free-space-tree) -par_quote_special_results mkfs.btrfs -par_quote_special_results mkfs.btrfs Label: (null) -par_quote_special_results mkfs.btrfs Node size: 16384 -par_quote_special_results mkfs.btrfs Sector size: 4096 -par_quote_special_results mkfs.btrfs Filesystem size: 301.00MiB -par_quote_special_results mkfs.btrfs Block group profiles: -par_quote_special_results mkfs.btrfs Data: single 8.00MiB -par_quote_special_results mkfs.btrfs Metadata: DUP 32.00MiB -par_quote_special_results mkfs.btrfs System: DUP 8.00MiB -par_quote_special_results mkfs.btrfs SSD detected: no -par_quote_special_results mkfs.btrfs Zoned device: no -par_quote_special_results mkfs.btrfs Runtime features: free-space-tree -par_quote_special_results mkfs.btrfs Checksum: crc32c -par_quote_special_results mkfs.btrfs Number of devices: 1 -par_quote_special_results mkfs.btrfs Devices: -par_quote_special_results mkfs.btrfs 1 301.00MiB /dev/shm/par-test-loop -par_quote_special_results mkfs.btrfs -par_quote_special_results mkfs.btrfs Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.btrfs /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.btrfs . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. -par_quote_special_results mkfs.btrfs -par_quote_special_results mkfs.btrfs . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par_quote_special_results mkfs.btrfs ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ -par_quote_special_results mkfs.btrfs . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.btrfs 301+0 records in -par_quote_special_results mkfs.btrfs 301+0 records out -par_quote_special_results mkfs.exfat Creating exFAT filesystem(/dev/shm/par-test-loop cluster size=32768) -par_quote_special_results mkfs.exfat -par_quote_special_results mkfs.exfat Writing volume boot record: done -par_quote_special_results mkfs.exfat Writing backup volume boot record: done -par_quote_special_results mkfs.exfat Fat table creation: done -par_quote_special_results mkfs.exfat Allocation bitmap creation: done -par_quote_special_results mkfs.exfat Upcase table creation: done -par_quote_special_results mkfs.exfat Writing root directory entry: done -par_quote_special_results mkfs.exfat Synchronizing... -par_quote_special_results mkfs.exfat -par_quote_special_results mkfs.exfat exFAT format complete! -par_quote_special_results mkfs.exfat Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.exfat /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.exfat . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./, -par_quote_special_results mkfs.exfat . ./ ./! ./# ./$ ./% ./& ./' ./( ./) ./++ ./+01 ./+02 ./+03 ./+04 ./+05 ./+06 ./+07 ./+08 ./+09 ./+0a ./+0b ./+0c ./+0d ./+0e ./+0f ./+10 ./+11 ./+12 ./+13 ./+14 ./+15 ./+16 ./+17 ./+18 ./+19 ./+1a ./+1b ./+1c ./+1d ./+1e ./+1f ./+80 ./+_ ./+a ./+b ./+d ./+g ./+k ./+l ./+p ./+y ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./; ./= ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./] ./^ ./_ ./` ./{ ./} ./~ ./ -par_quote_special_results mkfs.exfat . ./+80 ./+81 ./+82 ./+83 ./+84 ./+85 ./+86 ./+87 ./+88 ./+89 ./+8a ./+8b ./+8c ./+8d ./+8e ./+8f ./+90 ./+91 ./+92 ./+93 ./+94 ./+95 ./+96 ./+97 ./+98 ./+99 ./+9a ./+9b ./+9c ./+9d ./+9e ./+9f ./+a0 ./+a1 ./+a2 ./+a3 ./+a4 ./+a5 ./+a6 ./+a7 ./+a8 ./+a9 ./+aa ./+ab ./+ac ./+ad ./+ae ./+af ./+b0 ./+b1 ./+b2 ./+b3 ./+b4 ./+b5 ./+b6 ./+b7 ./+b8 ./+b9 ./+ba ./+bb ./+bc ./+bd ./+be ./+bf ./+c0 ./+c1 ./+c2 ./+c3 ./+c4 ./+c5 ./+c6 ./+c7 ./+c8 ./+c9 ./+ca ./+cb ./+cc ./+cd ./+ce ./+cf ./+d0 ./+d1 ./+d2 ./+d3 ./+d4 ./+d5 ./+d6 ./+d7 ./+d8 ./+d9 ./+da ./+db ./+dc ./+dd ./+de ./+df ./+e0 ./+e1 ./+e2 ./+e3 ./+e4 ./+e5 ./+e6 ./+e7 ./+e8 ./+e9 ./+ea ./+eb ./+ec ./+ed ./+ee ./+ef ./+f0 ./+f1 ./+f2 ./+f3 ./+f4 ./+f5 ./+f6 ./+f7 ./+f8 ./+f9 ./+fa ./+fb ./+fc ./+fd ./+fe ./+ff -par_quote_special_results mkfs.exfat 301+0 records in -par_quote_special_results mkfs.exfat 301+0 records out -par_quote_special_results mkfs.ext2 Discarding device blocks: 0/77056 done -par_quote_special_results mkfs.ext2 Creating filesystem with 77056 4k blocks and 77088 inodes -par_quote_special_results mkfs.ext2 Superblock backups stored on blocks: -par_quote_special_results mkfs.ext2 32768 -par_quote_special_results mkfs.ext2 -par_quote_special_results mkfs.ext2 Allocating group tables: 0/3 done -par_quote_special_results mkfs.ext2 Writing inode tables: 0/3 done -par_quote_special_results mkfs.ext2 Writing superblocks and filesystem accounting information: 0/3 done -par_quote_special_results mkfs.ext2 -par_quote_special_results mkfs.ext2 Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.ext2 /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.ext2 . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. -par_quote_special_results mkfs.ext2 -par_quote_special_results mkfs.ext2 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par_quote_special_results mkfs.ext2 ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ -par_quote_special_results mkfs.ext2 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.ext2 301+0 records in -par_quote_special_results mkfs.ext2 301+0 records out -par_quote_special_results mkfs.ext3 Discarding device blocks: 0/77056 done -par_quote_special_results mkfs.ext3 Creating filesystem with 77056 4k blocks and 77088 inodes -par_quote_special_results mkfs.ext3 Superblock backups stored on blocks: -par_quote_special_results mkfs.ext3 32768 -par_quote_special_results mkfs.ext3 -par_quote_special_results mkfs.ext3 Allocating group tables: 0/3 done -par_quote_special_results mkfs.ext3 Writing inode tables: 0/3 done -par_quote_special_results mkfs.ext3 Creating journal (4096 blocks): done -par_quote_special_results mkfs.ext3 Writing superblocks and filesystem accounting information: 0/3 done -par_quote_special_results mkfs.ext3 -par_quote_special_results mkfs.ext3 Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.ext3 /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.ext3 . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. -par_quote_special_results mkfs.ext3 -par_quote_special_results mkfs.ext3 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par_quote_special_results mkfs.ext3 ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ -par_quote_special_results mkfs.ext3 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.ext3 301+0 records in -par_quote_special_results mkfs.ext3 301+0 records out -par_quote_special_results mkfs.ext4 Discarding device blocks: 0/77056 done -par_quote_special_results mkfs.ext4 Creating filesystem with 77056 4k blocks and 77088 inodes -par_quote_special_results mkfs.ext4 Superblock backups stored on blocks: -par_quote_special_results mkfs.ext4 32768 -par_quote_special_results mkfs.ext4 -par_quote_special_results mkfs.ext4 Allocating group tables: 0/3 done -par_quote_special_results mkfs.ext4 Writing inode tables: 0/3 done -par_quote_special_results mkfs.ext4 Creating journal (4096 blocks): done -par_quote_special_results mkfs.ext4 Writing superblocks and filesystem accounting information: 0/3 done -par_quote_special_results mkfs.ext4 -par_quote_special_results mkfs.ext4 Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.ext4 /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.ext4 . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. -par_quote_special_results mkfs.ext4 -par_quote_special_results mkfs.ext4 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par_quote_special_results mkfs.ext4 ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ -par_quote_special_results mkfs.ext4 . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.ext4 301+0 records in -par_quote_special_results mkfs.ext4 301+0 records out -par_quote_special_results mkfs.reiserfs -fq Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.reiserfs -fq /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.reiserfs -fq . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. -par_quote_special_results mkfs.reiserfs -fq -par_quote_special_results mkfs.reiserfs -fq . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par_quote_special_results mkfs.reiserfs -fq ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ -par_quote_special_results mkfs.reiserfs -fq . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.reiserfs -fq 301+0 records in -par_quote_special_results mkfs.reiserfs -fq 301+0 records out -par_quote_special_results mkfs.reiserfs -fq mkfs.reiserfs 3.6.27 -par_quote_special_results mkfs.reiserfs -fq -par_quote_special_results mkfs.ntfs -F Cluster size has been automatically set to 4096 bytes. -par_quote_special_results mkfs.ntfs -F Initializing device with zeroes: 0% 0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% 11% 12% 13% 14% 15% 16% 17% 18% 19% 20% 21% 22% 23% 24% 25% 26% 27% 28% 29% 30% 31% 32% 33% 34% 35% 36% 37% 38% 39% 40% 41% 42% 43% 44% 45% 46% 47% 48% 49% 50% 51% 52% 53% 54% 55% 56% 57% 58% 59% 60% 61% 62% 63% 64% 65% 66% 67% 68% 69% 70% 71% 72% 73% 74% 75% 76% 77% 78% 79% 80% 81% 82% 83% 84% 85% 86% 87% 88% 89% 90% 91% 92% 93% 94% 95% 96% 97% 98% 99%100% - Done. -par_quote_special_results mkfs.ntfs -F Creating NTFS volume structures. -par_quote_special_results mkfs.ntfs -F mkntfs completed successfully. Have a nice day. -par_quote_special_results mkfs.ntfs -F Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.ntfs -F /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.ntfs -F . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. -par_quote_special_results mkfs.ntfs -F -par_quote_special_results mkfs.ntfs -F . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par_quote_special_results mkfs.ntfs -F ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+80 ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ -par_quote_special_results mkfs.ntfs -F . ./+80 ./+81 ./+82 ./+83 ./+84 ./+85 ./+86 ./+87 ./+88 ./+89 ./+8a ./+8b ./+8c ./+8d ./+8e ./+8f ./+90 ./+91 ./+92 ./+93 ./+94 ./+95 ./+96 ./+97 ./+98 ./+99 ./+9a ./+9b ./+9c ./+9d ./+9e ./+9f ./+a0 ./+a1 ./+a2 ./+a3 ./+a4 ./+a5 ./+a6 ./+a7 ./+a8 ./+a9 ./+aa ./+ab ./+ac ./+ad ./+ae ./+af ./+b0 ./+b1 ./+b2 ./+b3 ./+b4 ./+b5 ./+b6 ./+b7 ./+b8 ./+b9 ./+ba ./+bb ./+bc ./+bd ./+be ./+bf ./+c0 ./+c1 ./+c2 ./+c3 ./+c4 ./+c5 ./+c6 ./+c7 ./+c8 ./+c9 ./+ca ./+cb ./+cc ./+cd ./+ce ./+cf ./+d0 ./+d1 ./+d2 ./+d3 ./+d4 ./+d5 ./+d6 ./+d7 ./+d8 ./+d9 ./+da ./+db ./+dc ./+dd ./+de ./+df ./+e0 ./+e1 ./+e2 ./+e3 ./+e4 ./+e5 ./+e6 ./+e7 ./+e8 ./+e9 ./+ea ./+eb ./+ec ./+ed ./+ee ./+ef ./+f0 ./+f1 ./+f2 ./+f3 ./+f4 ./+f5 ./+f6 ./+f7 ./+f8 ./+f9 ./+fa ./+fb ./+fc ./+fd ./+fe ./+ff -par_quote_special_results mkfs.ntfs -F 301+0 records in -par_quote_special_results mkfs.ntfs -F 301+0 records out -par_quote_special_results mkfs.ntfs -F /dev/shm/par-test-loop is not a block device. -par_quote_special_results mkfs.ntfs -F mkntfs forced anyway. -par_quote_special_results mkfs.ntfs -F The sector size was not specified for /dev/shm/par-test-loop and it could not be obtained automatically. It has been set to 512 bytes. -par_quote_special_results mkfs.ntfs -F The partition start sector was not specified for /dev/shm/par-test-loop and it could not be obtained automatically. It has been set to 0. -par_quote_special_results mkfs.ntfs -F The number of sectors per track was not specified for /dev/shm/par-test-loop and it could not be obtained automatically. It has been set to 0. -par_quote_special_results mkfs.ntfs -F The number of heads was not specified for /dev/shm/par-test-loop and it could not be obtained automatically. It has been set to 0. -par_quote_special_results mkfs.ntfs -F To boot from a device, Windows needs the 'partition start sector', the 'sectors per track' and the 'number of heads' to be set. -par_quote_special_results mkfs.ntfs -F Windows will not be able to boot from this device. -par_quote_special_results mkfs.xfs -f meta-data=/dev/shm/par-test-loop isize=512 agcount=4, agsize=19264 blks -par_quote_special_results mkfs.xfs -f = sectsz=512 attr=2, projid32bit=1 -par_quote_special_results mkfs.xfs -f data = bsize=4096 blocks=77056, imaxpct=25 -par_quote_special_results mkfs.xfs -f = sunit=0 swidth=0 blks -par_quote_special_results mkfs.xfs -f naming =version 2 bsize=4096 ascii-ci=0, ftype=1 -par_quote_special_results mkfs.xfs -f = sectsz=512 sunit=0 blks, lazy-count=1 -par_quote_special_results mkfs.xfs -f realtime =none extsz=4096 blocks=0, rtextents=0 -par_quote_special_results mkfs.xfs -f Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.xfs -f /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.xfs -f . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. -par_quote_special_results mkfs.xfs -f -par_quote_special_results mkfs.xfs -f . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par_quote_special_results mkfs.xfs -f ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ -par_quote_special_results mkfs.xfs -f . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.xfs -f 301+0 records in -par_quote_special_results mkfs.xfs -f 301+0 records out -par_quote_special_results mkfs.minix 21856 inodes -par_quote_special_results mkfs.minix 65535 blocks -par_quote_special_results mkfs.minix Firstdatazone=696 (696) -par_quote_special_results mkfs.minix Zonesize=1024 -par_quote_special_results mkfs.minix Maxsize=268966912 -par_quote_special_results mkfs.minix -par_quote_special_results mkfs.minix Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.minix /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.minix . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. -par_quote_special_results mkfs.minix -par_quote_special_results mkfs.minix . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par_quote_special_results mkfs.minix ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ -par_quote_special_results mkfs.minix . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.minix 301+0 records in -par_quote_special_results mkfs.minix 301+0 records out -par_quote_special_results mkfs.fat mkfs.fat 4.2 (2021-01-31) -par_quote_special_results mkfs.fat Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.fat /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.fat . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./, -par_quote_special_results mkfs.fat . ./! ./# ./$ ./% ./& ./' ./( ./) ./++ ./+01 ./+02 ./+03 ./+04 ./+05 ./+06 ./+07 ./+08 ./+09 ./+0a ./+0b ./+0c ./+0d ./+0e ./+0f ./+10 ./+11 ./+12 ./+13 ./+14 ./+15 ./+16 ./+17 ./+18 ./+19 ./+1a ./+1b ./+1c ./+1d ./+1e ./+1f ./+20 ./+_ ./+a ./+b ./+d ./+g ./+k ./+l ./+p ./+y ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./; ./= ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./] ./^ ./_ ./` ./{ ./} ./~ ./ ./ -par_quote_special_results mkfs.fat . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.fat 301+0 records in -par_quote_special_results mkfs.fat 301+0 records out -par_quote_special_results mkfs.vfat mkfs.fat 4.2 (2021-01-31) -par_quote_special_results mkfs.vfat Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.vfat /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.vfat . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./, -par_quote_special_results mkfs.vfat . ./! ./# ./$ ./% ./& ./' ./( ./) ./++ ./+01 ./+02 ./+03 ./+04 ./+05 ./+06 ./+07 ./+08 ./+09 ./+0a ./+0b ./+0c ./+0d ./+0e ./+0f ./+10 ./+11 ./+12 ./+13 ./+14 ./+15 ./+16 ./+17 ./+18 ./+19 ./+1a ./+1b ./+1c ./+1d ./+1e ./+1f ./+20 ./+_ ./+a ./+b ./+d ./+g ./+k ./+l ./+p ./+y ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./; ./= ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./] ./^ ./_ ./` ./{ ./} ./~ ./ ./ -par_quote_special_results mkfs.vfat . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.vfat 301+0 records in -par_quote_special_results mkfs.vfat 301+0 records out -par_quote_special_results mkfs.msdos mkfs.fat 4.2 (2021-01-31) -par_quote_special_results mkfs.msdos Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.msdos /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.msdos . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./, -par_quote_special_results mkfs.msdos . ./! ./# ./$ ./% ./& ./' ./( ./) ./++ ./+01 ./+02 ./+03 ./+04 ./+05 ./+06 ./+07 ./+08 ./+09 ./+0a ./+0b ./+0c ./+0d ./+0e ./+0f ./+10 ./+11 ./+12 ./+13 ./+14 ./+15 ./+16 ./+17 ./+18 ./+19 ./+1a ./+1b ./+1c ./+1d ./+1e ./+1f ./+20 ./+_ ./+a ./+b ./+d ./+g ./+k ./+l ./+p ./+y ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./; ./= ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./] ./^ ./_ ./` ./{ ./} ./~ ./ ./ -par_quote_special_results mkfs.msdos . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.msdos 301+0 records in -par_quote_special_results mkfs.msdos 301+0 records out -par_quote_special_results mkfs.f2fs -par_quote_special_results mkfs.f2fs -par_quote_special_results mkfs.f2fs Info: Disable heap-based policy -par_quote_special_results mkfs.f2fs Info: Debug level = 0 -par_quote_special_results mkfs.f2fs Info: Trim is enabled -par_quote_special_results mkfs.f2fs Info: Segments per section = 1 -par_quote_special_results mkfs.f2fs Info: Sections per zone = 1 -par_quote_special_results mkfs.f2fs Info: sector size = 512 -par_quote_special_results mkfs.f2fs Info: total sectors = 616448 (301 MB) -par_quote_special_results mkfs.f2fs Info: zone aligned segment0 blkaddr: 512 -par_quote_special_results mkfs.f2fs Info: format version with -par_quote_special_results mkfs.f2fs Info: [/dev/shm/par-test-loop Discarding device -par_quote_special_results mkfs.f2fs Info: format successful -par_quote_special_results mkfs.f2fs Filesystem 1K-blocks Used Available Use% Mounted on -par_quote_special_results mkfs.f2fs /dev/loop 999999 99999 99999 9% /tmp/par-test-loop -par_quote_special_results mkfs.f2fs . ./++ ./++++ ./++_ ./++__ ./++m ./++z ./+_ ./+__ ./+m ./+z ./,. ./,.. -par_quote_special_results mkfs.f2fs -par_quote_special_results mkfs.f2fs . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ par_quote_special_results mkfs.f2fs ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./! ./" ./# ./$ ./% ./& ./' ./( ./) ./* ./++ ./+_ ./+z ./, ./- ./0 ./1 ./2 ./3 ./4 ./5 ./6 ./7 ./8 ./9 ./: ./; ./< ./= ./> ./? ./@ ./A ./B ./C ./D ./E ./F ./G ./H ./I ./J ./K ./L ./M ./N ./O ./P ./Q ./R ./S ./T ./U ./V ./W ./X ./Y ./Z ./[ ./\ ./] ./^ ./_ ./` ./a ./b ./c ./d ./e ./f ./g ./h ./i ./j ./k ./l ./m ./n ./o ./p ./q ./r ./s ./t ./u ./v ./w ./x ./y ./z ./{ ./| ./} ./~ ./ ./ -par_quote_special_results mkfs.f2fs . ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ ./ -par_quote_special_results mkfs.f2fs 301+0 records in -par_quote_special_results mkfs.f2fs 301+0 records out par_results_csv bug #: --results csv par_results_csv --header : --tag --files0 --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr par_results_csv --header : --tag --files0 --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /TMP/tmpfile", @@ -1144,19 +1411,6 @@ par_shellquote csh \\\\\\\\ "\ par_shellquote csh "\ \ \ par_shellquote csh \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ par_shellquote tcsh \\\\\\\\ "\ par_shellquote tcsh "\ \ \ par_shellquote tcsh \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -par_tee_too_many_args ### Fail if there are more arguments than --jobs -par_tee_too_many_args 1 1 -par_tee_too_many_args 1 10 -par_tee_too_many_args 1 11 -par_tee_too_many_args 2 2 -par_tee_too_many_args 3 3 -par_tee_too_many_args 4 4 -par_tee_too_many_args parallel: Warning: Only enough file handles to run 999 jobs in parallel. -par_tee_too_many_args parallel: Warning: Try running 'parallel -j999 -N 999 --pipe parallel -j999' -par_tee_too_many_args parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`) -par_tee_too_many_args parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf -par_tee_too_many_args parallel: Warning: or increasing /proc/sys/fs/file-max -par_tee_too_many_args parallel: Error: --tee requires --jobs to be higher. Try --jobs 999. par_tmp_full ### Test --tmpdir running full. bug #40733 was caused by this par_tmp_full parallel: Error: Output is incomplete. par_tmp_full parallel: Error: Cannot append to buffer file in /tmp/shm/parallel. @@ -1166,150 +1420,3 @@ par_tmux_fg bug #50107: --tmux --fg should also write how to access it par_tmux_fg See output with: tmux -S /TMPtmpfile attach par_tmux_fg open terminal failed: not a terminal par_totaljobs OK -par_xargs_compat xargs compatibility -par_xargs_compat ### Test -L -l and --max-lines -par_xargs_compat a_b -par_xargs_compat c -par_xargs_compat a_b c -par_xargs_compat a_b c -par_xargs_compat ### xargs -L1 echo -par_xargs_compat a_b -par_xargs_compat c -par_xargs_compat a_b -par_xargs_compat c -par_xargs_compat a_b -par_xargs_compat c -par_xargs_compat Lines ending in space should continue on next line -par_xargs_compat ### xargs -L1 echo -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat ### xargs -L2 echo -par_xargs_compat a_b c d -par_xargs_compat e -par_xargs_compat a_b c d -par_xargs_compat e -par_xargs_compat a_b c d -par_xargs_compat e -par_xargs_compat ### xargs -l echo -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat e -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat e -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat e -par_xargs_compat ### xargs -l2 echo -par_xargs_compat a_b c d -par_xargs_compat e -par_xargs_compat a_b c d -par_xargs_compat e -par_xargs_compat a_b c d -par_xargs_compat e -par_xargs_compat ### xargs -l1 echo -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat e -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat e -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat e -par_xargs_compat ### xargs --max-lines=2 echo -par_xargs_compat a_b c d -par_xargs_compat e -par_xargs_compat a_b c d -par_xargs_compat e -par_xargs_compat a_b c d -par_xargs_compat e -par_xargs_compat ### xargs --max-lines echo -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat e -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat e -par_xargs_compat a_b c -par_xargs_compat d -par_xargs_compat e -par_xargs_compat ### test too long args -par_xargs_compat parallel: Error: Command line too long (1000005 >= 63543) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... -par_xargs_compat xargs: argument line too long -par_xargs_compat parallel: Error: Command line too long (1000007 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... -par_xargs_compat 1 2 -par_xargs_compat 3 4 -par_xargs_compat 5 6 -par_xargs_compat 7 8 -par_xargs_compat 9 10 -par_xargs_compat xargs: argument line too long -par_xargs_compat 1 2 -par_xargs_compat 3 4 -par_xargs_compat 5 6 -par_xargs_compat 7 8 -par_xargs_compat 9 10 -par_xargs_compat parallel: Error: Command line too long (1000007 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... -par_xargs_compat 1 2 -par_xargs_compat 3 4 -par_xargs_compat 5 6 -par_xargs_compat 7 8 -par_xargs_compat 9 10 -par_xargs_compat ### Test -x -par_xargs_compat -km -par_xargs_compat parallel: Error: Command line too long (10 >= 10) at input 0: 12345 -par_xargs_compat 1 2 -par_xargs_compat 3 4 -par_xargs_compat 5 6 -par_xargs_compat 7 8 -par_xargs_compat 9 10 -par_xargs_compat -kX -par_xargs_compat parallel: Error: Command line too long (10 >= 10) at input 0: 12345 -par_xargs_compat 1 2 -par_xargs_compat 3 4 -par_xargs_compat 5 6 -par_xargs_compat 7 8 -par_xargs_compat 9 10 -par_xargs_compat -x -par_xargs_compat xargs: argument line too long -par_xargs_compat 1 2 -par_xargs_compat 3 4 -par_xargs_compat 5 6 -par_xargs_compat 7 8 -par_xargs_compat -km -x -par_xargs_compat 1 2 -par_xargs_compat 12 -par_xargs_compat 1234 -par_xargs_compat 13 -par_xargs_compat 14 -par_xargs_compat 15 -par_xargs_compat 3 4 -par_xargs_compat 5 6 -par_xargs_compat 7 8 -par_xargs_compat 9 10 -par_xargs_compat -kX -x -par_xargs_compat 1 2 -par_xargs_compat 12 -par_xargs_compat 1234 -par_xargs_compat 13 -par_xargs_compat 14 -par_xargs_compat 15 -par_xargs_compat 3 4 -par_xargs_compat 5 6 -par_xargs_compat 7 8 -par_xargs_compat 9 10 -par_xargs_compat -x -par_xargs_compat 1 2 -par_xargs_compat 12 -par_xargs_compat 1234 -par_xargs_compat 13 -par_xargs_compat 14 -par_xargs_compat 15 -par_xargs_compat 3 4 -par_xargs_compat 5 6 -par_xargs_compat 7 8 -par_xargs_compat 9 10 diff --git a/testsuite/wanted-results/parallel-local-3s b/testsuite/wanted-results/parallel-local-3s index e03c4b5d..eb80563a 100644 --- a/testsuite/wanted-results/parallel-local-3s +++ b/testsuite/wanted-results/parallel-local-3s @@ -630,7 +630,7 @@ par__test_cpu_detection_cpuinfo 1-4-8-4 Lenovo E540 i7-4712MQ (PROSA stud organi par__test_cpu_detection_cpuinfo 1 4 8 4 par__test_cpu_detection_cpuinfo 1-4-8-4 Core i7-3632QM Acer laptop par__test_cpu_detection_cpuinfo 1 4 8 4 -par__test_cpu_detection_cpuinfo 1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit) +par__test_cpu_detection_cpuinfo 1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit - detected wrong) par__test_cpu_detection_cpuinfo 1 12 24 12 par__test_cpu_detection_cpuinfo 1-2-4-2 Core i5-2410M laptop firewall par__test_cpu_detection_cpuinfo 1 2 4 2 @@ -664,7 +664,7 @@ par__test_cpu_detection_lscpu 1-4-8-4 Lenovo E540 i7-4712MQ (PROSA stud organize par__test_cpu_detection_lscpu 1 4 8 4 par__test_cpu_detection_lscpu 1-4-8-4 Core i7-3632QM Acer laptop par__test_cpu_detection_lscpu 1 4 8 4 -par__test_cpu_detection_lscpu 1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit) +par__test_cpu_detection_lscpu 1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit - detected wrong) par__test_cpu_detection_lscpu 1 12 24 12 par__test_cpu_detection_lscpu 1-2-4-2 Core i5-2410M laptop firewall par__test_cpu_detection_lscpu 1 2 4 2 @@ -680,8 +680,8 @@ par__test_cpu_detection_topology 1-4-8-4 Lenovo E540 i7-4712MQ (PROSA stud organ par__test_cpu_detection_topology 1 4 8 4 par__test_cpu_detection_topology 1-2-4-2 ThinkPad A475 AMD PRO A12-8830B R7 (64g) par__test_cpu_detection_topology 1 2 4 2 -par__test_cpu_detection_topology 1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit) -par__test_cpu_detection_topology 1 2 4 2 +par__test_cpu_detection_topology 1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit - detected wrong) +par__test_cpu_detection_topology 1 4 8 4 par_children_receive_sig ### Do children receive --termseq signals par_children_receive_sig parallel: Warning: This job was killed because it timed out: par_children_receive_sig parallel: Warning: show_signals '' diff --git a/testsuite/wanted-results/parallel-local-race02 b/testsuite/wanted-results/parallel-local-race02 index be8cb8b0..5a8afeb2 100644 --- a/testsuite/wanted-results/parallel-local-race02 +++ b/testsuite/wanted-results/parallel-local-race02 @@ -1,3 +1,7 @@ +WHY DOES THIS FAIL? +### --env _ +In csh this may fail with ignored_var: Undefined variable. +### --env _ with explicit mentioning of normally ignored var $ignored_var bug #46120: Suspend should suspend (at least local) children it should burn 1.9 CPU seconds, but no more than that The 5 second sleep will make it be killed by timeout when it fgs diff --git a/testsuite/wanted-results/parallel-local-sql01 b/testsuite/wanted-results/parallel-local-sql01 index 8a3df37a..7121feb0 100644 --- a/testsuite/wanted-results/parallel-local-sql01 +++ b/testsuite/wanted-results/parallel-local-sql01 @@ -1855,7 +1855,7 @@ SQLITE par_empty p_wrapper par_empty $SQLITE SQLITE par_empty Do nothing: TBL99999 does not exist because it is not created SQLITE par_empty Exit=0 SQLITE par_empty Exit=0 -SQLITE par_empty Parse error near line 1: no such table: TBL99999 +SQLITE par_empty Parse error near line 1: no such table: TBL99999 (1) SQLITE par_no_table p_wrapper par_no_table $SQLITE SQLITE par_no_table bug #50018: --dburl without table dies SQLITE par_no_table 255 diff --git a/testsuite/wanted-results/parallel-local-ssh1 b/testsuite/wanted-results/parallel-local-ssh1 index 74dfc13a..c88f3d26 100644 --- a/testsuite/wanted-results/parallel-local-ssh1 +++ b/testsuite/wanted-results/parallel-local-ssh1 @@ -78,11 +78,11 @@ par__sshpass_with_password ### Crazy passwords: `date>>/tmp/trap`;(|<*&)' par__sshpass_with_password # These fail. The important part is that /tmp/trap is empty par__sshpass_with_password parallel: Warning: Using password or SSHPASS with --(n)onall exposes the password par__sshpass_with_password parallel: Warning: on the command line, making it visible to local users via `ps`. -par__sshpass_with_password Permission denied, please try again. +par__sshpass_with_password ssh: Could not resolve hostname host: par__sshpass_with_password par__sshpass_with_password parallel: Warning: Using password or SSHPASS with --(n)onall exposes the password par__sshpass_with_password parallel: Warning: on the command line, making it visible to local users via `ps`. -par__sshpass_with_password Permission denied, please try again. +par__sshpass_with_password ssh: Could not resolve hostname host: par__sshpass_with_password par__sshpass_with_password This must stay empty: par__sshpass_with_password OK diff --git a/testsuite/wanted-results/parallel-local-ssh4 b/testsuite/wanted-results/parallel-local-ssh4 index 560f7c19..3bfb0f0a 100644 --- a/testsuite/wanted-results/parallel-local-ssh4 +++ b/testsuite/wanted-results/parallel-local-ssh4 @@ -278,7 +278,7 @@ par__test_different_rsync_versions rsync-v3.2.4 Basic use works: rsync-v3.2.4 par__test_different_rsync_versions rsync-v3.2.5 Basic use works: rsync-v3.2.5 par__test_different_rsync_versions rsync-v3.2.6 Basic use works: rsync-v3.2.6 par__test_different_rsync_versions rsync-v3.2.7 Basic use works: rsync-v3.2.7 -par__test_different_rsync_versions rsync-v3.3.0 Basic use failed - not tested: rsync-v3.3.0 +par__test_different_rsync_versions rsync-v3.3.0 Basic use works: rsync-v3.3.0 par_bigvar_csh ### csh par_bigvar_csh 3 big vars run remotely - length(base64) > 1000 par_bigvar_csh 1 200 692 @@ -299,13 +299,6 @@ par_bigvar_rc 3 big vars run locally par_bigvar_rc 1 200 692 par_bigvar_rc 1 200 692 par_bigvar_rc 1 150 547 -par_env_underscore ### --env _ -par_env_underscore OK FUBAR test -par_env_underscore In csh this may fail with ignored_var: Undefined variable. -par_env_underscore ignored_var: Undefined variable. -par_env_underscore ### --env _ with explicit mentioning of normally ignored var $ignored_var -par_env_underscore OK FUBAR should be copied test -par_env_underscore OK FUBAR should be copied test par_exporting_in_zsh ### zsh par_exporting_in_zsh env in zsh par_exporting_in_zsh Normal variable export diff --git a/testsuite/wanted-results/parallel-local-ssh7 b/testsuite/wanted-results/parallel-local-ssh7 index 6451b770..23b7439c 100644 --- a/testsuite/wanted-results/parallel-local-ssh7 +++ b/testsuite/wanted-results/parallel-local-ssh7 @@ -87,7 +87,7 @@ par_--env_underscore_ksh aliases in functions work par_--env_underscore_ksh aliases in functions work par_--env_underscore_ksh /bin/ksh: myecho: not found par_--env_underscore_ksh OK if no myecho ^^^^^^^^^^^^^^^^^ -par_--env_underscore_ksh script: myecho: not found +par_--env_underscore_ksh script[9]: myecho: not found par_--env_underscore_ksh OK if no myecho ^^^^^^^^^^^^^^^^^ par_--env_underscore_ksh /bin/ksh: myfunc: not found par_--env_underscore_ksh OK if no myfunc ^^^^^^^^^^^^^^^^^ @@ -101,8 +101,8 @@ par_--env_underscore_mksh variables in aliases in and arrays in functions work par_--env_underscore_mksh variables in aliases in and arrays in functions work par_--env_underscore_mksh variables in aliases in and arrays in functions work par_--env_underscore_mksh variables in aliases in and arrays in functions work -par_--env_underscore_mksh EW: script[9]: not_copied_alias: inaccessible or not found -par_--env_underscore_mksh EW: script[9]: not_copied_func: inaccessible or not found +par_--env_underscore_mksh W: script[9]: not_copied_alias: inaccessible or not found +par_--env_underscore_mksh W: script[9]: not_copied_func: inaccessible or not found par_--env_underscore_mksh error=OK par_--env_underscore_mksh error=OK par_--env_underscore_mksh aliases in and arrays in functions work @@ -113,9 +113,9 @@ par_--env_underscore_mksh aliases in functions work par_--env_underscore_mksh The myecho alias is replaced in the function causing this not to fail par_--env_underscore_mksh aliases in functions work par_--env_underscore_mksh The myecho alias is replaced in the function causing this not to fail -par_--env_underscore_mksh EW: /bin/mksh: myfunc: inaccessible or not found +par_--env_underscore_mksh W: /bin/mksh: myfunc: inaccessible or not found par_--env_underscore_mksh OK if no myfunc ^^^^^^^^^^^^^^^^^ -par_--env_underscore_mksh EW: script[9]: myfunc: inaccessible or not found +par_--env_underscore_mksh W: script[9]: myfunc: inaccessible or not found par_--env_underscore_mksh OK if no myfunc ^^^^^^^^^^^^^^^^^ par_--env_underscore_sh ### sh par_--env_underscore_sh ### Testing of --env _ @@ -1130,12 +1130,12 @@ par_env_parallel_--session_mksh ### Test env_parallel --session par_env_parallel_--session_mksh ### level0 should be hidden, level1 should be transferred par_env_parallel_--session_mksh par_env_parallel_--session_mksh fail -par_env_parallel_--session_mksh EW: script[9]: level0func: inaccessible or not found -par_env_parallel_--session_mksh EW: script[9]: level0alias: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level0alias: inaccessible or not found par_env_parallel_--session_mksh par_env_parallel_--session_mksh fail -par_env_parallel_--session_mksh EW: /bin/mksh: level0func: inaccessible or not found -par_env_parallel_--session_mksh EW: /bin/mksh: level0alias: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level0alias: inaccessible or not found par_env_parallel_--session_mksh l1var par_env_parallel_--session_mksh l1func par_env_parallel_--session_mksh l1alias @@ -1147,20 +1147,20 @@ par_env_parallel_--session_mksh level1 array OK par_env_parallel_--session_mksh ### level0+1 should be hidden, level2 should be transferred par_env_parallel_--session_mksh par_env_parallel_--session_mksh fail -par_env_parallel_--session_mksh EW: script[9]: level0func: inaccessible or not found -par_env_parallel_--session_mksh EW: script[9]: level0alias: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level0alias: inaccessible or not found par_env_parallel_--session_mksh par_env_parallel_--session_mksh fail -par_env_parallel_--session_mksh EW: /bin/mksh: level0func: inaccessible or not found -par_env_parallel_--session_mksh EW: /bin/mksh: level0alias: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level0alias: inaccessible or not found par_env_parallel_--session_mksh par_env_parallel_--session_mksh fail -par_env_parallel_--session_mksh EW: script[9]: level1func: inaccessible or not found -par_env_parallel_--session_mksh EW: script[9]: level1alias: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level1func: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level1alias: inaccessible or not found par_env_parallel_--session_mksh par_env_parallel_--session_mksh fail -par_env_parallel_--session_mksh EW: /bin/mksh: level1func: inaccessible or not found -par_env_parallel_--session_mksh EW: /bin/mksh: level1alias: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level1func: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level1alias: inaccessible or not found par_env_parallel_--session_mksh l2var par_env_parallel_--session_mksh l2func par_env_parallel_--session_mksh l2alias @@ -1172,12 +1172,12 @@ par_env_parallel_--session_mksh level2 array OK par_env_parallel_--session_mksh ### level0 should be hidden, level1+2 should be transferred par_env_parallel_--session_mksh par_env_parallel_--session_mksh fail -par_env_parallel_--session_mksh EW: script[9]: level0func: inaccessible or not found -par_env_parallel_--session_mksh EW: script[9]: level0alias: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level0alias: inaccessible or not found par_env_parallel_--session_mksh par_env_parallel_--session_mksh fail -par_env_parallel_--session_mksh EW: /bin/mksh: level0func: inaccessible or not found -par_env_parallel_--session_mksh EW: /bin/mksh: level0alias: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level0alias: inaccessible or not found par_env_parallel_--session_mksh l1var par_env_parallel_--session_mksh l1func par_env_parallel_--session_mksh l1alias @@ -1219,10 +1219,10 @@ par_env_parallel_--session_mksh l2var par_env_parallel_--session_mksh l2func par_env_parallel_--session_mksh l2alias par_env_parallel_--session_mksh level2 array OK -par_env_parallel_--session_mksh EW: /bin/mksh: aliasbefore: inaccessible or not found -par_env_parallel_--session_mksh EW: script[9]: aliasbefore: inaccessible or not found -par_env_parallel_--session_mksh EW: /bin/mksh: funcbefore: inaccessible or not found -par_env_parallel_--session_mksh EW: script[9]: funcbefore: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: aliasbefore: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: aliasbefore: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: funcbefore: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: funcbefore: inaccessible or not found par_env_parallel_--session_mksh no_before par_env_parallel_--session_mksh no_before par_env_parallel_--session_mksh no_before @@ -1689,6 +1689,8 @@ par_funky_ash ' par_funky_ash  !"#$%&'"'"'()*+,-./0123456789 par_funky_ash 3 arg alias_works par_funky_ash 3 arg alias_works_over_ssh par_funky_bash +par_funky_bash  +par_funky_bash  par_funky_bash -funkymultiline par_funky_bash -funkymultiline par_funky_bash space 6 @@ -1700,8 +1702,8 @@ par_funky_bash 3 arg alias_works par_funky_bash 3 arg alias_works_over_ssh par_funky_bash Funkyline- par_funky_bash  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyline par_funky_bash Funkyline- par_funky_bash  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyline -par_funky_bash Funkymultiline- -par_funky_bash Funkymultiline- +par_funky_bash Funkymultiline- +par_funky_bash Funkymultiline- par_funky_bash assoc_val_a par_funky_bash assoc_val_a par_funky_bash function_works diff --git a/testsuite/wanted-results/parallel-local-ssh8 b/testsuite/wanted-results/parallel-local-ssh8 index c5bca8fc..1f452986 100644 --- a/testsuite/wanted-results/parallel-local-ssh8 +++ b/testsuite/wanted-results/parallel-local-ssh8 @@ -34,7 +34,6 @@ par_path_remote_csh StArT par_path_remote_csh CSH Path before: /bin:/usr/bin with no parallel par_path_remote_csh parallel: Command not found. par_path_remote_csh ^^^^^^^^ Not found is OK -par_path_remote_csh parallel: Warning: Could not figure out number of cpus on lo (). Using 1. par_path_remote_csh OK: /bin:/usr/bin:/tmp par_path_remote_csh Done par_retries_1 ### Test of --retries - it should run 13 jobs in total diff --git a/testsuite/wanted-results/parallel-local21 b/testsuite/wanted-results/parallel-local21 index fc4619ab..4b2a6800 100644 --- a/testsuite/wanted-results/parallel-local21 +++ b/testsuite/wanted-results/parallel-local21 @@ -72,6 +72,9 @@ par_shebang_with_parser_options 5 par_shebang_wrap_R [1] "Arguments arg1" par_shebang_wrap_R [1] "Arguments arg2" par_shebang_wrap_R [1] "Arguments arg3.1 arg3.2" +par_shebang_wrap_awk Arguments: arg1 +par_shebang_wrap_awk Arguments: arg2 +par_shebang_wrap_awk Arguments: arg3.1 arg3.2 par_shebang_wrap_bash Arguments arg1 par_shebang_wrap_bash Arguments arg2 par_shebang_wrap_bash Arguments arg3.1 arg3.2 @@ -87,9 +90,18 @@ par_shebang_wrap_csh Arguments arg3.1 arg3.2 par_shebang_wrap_csharp Arguments arg1 par_shebang_wrap_csharp Arguments arg2 par_shebang_wrap_csharp Arguments arg3.1 arg3.2 +par_shebang_wrap_fsharp Arguments: [|"arg1"|] +par_shebang_wrap_fsharp Arguments: [|"arg2"|] +par_shebang_wrap_fsharp Arguments: [|"arg3.1 arg3.2"|] par_shebang_wrap_gnuplot Arguments arg1 par_shebang_wrap_gnuplot Arguments arg2 par_shebang_wrap_gnuplot Arguments arg3.1 arg3.2 +par_shebang_wrap_groovy Arguments: arg1 +par_shebang_wrap_groovy Arguments: arg2 +par_shebang_wrap_groovy Arguments: arg3.1 arg3.2 +par_shebang_wrap_julia Arguments: arg1 +par_shebang_wrap_julia Arguments: arg2 +par_shebang_wrap_julia Arguments: arg3.1 arg3.2 par_shebang_wrap_ksh Arguments arg1 par_shebang_wrap_ksh Arguments arg2 par_shebang_wrap_ksh Arguments arg3.1 arg3.2 @@ -117,9 +129,27 @@ par_shebang_wrap_php Arguments arg3.1 arg3.2 par_shebang_wrap_python Arguments ['arg1'] par_shebang_wrap_python Arguments ['arg2'] par_shebang_wrap_python Arguments ['arg3.1 arg3.2'] +par_shebang_wrap_racket Arguments: arg1 +par_shebang_wrap_racket Arguments: arg2 +par_shebang_wrap_racket Arguments: arg3.1 arg3.2 par_shebang_wrap_ruby Arguments arg1 par_shebang_wrap_ruby Arguments arg2 par_shebang_wrap_ruby Arguments arg3.1 arg3.2 +par_shebang_wrap_scheme Arguments: arg1 +par_shebang_wrap_scheme `/tmp/trip`>/tmp/tripwire; +par_shebang_wrap_scheme  +par_shebang_wrap_scheme `/tmp/trip`>/tmp/tripwire; +par_shebang_wrap_scheme  +par_shebang_wrap_scheme Arguments: arg2 +par_shebang_wrap_scheme `/tmp/trip`>/tmp/tripwire; +par_shebang_wrap_scheme  +par_shebang_wrap_scheme `/tmp/trip`>/tmp/tripwire; +par_shebang_wrap_scheme  +par_shebang_wrap_scheme Arguments: arg3.1 arg3.2 +par_shebang_wrap_scheme `/tmp/trip`>/tmp/tripwire; +par_shebang_wrap_scheme  +par_shebang_wrap_scheme `/tmp/trip`>/tmp/tripwire; +par_shebang_wrap_scheme  par_shebang_wrap_sh Arguments arg1 par_shebang_wrap_sh Arguments arg2 par_shebang_wrap_sh Arguments arg3.1 arg3.2 diff --git a/testsuite/wanted-results/parallel-ssh-fish b/testsuite/wanted-results/parallel-ssh-fish new file mode 100644 index 00000000..74babf43 --- /dev/null +++ b/testsuite/wanted-results/parallel-ssh-fish @@ -0,0 +1,133 @@ +par_--env_underscore_fish ### fish +par_--env_underscore_fish Fish is broken +par_--env_underscore_fish ### Testing of --env _ +par_--env_underscore_fish Test copying +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish variables in aliases and arrays in functions work +par__man_fish ### fish +par__man_fish ### From man env_parallel +par__man_fish aliases with = & " ! ' work +par__man_fish aliases with = & " ! ' work +par__man_fish aliases with = & " ! ' work +par__man_fish aliases with = & " ! ' work +par__man_fish aliases with = & " ! ' work +par__man_fish functions with = & " ! ' work +par__man_fish functions with = & " ! ' work +par__man_fish functions with = & " ! ' work +par__man_fish functions with = & " ! ' work +par__man_fish functions with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish multiline +par__man_fish variables with = & " ! ' work +par__man_fish multiline +par__man_fish variables with = & " ! ' work +par__man_fish multiline +par__man_fish variables with = & " ! ' work +par__man_fish multiline +par__man_fish variables with = & " ! ' work +par__man_fish multiline +par__man_fish variables with = & " ! ' work +par__man_fish arrays with = & " ! ' work, too +par__man_fish # these 4 fail often. Race condition? +par__man_fish arrays +par__man_fish with = & " ! ' +par__man_fish work, +par__man_fish too +par__man_fish arrays +par__man_fish with = & " ! ' +par__man_fish work, +par__man_fish too +par__man_fish arrays +par__man_fish with = & " ! ' +par__man_fish work, +par__man_fish too +par__man_fish arrays +par__man_fish with = & " ! ' +par__man_fish work, +par__man_fish too +par__man_fish multi +par__man_fish level +par__man_fish env_parallel +par__man_fish exit value 2 should be 2 +par__man_fish Unknown option: no-such-option +par__man_fish exit value 255 should be 255 `sleep 1` +par_env_parallel_--session_fish ### Test env_parallel --session +par_env_parallel_--session_fish fish: Unknown command: aliasbefore +par_env_parallel_--session_fish fish: +par_env_parallel_--session_fish aliasbefore must_fail +par_env_parallel_--session_fish +par_env_parallel_--session_fish fish: Unknown command: aliasbefore +par_env_parallel_--session_fish script (line 6): +par_env_parallel_--session_fish aliasbefore must_fail +par_env_parallel_--session_fish +par_env_parallel_--session_fish fish: Unknown command: funcbefore +par_env_parallel_--session_fish fish: +par_env_parallel_--session_fish funcbefore must_fail +par_env_parallel_--session_fish +par_env_parallel_--session_fish fish: Unknown command: funcbefore +par_env_parallel_--session_fish script (line 6): +par_env_parallel_--session_fish funcbefore must_fail +par_env_parallel_--session_fish +par_env_parallel_--session_fish no_before +par_env_parallel_--session_fish no_before +par_env_parallel_--session_fish no_before +par_env_parallel_--session_fish no_before +par_env_parallel_--session_fish after aliasafter_OK +par_env_parallel_--session_fish after aliasafter_OK +par_env_parallel_--session_fish after funcafter_OK +par_env_parallel_--session_fish after funcafter_OK +par_env_parallel_--session_fish after varafter_OK +par_env_parallel_--session_fish after varafter_OK +par_env_parallel_--session_fish array after arrayafter_OK +par_env_parallel_--session_fish array after arrayafter_OK +par_env_parallel_fish bug #50435: Remote fifo broke in 20150522 +par_env_parallel_fish data from stdin +par_env_parallel_fish OK +par_env_parallel_fish data from stdin +par_env_parallel_fish OK +par_env_parallel_fish OK: 0==0 +par_env_parallel_fish ### Test failing command with --cat +par_env_parallel_fish data from stdin +par_env_parallel_fish OK: 1==1 +par_env_parallel_fish data from stdin +par_env_parallel_fish OK: 1==1 +par_funky_fish env_parallel: Warning: ASCII value 1 in variables is not supported +par_funky_fish 3 arg alias_works +par_funky_fish env_parallel: Warning: ASCII value 1 in variables is not supported +par_funky_fish function_works +par_funky_fish myvar works +par_funky_fish myenvvar works +par_funky_fish space 6 +par_funky_fish +par_funky_fish +par_funky_fish +par_funky_fish Funky- par_funky_fish  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_funky_fish Funkyenv- par_funky_fish  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv +par_funky_fish +par_funky_fish +par_funky_fish +par_funky_fish env_parallel: Warning: ASCII value 1 in variables is not supported +par_funky_fish 3 arg alias_works_over_ssh +par_funky_fish env_parallel: Warning: ASCII value 1 in variables is not supported +par_funky_fish function_works_over_ssh +par_funky_fish myvar works +par_funky_fish myenvvar works +par_funky_fish space 6 +par_funky_fish +par_funky_fish +par_funky_fish +par_funky_fish Funky- par_funky_fish  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_funky_fish Funkyenv- par_funky_fish  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv +par_funky_fish +par_funky_fish +par_funky_fish +par_funky_fish +par_funky_fish ' par_funky_fish  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' diff --git a/testsuite/wanted-results/parallel-tutorial b/testsuite/wanted-results/parallel-tutorial index ceac13fc..bd886e5d 100644 --- a/testsuite/wanted-results/parallel-tutorial +++ b/testsuite/wanted-results/parallel-tutorial @@ -720,6 +720,7 @@ BASH_FUNC_replace_tmpdir%% BASH_FUNC_run_once%% BASH_FUNC_run_test%% _ +mysqlrootpass qTMPDIR qqTMPDIR testsuitedir diff --git a/testsuite/wanted-results/sem01 b/testsuite/wanted-results/sem01 index 41d9af72..2c59d396 100644 --- a/testsuite/wanted-results/sem01 +++ b/testsuite/wanted-results/sem01 @@ -100,12 +100,10 @@ par_exit 30 environment: line 1: PID Power failure bash -c 'kill -'$1' par_exit 31 Bash exit value 159 par_exit 31 Sem exit value 159 par_exit 31 environment: line 1: PID Bad system call (core dumped) bash -c 'kill -'$1' $$' -par_exit 32 Bash exit value 160 -par_exit 32 Sem exit value 160 -par_exit 32 environment: line 1: PID Unknown signal 32 bash -c 'kill -'$1' $$' -par_exit 33 Bash exit value 161 -par_exit 33 Sem exit value 161 -par_exit 33 environment: line 1: PID Unknown signal 33 bash -c 'kill -'$1' $$' +par_exit 32 Bash exit value 0 +par_exit 32 Sem exit value 0 +par_exit 33 Bash exit value 0 +par_exit 33 Sem exit value 0 par_exit 34 Bash exit value 162 par_exit 34 Sem exit value 162 par_exit 34 environment: line 1: PID Real-time signal 0 bash -c 'kill -'$1' $$' diff --git a/testsuite/wanted-results/sql01 b/testsuite/wanted-results/sql01 index 0032fd82..2b9ca16c 100644 --- a/testsuite/wanted-results/sql01 +++ b/testsuite/wanted-results/sql01 @@ -13,8 +13,8 @@ par__noheaders def 3 par__noheaders abc 1 par__noheaders def 3 par__tablesize ### Test --table-size --tablesize -par__tablesize 93 -par__tablesize 93 +par__tablesize 94 +par__tablesize 94 par_dburl_user_password_host_port ### Test dburl with username password host port par_dburl_user_password_host_port Test dburl with username password host port par_dburl_user_password_host_port OK diff --git a/testsuite/wanted-results/sql02 b/testsuite/wanted-results/sql02 index e51dd02b..04b333e8 100644 --- a/testsuite/wanted-results/sql02 +++ b/testsuite/wanted-results/sql02 @@ -100,7 +100,7 @@ par_sqlite bytes par_sqlite 3072 par_sqlite Current command: sqlite3 par_sqlite foo -par_sqlite sqltest.sqlite3: SQLite 3.x database, last written using SQLite version 3045001, file counter 1, database pages 2, cookie 0x1, schema 4, UTF-8, version-valid-for 1 +par_sqlite sqltest.sqlite3: SQLite 3.x database, last written using SQLite, file counter 1, database pages 2, cookie 0x1, schema 4, UTF-8, version-valid-for 1 par_sqlite n|t par_sqlite 1|Line 1 par_sqlite 2|Line 2