[-]
[+]
|
Changed |
_service:tar_git:parallel.spec
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,7 +2,7 @@
<service name="tar_git">
<param name="url">https://github.com/sailfishos-chum/parallel</param>
<param name="branch"></param>
- <param name="revision">20230122+git1</param>
+ <param name="revision">20230322+git1</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/10seconds_install
^
|
@@ -42,14 +42,14 @@
(fetch -o /dev/null file:///bin/sh && echo fetch -o -) ||
(curl -h >/dev/null && echo curl -L) ||
(wget -h >/dev/null && echo wget -qO -) ||
- echo 'No lynx, wget, curl, fetch: Please inform parallel@gnu.org what you use for downloading URLs' >&2
+ echo 'No lynx, wget, curl, fetch: Please inform parallel@gnu.org what you use for downloading URLs' >&2
)
if test "$get" = ""; then
exit 1
fi
if ! perl -e 1; then
- echo No perl installed. GNU Parallel depends on perl. Install perl and retry.
+ echo No perl installed. GNU Parallel depends on perl. Install perl and retry.
exit 1
fi
@@ -69,31 +69,30 @@
# GnuPG installed
# Setup .gnupg/gpg.conf if not already done
echo | gpg 2>/dev/null >/dev/null
- if gpg --list-keys 0xFFFFFFF1 && gpg --list-keys 0x88888888 ; then
+ if gpg --list-keys 0x2C6229E2FFFFFFF1 && gpg --list-keys 0xD1AB451688888888 ; then
echo Keys fetched
# OK
- return 0
+ return 0
else
keyservers="keyserver.ubuntu.com
pgp.surf.nl
- keyserver.bazon.ru
- agora.cenditel.gob.ve
+ keys.openpgp.org
pgp.benny-baumann.de"
for keyserver in $keyservers ; do
- if gpg --keyserver "$keyserver" --recv-key 0xFFFFFFF1 &&
- gpg --keyserver "$keyserver" --recv-key 0x88888888 ; then
+ if gpg --keyserver "$keyserver" --recv-key 0x2C6229E2FFFFFFF1 &&
+ gpg --keyserver "$keyserver" --recv-key 0xD1AB451688888888 ; then
# OK
return 0
fi
done
- echo
- echo "Cannot fetch keyID 0x88888888, so the signature cannot be checked."
+ echo
+ echo "Cannot fetch keyID 0xD1AB451688888888, so the signature cannot be checked."
return 1
fi
else
- # GnuPG not installed
+ # GnuPG not installed
echo
- echo "GnuPG (gpg) is not installed so the signature cannot be checked."
+ echo "GnuPG (gpg) is not installed so the signature cannot be checked."
return 1
fi
}
@@ -103,13 +102,13 @@
if gpg --with-fingerprint "$latest".tar.bz2.sig 2>&1 |
perl -e 'exit not grep /^Primary key fingerprint: BE9C B493 81DE 3166 A3BC..66C1 2C62 29E2 FFFF FFF1|^Primary key fingerprint: CDA0 1A42 08C4 F745 0610..7E7B D1AB 4516 8888 8888/, <>'; then
# Source code signed by Ole Tange <ole@tange.dk>
- # KeyID FFFFFFF1/88888888
+ # KeyID 0x2C6229E2FFFFFFF1/0xD1AB451688888888
true
else
# GnuPG signature failed
echo
echo "The signature on $latest.tar.bz2 is wrong. This may indicate that a criminal has changed the code."
- echo "THIS IS BAD AND THE CODE WILL NOT BE INSTALLED."
+ echo "THIS IS BAD AND THE CODE WILL NOT BE INSTALLED."
echo
echo "See http://git.savannah.gnu.org/cgit/parallel.git/tree/README for other installation methods."
exit 1
@@ -121,7 +120,7 @@
echo "Continue anyway? (y/n)"
read YN </dev/tty
if test "$YN" = "n"; then
- # Stop
+ # Stop
exit 2
else
# Continue
@@ -147,12 +146,12 @@
fi
# Is $HOME/bin already in $PATH?
- if echo "$PATH" | grep "$HOME"/bin >/dev/null; then
- # $HOME/bin is already in $PATH
+ if echo "$PATH" | grep "$HOME"/bin >/dev/null; then
+ # $HOME/bin is already in $PATH
true
else
# Add $HOME/bin to $PATH for both bash and csh
- echo 'PATH=$PATH:$HOME/bin' >> "$HOME"/.bashrc
+ echo 'PATH=$PATH:$HOME/bin' >> "$HOME"/.bashrc
echo 'setenv PATH ${PATH}:${HOME}/bin' >> "$HOME"/.cshrc
fi
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/NEWS
^
|
@@ -1,3 +1,30 @@
+20230322
+
+New in this release:
+
+* Better support for wide characters in --latest-line.
+
+* Support for rsync 3.2.7.
+
+* Bug fixes and man page updates.
+
+
+20230222
+
+New in this release:
+
+* parsort: --parallel now does closer to what you expect.
+
+* parallel: --files0 is --files but \0 separated.
+
+* Bug fixes and man page updates.
+
+News about GNU Parallel:
+
+* 5 great Perl scripts to keep in your sysadmin toolbox
+ https://www.redhat.com/sysadmin/perl-scripts
+
+
20230122
New in this release:
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/README
^
|
@@ -57,11 +57,11 @@
Full installation of GNU Parallel is as simple as:
- wget https://ftpmirror.gnu.org/parallel/parallel-20230122.tar.bz2
- wget https://ftpmirror.gnu.org/parallel/parallel-20230122.tar.bz2.sig
- gpg parallel-20230122.tar.bz2.sig
- bzip2 -dc parallel-20230122.tar.bz2 | tar xvf -
- cd parallel-20230122
+ wget https://ftpmirror.gnu.org/parallel/parallel-20230322.tar.bz2
+ wget https://ftpmirror.gnu.org/parallel/parallel-20230322.tar.bz2.sig
+ gpg parallel-20230322.tar.bz2.sig
+ bzip2 -dc parallel-20230322.tar.bz2 | tar xvf -
+ cd parallel-20230322
./configure && make && sudo make install
@@ -70,11 +70,11 @@
If you are not root you can add ~/bin to your path and install in
~/bin and ~/share:
- wget https://ftpmirror.gnu.org/parallel/parallel-20230122.tar.bz2
- wget https://ftpmirror.gnu.org/parallel/parallel-20230122.tar.bz2.sig
- gpg parallel-20230122.tar.bz2.sig
- bzip2 -dc parallel-20230122.tar.bz2 | tar xvf -
- cd parallel-20230122
+ wget https://ftpmirror.gnu.org/parallel/parallel-20230322.tar.bz2
+ wget https://ftpmirror.gnu.org/parallel/parallel-20230322.tar.bz2.sig
+ gpg parallel-20230322.tar.bz2.sig
+ bzip2 -dc parallel-20230322.tar.bz2 | tar xvf -
+ cd parallel-20230322
./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel
@@ -122,8 +122,8 @@
When using programs that use GNU Parallel to process data for
publication please cite:
- Tange, O. (2023, January 22). GNU Parallel 20230122 ('Bolsonaristas').
- Zenodo. https://doi.org/10.5281/zenodo.7558957
+ Tange, O. (2023, March 22). GNU Parallel 20230322 ('Arrest Warrant').
+ Zenodo. https://doi.org/10.5281/zenodo.7761866
Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc.
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/configure
^
|
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for parallel 20230122.
+# Generated by GNU Autoconf 2.71 for parallel 20230322.
#
# Report bugs to <bug-parallel@gnu.org>.
#
@@ -610,8 +610,8 @@
# Identity of this package.
PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel'
-PACKAGE_VERSION='20230122'
-PACKAGE_STRING='parallel 20230122'
+PACKAGE_VERSION='20230322'
+PACKAGE_STRING='parallel 20230322'
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL=''
@@ -1246,7 +1246,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures parallel 20230122 to adapt to many kinds of systems.
+\`configure' configures parallel 20230322 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1313,7 +1313,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of parallel 20230122:";;
+ short | recursive ) echo "Configuration of parallel 20230322:";;
esac
cat <<\_ACEOF
@@ -1390,7 +1390,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-parallel configure 20230122
+parallel configure 20230322
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1427,7 +1427,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by parallel $as_me 20230122, which was
+It was created by parallel $as_me 20230322, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -2379,7 +2379,7 @@
# Define the identity of the package.
PACKAGE='parallel'
- VERSION='20230122'
+ VERSION='20230322'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -3026,7 +3026,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by parallel $as_me 20230122, which was
+This file was extended by parallel $as_me 20230322, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3090,7 +3090,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-parallel config.status 20230122
+parallel config.status 20230322
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/configure.ac
^
|
@@ -1,4 +1,4 @@
-AC_INIT([parallel],[20230122],[bug-parallel@gnu.org])
+AC_INIT([parallel],[20230322],[bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/doc/haikus
^
|
@@ -4,6 +4,23 @@
Quote of the month:
+ Recently learned how to use GNU parallel (from ChatGPT, no less!) and I've gone mad with power
+ -- Mark, Anthropomorphic Anuran @reject_resubmit@twitter
+
+ gnu parallel is actually like. really easy
+ -- tom (era) @slimefiend@twitter
+
+ Love to make a dual processor workstation absolutely whir running dozens of analysis scripts at once
+ -- Best Catboy Key Grip @alamogordoglass@twitter
+
+ i really didn't expect it to be as simple as it is, took me all of 5 minutes to implement and the results are exactly what i wanted
+
+ gnu parallel babey, it's really simple actually lol
+ -- tom (era) @slimefiend@twitter
+
+ GNU parallel is your friend. Unleash your cores! #GNU
+ -- Blake L @BlakeDL@twitter
+
--line-buffer, a flag
parallel, now more precise
@@ -213,6 +230,12 @@
=== Used ===
+ GNU parallel is magic, half of my work uses it, to the point where they're referenced and thanked in my thesis
+ -- Best Catboy Key Grip @alamogordoglass@twitter
+
+ Praise GNU parallel, though. That gets me pretty far.
+ -- Your Obed. Servant, J. B. @Jeffinatorator
+
Colorful output
parallel, with --color flag
tasks more vibrant now
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/doc/release_new_version
^
|
@@ -116,7 +116,7 @@
$(perl -ne '/About\sGNU\sParallel/ and exit;/It\sis\savailable/..0 and print' doc/release_new_version)
"
-echo "$description" | grep '<<.*>>' && echo STOP STOP STOP
+echo "$description" | grep '<<.*>>' && echo STOP STOP STOP ||
echo "$description"
lbrynet publish \
@@ -262,26 +262,29 @@
to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
-Subject: GNU Parallel 20230122 ('Bolsanaristas') released
+Subject: GNU Parallel 20230322 ('Arrest Warrant') released
-GNU Parallel 20230122 ('Bolsanaristas') has been released. It is available for download at: lbry://@GnuParallel:4
+GNU Parallel 20230322 ('Arrest Warrant') has been released. It is available for download at: lbry://@GnuParallel:4
Quote of the month:
- Colorful output
- parallel, with --color flag
- tasks more vibrant now
- -- ChatGPT
+ GNU parallel is magic, half of my work uses it, to the point where they're referenced and thanked in my thesis
+ -- Best Catboy Key Grip @alamogordoglass@twitter
New in this release:
+* Better support for wide characters in --latest-line.
+
+* Support for rsync 3.2.7.
+
* Bug fixes and man page updates.
News about GNU Parallel:
-* The Best Ethical Hacking Tools of 2023 (and their basic usage) https://www.purevpn.com/blog/the-best-hacking-tools-of-2023/#11_GNU_Parallel
+* Analyzing multi-gigabyte JSON files locally https://thenybble.de/posts/json-analysis/
+
+* 5 great Perl scripts to keep in your sysadmin toolbox https://www.redhat.com/sysadmin/perl-scripts
-* GNU Parallel: criando atividades em paralelo com shell script https://www.vivaolinux.com.br/artigo/GNU-Parallel-criando-atividades-em-paralelo-com-shell-script/
GNU Parallel - For people who live life in the parallel lane.
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/packager/obs/Makefile
^
|
@@ -15,6 +15,7 @@
cd home-tange/parallel/ && osc ci -m "New release"
### Wait for "building" state to complete
echo '### Wait for "building" state'
+ sleep 3
cd home-tange/parallel/ && yes building | parallel -vj1 --delay 10 --halt now,success=1 'osc results|G -E {}'
echo '### Wait for "building" state to end'
echo '### Ignore RedHat_RHEL-6 and Univention_3.2 that are broken'
@@ -23,4 +24,5 @@
cd home-tange/parallel/ && echo succeeded | parallel -vj1 --retries 30 --delay 10 --halt now,success=1 'osc results|G -E "(Debian|Ubuntu).*{}"'
echo '### Wait for "finished" state of .rpm'
cd home-tange/parallel/ && echo succeeded | parallel -vj1 --retries 30 --delay 10 --halt now,success=1 'osc results|G -E "(SUSE|SLE|Scientific|RHEL|Fedora|CentOS).*{}"'
-
+ echo 'Check:'
+ echo 'https://build.opensuse.org/package/show/home:tange/parallel'
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/packager/obs/home-tange/parallel/.osc/_files
^
|
@@ -1,6 +1,7 @@
-<directory name="parallel" rev="356" vrev="2" srcmd5="315b8389407e05d5cb1c1759f24cfc5f">
- <entry name="PKGBUILD" md5="b50fec0d85134fcb9f09fc63b773e494" size="1246" mtime="1674409249" />
- <entry name="parallel.spec" md5="0ab03fc781707374185c314f31f434b7" size="6224" mtime="1674409249" />
- <entry name="parallel_20230122.dsc" md5="48838dce2a4cd8aa224340815dd4dd6f" size="556" mtime="1674409249" />
- <entry name="parallel_20230122.tar.gz" md5="5ac229e0452d195bf623fc06c5ec730b" size="2742846" mtime="1674409249" />
+<directory name="parallel" rev="360" vrev="4" srcmd5="2ac7ba4f60d5521c729371ba986b36db">
+ <entry name="PKGBUILD" md5="f1e9f71229d2c45e7dcf5579f11c2643" size="1246" mtime="1679526191" />
+ <entry name="parallel-20230322.tar.bz2" md5="7754cbb70aea7382c694aed96c56c895" size="2479654" mtime="1679526191" />
+ <entry name="parallel.spec" md5="b868aba8a474169049cdd5888b17c986" size="6224" mtime="1679525330" />
+ <entry name="parallel_20230322.dsc" md5="2f852e11d4d7e8612518786a91009b63" size="556" mtime="1679525330" />
+ <entry name="parallel_20230322.tar.gz" md5="41bcf589033dd9c0d990215c172d4fb0" size="2756979" mtime="1679525331" />
</directory>
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/packager/obs/home-tange/parallel/.osc/parallel.spec
^
|
@@ -1,7 +1,7 @@
Summary: Shell tool for executing jobs in parallel
Name: parallel
-Version: 20230122
+Version: 20230322
Release: 2.1
License: GPL-3.0-or-later
Group: Productivity/File utilities
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/asciinema-manuscript
^
|
@@ -0,0 +1,142 @@
+#!/bin/bash
+
+# Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free
+# Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses/>
+# or write to the Free Software Foundation, Inc., 51 Franklin St,
+# Fifth Floor, Boston, MA 02110-1301 USA
+#
+# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+# tty1: asciinema rec demo.cast
+# tty2: asciinema-manuscript
+# Run commands in tty2 to set clipboard to next command
+
+manuscript() {
+ # <digit> sleep this many seconds before executing command
+ cat <<'_'
+###
+# Definitions
+PS1='$ '
+S() { sleep $@; }
+T() { echo -n '$ '; sleep $@; echo; }
+# Wait for asciinema to read all input
+sleep 5
+###
+S 0; # Make some files
+S 3; seq 100 | parallel --bar seq {}0000 '>' file-{}
+T 1;
+S 0; # gzip files with -1 .. -7 Note how all combinations are made
+S 3; parallel --bar gzip {1} '<{2}' '>{2}{1}.gz' ::: -{1..7} ::: *
+T 1;
+S 0; # Count the bytes in some files. Each job gets its own color
+S 3; parallel --color --tag wc {} ::: file-99*
+T 1;
+S 0; # Remove .gz-files
+S 3; rm *.gz
+T 1;
+S 0; # Make a big file
+S 3; seq 10000000 > bigfile
+T 1;
+S 0; # Chop bigfile into parts with 100000 lines (slow)
+S 3; cat bigfile | parallel --pipe -n100000 cat '>lines-{#}'
+S 3; ls lines-*
+T 1;
+S 0; # Chop bigfile into parts each ~10mb (faster)
+S 3; cat bigfile | parallel --pipe --block 10m cat '>10mb-{#}'
+S 3; ls -l 10mb-*
+T 1;
+S 0; # Chop bigfile into one part per CPU thread (fastest)
+S 3; parallel --pipepart -a bigfile --block -1 \
+ cat '>thread-part-{#}'
+S 3; ls -l thread-part-*
+T 1;
+S 0; # Chop bigfile into one part per CPU thread - chop at 000\n
+S 3; parallel --pipepart -a bigfile --block -1 --recend '000\n' \
+ cat '>p000-{#}'
+S 3; head -1 p000-*
+T 1;
+S 0; # Rename all files to UPPERCASE using a {= perl expr =}
+S 3; parallel mv {} {= tr/a-z/A-Z/ =} ::: *
+S 3; ls
+T 1;
+S 0; # Move files into dirs named after the last char in the name
+S 3; parallel 'mkdir -p {= $_=chop =}; mv {} {= $_=chop =}' ::: *
+S 3; ls
+T 1;
+S 0; # Zip dirs into files
+S 3; parallel --ll --color --tag zip -r '{= s:/$:: =}'.zip {} ::: */
+T 1;
+S 0; # Remove the dirs
+S 3; rm -r */
+T 1;
+S 0; # Unzip zip files into dirs
+S 3; parallel --ll --tag 'mkdir {.}; cd {.}; unzip ../{}' ::: *.zip
+T 1;
+S 0; # Remove zip and dirs
+S 3; rm -r *.zip ?
+T 1;
+S 0; # Paint output of the failing commands
+S 3; parallel --colorfailed echo Arg:{} ';' exit {} ::: 0 0 1 2 0
+T 1;
+S 0; # Use a bash function with one argument
+doit() {
+ echo Doing it for $1
+ sleep 2
+ echo Done with $1
+}
+export -f doit
+S 3; parallel doit ::: 1 2 3
+T 1;
+S 0; # Use a bash function with two argument
+doubleit() {
+ echo Doing it for $1 $2
+ sleep 2
+ echo Done with $1 $2
+}
+export -f doubleit
+S 3; parallel doubleit ::: 1 2 3 ::: a b
+T 1;
+S 0; # Make some logfiles
+S 1; touch log
+S 3; parallel seq {} '>' log.{} ::: {1..10}
+S 3; ls -l
+T 1;
+S 0; # Simple log rotate
+S 3; seq 9 -1 1 | parallel -j1 mv log.{} log.'{= $_++ =}'
+S 1; mv log log.1
+S 3; ls -l
+T 1;
+S 0; # Monitor progress of multiple jobs in parallel
+slowseq() { seq "$@" | pv -qL 20; }
+export -f slowseq
+S 3; parallel --ll --color --tag slowseq {} ::: 150 {1..60}
+T 3;
+###
+exit
+_
+}
+
+pwd=$(pwd)
+tmp=$(mktemp -d)
+cd "$tmp" &&
+ manuscript |
+ parallel -j1 echo '{= s/^(\d+)\s/sleep($1);""/e; =}' |
+ asciinema rec - |
+ perl -ne 's/[ST] \d;\s?//;
+ /###/ and $mark++ and next;
+ ($mark == 0 or $mark == 5) and print;
+ ' > "$pwd"/parallel.cast
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/env_parallel.ash
^
|
@@ -393,7 +393,7 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20230122 (GNU parallel `parallel --minversion 1`)"
+ echo "parset 20230322 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/env_parallel.bash
^
|
@@ -395,7 +395,7 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20230122 (GNU parallel `parallel --minversion 1`)"
+ echo "parset 20230322 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/env_parallel.dash
^
|
@@ -393,7 +393,7 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20230122 (GNU parallel `parallel --minversion 1`)"
+ echo "parset 20230322 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/env_parallel.ksh
^
|
@@ -376,7 +376,7 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20230122 (GNU parallel `parallel --minversion 1`)"
+ echo "parset 20230322 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/env_parallel.mksh
^
|
@@ -378,7 +378,7 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20230122 (GNU parallel `parallel --minversion 1`)"
+ echo "parset 20230322 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/env_parallel.sh
^
|
@@ -393,7 +393,7 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20230122 (GNU parallel `parallel --minversion 1`)"
+ echo "parset 20230322 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/env_parallel.zsh
^
|
@@ -368,7 +368,7 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20230122 (GNU parallel `parallel --minversion 1`)"
+ echo "parset 20230322 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/niceload
^
|
@@ -26,7 +26,7 @@
use strict;
use Getopt::Long;
$Global::progname="niceload";
-$Global::version = 20230122;
+$Global::version = 20230322;
Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage();
if($opt::version) {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/parallel
^
|
@@ -88,9 +88,9 @@
@opt::filter) {
# Skip if undefined
$_ or next;
- s:\{$s(|/|//|\.|/\.)\}:\{$id$1\}:g;
+ s:\{\Q$s\E(|/|//|\.|/\.)\}:\{$id$1\}:g;
# {=header1 ... =} => {=1 ... =}
- s:$left $s (.*?) $right:$l$id$1$r:gx;
+ s:$left \Q$s\E (.*?) $right:$l$id$1$r:gx;
}
$Global::input_source_header{$id} = $s;
$id++;
@@ -252,8 +252,8 @@
# (rm fifo2; grep 2) < fifo2
# (rm fifo3; grep 3) < fifo3
# Remove the tmpfifo as soon as it is open
- @Global::cat_prepends = map { "(rm $_;" } @fifos;
- @Global::cat_appends = map { ") < $_" } @fifos;
+ @Global::cat_prepends = map { "(rm $_;" } shell_quote(@fifos);
+ @Global::cat_appends = map { ") < $_" } shell_quote(@fifos);
}
@@ -578,7 +578,7 @@
# The PERL_HASH_SEED must be the same for all sharders
# so B::hash will return the same value for any given input
$ENV{'PERL_HASH_SEED'} = $$;
- exec qw(parallel --block 100k -q --pipe -j), $njobs,
+ exec qw(parallel -0 --block 100k -q --pipe -j), $njobs,
qw(--roundrobin -u perl -e), $script, ($opt::colsep || ","),
$col, $perlexpr, '{}', (map { (':::+', @{$_}) } @parcatfifos);
}
@@ -591,7 +591,9 @@
::error("'parcat' must be in path.");
::wait_and_exit(255);
}
- @Global::cat_prepends = map { "perl -e $parcat @$_ | " } @parcatfifos;
+ @Global::cat_prepends =
+ map { "perl -e $parcat ".
+ join(" ",shell_quote(@$_))." | "} @parcatfifos;
}
sub pipe_part_files(@) {
@@ -2056,7 +2058,8 @@
("skip-first-line|skipfirstline".
"[Do not use the first line of input]"
=> \$opt::skip_first_line),
- "bug" => \$opt::bug,
+ "_bug" => \$opt::_bug,
+ "_unsafe" => \$opt::_unsafe,
# --pipe
("pipe|spreadstdin".
"[Spread input to jobs on stdin (standard input)]" => \$opt::pipe),
@@ -2074,6 +2077,9 @@
"[Remove record separator]" => \$opt::remove_rec_sep),
("output-as-files|outputasfiles|files[Save output to files]"
=> \$opt::files),
+ ("output-as-files0|outputasfiles0|files0".
+ "[Save output to files separated by NUL]"
+ => \$opt::files0),
("block-size|blocksize|block=s".
"[Size of block in bytes to read at a time]:size"
=> \$opt::blocksize),
@@ -2202,8 +2208,11 @@
if($opt::nokeeporder) { $opt::keeporder = undef; }
if(@opt::v) { $Global::verbose = $#opt::v+1; } # Convert -v -v to v=2
- if($opt::bug) { ::die_bug("test-bug"); }
+ if($opt::_bug) { ::die_bug("test-bug"); }
$Global::debug = $opt::D;
+ #
+ ## Shell
+ #
$Global::shell = $ENV{'PARALLEL_SHELL'} || parent_shell($$)
|| $ENV{'SHELL'} || "/bin/sh";
if(not -x $Global::shell and not which($Global::shell)) {
@@ -2216,6 +2225,8 @@
if(defined $opt::X) { $Global::ContextReplace = 1; }
if(defined $opt::silent) { $Global::verbose = 0; }
if(defined $opt::null) { $/ = "\0"; }
+ if(defined $opt::files) { $Global::files = 1; $Global::files_sep = "\n"; }
+ if(defined $opt::files0) { $Global::files = 1; $Global::files_sep = "\0"; }
if(defined $opt::d) { $/ = unquote_printf($opt::d) }
parse_replacement_string_options();
$opt::tag ||= $opt::ctag;
@@ -2399,7 +2410,7 @@
my ($compress, $decompress) = find_compression_program();
$opt::compress_program ||= $compress;
$opt::decompress_program ||= $decompress;
- if(($opt::results and not $Global::csvsep) or $opt::files) {
+ if(($opt::results and not $Global::csvsep) or $Global::files) {
# No need for decompressing
$opt::decompress_program = "cat >/dev/null";
}
@@ -2492,6 +2503,7 @@
if(defined $opt::bar) { $opt::progress = $opt::bar; }
if(defined $opt::bar or defined $opt::latestline) {
my $fh = $Global::status_fd || *STDERR;
+ # Activate decode_utf8
eval q{
# Enable utf8 if possible
use utf8;
@@ -2504,8 +2516,26 @@
# UTF8-decode not supported: Dummy decode
eval q{sub decode_utf8($;$) { $_[0]; }};
}
+ # Activate decode_utf8
+ eval q{
+ # Enable utf8 if possible
+ use utf8;
+ use Encode qw( encode_utf8 );
+ use Text::CharWidth qw( mbswidth );
+ use Unicode::Normalize qw( NFC NFD );
+ };
+ if(eval { mbswidth("ヌー平行") }) {
+ # Great: mbswidth works
+ } else {
+ # mbswidth not supported: Dummy mbswidth
+ eval q{ sub mbswidth { return length @_; } };
+ }
}
+ # If you want GNU Parallel to be maintained in the future you
+ # should keep this.
+ # *YOU* will be harming free software by removing the notice.
+ #
# Funding a free software project is hard. GNU Parallel is no
# exception. On top of that it seems the less visible a project
# is, the harder it is to get funding. And the nature of GNU
@@ -2574,10 +2604,15 @@
# If you want GNU Parallel to be maintained in the future you
# should keep this line.
citation_notice();
+ # This is because _YOU_ actively make it harder to justify
+ # spending time developing GNU Parallel by removing it.
+
+ # If you disagree, please read (especially 77-):
+ # https://www.fordfoundation.org/media/2976/roads-and-bridges-the-unseen-labor-behind-our-digital-infrastructure.pdf
+
# *YOU* will be harming free software by removing the notice. You
# accept to be added to a public hall of shame by removing the
- # line. This is because _YOU_ actively make it harder to justify
- # spending time developing GNU Parallel.
+ # line. That includes you, Andreas and George.
parse_halt();
@@ -2607,7 +2642,8 @@
parse_sshlogin();
if(defined $opt::show_limits) { show_limits(); }
- if(remote_hosts() and ($opt::X or $opt::m or $opt::xargs)) {
+ if(remote_hosts() and
+ (defined $opt::X or defined $opt::m or defined $opt::xargs)) {
# As we do not know the max line length on the remote machine
# long commands generated by xargs may fail
# If $opt::max_replace_args is set, it is probably safe
@@ -2617,15 +2653,17 @@
if(not defined $opt::jobs) { $opt::jobs = "100%"; }
open_joblog();
open_json_csv();
- if($opt::sqlmaster or $opt::sqlworker) {
+ if(defined $opt::sqlmaster or defined $opt::sqlworker) {
$Global::sql = SQL->new($opt::sqlmaster || $opt::sqlworker);
}
- if($opt::sqlworker) { $Global::membuffer ||= 1; }
+ if(defined $opt::sqlworker) { $Global::membuffer ||= 1; }
# The sqlmaster groups the arguments, so the should just read one
- if($opt::sqlworker and not $opt::sqlmaster) {
+ if(defined $opt::sqlworker and not defined $opt::sqlmaster) {
$Global::max_number_of_args = 1;
}
- if($Global::color or $opt::colorfailed) { Job::init_color(); }
+ if(defined $Global::color or defined $opt::colorfailed) {
+ Job::init_color();
+ }
}
sub check_invalid_option_combinations() {
@@ -2649,19 +2687,19 @@
"--max-lines, and -L.");
wait_and_exit(255);
}
- if(defined $opt::group and $opt::ungroup) {
+ if(defined $opt::group and defined $opt::ungroup) {
::error("--group cannot be combined with --ungroup.");
::wait_and_exit(255);
}
- if(defined $opt::group and $opt::linebuffer) {
+ if(defined $opt::group and defined $opt::linebuffer) {
::error("--group cannot be combined with --line-buffer.");
::wait_and_exit(255);
}
- if(defined $opt::ungroup and $opt::linebuffer) {
+ if(defined $opt::ungroup and defined $opt::linebuffer) {
::error("--ungroup cannot be combined with --line-buffer.");
::wait_and_exit(255);
}
- if(defined $opt::tollef and not $opt::gnu) {
+ if(defined $opt::tollef and not defined $opt::gnu) {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/parallel.pod
^
|
@@ -1858,17 +1858,21 @@
See also: B<--tty>
-=item B<--output-as-files>
+=item B<--output-as-files> (beta testing)
-=item B<--outputasfiles>
+=item B<--outputasfiles> (beta testing)
-=item B<--files>
+=item B<--files> (beta testing)
+
+=item B<--files0> (beta testing)
Save output to files.
Instead of printing the output to stdout (standard output) the output
of each job is saved in a file and the filename is then printed.
+B<--files0> uses NUL (\0) instead of newline (\n) as separator.
+
See also: B<--results>
@@ -1881,11 +1885,16 @@
Read a block of data from stdin (standard input) and give one block of
data as input to one job.
-The block size is determined by B<--block> (default: 1M). The strings
-B<--recstart> and B<--recend> tell GNU B<parallel> how a record starts
-and/or ends. The block read will have the final partial record removed
-before the block is passed on to the job. The partial record will be
-prepended to next block.
+The block size is determined by B<--block> (default: 1M).
+
+Except for the first and last record GNU B<parallel> only passes full
+records to the job. The strings B<--recstart> and B<--recend>
+determine where a record starts and ends: The border between two
+records is defined as B<--recend> immediately followed by
+B<--recstart>. GNU B<parallel> splits exactly after B<--recend> and
+before B<--recstart>. The block will have the last partial record
+removed before the block is passed on to the job. The partial record
+will be prepended to next block.
You can limit the number of records to be passed with B<-N>, and set
the record size with B<-L>.
@@ -1911,7 +1920,8 @@
Pipe parts of a physical file.
-B<--pipe-part> works similar to B<--pipe>, but is much faster.
+B<--pipe-part> works similar to B<--pipe>, but is much faster. 5 GB/s
+can easily be delivered.
B<--pipe-part> has a few limitations:
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/parallel_alternatives.pod
^
|
@@ -3790,6 +3790,131 @@
https://github.com/aaronriekenberg/rust-parallel
(Last checked: 2023-01)
+
+=head2 DIFFERENCES BETWEEN parallelium AND GNU Parallel
+
+Summary (see legend above):
+
+=over
+
+=item - I2 - - - - -
+
+=item M1 - - - - M6
+
+=item O1 - O3 - - - - N/A - -
+
+=item E1 - - E4 - - -
+
+=item - - - - - - - - -
+
+=item - -
+
+=back
+
+B<parallelium> merges standard output (stdout) and standard error
+(stderr). The maximal output of a command is 8192 bytes. Bigger output
+makes B<parallelium> go into an infinite loop.
+
+In the input file for B<parallelium> you can define a tag, so that you
+can select to run only these commands. A bit like a target in a
+Makefile.
+
+Progress is printed on standard output (stdout) prepended with '#'
+with similar information as GNU B<parallel>'s B<--bar>.
+
+=head3 EXAMPLES
+
+ $ cat testjobs.txt
+ #tag common sleeps classA
+ (sleep 4.495;echo "job 000")
+ :
+ (sleep 2.587;echo "job 016")
+
+ #tag common sleeps classB
+ (sleep 0.218;echo "job 017")
+ :
+ (sleep 2.269;echo "job 040")
+
+ #tag common sleeps classC
+ (sleep 2.586;echo "job 041")
+ :
+ (sleep 1.626;echo "job 099")
+
+ #tag lasthalf, sleeps, classB
+ (sleep 1.540;echo "job 100")
+ :
+ (sleep 2.001;echo "job 199")
+
+ 1$ parallelium -f testjobs.txt -l logdir -t classB,classC
+
+ 1$ cat testjobs.txt |
+ parallel --plus --results logdir/testjobs.txt_{0#}.output \
+ '{= if(/^#tag /) { @tag = split/,|\s+/ }
+ (grep /^(classB|classC)$/, @tag) or skip =}'
+
+https://github.com/beomagi/parallelium
+(Last checked: 2023-01)
+
+
+=head2 DIFFERENCES BETWEEN forkrun AND GNU Parallel
+
+Summary (see legend above):
+
+=over
+
+=item I1 - - - - - I7
+
+=item - - - - - -
+
+=item - O2 O3 - O5 - - - - O10
+
+=item E1 - - E4 - - -
+
+=item - - - - - - - - -
+
+=item - -
+
+=back
+
+
+B<forkrun> blocks if it receives fewer jobs than slots:
+
+ echo | forkrun -p 2 echo
+
+or when it gets some specific commands e.g.:
+
+ f() { seq "$@" | pv -qL 3; }
+ seq 10 | forkrun f
+
+It is not clear why.
+
+It is faster than GNU B<parallel> (overhead: 1.2 ms/job vs 3 ms/job),
+but way slower than B<parallel-bash> (0.059 ms/job).
+
+Running jobs cannot be stopped by pressing CTRL-C.
+
+B<-k> is supposed to keep the order but fails on the MIX testing
+example below. If used with B<-k> it caches output in RAM.
+
+If B<forkrun> is killed, it leaves temporary files in
+B</tmp/.forkrun.*> that has to be cleaned up manually.
+
+=head3 EXAMPLES
+
+ 1$ time find ./ -type f |
+ forkrun -l512 -- sha256sum 2>/dev/null | wc -l
+ 1$ time find ./ -type f |
+ parallel -j28 -m -- sha256sum 2>/dev/null | wc -l
+
+ 2$ time find ./ -type f |
+ forkrun -l512 -k -- sha256sum 2>/dev/null | wc -l
+ 2$ time find ./ -type f |
+ parallel -j28 -k -m -- sha256sum 2>/dev/null | wc -l
+
+https://github.com/jkool702/forkrun
+(Last checked: 2023-02)
+
+
=head2 Todo
http://code.google.com/p/push/ (cannot compile)
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/parallel_design.pod
^
|
@@ -1389,6 +1389,9 @@
=head2 Citation notice
+For details: See
+https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
+
Funding a free software project is hard. GNU B<parallel> is no
exception. On top of that it seems the less visible a project is, the
harder it is to get funding. And the nature of GNU B<parallel> is that
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/parsort
^
|
@@ -24,6 +24,21 @@
Hopefully these ideas will make it into GNU B<sort> in the future.
+=head1 OPTIONS
+
+Same as B<sort>. Except:
+
+=over 4
+
+=item B<--parallel=>I<N> (beta testing)
+
+Change the number of sorts run concurrently to I<N>. I<N> will be
+increased to number of files if B<parsort> is given more than I<N>
+files.
+
+=back
+
+
=head1 EXAMPLE
Sort files:
@@ -37,7 +52,7 @@
=head1 PERFORMANCE
-B<parsort> is faster on a file than on stdin (standard input), because
+B<parsort> is faster on files than on stdin (standard input), because
different parts of a file can be read in parallel.
On a 48 core machine you should see a speedup of 3x over B<sort>.
@@ -115,18 +130,29 @@
"C" => \$opt::dummy,
"compress-program=s" => \$opt::dummy,
"T|temporary-directory=s" => \$opt::dummy,
- "parallel=s" => \$opt::dummy,
+ "parallel=s" => \$opt::parallel,
"u|unique" => \$opt::dummy,
"S|buffer-size=s" => \$opt::dummy,
"s|stable" => \$opt::dummy,
"help" => \$opt::dummy,
) || exit(255);
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
-$Global::version = 20230122;
+$Global::version = 20230322;
if($opt::version) { version(); exit 0; }
-@Global::sortoptions = grep { ! /^-D$/ }
- shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]);
-
+# Remove -D and --parallel=N
+my @s = (grep { ! /^-D$|^--parallel=\S+$/ }
+ @ARGV_before[0..($#ARGV_before-$#ARGV-1)]);
+my @sortoptions;
+while(@s) {
+ my $o = shift @s;
+ # Remove '--parallel N'
+ if($o eq "--parallel") {
+ $o = shift @s;
+ } else {
+ push @sortoptions, $o;
+ }
+}
+@Global::sortoptions = shell_quote(@sortoptions);
$ENV{'TMPDIR'} ||= "/tmp";
sub merge {
@@ -158,13 +184,22 @@
# Let GNU Parallel generate the commands to read parts of files
# The commands split at \n (or \0)
# and there will be at least one for each CPU thread
- my @subopt = $opt::zero_terminated ? qw(--recend "\0") : ();
+ my @subopt;
+ if($opt::zero_terminated) { push @subopt, qw(--recend "\0"); }
+ if($opt::parallel) { push @subopt, qw(--jobs), $opt::parallel; }
+ # $uniq is needed because @files could contain \n
+ my $uniq = join "", map { (0..9,"a".."z","A".."Z")[rand(62)] } (1..20);
open(my $par,"-|",qw(parallel), @subopt,
qw(--pipepart --block -1 --dryrun -vv sort),
- @Global::sortoptions, '::::', @files) || die;
- my @cmd = merge(<$par>);
+ @Global::sortoptions, $uniq, '::::', @files) || die;
+ # Generated commands:
+ # <file perl-catter | (sort ... $uniq )
+ # Use $uniq to split into commands
+ # (We cannot use \n because 'file' may contain newline)
+ my @cmd = map { "$_)\n" } split(/$uniq[)]\n/, join("",<$par>));
+ debug(1,@cmd);
close $par;
- debug(@cmd);
+ @cmd = merge(@cmd);
# The command uses <(...) so it is incompatible with /bin/sh
open(my $bash,"|-","bash") || die;
print $bash @cmd;
@@ -175,7 +210,8 @@
# Input is stdin
# Spread the input between n processes that each sort
# n = number of CPU threads
- my $numthreads = `parallel --number-of-threads`;
+ my $numthreads;
+ $numthreads = $opt::parallel || `parallel --number-of-threads`;
my @fifos = map { tmpfifo() } 1..$numthreads;
map { mkfifo($_,0600) } @fifos;
# This trick removes the fifo as soon as it is connected in the other end
@@ -186,7 +222,7 @@
if(fork) {
} else {
my @subopt = $opt::zero_terminated ? qw(--recend "\0") : ();
- exec(qw(parallel -j), $numthreads, @subopt,
+ exec(qw(parallel -0 -j), $numthreads, @subopt,
# 286k is the best mean value after testing 250..350
qw(--block 286k --pipe --roundrobin cat > {} :::),@fifos);
}
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/src/sql
^
|
@@ -523,6 +523,27 @@
use strict;
use File::Temp qw/tempfile tempdir/;
+sub shell_quote($) {
+ # Quote for other shells (Bourne compatibles)
+ # Inputs:
+ # $string = string to be quoted
+ # Returns:
+ # $shell_quoted = string quoted as needed by the shell
+ my $s = $_[0];
+ if($s =~ /[^-_.+a-z0-9\/]/i) {
+ $s =~ s/'/'"'"'/g; # "-quote single quotes
+ $s = "'$s'"; # '-quote entire string
+ $s =~ s/^''//; # Remove unneeded '' at ends
+ $s =~ s/''$//; # (faster than s/^''|''$//g)
+ return $s;
+ } elsif ($s eq "") {
+ return "''";
+ } else {
+ # No quoting needed
+ return $s;
+ }
+}
+
parse_options();
my $pass_through_options = (defined $::opt_p) ? join(" ",@{$::opt_p}) : "";
@@ -587,29 +608,11 @@
($fh,$queryfile) = tempfile(SUFFIX => ".sql");
print $fh $dburl{'query'},"\n";
close $fh;
- $batch_command = "(cat $queryfile;rm $queryfile; cat) | $batch_command";
+ my $qfile = shell_quote($queryfile);
+ $batch_command = "(cat $qfile;rm $qfile; cat) | $batch_command";
}
-sub shell_quote($) {
- # Quote for other shells (Bourne compatibles)
- # Inputs:
- # $string = string to be quoted
- # Returns:
- # $shell_quoted = string quoted as needed by the shell
- my $s = $_[0];
- if($s =~ /[^-_.+a-z0-9\/]/i) {
- $s =~ s/'/'"'"'/g; # "-quote single quotes
- $s = "'$s'"; # '-quote entire string
- $s =~ s/^''//; # Remove unneeded '' at ends
- $s =~ s/''$//; # (faster than s/^''|''$//g)
- return $s;
- } elsif ($s eq "") {
- return "''";
- } else {
- # No quoting needed
- return $s;
- }
-}
+
do {
if(@ARGV) {
@@ -667,7 +670,7 @@
exit ($err);
sub parse_options {
- $Global::version = 20230122;
+ $Global::version = 20230322;
$Global::progname = 'sql';
# This must be done first as this may exec myself
@@ -776,11 +779,11 @@
close $credential_fh;
# Prepend with a remover of the credential tempfile
- # -C: Compression if both ends support it
+ my $qtmp = shell_quote($tmp);
$batch_command =
- "((sleep 1; rm $tmp) & ".
- "mysql --defaults-extra-file=$tmp -C $pass_through_options ".
- "$no_headers $html $ssl $host $user $port $database)";
+ "((sleep 1; rm $qtmp) & ".
+ "mysql --defaults-extra-file=$qtmp $pass_through_options ".
+ "$no_headers $html $ssl $host $user $port $database)";
$interactive_command = $batch_command;
return($batch_command,$interactive_command);
}
@@ -1109,7 +1112,9 @@
"$path/dburl.aliases", "$path/dburl.aliases.dist");
for my $alias_file (@search) {
if(-r $alias_file) {
- push @urlalias, `cat "$alias_file"`;
+ open(my $fh, "<", $alias_file) || die;
+ push @urlalias, <$fh>;
+ close $fh;
}
}
my ($alias_part,$rest) = $alias=~/(:\w*)(.*)/;
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/Start.sh
^
|
@@ -14,21 +14,69 @@
export TIMEOUT=$MAX_SEC_PER_TEST
run_once() {
+ replace_tmpdir() {
+ # Replace $TMPDIR with TMP
+ perl -0 -pe 'BEGIN{ ($a,$b,$c) = (shift,shift,shift);
+ $a =~ s/'"'"'$//s; $b =~ s/'"'"'$//s; $c =~ s/'"'"'$//s; }
+ s:""+:":g;
+ s:('"'"'?)(\Q$a\E|\Q$b\E|\Q$c\E)('"'"'?)([/a-z0-9]*)('"'"'?):/TMP$4:gi;
+ s/\0/\n/g' "$TMPDIR" "$qTMPDIR" "$qqTMPDIR" |
+ perl -ne '/Use --files0 when $TMPDIR contains newline./ or print'
+ }
+ export qqTMPDIR=$(< /dev/null parallel -0 --shellquote --shellquote ::: "$TMPDIR")
+ export qTMPDIR=$(< /dev/null parallel -0 --shellquote ::: "$TMPDIR")
+ export -f replace_tmpdir
script=$1
base=`basename "$script" .sh`
- diff -Naur wanted-results/"$base" actual-results/"$base" >/dev/null ||
- bash "$script" | perl -pe 's:'$HOME':~:g' > actual-results/"$base"
+ if diff -Naur wanted-results/"$base" actual-results/"$base" >/dev/null; then
+ # There is no diff: Last time worked - no need to try again
+ true skip
+ else
+ (
+ testsuitedir=$(pwd)
+ export testsuitedir
+ cd "$TMPDIR"
+ bash "$testsuitedir/$script" |
+ perl -pe 's:'$HOME':~:g' |
+ replace_tmpdir > "$testsuitedir"/actual-results/"$base"
+ )
+ fi
}
export -f run_once
run_test() {
script="$1"
base=`basename "$script" .sh`
- export TMPDIR=/tmp/"$base"-tmpdir
+ # Force spaces and < into TMPDIR - this will expose bugs
+ # ASCII [^-,+=a-zA-Z0-9] = all special chars (175 is not supported)
+ fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
+ (pack "c*",2..42,127..174,47,176..255)."\@<?[]|~\\}{"')"
+ fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
+ (pack "c*",2..42,127..174,47,176..255)."\@<?[]|~\\}{"')"
+ fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
+ (pack "c*",127..174,47,176..255)."\@<?[]|~\\}{"')"
+ fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
+ (pack "c*",34,39,176..255)."\@<?[]|~\\}{"')"
+ semiok_fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
+ "\@<?[]|~\\}{"')"
+ fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
+ (pack "c*",2..10,34,39)."\@<?[]|~\\"')"
+ export PARALLEL="--_unsafe";
+# OK
+# fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
+# (pack "c*",34,39)."\@<?[]|~\\"')"
+# export PARALLEL="--_unsafe";
+
+# OK
+# fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
+# ""')"
+ export TMPDIR=/tmp/"$base-tmp"/"$fancychars"/tmp
+ rm -rf "$TMPDIR"
mkdir -p "$TMPDIR"
# Clean before. May be owned by other users
sudo rm -f /tmp/*.{tmx,pac,arg,all,log,swp,loa,ssh,df,pip,tmb,chr,tms,par} ||
printf "%s\0" /tmp/*.par | sudo parallel -0 -X rm
+ rm -f /tmp/tripwire
# Force running once
echo >> actual-results/"$base"
if [ "$TRIES" = "3" ] ; then
@@ -37,6 +85,13 @@
run_once $script
fi
run_once $script
+ if [ -e /tmp/tripwire ] ; then
+ echo '!!!'
+ echo '!!! /tmp/tripwire TRIPPED !!!'
+ echo '!!! Quoting of TMPDIR failed !!!'
+ echo '!!!'
+ exit 1
+ fi
diff -Naur wanted-results/"$base" actual-results/"$base" ||
(touch "$script" && echo touch "$script")
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/input-files/perllib/Text/Abbrev.pm
^
|
@@ -0,0 +1,83 @@
+package Text::Abbrev;
+require 5.005; # Probably works on earlier versions too.
+require Exporter;
+
+our $VERSION = '1.00';
+
+=head1 NAME
+
+abbrev - create an abbreviation table from a list
+
+=head1 SYNOPSIS
+
+ use Text::Abbrev;
+ abbrev $hashref, LIST
+
+
+=head1 DESCRIPTION
+
+Stores all unambiguous truncations of each element of LIST
+as keys in the associative array referenced by C<$hashref>.
+The values are the original list elements.
+
+=head1 EXAMPLE
+
+ $hashref = abbrev qw(list edit send abort gripe);
+
+ %hash = abbrev qw(list edit send abort gripe);
+
+ abbrev $hashref, qw(list edit send abort gripe);
+
+ abbrev(*hash, qw(list edit send abort gripe));
+
+=cut
+
+@ISA = qw(Exporter);
+@EXPORT = qw(abbrev);
+
+# Usage:
+# abbrev \%foo, LIST;
+# ...
+# $long = $foo{$short};
+
+sub abbrev {
+ my ($word, $hashref, $glob, %table, $returnvoid);
+
+ if (ref($_[0])) { # hash reference preferably
+ $hashref = shift;
+ $returnvoid = 1;
+ } elsif (ref \$_[0] eq 'GLOB') { # is actually a glob (deprecated)
+ $hashref = \%{shift()};
+ $returnvoid = 1;
+ }
+ %{$hashref} = ();
+
+ WORD: foreach $word (@_) {
+ for (my $len = (length $word) - 1; $len > 0; --$len) {
+ my $abbrev = substr($word,0,$len);
+ my $seen = ++$table{$abbrev};
+ if ($seen == 1) { # We're the first word so far to have
+ # this abbreviation.
+ $hashref->{$abbrev} = $word;
+ } elsif ($seen == 2) { # We're the second word to have this
+ # abbreviation, so we can't use it.
+ delete $hashref->{$abbrev};
+ } else { # We're the third word to have this
+ # abbreviation, so skip to the next word.
+ next WORD;
+ }
+ }
+ }
+ # Non-abbreviations always get entered, even if they aren't unique
+ foreach $word (@_) {
+ $hashref->{$word} = $word;
+ }
+ return if $returnvoid;
+ if (wantarray) {
+ %{$hashref};
+ } else {
+ $hashref;
+ }
+}
+
+1;
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/input-files/perllib/Text/Balanced.pm
^
|
@@ -0,0 +1,2235 @@
+# EXTRACT VARIOUSLY DELIMITED TEXT SEQUENCES FROM STRINGS.
+# FOR FULL DOCUMENTATION SEE Balanced.pod
+
+use 5.005;
+use strict;
+
+package Text::Balanced;
+
+use Exporter;
+use SelfLoader;
+use vars qw { $VERSION @ISA %EXPORT_TAGS };
+
+$VERSION = '1.89';
+@ISA = qw ( Exporter );
+
+%EXPORT_TAGS = ( ALL => [ qw(
+ &extract_delimited
+ &extract_bracketed
+ &extract_quotelike
+ &extract_codeblock
+ &extract_variable
+ &extract_tagged
+ &extract_multiple
+
+ &gen_delimited_pat
+ &gen_extract_tagged
+
+ &delimited_pat
+ ) ] );
+
+Exporter::export_ok_tags('ALL');
+
+##
+## These shenanagins are to avoid using $& in perl5.6+
+##
+my $GetMatchedText = ($] < 5.006) ? eval 'sub { $& } '
+ : eval 'sub {
+ substr($_[0], $-[0], $+[0] - $-[0])
+ }';
+
+
+# PROTOTYPES
+
+sub _match_bracketed($$$$$$);
+sub _match_variable($$);
+sub _match_codeblock($$$$$$$);
+sub _match_quotelike($$$$);
+
+# HANDLE RETURN VALUES IN VARIOUS CONTEXTS
+
+sub _failmsg {
+ my ($message, $pos) = @_;
+ $@ = bless { error=>$message, pos=>$pos }, "Text::Balanced::ErrorMsg";
+}
+
+sub _fail
+{
+ my ($wantarray, $textref, $message, $pos) = @_;
+ _failmsg $message, $pos if $message;
+ return ("",$$textref,"") if $wantarray;
+ return undef;
+}
+
+sub _succeed
+{
+ $@ = undef;
+ my ($wantarray,$textref) = splice @_, 0, 2;
+ my ($extrapos, $extralen) = @_>18 ? splice(@_, -2, 2) : (0,0);
+ my ($startlen) = $_[5];
+ my $remainderpos = $_[2];
+ if ($wantarray)
+ {
+ my @res;
+ while (my ($from, $len) = splice @_, 0, 2)
+ {
+ push @res, substr($$textref,$from,$len);
+ }
+ if ($extralen) { # CORRECT FILLET
+ my $extra = substr($res[0], $extrapos-$startlen, $extralen, "\n");
+ $res[1] = "$extra$res[1]";
+ eval { substr($$textref,$remainderpos,0) = $extra;
+ substr($$textref,$extrapos,$extralen,"\n")} ;
+ #REARRANGE HERE DOC AND FILLET IF POSSIBLE
+ pos($$textref) = $remainderpos-$extralen+1; # RESET \G
+ }
+ else {
+ pos($$textref) = $remainderpos; # RESET \G
+ }
+ return @res;
+ }
+ else
+ {
+ my $match = substr($$textref,$_[0],$_[1]);
+ substr($match,$extrapos-$_[0]-$startlen,$extralen,"") if $extralen;
+ my $extra = $extralen
+ ? substr($$textref, $extrapos, $extralen)."\n" : "";
+ eval {substr($$textref,$_[4],$_[1]+$_[5])=$extra} ; #CHOP OUT PREFIX & MATCH, IF POSSIBLE
+ pos($$textref) = $_[4]; # RESET \G
+ return $match;
+ }
+}
+
+# BUILD A PATTERN MATCHING A SIMPLE DELIMITED STRING
+
+sub gen_delimited_pat($;$) # ($delimiters;$escapes)
+{
+ my ($dels, $escs) = @_;
+ return "" unless $dels =~ /\S/;
+ $escs = '\\' unless $escs;
+ $escs .= substr($escs,-1) x (length($dels)-length($escs));
+ my @pat = ();
+ my $i;
+ for ($i=0; $i<length $dels; $i++)
+ {
+ my $del = quotemeta substr($dels,$i,1);
+ my $esc = quotemeta substr($escs,$i,1);
+ if ($del eq $esc)
+ {
+ push @pat, "$del(?:[^$del]*(?:(?:$del$del)[^$del]*)*)$del";
+ }
+ else
+ {
+ push @pat, "$del(?:[^$esc$del]*(?:$esc.[^$esc$del]*)*)$del";
+ }
+ }
+ my $pat = join '|', @pat;
+ return "(?:$pat)";
+}
+
+*delimited_pat = \&gen_delimited_pat;
+
+
+# THE EXTRACTION FUNCTIONS
+
+sub extract_delimited (;$$$$)
+{
+ my $textref = defined $_[0] ? \$_[0] : \$_;
+ my $wantarray = wantarray;
+ my $del = defined $_[1] ? $_[1] : qq{\'\"\`};
+ my $pre = defined $_[2] ? $_[2] : '\s*';
+ my $esc = defined $_[3] ? $_[3] : qq{\\};
+ my $pat = gen_delimited_pat($del, $esc);
+ my $startpos = pos $$textref || 0;
+ return _fail($wantarray, $textref, "Not a delimited pattern", 0)
+ unless $$textref =~ m/\G($pre)($pat)/gc;
+ my $prelen = length($1);
+ my $matchpos = $startpos+$prelen;
+ my $endpos = pos $$textref;
+ return _succeed $wantarray, $textref,
+ $matchpos, $endpos-$matchpos, # MATCH
+ $endpos, length($$textref)-$endpos, # REMAINDER
+ $startpos, $prelen; # PREFIX
+}
+
+sub extract_bracketed (;$$$)
+{
+ my $textref = defined $_[0] ? \$_[0] : \$_;
+ my $ldel = defined $_[1] ? $_[1] : '{([<';
+ my $pre = defined $_[2] ? $_[2] : '\s*';
+ my $wantarray = wantarray;
+ my $qdel = "";
+ my $quotelike;
+ $ldel =~ s/'//g and $qdel .= q{'};
+ $ldel =~ s/"//g and $qdel .= q{"};
+ $ldel =~ s/`//g and $qdel .= q{`};
+ $ldel =~ s/q//g and $quotelike = 1;
+ $ldel =~ tr/[](){}<>\0-\377/[[(({{<</ds;
+ my $rdel = $ldel;
+ unless ($rdel =~ tr/[({</])}>/)
+ {
+ return _fail $wantarray, $textref,
+ "Did not find a suitable bracket in delimiter: \"$_[1]\"",
+ 0;
+ }
+ my $posbug = pos;
+ $ldel = join('|', map { quotemeta $_ } split('', $ldel));
+ $rdel = join('|', map { quotemeta $_ } split('', $rdel));
+ pos = $posbug;
+
+ my $startpos = pos $$textref || 0;
+ my @match = _match_bracketed($textref,$pre, $ldel, $qdel, $quotelike, $rdel);
+
+ return _fail ($wantarray, $textref) unless @match;
+
+ return _succeed ( $wantarray, $textref,
+ $match[2], $match[5]+2, # MATCH
+ @match[8,9], # REMAINDER
+ @match[0,1], # PREFIX
+ );
+}
+
+sub _match_bracketed($$$$$$) # $textref, $pre, $ldel, $qdel, $quotelike, $rdel
+{
+ my ($textref, $pre, $ldel, $qdel, $quotelike, $rdel) = @_;
+ my ($startpos, $ldelpos, $endpos) = (pos $$textref = pos $$textref||0);
+ unless ($$textref =~ m/\G$pre/gc)
+ {
+ _failmsg "Did not find prefix: /$pre/", $startpos;
+ return;
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/input-files/perllib/Text/Balanced/Changes
^
|
@@ -0,0 +1,263 @@
+Revision history for Perl extension Text::Balanced.
+
+1.00 Mon Aug 11 12:42:56 1997
+
+ - original version
+
+
+1.01 Mon Sep 8 18:09:18 EST 1997
+
+ - changed "quotemeta" to "quotemeta $_" to work
+ around bug in Perl 5.002 and 5.003
+
+
+1.10 Tue Sep 30 17:23:23 EST 1997
+
+ - reworked extract_quotelike to correct handling of some obscure cases
+
+
+1.21 Sat Oct 4 17:21:54 EST 1997
+
+ - synchronised with Parse::RecDescent distribution (version number
+ will now reflect that package)
+
+1.23 Fri Oct 17 10:26:38 EST 1997
+
+ - changed behaviour in scalar and void contexts. Scalar contexts
+ now return only the extracted string. Void contexts now remove
+ the extracted string from the first argument (or $_).
+
+1.24
+
+ - changed behaviour in scalar contexts. Scalar contexts
+ now return the extracted string _and_ remove it from the
+ first argument (or $_).
+
+ - changed return values on failure (all contexts return undef
+ for invalid return fields)
+
+ - fixed some lurking bugs with trailing modifier handling
+
+ - added :ALL tag to simplify wholesale importing of functions
+
+ - fixed serious bug with embedded division operators ("/")
+ This now also allows the ?...? form of pattern matching!
+
+1.35 Wed Jun 24 09:53:31 1998
+
+ - fixed handling of :: quantifiers in extract_variable()
+
+ - numerous trivial lexical changes to make xemacs happy
+
+
+1.36 Tue Jul 14 12:26:04 1998
+
+ - Reinstated POD file missing from previous distribution
+
+ - Added undocumented fourth parameter to extract_codeblock
+ so as to correctly handle (?) and (s?) modifiers in
+ RecDescent grammars.
+
+
+1.40 Tue Aug 4 13:54:52 1998
+
+ - Added (optional) handling of embedded quoted text to
+ extract_delimited (see revised entry in Balanced.pod)
+
+ - Added extract_tagged which extracts text between arbitrary,
+ optionally nested start and end tags (see new entry in
+ Balanced.pod).
+
+ - Added delimited_pat which builds a pattern which matches a
+ string delimited by any of the delimiters specified (see new
+ entry in Balanced.pod).
+
+ - Added test.pl
+
+
+1.41 Mon Aug 10 14:51:50 1998
+
+ - Reinstated change to extract_codeblock from 1.36 which were
+ mysteriously lost in 1.40
+
+
+1.50 Thu Aug 27 09:20:19 1998
+
+ - Improved the structure of the regex generated by
+ delimited_pat (and used in extract_delimited). It's
+ considerably more complex, but also more robust and
+ much faster in the worst case.
+
+ - Altered extract_variable to accept whitespace in variables,
+ e.g. '$ a -> {'b'} -> [2]'
+
+
+
+1.51 Sat Feb 13 10:31:55 1999
+
+ - Fixed bugs in prefix matching in extract_variable:
+ * incorrectly used default if '' specified
+ * now handles $#array correctly
+
+ - Fixed bugs in extract_codeblock:
+ * Now handles !~ properly
+ * Now handles embedded comments better.
+ * Now handles "raw" pattern matches better.
+
+ - Added support for single strings or qr's as
+ 'reject' and 'ignore' args to extract_tagged()
+
+ - Added gen_extract_tagged() to "precompile"
+ a specific tag extractor for repeated use
+ (approximately 3 times faster!)
+
+
+1.52 Thu Mar 4 12:43:38 1999
+
+ - Added CSV parsing example to documentation of extract_multiple.
+
+ - Fixed a bug with extract_codeblock in "RecDescent" mode
+ (it would accept "subrule(s?)" and "subrule(?)", but
+ not "subrule(s)"). Thanks, Jan.
+
+
+1.66 Fri Jul 2 13:29:22 1999
+
+ - Added ability to use quotelike operators in extract_bracketed
+
+ - Fixed bug under 5.003 ('foreach my $func' not understood)
+
+ - Added escape specification as fourth arg to &extract_delimited
+
+ - Fixed handling of &delimited_pat and &extract_delimited
+ when delimiter is same as escape
+
+ - Fixed handling of ->, =>, and >> in &extract_code
+ when delimiters are "<>"
+
+
+1.76 Fri Nov 19 06:51:54 1999
+
+ - IMPORTANT: Now requires 5.005 or better.
+
+ - IMPORTANT: Made extract methods sensitive to the pos()
+ value of the text they are parsing. In other words,
+ all extract subroutines now act like patterns of the form
+ /\G.../gc. See documentation for details.
+
+ - IMPORTANT: Changed semantics of extract_multiple, in line
+ with the above change, and to simplify the semantics to
+ something vaguely predictable. See documentation for details.
+
+ - Added ability to use qr/../'s and raw strings as extractors
+ in extract_multiple. See documentation.
+
+ - Added fourth argument to extract_codeblock to allow
+ outermost brackets to be separately specified. See
+ documentation for details.
+
+ - Reimplemented internals of all extraction subroutines
+ for significant speed-ups (between 100% and 2000%
+ improvement).
+
+ - Fixed nasty bug in extract_variable and extract_codeblock
+ (they were returning prefix as well in scalar context)
+
+ - Allowed read-only strings to be used as arguments in
+ scalar contexts.
+
+ - Renamed delimited_pat to gen-delimited pat (in line with
+ gen_extract_tagged). Old name still works, but is now deprecated.
+
+ - Tweaked all extraction subs so they correctly handle
+ zero-length prefix matches after another zero-length match.
+
+
+1.77 Mon Nov 22 06:08:23 1999
+
+ - Fixed major bug in extract_codeblock (would not
+ terminate if there was trailing whitespace)
+
+ - Improved /.../ pattern parsing within codeblocks
+
+
+1.81 Wed Sep 13 11:58:49 2000
+
+ - Fixed test count in extract_codeblock.t
+
+ - Fixed improbable bug with trailing ->'s in extract_variable
+
+ - Fixed (HT|X)ML tag extraction in extract_tagged (thanks, Tim)
+
+ - Added explanatory note about prefix matching (thanks again, Tim)
+
+ - Added handling of globs and sub refs to extract_variable
+
+ - Pod tweak (thanks Abigail)
+
+ - Allowed right tags to be run-time evaluated, so
+ extract_tagged($text, '/([a-z]+)', '/end$1') works
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/input-files/perllib/Text/Balanced/README
^
|
@@ -0,0 +1,84 @@
+==============================================================================
+ Release of version 1.89 of Text::Balanced
+==============================================================================
+
+
+NAME
+
+ Text::Balanced - Extract delimited text sequences from strings.
+
+
+SUMMARY (see Balanced.pod for full details)
+
+ Text::Balanced::extract_delimited
+
+ `extract_delimited' extracts the initial substring of a string
+ which is delimited by a user-specified set of single-character
+ delimiters, whilst ignoring any backslash-escaped delimiter
+ characters.
+
+ Text::Balanced::extract_bracketed
+
+ `extract_bracketed' extracts a balanced-bracket-delimited substring
+ (using any one (or more) of the user-specified delimiter brackets:
+ '(..)', '{..}', '[..]', or '<..>').
+
+ Text::Balanced::extract_quotelike
+
+ `extract_quotelike' attempts to recognize and extract any one of the
+ various Perl quote and quotelike operators (see "perlop(3)"). Embedded
+ backslashed delimiters, nested bracket delimiters (for the
+ quotelike operators), and trailing modifiers are all correctly handled.
+
+ Text::Balanced::extract_codeblock
+
+ `extract_codeblock' attempts to recognize and extract a
+ balanced bracket-delimited substring which may also contain
+ unbalanced brackets inside Perl quotes or quotelike
+ operations. That is, `extract_codeblock' is like a combination
+ of `extract_bracketed' and `extract_quotelike'.
+
+ Text::Balanced::extract_tagged
+
+ `extract_tagged' attempts to recognize and extract a
+ substring between two arbitrary "tag" patterns (a start tag
+ and an end tag).
+
+
+INSTALLATION
+
+ It's all pure Perl, so just put the .pm file in its appropriate
+ local Perl subdirectory.
+
+
+AUTHOR
+
+ Damian Conway (damian@cs.monash.edu.au)
+
+
+COPYRIGHT
+
+ Copyright (c) 1997-2001, Damian Conway. All Rights Reserved.
+ This module is free software. It may be used, redistributed
+ and/or modified under the same terms as Perl itself.
+
+
+
+==============================================================================
+
+CHANGES IN VERSION 1.89
+
+
+ - Fixed extvar.t tests
+
+
+==============================================================================
+
+AVAILABILITY
+
+Text::Balanced has been uploaded to the CPAN
+and is also available from:
+
+ http://www.csse.monash.edu.au/~damian/CPAN/Text-Balanced.tar.gz
+
+==============================================================================
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/input-files/perllib/Text/ParseWords.pm
^
|
@@ -0,0 +1,263 @@
+package Text::ParseWords;
+
+use vars qw($VERSION @ISA @EXPORT $PERL_SINGLE_QUOTE);
+$VERSION = "3.21";
+
+require 5.000;
+
+use Exporter;
+@ISA = qw(Exporter);
+@EXPORT = qw(shellwords quotewords nested_quotewords parse_line);
+@EXPORT_OK = qw(old_shellwords);
+
+
+sub shellwords {
+ local(@lines) = @_;
+ $lines[$#lines] =~ s/\s+$//;
+ return(quotewords('\s+', 0, @lines));
+}
+
+
+
+sub quotewords {
+ my($delim, $keep, @lines) = @_;
+ my($line, @words, @allwords);
+
+
+ foreach $line (@lines) {
+ @words = parse_line($delim, $keep, $line);
+ return() unless (@words || !length($line));
+ push(@allwords, @words);
+ }
+ return(@allwords);
+}
+
+
+
+sub nested_quotewords {
+ my($delim, $keep, @lines) = @_;
+ my($i, @allwords);
+
+ for ($i = 0; $i < @lines; $i++) {
+ @{$allwords[$i]} = parse_line($delim, $keep, $lines[$i]);
+ return() unless (@{$allwords[$i]} || !length($lines[$i]));
+ }
+ return(@allwords);
+}
+
+
+
+sub parse_line {
+ # We will be testing undef strings
+ no warnings;
+ use re 'taint'; # if it's tainted, leave it as such
+
+ my($delimiter, $keep, $line) = @_;
+ my($quote, $quoted, $unquoted, $delim, $word, @pieces);
+
+ while (length($line)) {
+
+ ($quote, $quoted, undef, $unquoted, $delim, undef) =
+ $line =~ m/^(["']) # a $quote
+ ((?:\\.|(?!\1)[^\\])*) # and $quoted text
+ \1 # followed by the same quote
+ ([\000-\377]*) # and the rest
+ | # --OR--
+ ^((?:\\.|[^\\"'])*?) # an $unquoted text
+ (\Z(?!\n)|(?-x:$delimiter)|(?!^)(?=["']))
+ # plus EOL, delimiter, or quote
+ ([\000-\377]*) # the rest
+ /x; # extended layout
+ return() unless( $quote || length($unquoted) || length($delim));
+
+ $line = $+;
+
+ if ($keep) {
+ $quoted = "$quote$quoted$quote";
+ }
+ else {
+ $unquoted =~ s/\\(.)/$1/g;
+ if (defined $quote) {
+ $quoted =~ s/\\(.)/$1/g if ($quote eq '"');
+ $quoted =~ s/\\([\\'])/$1/g if ( $PERL_SINGLE_QUOTE && $quote eq "'");
+ }
+ }
+ $word .= defined $quote ? $quoted : $unquoted;
+
+ if (length($delim)) {
+ push(@pieces, $word);
+ push(@pieces, $delim) if ($keep eq 'delimiters');
+ undef $word;
+ }
+ if (!length($line)) {
+ push(@pieces, $word);
+ }
+ }
+ return(@pieces);
+}
+
+
+
+sub old_shellwords {
+
+ # Usage:
+ # use ParseWords;
+ # @words = old_shellwords($line);
+ # or
+ # @words = old_shellwords(@lines);
+
+ local($_) = join('', @_);
+ my(@words,$snippet,$field);
+
+ s/^\s+//;
+ while ($_ ne '') {
+ $field = '';
+ for (;;) {
+ if (s/^"(([^"\\]|\\.)*)"//) {
+ ($snippet = $1) =~ s#\\(.)#$1#g;
+ }
+ elsif (/^"/) {
+ return();
+ }
+ elsif (s/^'(([^'\\]|\\.)*)'//) {
+ ($snippet = $1) =~ s#\\(.)#$1#g;
+ }
+ elsif (/^'/) {
+ return();
+ }
+ elsif (s/^\\(.)//) {
+ $snippet = $1;
+ }
+ elsif (s/^([^\s\\'"]+)//) {
+ $snippet = $1;
+ }
+ else {
+ s/^\s+//;
+ last;
+ }
+ $field .= $snippet;
+ }
+ push(@words, $field);
+ }
+ @words;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Text::ParseWords - parse text into an array of tokens or array of arrays
+
+=head1 SYNOPSIS
+
+ use Text::ParseWords;
+ @lists = &nested_quotewords($delim, $keep, @lines);
+ @words = "ewords($delim, $keep, @lines);
+ @words = &shellwords(@lines);
+ @words = &parse_line($delim, $keep, $line);
+ @words = &old_shellwords(@lines); # DEPRECATED!
+
+=head1 DESCRIPTION
+
+The &nested_quotewords() and "ewords() functions accept a delimiter
+(which can be a regular expression)
+and a list of lines and then breaks those lines up into a list of
+words ignoring delimiters that appear inside quotes. "ewords()
+returns all of the tokens in a single long list, while &nested_quotewords()
+returns a list of token lists corresponding to the elements of @lines.
+&parse_line() does tokenizing on a single string. The &*quotewords()
+functions simply call &parse_lines(), so if you're only splitting
+one line you can call &parse_lines() directly and save a function
+call.
+
+The $keep argument is a boolean flag. If true, then the tokens are
+split on the specified delimiter, but all other characters (quotes,
+backslashes, etc.) are kept in the tokens. If $keep is false then the
+&*quotewords() functions remove all quotes and backslashes that are
+not themselves backslash-escaped or inside of single quotes (i.e.,
+"ewords() tries to interpret these characters just like the Bourne
+shell). NB: these semantics are significantly different from the
+original version of this module shipped with Perl 5.000 through 5.004.
+As an additional feature, $keep may be the keyword "delimiters" which
+causes the functions to preserve the delimiters in each string as
+tokens in the token lists, in addition to preserving quote and
+backslash characters.
+
+&shellwords() is written as a special case of "ewords(), and it
+does token parsing with whitespace as a delimiter-- similar to most
+Unix shells.
+
+=head1 EXAMPLES
+
+The sample program:
+
+ use Text::ParseWords;
+ @words = "ewords('\s+', 0, q{this is "a test" of\ quotewords \"for you});
+ $i = 0;
+ foreach (@words) {
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/input-files/perllib/Text/Soundex.pm
^
|
@@ -0,0 +1,150 @@
+package Text::Soundex;
+require 5.000;
+require Exporter;
+
+@ISA = qw(Exporter);
+@EXPORT = qw(&soundex $soundex_nocode);
+
+$VERSION = '1.01';
+
+# $Id: soundex.pl,v 1.2 1994/03/24 00:30:27 mike Exp $
+#
+# Implementation of soundex algorithm as described by Knuth in volume
+# 3 of The Art of Computer Programming, with ideas stolen from Ian
+# Phillipps <ian@pipex.net>.
+#
+# Mike Stok <Mike.Stok@meiko.concord.ma.us>, 2 March 1994.
+#
+# Knuth's test cases are:
+#
+# Euler, Ellery -> E460
+# Gauss, Ghosh -> G200
+# Hilbert, Heilbronn -> H416
+# Knuth, Kant -> K530
+# Lloyd, Ladd -> L300
+# Lukasiewicz, Lissajous -> L222
+#
+# $Log: soundex.pl,v $
+# Revision 1.2 1994/03/24 00:30:27 mike
+# Subtle bug (any excuse :-) spotted by Rich Pinder <rpinder@hsc.usc.edu>
+# in the way I handles leasing characters which were different but had
+# the same soundex code. This showed up comparing it with Oracle's
+# soundex output.
+#
+# Revision 1.1 1994/03/02 13:01:30 mike
+# Initial revision
+#
+#
+##############################################################################
+
+# $soundex_nocode is used to indicate a string doesn't have a soundex
+# code, I like undef other people may want to set it to 'Z000'.
+
+$soundex_nocode = undef;
+
+sub soundex
+{
+ local (@s, $f, $fc, $_) = @_;
+
+ push @s, '' unless @s; # handle no args as a single empty string
+
+ foreach (@s)
+ {
+ $_ = uc $_;
+ tr/A-Z//cd;
+
+ if ($_ eq '')
+ {
+ $_ = $soundex_nocode;
+ }
+ else
+ {
+ ($f) = /^(.)/;
+ tr/AEHIOUWYBFPVCGJKQSXZDTLMNR/00000000111122222222334556/;
+ ($fc) = /^(.)/;
+ s/^$fc+//;
+ tr///cs;
+ tr/0//d;
+ $_ = $f . $_ . '000';
+ s/^(.{4}).*/$1/;
+ }
+ }
+
+ wantarray ? @s : shift @s;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Text::Soundex - Implementation of the Soundex Algorithm as Described by Knuth
+
+=head1 SYNOPSIS
+
+ use Text::Soundex;
+
+ $code = soundex $string; # get soundex code for a string
+ @codes = soundex @list; # get list of codes for list of strings
+
+ # set value to be returned for strings without soundex code
+
+ $soundex_nocode = 'Z000';
+
+=head1 DESCRIPTION
+
+This module implements the soundex algorithm as described by Donald Knuth
+in Volume 3 of B<The Art of Computer Programming>. The algorithm is
+intended to hash words (in particular surnames) into a small space using a
+simple model which approximates the sound of the word when spoken by an English
+speaker. Each word is reduced to a four character string, the first
+character being an upper case letter and the remaining three being digits.
+
+If there is no soundex code representation for a string then the value of
+C<$soundex_nocode> is returned. This is initially set to C<undef>, but
+many people seem to prefer an I<unlikely> value like C<Z000>
+(how unlikely this is depends on the data set being dealt with.) Any value
+can be assigned to C<$soundex_nocode>.
+
+In scalar context C<soundex> returns the soundex code of its first
+argument, and in list context a list is returned in which each element is the
+soundex code for the corresponding argument passed to C<soundex> e.g.
+
+ @codes = soundex qw(Mike Stok);
+
+leaves C<@codes> containing C<('M200', 'S320')>.
+
+=head1 EXAMPLES
+
+Knuth's examples of various names and the soundex codes they map to
+are listed below:
+
+ Euler, Ellery -> E460
+ Gauss, Ghosh -> G200
+ Hilbert, Heilbronn -> H416
+ Knuth, Kant -> K530
+ Lloyd, Ladd -> L300
+ Lukasiewicz, Lissajous -> L222
+
+so:
+
+ $code = soundex 'Knuth'; # $code contains 'K530'
+ @list = soundex qw(Lloyd Gauss); # @list contains 'L300', 'G200'
+
+=head1 LIMITATIONS
+
+As the soundex algorithm was originally used a B<long> time ago in the US
+it considers only the English alphabet and pronunciation.
+
+As it is mapping a large space (arbitrary length strings) onto a small
+space (single letter plus 3 digits) no inference can be made about the
+similarity of two strings which end up with the same soundex code. For
+example, both C<Hilbert> and C<Heilbronn> end up with a soundex code
+of C<H416>.
+
+=head1 AUTHOR
+
+This code was implemented by Mike Stok (C<stok@cybercom.net>) from the
+description given by Knuth. Ian Phillipps (C<ian@pipex.net>) and Rich Pinder
+(C<rpinder@hsc.usc.edu>) supplied ideas and spotted mistakes.
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/input-files/perllib/Text/Tabs.pm
^
|
@@ -0,0 +1,97 @@
+
+package Text::Tabs;
+
+require Exporter;
+
+@ISA = (Exporter);
+@EXPORT = qw(expand unexpand $tabstop);
+
+use vars qw($VERSION $tabstop $debug);
+$VERSION = 98.112801;
+
+use strict;
+
+BEGIN {
+ $tabstop = 8;
+ $debug = 0;
+}
+
+sub expand
+{
+ my (@l) = @_;
+ for $_ (@l) {
+ 1 while s/(^|\n)([^\t\n]*)(\t+)/
+ $1. $2 . (" " x
+ ($tabstop * length($3)
+ - (length($2) % $tabstop)))
+ /sex;
+ }
+ return @l if wantarray;
+ return $l[0];
+}
+
+sub unexpand
+{
+ my (@l) = @_;
+ my @e;
+ my $x;
+ my $line;
+ my @lines;
+ my $lastbit;
+ for $x (@l) {
+ @lines = split("\n", $x, -1);
+ for $line (@lines) {
+ $line = expand($line);
+ @e = split(/(.{$tabstop})/,$line,-1);
+ $lastbit = pop(@e);
+ $lastbit = '' unless defined $lastbit;
+ $lastbit = "\t"
+ if $lastbit eq " "x$tabstop;
+ for $_ (@e) {
+ if ($debug) {
+ my $x = $_;
+ $x =~ s/\t/^I\t/gs;
+ print "sub on '$x'\n";
+ }
+ s/ +$/\t/;
+ }
+ $line = join('',@e, $lastbit);
+ }
+ $x = join("\n", @lines);
+ }
+ return @l if wantarray;
+ return $l[0];
+}
+
+1;
+__END__
+
+
+=head1 NAME
+
+Text::Tabs -- expand and unexpand tabs per the unix expand(1) and unexpand(1)
+
+=head1 SYNOPSIS
+
+ use Text::Tabs;
+
+ $tabstop = 4;
+ @lines_without_tabs = expand(@lines_with_tabs);
+ @lines_with_tabs = unexpand(@lines_without_tabs);
+
+=head1 DESCRIPTION
+
+Text::Tabs does about what the unix utilities expand(1) and unexpand(1)
+do. Given a line with tabs in it, expand will replace the tabs with
+the appropriate number of spaces. Given a line with or without tabs in
+it, unexpand will add tabs when it can save bytes by doing so. Invisible
+compression with plain ascii!
+
+=head1 BUGS
+
+expand doesn't handle newlines very quickly -- do not feed it an
+entire document in one string. Instead feed it an array of lines.
+
+=head1 AUTHOR
+
+David Muir Sharnoff <muir@idiom.com>
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/input-files/perllib/Text/TabsWrap/CHANGELOG
^
|
@@ -0,0 +1,74 @@
+= 2001/09/29
+
+Philip Newton <Philip.Newton@gmx.net> sent in a clean patch that
+added support for defining words differently; that prevents
+Text::Wrap from untainting strings; and that fixes a documentation
+bug.
+
+So that fill.t can be used in the version included in the perl
+distribution, fill.t no longer uses File::Slurp.
+
+Both Sweth Chandramouli <svc@sweth.net> and Drew Degentesh
+<ddegentesh@daed.com> both objected to the automatic unexpand
+that Text::Wrap does on its results. Drew sent a patch which
+has been integrated.
+
+Way back in '97, Joel Earl <jrearl@VNET.IBM.COM> asked that
+it be possible to use a line separator other than \n when
+adding new lines. There is now support for that.
+
+= 2001/01/30
+
+Bugfix by Michael G Schwern <schwern@pobox.com>: don't add extra
+whitespace when working one an array of input (as opposed to a
+single string).
+
+Performance rewrite: use m/\G/ rather than s///.
+
+You can now specify that words that are too long to wrap can simply
+overflow the line. Feature requested by James Hoagland
+<hoagland@SiliconDefense.com> and by John Porter <jdporter@min.net>.
+
+Documentation changes from Rich Bowen <Rich@cre8tivegroup.com>.
+
+= 1998/11/29
+
+Combined Fill.pm into Wrap.pm. It appears there are versions of
+Wrap.pm with fill in them.
+
+= 1998/11/28
+
+Over the last couple of years, many people sent in various
+rewrites of Text::Wrap. I should have done something about
+updating it long ago. If someone wants to take it over from
+me, discuss it in perl-porters. I'll be happy to hand it
+over.
+
+Anyway, I have a bunch of people to thank. I didn't
+use what any of them sent in, but I did take ideas from
+all of them. Many sent in complete new implamentations.
+
+ Ivan Brawley <ibrawley@awadi.com.au>
+
+ Jacqui Caren <Jacqui.Caren@ig.co.uk>
+
+ Jeff Kowalski <jeff.kowalski@autodesk.com>
+
+ Allen Smith <easmith@beatrice.rutgers.edu>
+
+ Sullivan N. Beck <sbeck@cise.ufl.edu>
+
+The end result is a very slight change in the API. There
+is now an additional package variable: $Text::Wrap::huge.
+When $huge is set to 'die' then long words will cause
+wrap() to die. When it is set to 'wrap', long words will
+be wrapped. The default is 'wrap'.
+
+<shout>LONG WORDS WILL NOW BE WRAPPED BY DEFAULT</shout>.
+This is a change in behavior.
+
+At the bottom of Text::Wrap, there was a function (fill())
+sitting there unpublished. There was a note that Tim Pierce
+had a faster version, but a search on CPAN failed to turn it
+up. Text::Fill is now available.
+
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/input-files/perllib/Text/Wrap.pm
^
|
@@ -0,0 +1,212 @@
+package Text::Wrap;
+
+require Exporter;
+
+@ISA = qw(Exporter);
+@EXPORT = qw(wrap fill);
+@EXPORT_OK = qw($columns $break $huge);
+
+$VERSION = 2001.0929;
+
+use vars qw($VERSION $columns $debug $break $huge $unexpand $tabstop
+ $separator);
+use strict;
+
+BEGIN {
+ $columns = 76; # <= screen width
+ $debug = 0;
+ $break = '\s';
+ $huge = 'wrap'; # alternatively: 'die' or 'overflow'
+ $unexpand = 1;
+ $tabstop = 8;
+ $separator = "\n";
+}
+
+use Text::Tabs qw(expand unexpand);
+
+sub wrap
+{
+ my ($ip, $xp, @t) = @_;
+
+ local($Text::Tabs::tabstop) = $tabstop;
+ my $r = "";
+ my $tail = pop(@t);
+ my $t = expand(join("", (map { /\s+\z/ ? ( $_ ) : ($_, ' ') } @t), $tail));
+ my $lead = $ip;
+ my $ll = $columns - length(expand($ip)) - 1;
+ $ll = 0 if $ll < 0;
+ my $nll = $columns - length(expand($xp)) - 1;
+ my $nl = "";
+ my $remainder = "";
+
+ use re 'taint';
+
+ pos($t) = 0;
+ while ($t !~ /\G\s*\Z/gc) {
+ if ($t =~ /\G([^\n]{0,$ll})($break|\z)/xmgc) {
+ $r .= $unexpand
+ ? unexpand($nl . $lead . $1)
+ : $nl . $lead . $1;
+ $remainder = $2;
+ } elsif ($huge eq 'wrap' && $t =~ /\G([^\n]{$ll})/gc) {
+ $r .= $unexpand
+ ? unexpand($nl . $lead . $1)
+ : $nl . $lead . $1;
+ $remainder = $separator;
+ } elsif ($huge eq 'overflow' && $t =~ /\G([^\n]*?)($break|\z)/xmgc) {
+ $r .= $unexpand
+ ? unexpand($nl . $lead . $1)
+ : $nl . $lead . $1;
+ $remainder = $2;
+ } elsif ($huge eq 'die') {
+ die "couldn't wrap '$t'";
+ } else {
+ die "This shouldn't happen";
+ }
+
+ $lead = $xp;
+ $ll = $nll;
+ $nl = $separator;
+ }
+ $r .= $remainder;
+
+ print "-----------$r---------\n" if $debug;
+
+ print "Finish up with '$lead'\n" if $debug;
+
+ $r .= $lead . substr($t, pos($t), length($t)-pos($t))
+ if pos($t) ne length($t);
+
+ print "-----------$r---------\n" if $debug;;
+
+ return $r;
+}
+
+sub fill
+{
+ my ($ip, $xp, @raw) = @_;
+ my @para;
+ my $pp;
+
+ for $pp (split(/\n\s+/, join("\n",@raw))) {
+ $pp =~ s/\s+/ /g;
+ my $x = wrap($ip, $xp, $pp);
+ push(@para, $x);
+ }
+
+ # if paragraph_indent is the same as line_indent,
+ # separate paragraphs with blank lines
+
+ my $ps = ($ip eq $xp) ? "\n\n" : "\n";
+ return join ($ps, @para);
+}
+
+1;
+__END__
+
+=head1 NAME
+
+Text::Wrap - line wrapping to form simple paragraphs
+
+=head1 SYNOPSIS
+
+B<Example 1>
+
+ use Text::Wrap
+
+ $initial_tab = "\t"; # Tab before first line
+ $subsequent_tab = ""; # All other lines flush left
+
+ print wrap($initial_tab, $subsequent_tab, @text);
+ print fill($initial_tab, $subsequent_tab, @text);
+
+ @lines = wrap($initial_tab, $subsequent_tab, @text);
+
+ @paragraphs = fill($initial_tab, $subsequent_tab, @text);
+
+B<Example 2>
+
+ use Text::Wrap qw(wrap $columns $huge);
+
+ $columns = 132; # Wrap at 132 characters
+ $huge = 'die';
+ $huge = 'wrap';
+ $huge = 'overflow';
+
+B<Example 3>
+
+ use Text::Wrap
+
+ $Text::Wrap::columns = 72;
+ print wrap('', '', @text);
+
+=head1 DESCRIPTION
+
+C<Text::Wrap::wrap()> is a very simple paragraph formatter. It formats a
+single paragraph at a time by breaking lines at word boundries.
+Indentation is controlled for the first line (C<$initial_tab>) and
+all subsequent lines (C<$subsequent_tab>) independently. Please note:
+C<$initial_tab> and C<$subsequent_tab> are the literal strings that will
+be used: it is unlikley you would want to pass in a number.
+
+Text::Wrap::fill() is a simple multi-paragraph formatter. It formats
+each paragraph separately and then joins them together when it's done. It
+will destory any whitespace in the original text. It breaks text into
+paragraphs by looking for whitespace after a newline. In other respects
+it acts like wrap().
+
+=head1 OVERRIDES
+
+C<Text::Wrap::wrap()> has a number of variables that control its behavior.
+Because other modules might be using C<Text::Wrap::wrap()> it is suggested
+that you leave these variables alone! If you can't do that, then
+use C<local($Text::Wrap::VARIABLE) = YOURVALUE> when you change the
+values so that the original value is restored. This C<local()> trick
+will not work if you import the variable into your own namespace.
+
+Lines are wrapped at C<$Text::Wrap::columns> columns. C<$Text::Wrap::columns>
+should be set to the full width of your output device. In fact,
+every resulting line will have length of no more than C<$columns - 1>.
+
+It is possible to control which characters terminate words by
+modifying C<$Text::Wrap::break>. Set this to a string such as
+C<'[\s:]'> (to break before spaces or colons) or a pre-compiled regexp
+such as C<qr/[\s']/> (to break before spaces or apostrophes). The
+default is simply C<'\s'>; that is, words are terminated by spaces.
+(This means, among other things, that trailing punctuation such as
+full stops or commas stay with the word they are "attached" to.)
+
+Beginner note: In example 2, above C<$columns> is imported into
+the local namespace, and set locally. In example 3,
+C<$Text::Wrap::columns> is set in its own namespace without importing it.
+
+C<Text::Wrap::wrap()> starts its work by expanding all the tabs in its
+input into spaces. The last thing it does it to turn spaces back
+into tabs. If you do not want tabs in your results, set
+C<$Text::Wrap::unexapand> to a false value. Likewise if you do not
+want to use 8-character tabstops, set C<$Text::Wrap::tabstop> to
+the number of characters you do want for your tabstops.
+
+If you want to separate your lines with something other than C<\n>
+then set C<$Text::Wrap::seporator> to your preference.
+
+When words that are longer than C<$columns> are encountered, they
+are broken up. C<wrap()> adds a C<"\n"> at column C<$columns>.
+This behavior can be overridden by setting C<$huge> to
+'die' or to 'overflow'. When set to 'die', large words will cause
+C<die()> to be called. When set to 'overflow', large words will be
+left intact.
+
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-centos3.sh
^
|
@@ -49,6 +49,10 @@
start_centos3
(
+ pwd=$(pwd)
+ # If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+ testsuitedir=${testsuitedir:-$pwd}
+ cd $testsuitedir
# Copy binaries to server
cd testsuite/vagrant/tange/centos3/ 2>/dev/null
cd vagrant/tange/centos3/ 2>/dev/null
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-freebsd.sh
^
|
@@ -5,14 +5,19 @@
# SPDX-License-Identifier: GPL-3.0-or-later
echo "### These tests requires VirtualBox running with the following images"
-SERVER1=freebsd11
+SERVER1=freebsd12
SSHUSER1=vagrant
SSHLOGIN1=$SSHUSER1@$SERVER1
echo $SSHUSER1@$SERVER1
ssh $SSHLOGIN1 touch .parallel/will-cite
-scp -q .*/src/{parallel,sem,sql,niceload,env_parallel*} $SSHLOGIN1:bin/
-
+(
+ pwd=$(pwd)
+ # If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+ testsuitedir=${testsuitedir:-$pwd}
+ cd $testsuitedir
+ scp -q "$testsuitedir"/../src/{parallel,sem,sql,niceload,env_parallel*} $SSHLOGIN1:bin/
+)
. `which env_parallel.bash`
env_parallel --session
@@ -90,6 +95,7 @@
# (a)sh does not support 'export -f' so any function exported
# must be unset
+unset replace_tmpdir
unset run_once
unset run_test
unset TMPDIR
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-0.3s.sh
^
|
@@ -22,10 +22,10 @@
par_PARALLEL_HOME_not_exist() {
echo '### bug #62311: --pipepart + ::: fail'
- tmp1=$(mktemp)
- rm $tmp1
- PARALLEL_HOME=$tmp1 parallel echo ::: OK
- rm -r $tmp1
+ tmp1="$(mktemp)"
+ rm "$tmp1"
+ PARALLEL_HOME="$tmp1" parallel echo ::: OK
+ rm -r "$tmp1"
echo Should warn:
PARALLEL_HOME=/does-not-exist parallel -k echo ::: should warn
}
@@ -38,10 +38,10 @@
par_pipepart_triple_colon() {
echo '### bug #62311: --pipepart + ::: fail'
- tmp1=$(mktemp)
- seq 3 >$tmp1
- parallel --pipepart -a $tmp1 wc ::: a
- rm $tmp1
+ tmp1="$(mktemp)"
+ seq 3 >"$tmp1"
+ parallel --pipepart -a "$tmp1" wc ::: a
+ rm "$tmp1"
}
par_open-tty() {
@@ -137,25 +137,26 @@
cat <<'EOF' > "$tmp2"
2: Job:{#} Slot:{%} All:{} Arg[1]:{1} Arg[-1]:{-1} Perl({}+4):{=$_+=4=}
EOF
- parallel --colsep , -j2 --cleanup --tmpl $tmp1=t1.{#} --tmpl $tmp2=t2.{%} \
+ parallel --colsep , -j2 --cleanup --tmpl "$tmp1"=t1.{#} --tmpl "$tmp2"=t2.{%} \
'sleep 0.{#}; cat t1.{#} t2.{%}' ::: 1,a 1,b 2,a 2,b
echo should give no files
ls t[12].*
- parallel -j2 --cleanup --tmpl $tmp1=t1.{#} --tmpl $tmp2=t2.{%} \
+ parallel -j2 --cleanup --tmpl "$tmp1"=t1.{#} --tmpl "$tmp2"=t2.{%} \
'sleep 0.{#}; cat t1.{#} t2.{%}' ::: 1 2 ::: a b
echo should give no files
ls t[12].*
+ rm "$tmp1" "$tmp2"
}
par_resume_k() {
echo '### --resume -k'
tmp=$(mktemp)
- parallel -k --resume --joblog $tmp echo job{}id\;exit {} ::: 0 1 2 3 0 5
+ parallel -k --resume --joblog "$tmp" echo job{}id\;exit {} ::: 0 1 2 3 0 5
echo try 2 = nothing
- parallel -k --resume --joblog $tmp echo job{}id\;exit {} ::: 0 1 2 3 0 5
+ parallel -k --resume --joblog "$tmp" echo job{}id\;exit {} ::: 0 1 2 3 0 5
echo two extra
- parallel -k --resume --joblog $tmp echo job{}id\;exit 0 ::: 0 1 2 3 0 5 6 7
- rm -f $tmp
+ parallel -k --resume --joblog "$tmp" echo job{}id\;exit 0 ::: 0 1 2 3 0 5 6 7
+ rm -f "$tmp"
}
par_empty_string_quote() {
@@ -415,10 +416,10 @@
echo '### Test -a and --arg-file: Read input from file instead of stdin'
tmp=$(mktemp)
- seq 1 10 >$tmp
- parallel -k -a $tmp echo
- parallel -k --arg-file $tmp echo
- rm $tmp
+ seq 1 10 >"$tmp"
+ parallel -k -a "$tmp" echo
+ parallel -k --arg-file "$tmp" echo
+ rm "$tmp"
}
par_pipe_unneeded_procs() {
@@ -453,19 +454,19 @@
echo '### bug #45769: --round-robin --pipepart gives wrong results'
tmp=$(mktemp)
- seq 10000 >$tmp
- parallel -j2 --pipepart -a $tmp --block 14 --round-robin wc | wc -l
- rm $tmp
+ seq 10000 >"$tmp"
+ parallel -j2 --pipepart -a "$tmp" --block 14 --round-robin wc | wc -l
+ rm "$tmp"
}
par_pipepart_header() {
echo '### bug #44614: --pipepart --header off by one'
tmp=$(mktemp)
- seq 10 >$tmp
- parallel --pipepart -a $tmp -k --block 5 'echo foo; cat'
- parallel --pipepart -a $tmp -k --block 2 --regexp --recend 3'\n' 'echo foo; cat'
- rm $tmp
+ seq 10 >"$tmp"
+ parallel --pipepart -a "$tmp" -k --block 5 'echo foo; cat'
+ parallel --pipepart -a "$tmp" -k --block 2 --regexp --recend 3'\n' 'echo foo; cat'
+ rm "$tmp"
}
par_quote() {
@@ -492,9 +493,9 @@
par_total_from_joblog() {
echo 'bug #47086: [PATCH] Initialize total_completed from joblog'
tmp=$(mktemp)
- parallel -j1 --joblog $tmp --halt now,fail=1 echo '{= $_=$Global::total_completed =};exit {}' ::: 0 0 0 1 0 0
- parallel -j1 --joblog $tmp --halt now,fail=1 --resume echo '{= $_=$Global::total_completed =};exit {}' ::: 0 0 0 1 0 0
- rm $tmp
+ parallel -j1 --joblog "$tmp" --halt now,fail=1 echo '{= $_=$Global::total_completed =};exit {}' ::: 0 0 0 1 0 0
+ parallel -j1 --joblog "$tmp" --halt now,fail=1 --resume echo '{= $_=$Global::total_completed =};exit {}' ::: 0 0 0 1 0 0
+ rm "$tmp"
}
par_xapply() {
@@ -626,10 +627,10 @@
par_append_joblog() {
echo '### can you append to a joblog using +'
tmp=$(mktemp)
- parallel --joblog $tmp echo ::: 1
- parallel --joblog +$tmp echo ::: 1
- wc -l < $tmp
- rm $tmp
+ parallel --joblog "$tmp" echo ::: 1
+ parallel --joblog +"$tmp" echo ::: 1
+ wc -l < "$tmp"
+ rm "$tmp"
}
par_file_ending_in_newline() {
@@ -653,16 +654,17 @@
par_pipepart_block_bigger_2G() {
echo '### Test that --pipepart can have blocks > 2GB'
tmp=$(mktemp)
- echo foo >$tmp
- parallel --pipepart -a $tmp --block 3G wc
- rm $tmp
+ echo foo >"$tmp"
+ parallel --pipepart -a "$tmp" --block 3G wc
+ rm "$tmp"
}
par_retries_replacement_string() {
tmp=$(mktemp)
- parallel --retries {//} "echo {/} >>$tmp;exit {/}" ::: 1/11 2/22 3/33
- sort $tmp
- rm $tmp
+ qtmp=$(parallel -0 --shellquote ::: "$tmp")
+ parallel --retries {//} "echo {/} >>$qtmp;exit {/}" ::: 1/11 2/22 3/33
+ sort "$tmp"
+ rm "$tmp"
}
par_tee() {
@@ -693,17 +695,19 @@
cpuburn=$(mktemp)
cpuburn2=$(mktemp)
(echo '#!/usr/bin/perl'
- echo "eval{setpriority(0,0,9)}; while(1){}") > $cpuburn
- chmod 700 $cpuburn
- cp -a $cpuburn $cpuburn2
-
- parallel -j4 --halt 2 ::: 'sleep 1' $cpuburn false;
- killall $(basename $cpuburn) 2>/dev/null &&
+ echo "eval{setpriority(0,0,9)}; while(1){}") > "$cpuburn"
+ chmod 700 "$cpuburn"
+ cp -a "$cpuburn" "$cpuburn2"
+ qcpuburn=$(parallel -0 --shellquote ::: "$cpuburn")
+ qcpuburn2=$(parallel -0 --shellquote ::: "$cpuburn2")
+
+ parallel -0 -j4 --halt 2 ::: 'sleep 1' "$qcpuburn" false;
+ killall $(basename "$cpuburn") 2>/dev/null &&
echo ERROR: cpuburn should already have been killed
- parallel -j4 --halt -2 ::: 'sleep 1' $cpuburn2 true;
- killall $(basename $cpuburn2) 2>/dev/null &&
+ parallel -0 -j4 --halt -2 ::: 'sleep 1' "$qcpuburn2" true;
+ killall $(basename "$cpuburn2") 2>/dev/null &&
echo ERROR: cpuburn2 should already have been killed
- rm $cpuburn $cpuburn2
+ rm "$cpuburn" "$cpuburn2"
parallel --halt error echo ::: should not print
parallel --halt soon echo ::: should not print
@@ -722,13 +726,14 @@
echo 'bug #45993: --wd ... should also work when run locally'
(
- parallel --wd /bi 'pwd; echo $OLDPWD; echo' ::: fail
- parallel --wd /bin 'pwd; echo $OLDPWD; echo' ::: OK
- parallel --wd / 'pwd; echo $OLDPWD; echo' ::: OK
- parallel --wd /tmp 'pwd; echo $OLDPWD; echo' ::: OK
- parallel --wd ... 'pwd; echo $OLDPWD; echo' ::: OK
- parallel --wd . 'pwd; echo $OLDPWD; echo' ::: OK
+ parallel --wd /bi 'pwd; echo "$OLDPWD"; echo' ::: fail
+ parallel --wd /bin 'pwd; echo "$OLDPWD"; echo' ::: OK
+ parallel --wd / 'pwd; echo "$OLDPWD"; echo' ::: OK
+ parallel --wd /tmp 'pwd; echo "$OLDPWD"; echo' ::: OK
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-10s.sh
^
|
@@ -51,31 +51,32 @@
}
par_quote_special_results() {
+ echo "### Test --results on file systems with limited UTF8 support"
doit() {
mkfs=$1
img=$(mktemp /dev/shm/par-test-loop-XXXX.img)
dir=$(mktemp -d /tmp/par-test-loop-XXXX)
- dd if=/dev/zero bs=1000k count=150 > $img
+ dd if=/dev/zero bs=1000k count=150 > "$img"
# Use the mkfs.$filesystem
- $mkfs $img
- sudo mount $img $dir -oloop,uid=`id -u` 2>/dev/null ||
- sudo mount $img $dir -oloop
- cd $dir
+ $mkfs "$img"
+ sudo mount "$img" "$dir" -oloop,uid=`id -u` 2>/dev/null ||
+ sudo mount "$img" "$dir" -oloop
+ cd "$dir"
sudo chown `id -u` .
- df $dir
+ df "$dir"
printf "%s\0" '' +m . +_ .. +__ ,. ,.. + ++ / +z |
parallel -0 --results a echo
- find a | sort
+ (cd a/1 && find . -type d | sort | fmt -2000)
seq 128 | perl -ne 'printf "%c\0",$_' |
parallel -0 --results b128 echo
- find b128 | sort
+ (cd b128/1 && find . -type d | sort | fmt -2000)
seq 128 255 | perl -ne 'printf "%c\0",$_' |
parallel -0 --results b255 echo
- find b255 | sort
+ (cd b255/1 && find . -type d | sort | fmt -2000)
cd
- sudo umount $dir
- rm -r $dir/
- rm $img
+ sudo umount "$dir"
+ rmdir "$dir"/
+ rm "$img"
}
export -f doit
stdout parallel -k --tag --plus doit ::: \
@@ -83,7 +84,7 @@
"mkfs.reiserfs -fq" "mkfs.ntfs -F" "mkfs.xfs -f" mkfs.minix \
mkfs.fat mkfs.vfat mkfs.msdos mkfs.f2fs |
perl -pe 's:(/dev/loop|par-test-loop)\S+:$1:g;s/ +/ /g' |
- G -v MB/s -v UUID -v Binutils
+ G --v MB/s GB/s UUID Binutils
# Skip:
# mkfs.bfs - ro
# mkfs.cramfs - ro
@@ -294,107 +295,118 @@
parallel -k {tag} {lb} {files} --compress --compress-program {comp} --decompress-program {decomp} doit ::: C={comp},D={decomp} \
,,, tag --tag -k \
,,, lb --line-buffer -k \
- ,,, files --files -k \
+ ,,, files --files0 -k \
,,, comp 'cat;true' 'cat;false' \
,,, decomp 'cat;true' 'cat;false' |
+ replace_tmpdir |
perl -pe 's:/par......par:/tmpfile:'
}
par_fifo_under_csh() {
echo '### Test --fifo under csh'
-
- csh -c "seq 3000000 | parallel -k --pipe --fifo 'sleep .{#};cat {}|wc -c ; false; echo \$status; false'"
- echo exit $?
+ doit() {
+ csh -c "seq 3000000 | parallel -k --pipe --fifo 'sleep .{#};cat {}|wc -c ; false; echo \$status; false'"
+ echo exit $?
+ }
+ # csh does not seem to work with TMPDIR containing \n
+ doit
+ TMPDIR=/tmp
+ doit
}
par_parset() {
echo '### test parset'
- . `which env_parallel.bash`
+ (
+ . `which env_parallel.bash`
- echo 'Put output into $myarray'
- parset myarray -k seq 10 ::: 14 15 16
- echo "${myarray[1]}"
-
- echo 'Put output into vars "$seq, $pwd, $ls"'
- parset "seq pwd ls" -k ::: "seq 10" pwd ls
- echo "$seq"
-
- echo 'Put output into vars ($seq, $pwd, $ls)':
- into_vars=(seq pwd ls)
- parset "${into_vars[*]}" -k ::: "seq 5" pwd ls
- echo "$seq"
-
- echo 'The commands to run can be an array'
- cmd=("echo '<<joe \"double space\" cartoon>>'" "pwd")
- parset data -k ::: "${cmd[@]}"
- echo "${data[0]}"
- echo "${data[1]}"
-
- echo 'You cannot pipe into parset, but must use a tempfile'
- seq 10 > /tmp/parset_input_$$
- parset res -k echo :::: /tmp/parset_input_$$
- echo "${res[0]}"
- echo "${res[9]}"
- rm /tmp/parset_input_$$
-
- echo 'or process substitution'
- parset res -k echo :::: <(seq 0 10)
- echo "${res[0]}"
- echo "${res[9]}"
+ echo 'Put output into $myarray'
+ parset myarray -k seq 10 ::: 14 15 16
+ echo "${myarray[1]}"
+
+ echo 'Put output into vars "$seq, $pwd, $ls"'
+ parset "seq pwd ls" -k ::: "seq 10" pwd ls
+ echo "$seq"
+
+ echo 'Put output into vars ($seq, $pwd, $ls)':
+ into_vars=(seq pwd ls)
+ parset "${into_vars[*]}" -k ::: "seq 5" pwd ls
+ echo "$seq"
+
+ echo 'The commands to run can be an array'
+ cmd=("echo '<<joe \"double space\" cartoon>>'" "pwd")
+ parset data -k ::: "${cmd[@]}"
+ echo "${data[0]}"
+ echo "${data[1]}"
+
+ echo 'You cannot pipe into parset, but must use a tempfile'
+ seq 10 > /tmp/parset_input_$$
+ parset res -k echo :::: /tmp/parset_input_$$
+ echo "${res[0]}"
+ echo "${res[9]}"
+ rm /tmp/parset_input_$$
+
+ echo 'or process substitution'
+ parset res -k echo :::: <(seq 0 10)
+ echo "${res[0]}"
+ echo "${res[9]}"
- echo 'Commands with newline require -0'
- parset var -k -0 ::: 'echo "line1
+ echo 'Commands with newline require -0'
+ parset var -k -0 ::: 'echo "line1
line2"' 'echo "command2"'
- echo "${var[0]}"
+ echo "${var[0]}"
+ ) | replace_tmpdir
}
par_parset2() {
- . `which env_parallel.bash`
echo '### parset into array'
- parset arr1 echo ::: foo bar baz
- echo ${arr1[0]} ${arr1[1]} ${arr1[2]}
+ (
+ . `which env_parallel.bash`
- echo '### parset into vars with comma'
- parset comma3,comma2,comma1 echo ::: baz bar foo
- echo $comma1 $comma2 $comma3
-
- echo '### parset into vars with space'
- parset 'space3 space2 space1' echo ::: baz bar foo
- echo $space1 $space2 $space3
-
- echo '### parset with newlines'
- parset 'newline3 newline2 newline1' seq ::: 3 2 1
- echo "$newline1"
- echo "$newline2"
- echo "$newline3"
-
- echo '### parset into indexed array vars'
- parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo
- echo ${myarray[*]}
- echo ${myarray[4]} ${myarray[5]} ${myarray[5]}
-
- echo '### env_parset'
- alias myecho='echo myecho "$myvar" "${myarr[1]}"'
- myvar="myvar"
- myarr=("myarr 0" "myarr 1" "myarr 2")
- mynewline="`echo newline1;echo newline2;`"
- env_parset arr1 myecho ::: foo bar baz
- echo "${arr1[0]} ${arr1[1]} ${arr1[2]}"
- env_parset comma3,comma2,comma1 myecho ::: baz bar foo
- echo "$comma1 $comma2 $comma3"
- env_parset 'space3 space2 space1' myecho ::: baz bar foo
- echo "$space1 $space2 $space3"
- env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1
- echo "$newline1"
- echo "$newline2"
- echo "$newline3"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-1s.sh
^
|
@@ -39,32 +39,38 @@
par_file_rpl() {
echo '### file as replacement string'
+ TMPDIR=/tmp/parallel-local-1s/" "/bar
+ mkdir -p "$TMPDIR"
tmp="$(mktemp)"
(
- echo contest1
- echo contest2
+ echo content1
+ echo content2
echo File name "$tmp"
) > "$tmp"
(
- # {filename}
+ echo '# {filename}'
parallel -k --header 0 echo {"$tmp"} :::: "$tmp"
- # Conflict: both {filename} and {/regexp/rpl}
+
+ echo '# Conflict: both {filename} and {/regexp/rpl}'
parallel -k --plus echo {"$tmp"} :::: "$tmp"
+ echo '# --header 0 --plus'
parallel -k --header 0 --plus echo {"$tmp"} :::: "$tmp"
tmpd="$(mktemp -d)"
cd "$tmpd"
- # Conflict: both {filename} and {n}
+
+ echo '# Conflict: both {filename} and {n}'
seq 1 > 1
seq 2 > 2
seq 3 > 3
parallel -k echo {1} :::: 3 2 1
parallel -k --header 0 echo {1} :::: 3 2 1
- # Conflict: both {filename} and {=expr=}
+
+ echo '# Conflict: both {filename} and {=expr=}'
seq 3 > =chop=
parallel -k echo {=chop=} ::: =chop=
parallel -k --header 0 echo {=chop=} ::: =chop=
rm -rf "$tmpd"
- ) | perl -pe 's/tmp\.\w+/tmp.XXXXXX/g'
+ ) | replace_tmpdir | perl -pe 's/tmp\.\w+/tmp.XXXXXX/g'
rm "$tmp"
}
@@ -102,7 +108,7 @@
}
par_skip_first_line() {
- tmp=$(mktemp)
+ tmp="$(mktemp)"
(echo `seq 10000`;echo MyHeader; seq 10) |
parallel -k --skip-first-line --pipe --block 10 --header '1' cat
(echo `seq 10000`;echo MyHeader; seq 10) > "$tmp"
@@ -152,21 +158,21 @@
}
par_results_compress() {
- tmpdir=$(mktemp)
+ tmpdir="$(mktemp)"
rm -r "$tmpdir"
- parallel --results $tmpdir --compress echo ::: 1
+ parallel --results "$tmpdir" --compress echo ::: 1
cat "$tmpdir"/*/*/stdout | pzstd -qdc
rm -r "$tmpdir"
- parallel --results $tmpdir echo ::: 1
+ parallel --results "$tmpdir" echo ::: 1
cat "$tmpdir"/*/*/stdout
rm -r "$tmpdir"
- parallel --results $tmpdir --compress echo ::: ' ' /
+ parallel --results "$tmpdir" --compress echo ::: ' ' /
cat "$tmpdir"/*/*/stdout | pzstd -qdc
rm -r "$tmpdir"
- parallel --results $tmpdir echo ::: ' ' /
+ parallel --results "$tmpdir" echo ::: ' ' /
cat "$tmpdir"/*/*/stdout
rm -r "$tmpdir"
@@ -197,11 +203,15 @@
par_pipe_unneeded_procs() {
echo 'bug #34241: --pipe should not spawn unneeded processes - part 2'
+ tmp="$(mktemp -d)"
+ cd "$tmp"
seq 500 | parallel --tmpdir . -j10 --pipe --block 1k --files wc >/dev/null
ls *.par | wc -l; rm *.par
seq 500 | parallel --tmpdir . -j10 --pipe --block 1k --files --dry-run wc >/dev/null
echo No .par should exist
stdout ls *.par
+ cd ..
+ rm -r "$tmp"
}
par_interactive() {
@@ -399,8 +409,9 @@
echo '### bug #42902: profiles containing arguments with space'
echo "--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' " > ~/.parallel/FULLPATH;
parallel -JFULLPATH echo FULLPATH ::: $0
- PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' -v" parallel echo FULLPATH ::: $0
+ PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' -v" parallel echo FULLPATH ::: "$0"
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: . |
+ replace_tmpdir |
perl -pe 's:parallel./:parallel/:'
}
@@ -1065,11 +1076,11 @@
}
par_block_negative_prefix() {
- tmp=`mktemp`
- seq 100000 > $tmp
+ tmp="$(mktemp)"
+ seq 100000 > "$tmp"
echo '### This should generate 10*2 jobs'
- parallel -j2 -a $tmp --pipepart --block -0.01k -k md5sum | wc
- rm $tmp
+ parallel -j2 -a "$tmp" --pipepart --block -0.01k -k md5sum | wc
+ rm "$tmp"
}
par_sql_colsep() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-30s.sh
^
|
@@ -123,29 +123,36 @@
export -f in_shell_run_command
runit() {
+ doit() {
+ s=100
+ rm -f /tmp/mysleep
+ cp /bin/sleep /tmp/mysleep
+
+ parallel -kj500% --argsep ,, --tag in_shell_run_command {1} {2} \
+ ,, "$@" ,, \
+ "/tmp/mysleep "$s \
+ "parallel --halt-on-error now,fail=1 /tmp/mysleep ::: "$s \
+ "parallel --halt-on-error now,done=1 /tmp/mysleep ::: "$s \
+ "parallel --halt-on-error now,done=1 /bin/true ::: "$s \
+ "parallel --halt-on-error now,done=1 exit ::: "$s \
+ "true;/tmp/mysleep "$s \
+ "parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: "$s \
+ "parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: "$s \
+ "parallel --halt-on-error now,done=1 'true;/bin/true' ::: "$s \
+ "parallel --halt-on-error now,done=1 'true;exit' ::: "$s
+ }
+ echo '# Ideally the command should return the same'
+ echo '# with or without parallel'
# These give the same exit code prepended with 'true;' or not
OK="ash csh dash fish fizsh ksh2020 posh rc sash sh tcsh"
# These do not give the same exit code prepended with 'true;' or not
- BAD="bash fdsh ksh93 mksh static-sh yash zsh"
- s=100
- rm -f /tmp/mysleep
- cp /bin/sleep /tmp/mysleep
-
- echo '# Ideally the command should return the same'
- echo '# with or without parallel'
- echo '# but fish 2.4.0 returns 1 while X.X.X returns 0'
- parallel -kj500% --argsep ,, --tag in_shell_run_command {1} {2} \
- ,, $OK $BAD ,, \
- "/tmp/mysleep "$s \
- "parallel --halt-on-error now,fail=1 /tmp/mysleep ::: "$s \
- "parallel --halt-on-error now,done=1 /tmp/mysleep ::: "$s \
- "parallel --halt-on-error now,done=1 /bin/true ::: "$s \
- "parallel --halt-on-error now,done=1 exit ::: "$s \
- "true;/tmp/mysleep "$s \
- "parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: "$s \
- "parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: "$s \
- "parallel --halt-on-error now,done=1 'true;/bin/true' ::: "$s \
- "parallel --halt-on-error now,done=1 'true;exit' ::: "$s
+ BAD="bash ksh93 mksh static-sh yash zsh"
+ doit $OK $BAD
+ # fdsh does not like weird TMPDIR with \n
+ BROKEN="fdsh"
+ TMPDIR=/tmp
+ cd /tmp
+ doit $BROKEN
}
export -f runit
@@ -307,12 +314,12 @@
generator="$1"
colsep="$2"
groupby="$3"
- tmp=`mktemp`
+ tmp=$(mktemp)
echo "### test $generator | --colsep $colsep --groupby $groupby"
- $generator > $tmp
+ $generator > "$tmp"
parallel --header 1 --pipepart -k \
- -a $tmp --colsep "$colsep" --groupby "$groupby" 'echo NewRec; wc'
+ -a "$tmp" --colsep "$colsep" --groupby "$groupby" 'echo NewRec; wc'
}
export -f tester
parallel --tag -k tester \
@@ -348,7 +355,7 @@
export -f a_run
echo "### Test for memory leaks"
echo "Of 300 runs of 1 job at least one should be bigger than a 3000 job run"
- . `which env_parallel.bash`
+ . $(which env_parallel.bash)
parset small_max,big ::: 'seq 300 | parallel a_run 1 | jq -s max' 'a_run 3000'
if [ $small_max -lt $big ] ; then
echo "Bad: Memleak likely."
@@ -571,4 +578,4 @@
export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | sort |
# parallel --delay 0.3 --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
- parallel --delay 0.3 --timeout 1000% -j6 --lb --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
+ parallel --delay 0.3 --timeout 3000% -j6 --lb --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-3s.sh
^
|
@@ -22,9 +22,10 @@
echo '--retries 0 = inf'
echo this wraps at 256 and should retry until it wraps
tmp=$(mktemp)
- parallel --retries 0 -u 'printf {} >> '$tmp';a=`stat -c %s '$tmp'`; echo -n " $a"; exit $a' ::: a
+ qtmp=$(parallel -0 --shellquote ::: "$tmp")
+ parallel --retries 0 -u 'printf {} >> '"$qtmp"';a=$(stat -c %s '"$qtmp"'); echo -n " $a"; exit $a' ::: a
echo
- rm -f $tmp
+ rm -f "$tmp"
}
par_prefix_for_L_n_N_s() {
@@ -135,7 +136,10 @@
}
export -f run gp oct pl py r rb sh
- parallel --tag -k run ::: gp oct pl py r rb sh
+ parallel --tag -k run ::: gp oct pl py rb sh
+ # R fails if TMPDIR contains space
+ TMPDIR=/tmp
+ parallel --tag -k run ::: r
}
par_pipe_regexp() {
@@ -300,8 +304,8 @@
correct="$(seq 1000000 | parallel -k --tee --pipe ::: wc head tail 'sleep 1')"
echo "$correct"
echo 'tee without --output-error=warn-nopipe support'
- tmpdir=$(mktemp)
- cat > tmp/tee <<-EOF
+ tmpdir=$(mktemp -d)
+ cat > "$tmpdir"/tee <<-EOF
#!/usr/bin/perl
if(grep /output-error=warn-nopipe/, @ARGV) {
@@ -309,8 +313,8 @@
}
exec "/usr/bin/tee", @ARGV;
EOF
- chmod +x tmp/tee
- PATH=tmp:$PATH
+ chmod +x "$tmpdir"/tee
+ PATH="$tmpdir":$PATH
# This gives incomplete output due to:
# * tee not supporting --output-error=warn-nopipe
# * sleep closes stdin before EOF
@@ -321,6 +325,8 @@
else
echo OK
fi
+ rm "$tmpdir"/tee
+ rmdir "$tmpdir"
}
par_tee_too_many_args() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-parsort.sh
^
|
@@ -6,7 +6,7 @@
setup() {
tmp=$(mktemp)
- perl -pe 's/\n/\n\0/' >$tmp <<EOF
+ perl -pe 's/\n/\n\0/' >"$tmp" <<EOF
chr1 1 Sample 1
chr1 11 Sample 1
chr1 111 Sample 1
@@ -67,10 +67,10 @@
parsort_test() {
echo "### parsort $@"
- parsort "$@" $tmp | md5sum
- sort "$@" $tmp | md5sum
- parsort "$@" < $tmp | md5sum
- sort "$@" < $tmp | md5sum
+ parsort "$@" "$tmp" | md5sum
+ sort "$@" "$tmp" | md5sum
+ parsort "$@" < "$tmp" | md5sum
+ sort "$@" < "$tmp" | md5sum
}
export -f parsort_test
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-race01.sh
^
|
@@ -22,9 +22,9 @@
echo 'parcat output should mix: a b a b'
mktempfifo() {
tmp=$(mktemp)
- rm $tmp
- mkfifo $tmp
- echo $tmp
+ rm "$tmp"
+ mkfifo "$tmp"
+ echo "$tmp"
}
slow_output() {
string=$1
@@ -34,18 +34,20 @@
}
tmp1=$(mktempfifo)
tmp2=$(mktempfifo)
- slow_output a > $tmp1 &
+ slow_output a > "$tmp1" &
sleep 1
- slow_output b > $tmp2 &
- parcat $tmp1 $tmp2 | tr -s ab
+ slow_output b > "$tmp2" &
+ parcat "$tmp1" "$tmp2" | tr -s ab
}
par_tmux_termination() {
echo '### --tmux test - check termination'
+ TMPDIR=/tmp
doit() {
perl -e 'map {printf "$_%o%c\n",$_,$_}1..255' |
stdout parallel --tmux 'sleep 0.2;echo {}' :::: - ::: a b |
- perl -pe 's:(/tmp\S*/tms).....:$1XXXXX:;'
+ replace_tmpdir |
+ perl -pe 's:(/tms).....:$1XXXXX:;'
}
export -f doit
stdout parallel --timeout 120 doit ::: 1
@@ -117,9 +119,9 @@
doit() {
perl -e '$a=shift;
$m = -M $a < 0.0000001;
- `touch $a`;
+ system "touch", $a;
print "$m\n";
- exit $m;' $1;
+ exit $m;' "$1";
}
export -f doit
before=`date +%s`
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-race02.sh
^
|
@@ -6,6 +6,17 @@
# These fail regularly
+par_semaphore() {
+ echo '### Test if parallel invoked as sem will run parallel --semaphore'
+ sem --id as_sem -u -j2 'echo job1a 1; sleep 3; echo job1b 3'
+ sleep 0.5
+ sem --id as_sem -u -j2 'echo job2a 2; sleep 3; echo job2b 5'
+ sleep 0.5
+ sem --id as_sem -u -j2 'echo job3a 4; sleep 3; echo job3b 6'
+ sem --id as_sem --wait
+ echo done
+}
+
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'
@@ -52,7 +63,7 @@
par_hostgroup() {
echo '### --hostgroup force ncpu'
- parallel --delay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.4{} ::: {1..8} | sort
+ parallel --delay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.4{} ::: {1..8} | sort -u
echo '### --hostgroup two group arg'
parallel -k --sshdelay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.3{} ::: {1..8}@g1+g2 | sort
@@ -61,7 +72,7 @@
parallel --delay 0.2 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.4{} ::: {1..8}@g2
echo '### --hostgroup multiple group arg + unused group'
- parallel --delay 0.2 --hgrp -S @g1/1/parallel@lo -S @g1/3/lo -S @g3/100/tcsh@lo whoami\;sleep 0.8{} ::: {1..8}@g1+g2 | sort
+ parallel --delay 0.2 --hgrp -S @g1/1/parallel@lo -S @g1/3/lo -S @g3/100/tcsh@lo whoami\;sleep 0.8{} ::: {1..8}@g1+g2 | sort -u
echo '### --hostgroup two groups @'
parallel -k --hgrp -S @g1/parallel@lo -S @g2/lo --tag whoami\;echo ::: parallel@g1 tange@g2
@@ -73,7 +84,7 @@
parallel -k --hostgroups -S parallel@lo echo ::: no_group implicit_group@parallel@lo
echo '### --hostgroup -S @group'
- parallel -S @g1/ -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo whoami\;true ::: {1..6} | sort
+ parallel -S @g1/ -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo whoami\;true ::: {1..6} | sort -u
echo '### --hostgroup -S @group1 -Sgrp2'
parallel -S @g1/ -S @g2 -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo whoami\;true ::: {1..6} | sort
@@ -155,15 +166,15 @@
par_resume_failed_k() {
echo '### bug #38299: --resume-failed -k'
tmp=$(mktemp)
- parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
+ parallel -k --resume-failed --joblog "$tmp" echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
echo try 2. Gives failing - not 0
- parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
+ parallel -k --resume-failed --joblog "$tmp" echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
echo with exit 0
- parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit 0 ::: 0 1 2 3 0 1
+ parallel -k --resume-failed --joblog "$tmp" echo job{#} val {}\;exit 0 ::: 0 1 2 3 0 1
sleep 0.5
echo try 2 again. Gives empty
- parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
- rm $tmp
+ parallel -k --resume-failed --joblog "$tmp" echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
+ rm "$tmp"
}
par_testhalt() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-sql.sh
^
|
@@ -28,8 +28,8 @@
echo Exit=$?
wait
echo Exit=$?
- $DEBUG && sort -u $T1 $T2;
- rm $T1 $T2
+ $DEBUG && sort -u "$T1" "$T2";
+ rm "$T1" "$T2"
p_showsqlresult $SERVERURL $TABLE
$DEBUG || sql $SERVERURL "drop table $TABLE;" >/dev/null 2>/dev/null
}
@@ -38,9 +38,9 @@
(
# Make sure all jobs are inserted before starting a worker
sleep 10;
- parallel --sqlworker $DBURL "$@" sleep .3\;echo >$T1
+ parallel --sqlworker $DBURL "$@" sleep .3\;echo >"$T1"
) &
- parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
+ parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >"$T2";
}
par_sqlandworker() {
@@ -68,35 +68,35 @@
}
par_append_different_cmd() {
- parallel --sqlmaster $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
- parallel --sqlmaster +$DBURL sleep .3\;echo {2}-{1} ::: {11..15} ::: {A..E} >>$T2;
- parallel --sqlworker $DBURL >$T1
+ parallel --sqlmaster "$DBURL" sleep .3\;echo ::: {1..5} ::: {a..e} >"$T2";
+ parallel --sqlmaster +"$DBURL" sleep .3\;echo {2}-{1} ::: {11..15} ::: {A..E} >>"$T2";
+ parallel --sqlworker "$DBURL" >"$T1"
}
par_shuf() {
- MD5=$(echo $SERVERURL | md5sum | perl -pe 's/(...).*/$1/')
- T=/tmp/parallel-bug49791-$MD5
- [ -e $T ] && rm -rf $T
- export PARALLEL="--shuf --result $T"
+ MD5=$(echo "$SERVERURL" | md5sum | perl -pe 's/(...).*/$1/')
+ T=/tmp/parallel-bug49791-" <$MD5"
+ [ -e "$T" ] && rm -rf "$T"
+ export PARALLEL="--shuf --result '$T'"
parallel --sqlandworker $DBURL sleep .3\;echo \
- ::: {1..5} ::: {a..e} >$T2;
- parallel --sqlworker $DBURL >$T2 &
- parallel --sqlworker $DBURL >$T2 &
- parallel --sqlworker $DBURL >$T2 &
- parallel --sqlworker $DBURL >$T2 &
+ ::: {1..5} ::: {a..e} >"$T2";
+ parallel --sqlworker $DBURL >"$T2" &
+ parallel --sqlworker $DBURL >"$T2" &
+ parallel --sqlworker $DBURL >"$T2" &
+ parallel --sqlworker $DBURL >"$T2" &
unset PARALLEL
wait;
# Did it compute correctly?
- cat $T/1/*/*/*/stdout
+ cat "$T"/1/*/*/*/stdout
# Did it shuffle
- SHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
- export PARALLEL="--result $T"
- parallel --sqlandworker $DBURL sleep .3\;echo \
- ::: {1..5} ::: {a..e} >$T2;
- parallel --sqlworker $DBURL >$T2 &
- parallel --sqlworker $DBURL >$T2 &
- parallel --sqlworker $DBURL >$T2 &
- parallel --sqlworker $DBURL >$T2 &
+ SHUF=$(sql "$SERVERURL" "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
+ export PARALLEL="--result '$T'"
+ parallel --sqlandworker "$DBURL" sleep .3\;echo \
+ ::: {1..5} ::: {a..e} >"$T2";
+ parallel --sqlworker "$DBURL" >"$T2" &
+ parallel --sqlworker "$DBURL" >"$T2" &
+ parallel --sqlworker "$DBURL" >"$T2" &
+ parallel --sqlworker "$DBURL" >"$T2" &
unset PARALLEL
wait;
NOSHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
@@ -104,8 +104,8 @@
if [ $DIFFSIZE -gt 2500 ]; then
echo OK: Diff bigger than 2500 char
fi
- [ -e $T ] && rm -rf $T
- touch $T1
+ [ -e "$T" ] && rm -rf "$T"
+ touch "$T1"
}
par_sql_joblog() {
@@ -115,10 +115,10 @@
perl -pe 's/\d+\.\d+/999.999/g' | sort -n &
sleep 0.5
T=$(mktemp)
- parallel -k --joblog - --sqlworker $DBURL > $T
+ parallel -k --joblog - --sqlworker $DBURL > "$T"
wait
# Needed because of race condition
- cat $T; rm $T
+ cat "$T"; rm "$T"
echo '### --sqlandworker'
parallel -k --joblog - --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} |
perl -pe 's/\d+\.\d+/999.999/g' | sort -n
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-sql01.sh
^
|
@@ -38,8 +38,8 @@
wait
echo Exit=$?
# For debugging show the tempfiles
- $DEBUG && sort -u $T1 $T2;
- rm $T1 $T2
+ $DEBUG && sort -u "$T1" "$T2";
+ rm "$T1" "$T2"
p_showsqlresult $SERVERURL $TABLE
# Drop the table if not debugging
$DEBUG || sql $SERVERURL "drop table $TABLE;" >/dev/null 2>/dev/null
@@ -50,9 +50,9 @@
(
# Make sure there is work to be done
sleep 6;
- parallel --sqlworker $DBURL "$@" sleep .3\;echo >$T1
+ parallel --sqlworker $DBURL "$@" sleep .3\;echo >"$T1"
) &
- parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
+ parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >"$T2";
}
par_sqlandworker() {
@@ -92,9 +92,9 @@
}
par_append() {
- parallel --sqlmaster $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
- parallel --sqlmaster +$DBURL sleep .3\;echo ::: {11..15} ::: {A..E} >>$T2;
- parallel --sqlworker $DBURL sleep .3\;echo >$T1
+ parallel --sqlmaster $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >"$T2";
+ parallel --sqlmaster +$DBURL sleep .3\;echo ::: {11..15} ::: {A..E} >>"$T2";
+ parallel --sqlworker $DBURL sleep .3\;echo >"$T1"
}
par_shuf() {
@@ -103,11 +103,11 @@
[ -e $T ] && rm -rf $T
export PARALLEL="--shuf --result $T"
parallel --sqlandworker $DBURL sleep .3\;echo \
- ::: {1..5} ::: {a..e} >$T2;
- parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
- parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
- parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
- parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
+ ::: {1..5} ::: {a..e} >"$T2";
+ parallel --sqlworker $DBURL sleep .3\;echo >"$T2" &
+ parallel --sqlworker $DBURL sleep .3\;echo >"$T2" &
+ parallel --sqlworker $DBURL sleep .3\;echo >"$T2" &
+ parallel --sqlworker $DBURL sleep .3\;echo >"$T2" &
unset PARALLEL
wait;
# Did it compute correctly?
@@ -116,11 +116,11 @@
SHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
export PARALLEL="--result $T"
parallel --sqlandworker $DBURL sleep .3\;echo \
- ::: {1..5} ::: {a..e} >$T2;
- parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
- parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
- parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
- parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
+ ::: {1..5} ::: {a..e} >"$T2";
+ parallel --sqlworker $DBURL sleep .3\;echo >"$T2" &
+ parallel --sqlworker $DBURL sleep .3\;echo >"$T2" &
+ parallel --sqlworker $DBURL sleep .3\;echo >"$T2" &
+ parallel --sqlworker $DBURL sleep .3\;echo >"$T2" &
unset PARALLEL
wait;
NOSHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
@@ -129,7 +129,7 @@
echo OK: Diff bigger than 2500 char
fi
[ -e $T ] && rm -rf $T
- touch $T1
+ touch "$T1"
}
par_empty() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-sql02.sh
^
|
@@ -28,8 +28,8 @@
wait
) | wc -l)
sql "$1" "drop table $TABLE;"
- if [ $lines -gt 105 ] ; then
- echo Error: $lines are more than 5% duplicates
+ if [ $lines -gt 110 ] ; then
+ echo Error: $lines are more than 10% duplicates
else
echo OK
fi
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-ssh1.sh
^
|
@@ -34,7 +34,7 @@
echo OK | parallel -S withpassword:@lo:22 echo
}
-par_ssh_ssh() {
+par_--ssh_ssh_in_ssh() {
echo '### bug #61894: Pack ssh code in eval protection'
echo Unquoted ssh should work
parallel --ssh 'ssh lo ssh' -S lo 'hostname;echo' ::: OK
@@ -60,6 +60,8 @@
par_files_nonall() {
echo '### bug #40002: --files and --nonall seem not to work together:'
+ # --files does not work with TMPDIR containing \n
+ TMPDIR=/tmp
parallel --files --nonall -S localhost true | tee >(parallel rm) | wc -l
}
@@ -188,7 +190,7 @@
parallel --nonall -k -S csh@lo,sh@lo 'ls ./?--- ./---? || echo OK' | LC_ALL=C sort
}
-par_onall_transfer() {
+par_--onall_--transfer() {
echo '### bug #46519: --onall ignores --transfer'
touch bug46519.{a,b,c}; rm -f bug46519.?? bug46519.???
parallel --onall --tf bug46519.{} --trc bug46519.{}{} --trc bug46519.{}{}{} -S csh@lo,sh@lo 'ls bug46519.{}; touch bug46519.{}{} bug46519.{}{}{}' ::: a b c
@@ -203,7 +205,7 @@
parallel -S bash@lo --nonall --plus echo {host}
}
-par_remote_load() {
+par__remote_load() {
echo '### Test --load remote'
ssh parallel@lo 'seq 10 | parallel --nice 19 --timeout 15 -j0 -qN0 perl -e while\(1\)\{\ \}' &
sleep 1
@@ -216,6 +218,11 @@
nice -n5 parallel -S lo 'ps -l $$|field 8; true' ::: a
}
+par_hgrp_agrp_comma() {
+ echo '### bug #63722: hostgroup with , breaks parser'
+ stdout parallel --hgrp ::: id@csh@lo,tcsh@lo id@csh@lo,tcsh@lo | sort
+}
+
par_hgrp_agrp() {
echo '### Test --hgrp {hgrp} {agrp}'
parallel --plus --hgrp -S @b+lo/bash@lo,@c+lo/csh@lo --tag 'echo hgrp={hgrp};echo agrp={agrp}' ::: A@b+c B@b C@c D@c+b@u E |
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-ssh2.sh
^
|
@@ -7,7 +7,7 @@
# /tmp/parallel-local-ssh2 will by default be owned by me and should be writable by *@localhost
chmod 777 "$TMPDIR" 2>/dev/null
-par_obey_servers_capacity_slf_reload() {
+par__obey_servers_capacity_slf_reload() {
echo "### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded"
# Pre-20141106 Would reset the number of jobs run on all sshlogin if --slf changed
# Thus must take at least 25 sec to run
@@ -19,7 +19,7 @@
rm /tmp/parallel.bug43518
}
-par_filter_hosts_slf() {
+par_z_filter_hosts_slf() {
echo '### --filter-hosts --slf <()'
parallel --nonall --filter-hosts --slf <(echo localhost) echo OK
}
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-ssh4.sh
^
|
@@ -9,7 +9,7 @@
# SSH only allowed to localhost/lo
-par_sshloginfile() {
+par_z_sshloginfile() {
echo '### --slf with mIxEd cAsE'
tmp=$(mktemp)
(
@@ -21,6 +21,52 @@
rm -f "$tmp"
}
+par__test_different_rsync_versions() {
+ echo '### different versions of rsync need fixups'
+ echo '### no output is good'
+ doit() {
+ rm -f 'a`b`c\<d\$e\{#\}g\"h\ i'$2 'a`b`c\<d\$e\{#\}g\"h\ i'$2.out
+ touch 'a`b`c\<d\$e\{#\}g\"h\ i'$2
+ TMPDIR=/tmp tmp=$(mktemp -d)
+ (
+ echo "#!/bin/bash"
+ echo $1' "$@"'
+ ) > "$tmp"/rsync
+ chmod +x "$tmp"/rsync
+ PATH="$tmp":"$PATH"
+ parallel --trc {}.out -S sh@lo cp {} {}.out ::: 'a`b`c\<d\$e\{#\}g\"h\ i'$2
+ rm 'a`b`c\<d\$e\{#\}g\"h\ i'$2 'a`b`c\<d\$e\{#\}g\"h\ i'$2.out
+ rm -rf "$tmp"
+ }
+ export -f doit
+ stdout parallel --tagstring {/} -k doit {} {/} ::: /usr/local/bin/rsync-v*
+}
+
+par_--nonall_results() {
+ echo '### --results --onall'
+ tmp="$TMPDIR"/onall
+ mkdir -p "$tmp"
+ parallel --results "$tmp"/noslash --onall -Scsh@lo,sh@lo ::: id pwd
+ parallel --results "$tmp"/slash/ --onall -Scsh@lo,sh@lo ::: id pwd
+ parallel --results "$tmp"/rplslash/{}/ --onall -Scsh@lo,sh@lo ::: id pwd
+ parallel --results "$tmp"/rplnoslash/{} --onall -Scsh@lo,sh@lo ::: id pwd
+ parallel --results "$tmp"/rpl1slash/{1}/ --onall -Scsh@lo,sh@lo ::: id pwd
+ parallel --results "$tmp"/rpl1noslash/{1} --onall -Scsh@lo,sh@lo ::: id pwd
+ find "$tmp" -print0 | replace_tmpdir
+ rm -r "$tmp"
+ echo '### --results --nonall'
+ tmp="$TMPDIR"/nonall
+ mkdir -p "$tmp"
+ parallel --results "$tmp"/noslash --nonall -Scsh@lo,sh@lo pwd
+ parallel --results "$tmp"/slash/ --nonall -Scsh@lo,sh@lo pwd
+ parallel --results "$tmp"/rplslash/{}/ --nonall -Scsh@lo,sh@lo pwd
+ parallel --results "$tmp"/rplnoslash/{} --nonall -Scsh@lo,sh@lo pwd
+ parallel --results "$tmp"/rpl1slash/{1}/ --nonall -Scsh@lo,sh@lo pwd
+ parallel --results "$tmp"/rpl1noslash/{1} --nonall -Scsh@lo,sh@lo pwd
+ find "$tmp" -print0 | replace_tmpdir
+ rm -r "$tmp"
+}
+
par_env_underscore() {
echo '### --env _'
echo ignored_var >> ~/.parallel/ignored_vars
@@ -106,38 +152,57 @@
parallel --env A,B,C -k echo '"'"'${}|wc'"'"' ::: A B C'
}
-par_tmux_different_shells() {
+par_--tmux_different_shells() {
echo '### Test tmux works on different shells'
- (stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux echo ::: 1 2 3 4; echo $?) |
- grep -v 'See output';
- (stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux false ::: 1 2 3 4; echo $?) |
- grep -v 'See output';
-
- export PARTMUX='parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux ';
- stdout ssh zsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output';
- stdout ssh zsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output';
- stdout ssh parallel@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $?' | grep -v 'See output';
- stdout ssh parallel@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $?' | grep -v 'See output';
- stdout ssh tcsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output';
- stdout ssh tcsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output';
- echo "# command is currently too long for csh. Maybe it can be fixed?";
- stdout ssh csh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output';
- stdout ssh csh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output'
+ short_TMPDIR() {
+ # TMPDIR must be short for -M
+ export TMPDIR=/tmp/ssh/'
+`touch /tmp/tripwire`
+'
+ TMPDIR=/tmp
+ mkdir -p "$TMPDIR"
+ }
+ short_TMPDIR
+ (
+ stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux echo ::: 1 2 3 4; echo $?
+ stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux false ::: 1 2 3 4; echo $?
+
+ export PARTMUX='parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux ';
+ stdout ssh zsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status'
+ stdout ssh zsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status'
+ stdout ssh parallel@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $?'
+ stdout ssh parallel@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $?'
+ stdout ssh tcsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status'
+ stdout ssh tcsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status'
+ echo "# command is currently too long for csh. Maybe it can be fixed?";
+ stdout ssh csh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status'
+ stdout ssh csh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status'
+ ) | replace_tmpdir | perl -pe 's/tms...../tmsXXXXX/g'
}
-par_tmux_length() {
+par_--tmux_length() {
echo '### works'
- stdout parallel -Sparallel@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ |
- perl -pe 's:/tmp/\S+::'
- stdout parallel -Sparallel@lo --tmux echo ::: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
- perl -pe 's:/tmp/\S+::'
-
- echo '### These blocked due to length'
- stdout parallel -Slo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'
- stdout parallel -Scsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'
- stdout parallel -Stcsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'
- stdout parallel -Szsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'
- stdout parallel -Scsh@lo --tmux echo ::: 111111111111111111111111111111111111111111111111111111111 | grep -v 'See output'
+ short_TMPDIR() {
+ # TMPDIR must be short for -M
+ export TMPDIR=/tmp/ssh/'
+`touch /tmp/tripwire`
+'
+ TMPDIR=/tmp
+ mkdir -p "$TMPDIR"
+ }
+ short_TMPDIR
+ (
+ stdout parallel -Sparallel@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@
+ stdout parallel -Sparallel@lo --tmux echo ::: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+ echo '### These blocked due to length'
+ stdout parallel -Slo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@
+ stdout parallel -Scsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@
+ stdout parallel -Stcsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@
+ stdout parallel -Szsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@
+ stdout parallel -Scsh@lo --tmux echo ::: 111111111111111111111111111111111111111111111111111111111
+ ) | replace_tmpdir |
+ perl -pe 's:tms.....:tmsXXXXX:'
}
par_transfer_return_multiple_inputs() {
@@ -151,12 +216,12 @@
rm /tmp/file1 /tmp/file2 /tmp/file1.a /tmp/file2.b
}
-par_csh_nice() {
+par_z_csh_nice() {
echo '### bug #44143: csh and nice'
parallel --nice 1 -S csh@lo setenv B {}\; echo '$B' ::: OK
}
-par_multiple_hosts_repeat_arg() {
+par_z_multiple_hosts_repeat_arg() {
echo '### bug #45575: -m and multiple hosts repeats first args'
seq 1 3 | parallel -X -S 2/lo,2/: -k echo
}
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-ssh5.sh
^
|
@@ -1,12 +1,42 @@
#!/bin/bash
-# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
+# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
#
# SPDX-License-Identifier: GPL-3.0-or-later
# SSH only allowed to localhost/lo
-par_autossh() {
+
+
+par_ssh_cmd_with_newline() {
+ echo '### Check --ssh with \n works'
+ ssh=$(mktemp)
+ cp -a /usr/bin/ssh "$ssh"
+ qssh=$(parallel -0 --shellquote "$ssh")
+ parallel --ssh "$qssh" -S sh@lo ::: id
+}
+
+par_controlmaster() {
+ echo '### Check -M works if TMPDIR contains space'
+ short_TMPDIR() {
+ # TMPDIR must be short for -M
+ export TMPDIR=/tmp/ssh/'
+`touch /tmp/tripwire`
+'
+ TMPDIR=/tmp
+ mkdir -p "$TMPDIR"
+ }
+ short_TMPDIR
+
+ (
+ seq 1 3 | parallel -j10 --retries 3 -k -M -S sh@lo echo
+ seq 1 3 | parallel -j10 --retries 3 -k -M -S sh@lo echo
+ )
+ echo Part2
+ stdout parallel -j1 -k -M -S sh@lo echo ::: OK | replace_tmpdir
+}
+
+par_--ssh_autossh() {
echo '### --ssh autossh'
(
export PARALLEL_SSH=autossh; export AUTOSSH_PORT=0
@@ -35,12 +65,21 @@
seq 10000 | xargs | parallel --pipe -S 8/localhost cat 2>/dev/null | wc
}
-par_controlmaster_eats() {
+par_--controlmaster_eats() {
echo 'bug #36707: --controlmaster eats jobs'
- seq 2 | parallel -k --controlmaster --sshlogin localhost echo OK{}
+ short_TMPDIR() {
+ # TMPDIR must be short for -M
+ export TMPDIR=/tmp/ssh/'
+`touch /tmp/tripwire`
+'
+ TMPDIR=/tmp
+ mkdir -p "$TMPDIR"
+ }
+ short_TMPDIR
+ seq 2 | parallel -k --controlmaster --sshlogin lo echo OK{}
}
-par_lsh() {
+par_--ssh_lsh() {
echo '### --ssh lsh'
parallel --ssh 'lsh -c aes256-ctr' -S lo echo ::: OK
echo OK | parallel --ssh 'lsh -c aes256-ctr' --pipe -S csh@lo cat
@@ -66,7 +105,7 @@
env_parallel -Slo --nonall doit works
}
-par_command_len_shellquote() {
+par_--shellquote_command_len() {
echo '### test quoting will not cause a crash if too long'
# echo "'''" | parallel --shellquote --shellquote --shellquote --shellquote
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-ssh6.sh
^
|
@@ -184,7 +184,7 @@
parallel -S '5//usr/bin/ssh '$SSHLOGIN1 --plus echo {sshlogin} {} {host} ::: and
}
-par_timeout_onall() {
+par_onall_timeout() {
echo '### --timeout --onall on remote machines: 2*slept 1, 2 jobs failed'
parallel -j0 --timeout 6 --onall -S localhost,$SSHLOGIN1 'sleep {}; echo slept {}' ::: 1 8 9
echo jobs failed: $?
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-ssh7.sh
^
|
@@ -10,7 +10,7 @@
## par_*_man = tests from the man page
#
-par_ash_man() {
+par__man_ash() {
echo '### ash'
myscript=$(cat <<'_EOF'
@@ -67,7 +67,7 @@
ssh ash@lo "$myscript"
}
-par_bash_man() {
+par__man_bash() {
echo '### bash'
myscript=$(cat <<'_EOF'
@@ -139,7 +139,7 @@
ssh bash@lo "$myscript"
}
-par_csh_man() {
+par__man_csh() {
echo '### csh'
myscript=$(cat <<'_EOF'
echo "### From man env_parallel"
@@ -183,7 +183,7 @@
stdout ssh csh@lo "$myscript" | LC_ALL=C sort
}
-par_dash_man() {
+par__man_dash() {
echo '### dash'
myscript=$(cat <<'_EOF'
@@ -240,7 +240,7 @@
ssh dash@lo "$myscript"
}
-par_fish_man() {
+par__man_fish() {
echo '### fish'
myscript=$(cat <<'_EOF'
echo "### From man env_parallel"
@@ -298,7 +298,7 @@
ssh fish@lo "$myscript" | LC_ALL=C sort
}
-par_ksh_man() {
+par__man_ksh() {
echo '### ksh'
myscript=$(cat <<'_EOF'
echo "### From man env_parallel"
@@ -365,7 +365,7 @@
ssh ksh@lo "$myscript"
}
-par_mksh_man() {
+par__man_mksh() {
echo '### mksh'
myscript=$(cat <<'_EOF'
echo "### From man env_parallel"
@@ -430,7 +430,7 @@
ssh mksh@lo "$myscript"
}
-par_sh_man() {
+par__man_sh() {
echo '### sh'
myscript=$(cat <<'_EOF'
@@ -487,7 +487,7 @@
ssh sh@lo "$myscript"
}
-par_tcsh_man() {
+par__man_tcsh() {
echo '### tcsh'
myscript=$(cat <<'_EOF'
echo "### From man env_parallel"
@@ -531,7 +531,7 @@
ssh -tt tcsh@lo "$myscript"
}
-par_zsh_man() {
+par__man_zsh() {
echo '### zsh'
# eval is needed make aliases work
myscript=$(cat <<'_EOF'
@@ -605,7 +605,7 @@
}
-par_ash_underscore() {
+par_--env_underscore_ash() {
echo '### ash'
myscript=$(cat <<'_EOF'
echo "### Testing of --env _"
@@ -653,7 +653,7 @@
ssh ash@lo "$myscript"
}
-par_bash_underscore() {
+par_--env_underscore_bash() {
echo '### bash'
myscript=$(cat <<'_EOF'
echo "### Testing of --env _"
@@ -702,7 +702,7 @@
stdout ssh bash@lo "$myscript"
}
-par_csh_underscore() {
+par_--env_underscore_csh() {
echo '### csh'
myscript=$(cat <<'_EOF'
echo "### Testing of --env _"
@@ -737,7 +737,7 @@
ssh -tt csh@lo "$myscript"
}
-par_dash_underscore() {
+par_--env_underscore_dash() {
echo '### dash'
myscript=$(cat <<'_EOF'
echo "### Testing of --env _"
@@ -785,7 +785,7 @@
ssh dash@lo "$myscript"
}
-par_fish_underscore() {
+par_--env_underscore_fish() {
echo '### fish'
myscript=$(cat <<'_EOF'
echo "Fish is broken"
@@ -849,7 +849,7 @@
perl -ne '/fish:|fish\(/ and next; print'
}
-par_ksh_underscore() {
+par_--env_underscore_ksh() {
echo '### ksh'
myscript=$(cat <<'_EOF'
echo "### Testing of --env _"
@@ -897,7 +897,7 @@
ssh ksh@lo "$myscript"
}
-par_mksh_underscore() {
+par_--env_underscore_mksh() {
echo '### mksh'
myscript=$(cat <<'_EOF'
echo "### Testing of --env _"
@@ -945,7 +945,7 @@
ssh mksh@lo "$myscript"
}
-par_sh_underscore() {
+par_--env_underscore_sh() {
echo '### sh'
myscript=$(cat <<'_EOF'
echo "### Testing of --env _"
@@ -993,7 +993,7 @@
ssh sh@lo "$myscript"
}
-par_tcsh_underscore() {
+par_--env_underscore_tcsh() {
echo '### tcsh'
myscript=$(cat <<'_EOF'
echo "### Testing of --env _"
@@ -1028,7 +1028,7 @@
ssh -tt tcsh@lo "$myscript"
}
-par_zsh_underscore() {
+par_--env_underscore_zsh() {
echo '### zsh'
myscript=$(cat <<'_EOF'
echo "### Testing of --env _"
@@ -1086,7 +1086,7 @@
# + remote, locally
# + variables, variables with funky content, arrays, assoc array, functions, aliases
-par_ash_funky() {
+par_funky_ash() {
myscript=$(cat <<'_EOF'
. `which env_parallel.ash`;
@@ -1119,7 +1119,7 @@
ssh ash@lo "$myscript" 2>&1 | LC_ALL=C sort
}
-par_bash_funky() {
+par_funky_bash() {
myscript=$(cat <<'_EOF'
. `which env_parallel.bash`;
@@ -1152,7 +1152,7 @@
ssh bash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-ssh8.sh
^
|
@@ -70,13 +70,13 @@
uniq
}
-par_keep_order() {
+par_z_keep_order() {
echo '### Test --keep-order'
seq 0 2 |
parallel --keep-order -j100% -S 1/:,2/parallel@lo -q perl -e 'sleep 1;print "job{}\n";exit({})'
}
-par_keeporder() {
+par_z_keeporder() {
echo '### Test --keeporder'
seq 0 2 |
parallel --keeporder -j100% -S 1/:,2/parallel@lo -q perl -e 'sleep 1;print "job{}\n";exit({})'
@@ -87,7 +87,7 @@
parallel --load 100% -S csh@lo echo ::: a
}
-par_bar_m() {
+par_z_bar_m() {
echo '### test --bar -m'
stdout parallel --bar -P 2 -m sleep ::: 1 1 2 2 3 3 |
perl -pe 's/\r/\n/g'|
@@ -125,7 +125,7 @@
retries 4 48 49
}
-par_csh_environment_variables_set() {
+par_z_csh_environment_variables_set() {
echo '### Check $PARALLEL_PID $PARALLEL_SEQ are set in csh'
parallel -S csh@localhost 'echo $PARALLEL_PID $PARALLEL_SEQ {}| wc -w' ::: a
}
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-ssh9.sh
^
|
@@ -152,7 +152,7 @@
par_env_parallel_big_env() {
echo '### bug #54128: command too long when exporting big env'
. `which env_parallel.bash`
- a=`rand | perl -pe 's/\0//g'| head -c 20000`
+ a=`rand | perl -pe 's/\0//g'| head -c 15000`
env_parallel -Slo echo should not ::: fail 2>&1
a=`rand | perl -pe 's/\0//g'| head -c 25000`
env_parallel -Slo echo should ::: fail 2>/dev/null || echo OK
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local10.sh
^
|
@@ -5,6 +5,12 @@
# SPDX-License-Identifier: GPL-3.0-or-later
echo '### Test with old perl libs'
+
+pwd=$(pwd)
+# If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+testsuitedir=${testsuitedir:-$pwd}
+cd "$testsuitedir"
+
# Old libraries are put into input-files/perllib
PERL5LIB=input-files/perllib:../input-files/perllib; export PERL5LIB
@@ -19,3 +25,11 @@
grep -v '\$' |
grep -v '] read(6' |
grep -v input-files/perllib
+
+par_make_deb_package() {
+ echo '### Test make .deb package';
+ cd ~/privat/parallel/packager/debian;
+ stdout make | grep 'To install the GNU Parallel Debian package, run:'
+}
+
+par_make_deb_package
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local104.sh
^
|
@@ -4,30 +4,34 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
+pwd=$(pwd)
+# If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+testsuitedir=${testsuitedir:-$pwd}
rm -rf tmp 2>/dev/null
-cd input-files
-tar xjf random_dirs_no_newline.tar.bz2
-cd ..
-cp -a input-files/random_dirs_no_newline tmp
+(
+ cd "$testsuitedir"/input-files
+ tar xjf random_dirs_no_newline.tar.bz2
+)
+cp -a "$testsuitedir"/input-files/random_dirs_no_newline tmp
cd tmp
echo '### Tests if special dir names causes problems'
ls | parallel -v touch -- {}/abc-{}-{} 2>&1 | perl -e 'print sort (<>)' | md5sum
-echo -n 'There are '
+echo -n 'There are '
find . -type d -print0 | perl -0 -ne '$a++;END{print $a}'
echo -n ' dirs with '
find . -type f -print0 | perl -0 -ne '$a++;END{print $a}'
echo ' files'
echo 'Removing files'
ls | parallel -v rm -- {}/abc-{}-{} 2>&1 | perl -e 'print sort (<>)' | md5sum
-echo -n 'There are '
+echo -n 'There are '
find . -type d -print0 | perl -0 -ne '$a++;END{print $a}'
echo -n ' dirs with '
find . -type f -print0 | perl -0 -ne '$a++;END{print $a}'
echo ' files'
echo 'Removing dirs'
ls | parallel -v rmdir -- {} 2>&1 | perl -e 'print sort (<>)' | md5sum
-echo -n 'There are '
+echo -n 'There are '
find . -type d -print0 | perl -0 -ne '$a++;END{print $a}'
echo -n ' dirs with '
find . -type f -print0 | perl -0 -ne '$a++;END{print $a}'
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local105.sh
^
|
@@ -7,8 +7,10 @@
TMP=/run/shm/parallel_local105
rm -rf $TMP 2>/dev/null
mkdir -p $TMP
-tar -C $TMP -xf input-files/random_dirs_with_newline.tar.bz2
-
+pwd=$(pwd)
+# If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+testsuitedir=${testsuitedir:-$pwd}
+tar -C $TMP -xf "$testsuitedir"/input-files/random_dirs_with_newline.tar.bz2
cd $TMP/random_dirs_with_newline
# tests if special dir names causes problems
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local13.sh
^
|
@@ -6,7 +6,11 @@
echo '### Tests from xargs'
-rsync -Ha --delete input-files/xargs-inputs/ tmp/
+pwd=$(pwd)
+# If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+testsuitedir=${testsuitedir:-$pwd}
+
+rsync -Ha --delete "$testsuitedir"/input-files/xargs-inputs/ tmp/
cd tmp
PARALLEL=-j8
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local15.sh
^
|
@@ -6,10 +6,12 @@
TMP=/run/shm/parallel_$$
-pwd=`pwd`
+pwd=$(pwd)
+# If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+testsuitedir=${testsuitedir:-$pwd}
mkdir -p $TMP
cd $TMP/
-tar xjf "$pwd"/input-files/testdir.tar.bz2
+tar xjf "$testsuitedir"/input-files/testdir.tar.bz2
echo echo test of cat pipe sh | parallel -j 50 2>&1
find . -name '*.jpg' | parallel -j +0 convert -geometry 120 {} {//}/thumb_{/}
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local150.sh
^
|
@@ -4,6 +4,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
+mkdir -p tmp
cd tmp
median() { perl -e '@a=sort {$a<=>$b} <>;print $a[$#a/2]';}
@@ -66,10 +67,6 @@
stdout parallel echo ::: '/tmp/foo[123]';
rm /tmp/foo1
-echo '### Test make .deb package';
- cd ~/privat/parallel/packager/debian;
- stdout make | grep 'To install the GNU Parallel Debian package, run:'
-
echo '### Test basic --arg-sep'
parallel -k echo ::: a b
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local2.sh
^
|
@@ -5,15 +5,17 @@
# SPDX-License-Identifier: GPL-3.0-or-later
cpuburn=$(mktemp)
+qcpuburn=$(parallel -0 --shellquote ::: "$cpuburn")
(echo '#!/usr/bin/perl'
- echo "eval{setpriority(0,0,9)}; while(1){}") > $cpuburn
-chmod 700 $cpuburn
+ echo "eval{setpriority(0,0,9)}; while(1){}") > "$cpuburn"
+chmod 700 "$cpuburn"
+basename=$(basename "$cpuburn")
forceload () {
# Force load
LOAD=$1
# Start 10 times as many cpuburn
- seq 0 0.1 $1 | parallel -j0 timeout 20 $cpuburn 2>/dev/null &
+ seq 0 0.1 $1 | parallel -j0 timeout 20 "$qcpuburn" 2>/dev/null &
PID=$!
# Give GNU Parallel 1 second to startup
sleep 1
@@ -37,15 +39,15 @@
EOF
# Make sure we got all the cpuburn killed
-killall $(basename $cpuburn) 2>/dev/null
+killall "$basename" 2>/dev/null
echo '### Test too slow spawning'
# Let the commands below run during high load
-seq 1000 | timeout 20 parallel -j400% -N0 $cpuburn 2>/dev/null &
+seq 1000 | timeout 20 parallel -j400% -N0 "$qcpuburn" 2>/dev/null &
PID=$!
seq 1 1000 | stdout nice nice parallel --halt 1 -uj0 -N0 kill $PID |
- perl -pe '/parallel: Warning: Starting \d+ processes took/ and do {close STDIN; `kill '$PID';killall '$(basename $cpuburn)'`; print "OK\n"; exit }';
+ perl -pe '/parallel: Warning: Starting \d+ processes took/ and do {close STDIN; `kill '$PID';killall "$basename"`; print "OK\n"; exit }';
# Make sure we got all the cpuburn killed
-killall $(basename $cpuburn) 2>/dev/null
-rm $cpuburn
+killall "$basename" 2>/dev/null
+rm "$cpuburn"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local21.sh
^
|
@@ -4,23 +4,32 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
+tmp="$(mktemp -d)"
+# Test with tmpdir with spaces
+TMPDIR="$tmp/ "
+export TMPDIR
+mkdir -p "$TMPDIR"
+
par_basic_shebang_wrap() {
echo "### Test basic --shebang-wrap"
- cat <<EOF > /tmp/basic--shebang-wrap
+ script="$TMPDIR"/basic--shebang-wrap
+ qscript=$(parallel -0 --shellquote ::: "$script")
+ cat <<EOF > "$script"
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/perl
print "Shebang from perl with args @ARGV\n";
EOF
- chmod 755 /tmp/basic--shebang-wrap
- /tmp/basic--shebang-wrap arg1 arg2
+ chmod 755 "$script"
+ args() { echo arg1; echo arg2; echo "arg3.1 arg3.2"; }
+ "$script" "$(args)"
echo "### Test basic --shebang-wrap Same as"
- parallel -k /usr/bin/perl /tmp/basic--shebang-wrap ::: arg1 arg2
+ parallel -k /usr/bin/perl "$qscript" ::: "$(args)"
echo "### Test basic --shebang-wrap stdin"
- (echo arg1; echo arg2) | /tmp/basic--shebang-wrap
+ args | "$script"
echo "### Test basic --shebang-wrap Same as"
- (echo arg1; echo arg2) | parallel -k /usr/bin/perl /tmp/basic--shebang-wrap
- rm /tmp/basic--shebang-wrap
+ args | parallel -k /usr/bin/perl "$qscript"
+ rm "$script"
}
par_shebang_with_parser_options() {
@@ -28,179 +37,186 @@
seq 4 5 >/tmp/in45
echo "### Test --shebang-wrap with parser options"
- cat <<EOF > /tmp/with-parser--shebang-wrap
+ script="$TMPDIR"/with-parser--shebang-wrap
+ qscript=$(parallel -0 --shellquote ::: "$script")
+ cat <<EOF > "$script"
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/perl -p
print "Shebang from perl with args @ARGV\n";
EOF
- chmod 755 /tmp/with-parser--shebang-wrap
- /tmp/with-parser--shebang-wrap /tmp/in12 /tmp/in45
+ chmod 755 "$script"
+ "$script" /tmp/in12 /tmp/in45
echo "### Test --shebang-wrap with parser options Same as"
- parallel -k /usr/bin/perl -p /tmp/with-parser--shebang-wrap ::: /tmp/in12 /tmp/in45
+ parallel -k /usr/bin/perl -p "$qscript" ::: /tmp/in12 /tmp/in45
echo "### Test --shebang-wrap with parser options stdin"
- (echo /tmp/in12; echo /tmp/in45) | /tmp/with-parser--shebang-wrap
+ (echo /tmp/in12; echo /tmp/in45) | "$script"
echo "### Test --shebang-wrap with parser options Same as"
- (echo /tmp/in12; echo /tmp/in45) | parallel -k /usr/bin/perl /tmp/with-parser--shebang-wrap
- rm /tmp/with-parser--shebang-wrap
-
+ (echo /tmp/in12; echo /tmp/in45) | parallel -k /usr/bin/perl "$qscript"
+ rm "$script"
echo "### Test --shebang-wrap --pipe with parser options"
- cat <<EOF > /tmp/pipe--shebang-wrap
+ script="$TMPDIR"/pipe--shebang-wrap
+ qscript=$(parallel -0 --shellquote ::: "$script")
+ cat <<EOF > "$script"
#!/usr/local/bin/parallel --shebang-wrap -k --pipe /usr/bin/perl -p
print "Shebang from perl with args @ARGV\n";
EOF
- chmod 755 /tmp/pipe--shebang-wrap
+ chmod 755 "$script"
echo "### Test --shebang-wrap --pipe with parser options stdin"
- cat /tmp/in12 /tmp/in45 | /tmp/pipe--shebang-wrap
+ cat /tmp/in12 /tmp/in45 | "$script"
echo "### Test --shebang-wrap --pipe with parser options Same as"
- cat /tmp/in12 /tmp/in45 | parallel -k --pipe /usr/bin/perl\ -p /tmp/pipe--shebang-wrap
- rm /tmp/pipe--shebang-wrap
+ cat /tmp/in12 /tmp/in45 | parallel -k --pipe /usr/bin/perl\ -p "$qscript"
+ rm "$script"
rm /tmp/in12
rm /tmp/in45
}
par_shebang_wrap_perl() {
- F=/tmp/shebang_wrap_perl
- cat <<'EOF' > $F
+ script="$TMPDIR"/shebang_wrap_perl
+ cat <<'EOF' > "$script"
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/perl
print "Arguments @ARGV\n";
EOF
- chmod 755 $F
- $F arg1 arg2 arg3
- rm $F
+ chmod 755 "$script"
+ "$script" arg1 arg2 "arg3.1 arg3.2"
+ rm "$script"
}
par_shebang_wrap_python() {
- F=/tmp/shebang_wrap_python
- cat <<'EOF' > $F
+ script="$TMPDIR"/shebang_wrap_python
+ cat <<'EOF' > "$script"
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/python3
import sys
+sys.argv.pop(0)
print('Arguments', str(sys.argv))
EOF
- chmod 755 $F
- $F arg1 arg2 arg3
- rm $F
+ chmod 755 "$script"
+ "$script" arg1 arg2 "arg3.1 arg3.2"
+ rm "$script"
}
par_shebang_wrap_bash() {
- F=/tmp/shebang_wrap_bash
- cat <<'EOF' > $F
+ script="$TMPDIR"/shebang_wrap_bash
+ cat <<'EOF' > "$script"
#!/usr/local/bin/parallel --shebang-wrap -k /bin/bash
echo Arguments "$@"
EOF
- chmod 755 $F
- $F arg1 arg2 arg3
- rm $F
+ chmod 755 "$script"
+ "$script" arg1 arg2 "arg3.1 arg3.2"
+ rm "$script"
}
par_shebang_wrap_sh() {
- F=/tmp/shebang_wrap_sh
- cat <<'EOF' > $F
+ script="$TMPDIR"/shebang_wrap_sh
+ cat <<'EOF' > "$script"
#!/usr/local/bin/parallel --shebang-wrap -k /bin/sh
echo Arguments "$@"
EOF
- chmod 755 $F
- $F arg1 arg2 arg3
- rm $F
+ chmod 755 "$script"
+ "$script" arg1 arg2 "arg3.1 arg3.2"
+ rm "$script"
}
par_shebang_wrap_ksh() {
- F=/tmp/shebang_wrap_ksh
- cat <<'EOF' > $F
+ script="$TMPDIR"/shebang_wrap_ksh
+ cat <<'EOF' > "$script"
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/ksh
echo Arguments "$@"
EOF
- chmod 755 $F
- $F arg1 arg2 arg3
- rm $F
+ chmod 755 "$script"
+ "$script" arg1 arg2 "arg3.1 arg3.2"
+ rm "$script"
}
par_shebang_wrap_zsh() {
- F=/tmp/shebang_wrap_zsh
- cat <<'EOF' > $F
+ script="$TMPDIR"/shebang_wrap_zsh
+ cat <<'EOF' > "$script"
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/zsh
echo Arguments "$@"
EOF
- chmod 755 $F
- $F arg1 arg2 arg3
- rm $F
+ chmod 755 "$script"
+ "$script" arg1 arg2 "arg3.1 arg3.2"
+ rm "$script"
}
par_shebang_wrap_csh() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local22.sh
^
|
@@ -52,8 +52,8 @@
echo '### bug #42363: --pipepart and --fifo/--cat does not work'
seq 100 > /tmp/bug42363;
- parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo wc | perl -pe 's:(/tmp\S+par).....:${1}XXXXX:';
- parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat wc | perl -pe 's:(/tmp\S+par).....:${1}XXXXX:';
+ parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo 'cat {} | wc';
+ parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat 'cat {} | wc';
rm /tmp/bug42363
echo '### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile'
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local5.sh
^
|
@@ -103,17 +103,17 @@
seq 1 100 | nice parallel -j100 --block 1 --recend "" --pipe cat >/dev/null
echo '### Test --block size=1';
- seq 1 10| parallel --block 1 --files --recend "" --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {}
+ seq 1 10| TMPDIR=/tmp parallel --block 1 --files --recend "" --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {}
echo '### Test --block size=1M -j10 --files - more jobs than data';
sort -n < /tmp/blocktest | md5sum;
- cat /tmp/blocktest | parallel --files --recend "\n" -j10 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
+ cat /tmp/blocktest | TMPDIR=/tmp parallel --files --recend "\n" -j10 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
echo '### Test --block size=1M -j1 - more data than cpu';
- cat /tmp/blocktest | parallel --files --recend "\n" -j1 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
+ cat /tmp/blocktest | TMPDIR=/tmp parallel --files --recend "\n" -j1 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
echo '### Test --block size=1M -j1 - more data than cpu';
- cat /tmp/blocktest | parallel --files --recend "\n" -j2 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
+ cat /tmp/blocktest | TMPDIR=/tmp parallel --files --recend "\n" -j2 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
echo '### Test --pipe default settings';
cat /tmp/blocktest | parallel --pipe sort | sort -n | md5sum
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local7.sh
^
|
@@ -6,7 +6,8 @@
par_tmux_filter() {
# /tmp/parallel-local7/tmsOU2Ig
- perl -pe 's:(/tmp\S+/tms).....:$1XXXXX:;s/ p\d+/pID/;'
+ replace_tmpdir |
+ perl -pe 's:/tms.....:/tmsXXXXX:;s/ p\d+/pID/;'
}
export -f par_tmux_filter
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local9.sh
^
|
@@ -50,8 +50,9 @@
echo '### Test --spreadstdin -k';
nice seq 1 1000000 | $NICEPAR -k --recend "\n" -j10 --spreadstdin gzip -9 | zcat | md5sum
+# --files requires TMPDIR does not contain \n
echo '### Test --spreadstdin --files';
- nice seq 1 1000000 | shuf | $NICEPAR --files --recend "\n" -j10 --spreadstdin sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
+ nice seq 1 1000000 | shuf | TMPDIR=/tmp $NICEPAR --files --recend "\n" -j10 --spreadstdin sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
echo '### Test --tag ::: a ::: b';
stdout $NICEPAR -k --tag -j1 echo stderr-{.} ">&2;" echo stdout-{} ::: a ::: b
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-macos.sh
^
|
@@ -62,6 +62,7 @@
# Each should generate at least 2 commands
par_many_args() {
+ export PARALLEL="--_unsafe"
rm -f ~/.parallel/tmp/sshlogin/*/linelen
pecho() { perl -e 'print "@ARGV\n"' "$@"; }
export -f pecho
@@ -84,6 +85,7 @@
}
par_many_var_func() {
+ export PARALLEL="--_unsafe"
export LC_ALL=C
rm -f ~/.parallel/tmp/sshlogin/*/linelen
gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; }
@@ -97,6 +99,7 @@
}
par_many_func() {
+ export PARALLEL="--_unsafe"
export LC_ALL=C
rm -f ~/.parallel/tmp/sshlogin/*/linelen
gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; }
@@ -109,6 +112,7 @@
}
par_big_func() {
+ export PARALLEL="--_unsafe"
export LC_ALL=C
rm -f ~/.parallel/tmp/sshlogin/*/linelen
gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; }
@@ -164,6 +168,7 @@
grep 18XXX
}
+export PARALLEL="--_unsafe"
macsshlogin=$(parallel --halt now,success=1 ssh {} echo {} ::: ota@mac macosx.p)
scp /usr/local/bin/parallel $macsshlogin:bin/
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-manual.sh
^
|
@@ -6,6 +6,18 @@
# These fail regularly
+par_ll_asian() {
+ echo '### --ll with Asian wide chars mess up display'
+ echo 'bug #63878: Wide East Asian chars in --latest-line'
+ p="parallel --ll --color --tag"
+ COLUMNS=80 $p echo tag fits, line fits a{}b{}c \
+ ::: ヌー平行
+ COLUMNS=80 $p echo tag fits, line too long a{}b{}c \
+ ::: ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー
+ COLUMNS=80 $p echo tag too long a{}b{}c \
+ ::: ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行a
+}
+
par_ll_tag() {
parallel --tag --ll -q printf "a\n{}\n" ::: should-be-tagged-A
parallel --tag --ll -q printf "a\n\r{}\n" ::: should-be-tagged-B
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-remote1.sh
^
|
@@ -5,7 +5,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
SERVER1=parallel-server1
-SERVER2=parallel-server2
+SERVER2=parallel-server4
SERVER3=parallel-server3
SSHUSER1=vagrant
SSHUSER2=vagrant
@@ -51,11 +51,16 @@
par_controlmaster_is_faster() {
echo '### bug #41964: --controlmaster not seems to reuse OpenSSH connections to the same host'
echo '-M should finish first - eventhough there are 2x jobs'
+ export SSHLOGIN1=sh@lo
+ nl="$(printf "\n\n.")"
+ export TMPDIR="/tmp/ctrl_master/$nl'$nl"
+ mkdir -p "$TMPDIR"
(parallel -S $SSHLOGIN1 true ::: {1..20};
echo No --controlmaster - finish last) &
(parallel -M -S $SSHLOGIN1 true ::: {1..40};
echo With --controlmaster - finish first) &
wait
+ rm -r "/tmp/ctrl_master"
}
par_workdir_in_HOME() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-tutorial.sh
^
|
@@ -3,107 +3,120 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
-find {$TMPDIR,/var/tmp,/tmp}/{fif,tms,par[^a]}* -mmin -10 2>/dev/null | parallel rm
-cd testsuite 2>/dev/null
-rm -rf tmp
-mkdir tmp
-cd tmp
+cleanup() {
+ find {"$TMPDIR",/var/tmp,/tmp}/{fif,tms,par[^a]}* -mmin -10 -print0 2>/dev/null |
+ parallel -0 rm 2>/dev/null
+}
+
+cleanup
touch ~/.parallel/will-cite
echo '### test parallel_tutorial'
-rm -f /tmp/runs
-
-srcdir=$(pwd | perl -pe 's=$ENV{HOME}==')
+TMPDIR=/tmp/parllel-tutorial
+mkdir -p "$TMPDIR"
+cd "$TMPDIR"
+pwd=$(pwd)
+# If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+testsuitedir=${testsuitedir:-$pwd}
+srcdir=$(echo "$testsuitedir" | perl -pe 's=$ENV{HOME}==')
export SERVER1=parallel@lo
export SERVER2=csh@lo
export PARALLEL=-k
-perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' ../../src/parallel_tutorial.pod |
- egrep -v 'curl|tty|parallel_tutorial|interactive|example.(com|net)|shellquote|works' |
- perl -pe 's/username@//;s/user@//;
- s/zenity/zenity --timeout=15/;
- s:/usr/bin/time:/usr/bin/time -f %e:;
- s:ignored_vars:ignored_vars|sort:;
- # Remove \n to join all joblogs into the previous block
- s:cat /tmp/log\n:cat /tmp/log;:;
- # Remove import (python code)
- s:import.*::;
- # When parallelized: Sleep to make sure the abc-files are made
- /%head1/ and $_.="sleep .3\n\n"x10;
+perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' "$testsuitedir"/../src/parallel_tutorial.pod |
+ egrep -v 'curl|tty|parallel_tutorial|interactive|example.(com|net)|shellquote|works' |
+ perl -pe 's/username@//;s/user@//;
+ s/zenity/zenity --timeout=15/;
+ s:/usr/bin/time:/usr/bin/time -f %e:;
+ s:ignored_vars:ignored_vars|sort:;
+ # Remove \n to join all joblogs into the previous block
+ s:cat /tmp/log\n:cat /tmp/log;:;
+ # Remove import (python code)
+ s:import.*::;
+ # When parallelized: Sleep to make sure the abc-files are made
+ /%head1/ and $_.="sleep .3\n\n"x10;
' |
- stdout parallel --joblog /tmp/jl-`basename $0` -j6 -vd'\n\n' |
- perl -pe '$|=1;
- # --pipe --roundrobin wc
- s: \d{6} \d{6} \d{7}: 999999 999999 9999999:;
- # --tmux
- s:(/tmp\S+)(tms).....:$1$2XXXXX:;
- # --files
- s:(/tmp\S+par).....(\....):$1XXXXX$2:;
- # --eta --progress
- s/ETA.*//g; s/local:.*//g;
- # Sat Apr 4 11:55:40 CEST 2015
- s/... ... .. ..:..:.. \D+ ..../DATE OUTPUT/;
- # Timestamp from --joblog
- s/\d{10}.\d{3}\s+..\d+/TIMESTAMP\t9.999/g;
- # Version
- s/20[0-3]\d{5}/VERSION/g;
- # [123] [abc] [ABC]
- s/^[123] [abc] [ABC]$/123 abc ABC/g;
- # Remote script
- s/(PARALLEL_PID\D+)\d+/${1}000000/g;
- # sql timing
- s/,[a-z]*,\d+.\d+,\d+.\d+/,:,000000000.000,0.000/g;
- # /usr/bin/time -f %e
- s/^(\d+)\.\d+$/$1/;
- # --workdir ...
- s:parallel/tmp/aspire-\d+-1:TMPWORKDIR:g;
- # .../privat/parallel2/
- s='$srcdir'==;
- # + cat ... | (Bash outputs these in random order)
- s/\+ cat.*\n//;
- # + echo ... | (Bash outputs these in random order)
- s/\+ echo.*\n//;
- # + wc ... (Bash outputs these in random order)
- s/\+ wc.*\n//;
- # + command_X | (Bash outputs these in random order)
- s/.*command_[ABC].*\n//;
- # Due to multiple jobs "Second started" often ends up wrong
- s/Second started\n//;
- s/The second finished\n//;
- # Due to multiple jobs "tried 2" often ends up wrong
- s/tried 2\n//;
- # Due to order is often mixed up
- s/echo \d; exit \d\n/echo X; exit X\n/;
- # Race condition causes outdir to sometime exist
- s/(std(out|err)|seq): Permission denied/$1: No such file or directory/;
- # Race condition
- s/^4-(middle|end)\n//;
- # Base 64 string with quotes
- s:['"'"'"\\+/a-z.0-9=]{50,}(\s['"'"'"\\+/a-z.0-9=]*)*:BASE64:ig;
- # Timings are often off
- s/^(\d)$/9/;
- s/^(\d\d)$/99/;
- # Remove variable names - they vary
- s/^[A-Z][A-Z0-9_]*\s$//;
- # Fails often due to race
- s/cat: input_file: No such file or directory\n//;
- s{rsync: link_stat ".*/home/parallel/input_file.out" .*\n}{};
- s{rsync error: some files/attrs were not transferred .*\n}{};
- s{.* GtkDialog .*\n}{};
- s{tried 1}{};
- s/^\s*\n//;
- s/^Second done\n//;
- # Changed citation
- s/Tange, O. .* GNU Parallel .*//;
- s:https.//doi.org/10.5281/.*::;
- s/.software.tange_.*//;
- s/title.*= .*Parallel .*//;
- s/month.*= .*//;
- s/doi.*=.*//;
- s/url.*= .*doi.org.*//;
- s/.Feel free to use .nocite.*//;
- s:/tmp/parallel-tutorial-tmpdir/par-job-\S+:script:g;
- s:/tmp/par-job-\S+:script:g;
- ' | uniq
-# 3+3 .par files (from --files), 1 .tms-file from tmux attach
-find {$TMPDIR,/var/tmp,/tmp}/{fif,tms,par[^a]}* -mmin -10 2>/dev/null | wc -l
-find {$TMPDIR,/var/tmp,/tmp}/{fif,tms,par[^a]}* -mmin -10 2>/dev/null | parallel rm
+ stdout parallel --joblog /tmp/jl-`basename $0` -j6 -vd'\n\n' |
+ replace_tmpdir |
+ perl -pe '$|=1;
+ # --pipe --roundrobin wc
+ s: \d{6} \d{6} \d{7}: 999999 999999 9999999:;
+ # --tmux
+ s:(/TMP|/tmp)(/tms).....:$1$2XXXXX:;
+ # --files
+ s:(/TMP/par).....(\....):$1XXXXX$2:;
+ # --eta --progress
+ s/ETA.*//g; s/local:.*//g;
+ # Sat Apr 4 11:55:40 CEST 2015
+ s/... ... .. ..:..:.. \D+ ..../DATE OUTPUT/;
+ # Timestamp from --joblog
+ s/\d{10}.\d{3}\s+..\d+/TIMESTAMP\t9.999/g;
+ # Version
+ s/20[0-3]\d{5}/VERSION/g;
+ # [123] [abc] [ABC]
+ s/^[123] [abc] [ABC]$/123 abc ABC/g;
+ # Remote script
+ s/(PARALLEL_PID\D+)\d+/${1}000000/g;
+ # sql timing
+ s/,[a-z]*,\d+.\d+,\d+.\d+/,:,000000000.000,0.000/g;
+ # /usr/bin/time -f %e
+ s/^(\d+)\.\d+$/$1/;
+ # --workdir ...
+ s:parallel/tmp/aspire-\d+-1:TMPWORKDIR:g;
+ # .../privat/parallel2/
+ s='$srcdir'==;
+ # + cat ... | (Bash outputs these in random order)
+ s/\+ cat.*\n//;
+ # + echo ... | (Bash outputs these in random order)
+ s/\+ echo.*\n//;
+ # + wc ... (Bash outputs these in random order)
+ s/\+ wc.*\n//;
+ # + command_X | (Bash outputs these in random order)
+ s/.*command_[ABC].*\n//;
+ # Due to multiple jobs "Second started" often ends up wrong
+ s/Second started\n//;
+ s/The second finished\n//;
+ # Due to multiple jobs "tried 2" often ends up wrong
+ s/tried 2\n//;
+ # Due to order is often mixed up
+ s/echo \d; exit \d\n/echo X; exit X\n/;
+ # Race condition causes outdir to sometime exist
+ s/(std(out|err)|seq): Permission denied/$1: No such file or directory/;
+ # Race condition
+ s/^4-(middle|end)\n//;
+ # Base 64 string with quotes
+ s:['"'"'"\\+/a-z.0-9=]{50,}(\s['"'"'"\\+/a-z.0-9=]*)*:BASE64:ig;
+ # Timings are often off
+ s/^(\d)$/9/;
+ s/^(\d\d)$/99/;
+ # Remove variable names - they vary
+ s/^[A-Z][A-Z0-9_]*\s$//;
+ # Fails often due to race
+ s/cat: input_file: No such file or directory\n//;
+ s{rsync: .* link_stat ".*/home/parallel/input_file.out" .*\n}{};
+ s{rsync error: some files/attrs were not transferred .*\n}{};
+ s{Give up after 2 secs\n}{};
+ s{parallel: Warning: Semaphore timed out. Exiting.\n}{};
+ s{.* GtkDialog .*\n}{};
+ s{tried 1}{};
+ s/^\s*\n//;
+ s/^Second done\n//;
+ # Changed citation
+ s/Tange, O. .* GNU Parallel .*//;
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-virtualbox1.sh
^
|
@@ -7,6 +7,10 @@
start_centos3() {
stdout ping -w 1 -c 1 centos3 >/dev/null || (
# Vagrant does not set the IP addr
+ pwd=$(pwd)
+ # If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+ testsuitedir=${testsuitedir:-$pwd}
+ cd "$testsuitedir"
cd testsuite/vagrant/tange/centos3/ 2>/dev/null
cd vagrant/tange/centos3/ 2>/dev/null
cd ../vagrant/tange/centos3/ 2>/dev/null
@@ -55,6 +59,10 @@
perl -pe 's:/usr/bin:/bin:g;'
(
+ pwd=$(pwd)
+ # If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+ testsuitedir=${testsuitedir:-$pwd}
+ cd "$testsuitedir"
cd vagrant/tange/centos3/
stdout vagrant suspend |
grep -v '==> default: Saving VM state' |
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/sem01.sh
^
|
@@ -9,12 +9,12 @@
seq 10 | parallel --semaphore --id stdin wc
seq 10 | parallel --semaphore --id stdin --fg wc
tmp=$(mktemp)
- seq 10 > $tmp
- parallel -a $tmp --semaphore --id stdin wc
- parallel -a $tmp --semaphore --id stdin --fg wc
+ seq 10 > "$tmp"
+ parallel -a "$tmp" --semaphore --id stdin wc
+ parallel -a "$tmp" --semaphore --id stdin --fg wc
parallel --semaphore --id stdin --wait
# Should fail: More files are not supported
- parallel -a $tmp -a $tmp --semaphore --id stdin --fg wc
+ parallel -a "$tmp" -a "$tmp" --semaphore --id stdin --fg wc
}
par_mutex() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/sql01.sh
^
|
@@ -64,16 +64,18 @@
sql sql:sql::sqlunittest "SELECT 'Yes it works' as 'Test sql:sql::alias';"
echo "### Test --noheaders --no-headers -n"
-sql -n :sqlunittest 'select * from unittest order by id' \
-| parallel -k --colsep '\t' echo {2} {1}
-sql --noheaders :sqlunittest 'select * from unittest order by id' \
-| parallel -k --colsep '\t' echo {2} {1}
-sql --no-headers :sqlunittest 'select * from unittest order by id' \
-| parallel -k --colsep '\t' echo {2} {1}
+sql -n :sqlunittest 'select * from unittest order by id' |
+ parallel -k --colsep '\t' echo {2} {1}
+sql --noheaders :sqlunittest 'select * from unittest order by id' |
+ parallel -k --colsep '\t' echo {2} {1}
+sql --no-headers :sqlunittest 'select * from unittest order by id' |
+ parallel -k --colsep '\t' echo {2} {1}
echo "### Test --sep -s";
-sql --no-headers -s : pg:/// 'select 1,2' | parallel --colsep ':' echo {2} {1}
-sql --no-headers --sep : pg:/// 'select 1,2' | parallel --colsep ':' echo {2} {1}
+sql --no-headers -s : pg:/// 'select 1,2' |
+ parallel --colsep ':' echo {2} {1}
+sql --no-headers --sep : pg:/// 'select 1,2' |
+ parallel --colsep ':' echo {2} {1}
echo "### Test --passthrough -p";
sql -p -H :sqlunittest 'select * from unittest'
@@ -100,8 +102,9 @@
sql --table-size :sqlunittest | wc -l
echo "### Test --debug"
-sql --debug :sqlunittest "SELECT 'Yes it does' as 'Test if --debug works';" |
- perl -pe 's:/tmp/sql01-tmpdir/...........sql:tmpfile:g'
+stdout sql --debug :sqlunittest "SELECT 'Yes it does' as 'Test if --debug works';" |
+ replace_tmpdir |
+ perl -pe 's:/...........sql:/tmpfile:g'
echo "### Test --version -V"
sql --version | wc
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/sql02.sh
^
|
@@ -6,7 +6,7 @@
par_sqlite() {
tmp=$(mktemp -d)
- cd $tmp
+ cd "$tmp"
echo '### Test of sqlite'
for CMDSQL in sqlite sqlite3 ; do
echo "Current command: $CMDSQL"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/test17.sh
^
|
@@ -5,7 +5,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
SERVER1=parallel-server1
-SERVER2=parallel-server2
+SERVER2=parallel-server3
SSHUSER1=vagrant
SSHUSER2=vagrant
SSHLOGIN1=$SSHUSER1@$SERVER1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/test18.sh
^
|
@@ -5,7 +5,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
SERVER1=parallel-server1
-SERVER2=parallel-server2
+SERVER2=parallel-server3
SSHUSER1=vagrant
SSHUSER2=vagrant
SSHLOGIN1=$SSHUSER1@$SERVER1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/test19.sh
^
|
@@ -7,7 +7,7 @@
# TODO return multiple
SERVER1=parallel-server1
-SERVER2=parallel-server2
+SERVER2=parallel-server3
SSHUSER1=vagrant
SSHUSER2=vagrant
#SSHLOGIN1=parallel@$SERVER1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/test23.sh
^
|
@@ -5,7 +5,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
SERVER1=parallel-server1
-SERVER2=parallel-server2
+SERVER2=parallel-server3
SSHUSER1=vagrant
SSHUSER2=vagrant
#SSHLOGIN1=parallel@$SERVER1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/test35.sh
^
|
@@ -10,7 +10,11 @@
mkdir -p tmp
cd tmp
-tar xjf ../input-files/testdir.tar.bz2
+pwd=$(pwd)
+# If not run in dir parallel/testsuite: set testsuitedir to path of testsuite
+testsuitedir=${testsuitedir:-$pwd}
+
+tar xjf "$testsuitedir"/input-files/testdir.tar.bz2
#rsync -Ha --delete input-files/testdir/ tmp/
#cd tmp
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/test37.sh
^
|
@@ -5,7 +5,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
SERVER1=parallel-server1
-SERVER2=parallel-server2
+SERVER2=parallel-server3
SSHUSER1=vagrant
SSHUSER2=vagrant
SSHLOGIN1=$SSHUSER1@$SERVER1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/test41.sh
^
|
@@ -11,7 +11,16 @@
SSHLOGIN1=$SSHUSER1@$SERVER1
SSHLOGIN2=$SSHUSER2@$SERVER2
+short_TMPDIR() {
+ # TMPDIR must be short for -M
+ export TMPDIR=/tmp/ssh/'
+`touch /tmp/tripwire`
+'
+ mkdir -p "$TMPDIR"
+}
+
echo '### Test -M (--retries to avoid false errors)'
+short_TMPDIR
seq 1 30 | parallel -j5 --retries 3 -k -M -S $SSHLOGIN1,$SSHLOGIN2 echo 2>/dev/null
seq 1 30 | parallel -j10 --retries 3 -k -M -S $SSHLOGIN1,$SSHLOGIN2 echo 2>/dev/null
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/tests-to-run/test60.sh
^
|
@@ -5,7 +5,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
SERVER1=parallel-server1
-SERVER2=parallel-server2
+SERVER2=parallel-server3
SSHUSER1=vagrant
SSHUSER2=vagrant
export SSHLOGIN1=$SSHUSER1@$SERVER1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-freebsd
^
|
@@ -1,5 +1,5 @@
### These tests requires VirtualBox running with the following images
-vagrant@freebsd11
+vagrant@freebsd12
par_compress_pipe par_compress_pipe 2>&1
par_compress_pipe Test --compress --pipe
par_compress_pipe 1000 1000 3893
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-0.3s
^
|
@@ -7,6 +7,7 @@
par_PARALLEL_ENV ### PARALLEL_ENV as fifo
par_PARALLEL_ENV OK as fifo
par_PARALLEL_HOME_not_exist ### bug #62311: --pipepart + ::: fail
+par_PARALLEL_HOME_not_exist parallel: Warning: $PARALLEL_HOME can only contain [-a-z0-9_+,.%:/= ].
par_PARALLEL_HOME_not_exist OK
par_PARALLEL_HOME_not_exist Should warn:
par_PARALLEL_HOME_not_exist parallel: Warning: $PARALLEL_HOME (/does-not-exist) does not exist.
@@ -14,6 +15,7 @@
par_PARALLEL_HOME_not_exist should
par_PARALLEL_HOME_not_exist warn
par_PARALLEL_HOME_with_+ bug #59453: PARALLEL_HOME with plus sign causes error: config not readable
+par_PARALLEL_HOME_with_+ parallel: Warning: $PARALLEL_HOME can only contain [-a-z0-9_+,.%:/= ].
par_PARALLEL_HOME_with_+ Parallel_home_with+
par_X_eta_div_zero ### bug #34422: parallel -X --eta crashes with div by zero
par_X_eta_div_zero Computers / CPU cores / Max jobs to run
@@ -313,20 +315,30 @@
par_jobslot_jobnumber_pipe 1
par_jobslot_jobnumber_pipe 1
par_jobslot_jobnumber_pipe 1
-par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\"'", "V": [ "\"\u0000\\\"","\"" ], "Stdout": "\"\u0000\\\" \"\u000a", "Stderr": "" }
-par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\\\\'", "V": [ "\"\u0000\\\"","\\\\" ], "Stdout": "\"\u0000\\\" \\\\\u000a", "Stderr": "" }
+par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\"'", "V": [ "\"\u0000\\\","\" ], "Stdout": "\"\u0000\\\" \"\u000a", "Stderr": " }
+par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\\\\'", "V": [ "\"\u0000\\\","\\\\" ], "Stdout": "\"\u0000\\\" \\\\\u000a", "Stderr": " }
par_l0_is_l1 ### Because of --tollef -l, then -l0 == -l1, sorry
par_l0_is_l1 l0 1
par_l0_is_l1 l0 2
par_linebuffer_files ### bug #48658: --linebuffer --files
-par_linebuffer_files 10
+par_linebuffer_files parallel: Warning: Use --files0 when $TMPDIR contains newline.
+par_linebuffer_files /TMP/parXXXXX.par
+par_linebuffer_files /TMP/parXXXXX.par
+par_linebuffer_files /TMP/parXXXXX.par
+par_linebuffer_files /TMP/parXXXXX.par
+par_linebuffer_files /TMP/parXXXXX.par
+par_linebuffer_files /TMP/parXXXXX.par
+par_linebuffer_files /TMP/parXXXXX.par
+par_linebuffer_files /TMP/parXXXXX.par
+par_linebuffer_files /TMP/parXXXXX.par
+par_linebuffer_files /TMP/parXXXXX.par
par_link_files_as_only_arg bug #50685: single ::::+ does not work
par_link_files_as_only_arg 1 1 1
par_link_files_as_only_arg 2 2 2
par_link_files_as_only_arg 3 3 3
-par_ll_long_followed_by_short
par_ll_long_followed_by_short [KA very long line
-par_ll_long_followed_by_short [A
par_ll_long_followed_by_short [KA very long line
-par_ll_long_followed_by_short [A
par_ll_long_followed_by_short [KOK
+par_ll_long_followed_by_short
par_ll_long_followed_by_short [KA very long line
+par_ll_long_followed_by_short [A
par_ll_long_followed_by_short [KA very long line
+par_ll_long_followed_by_short [A
par_ll_long_followed_by_short [KOK
par_locale_quoting ### quoting in different locales
par_locale_quoting £`/tmp/test£`
par_locale_quoting $LC_ALL £`/tmp/test£`
@@ -692,7 +704,8 @@
par_pipe_tag_v foo 1
par_pipe_tag_v foo 2
par_pipe_tag_v foo 3
-par_pipe_tag_v foo /tmp/tmpfile.par
+par_pipe_tag_v parallel: Warning: Use --files0 when $TMPDIR contains newline.
+par_pipe_tag_v foo /TMP/tmpfile.par
par_pipe_to_func ### bug #45998: --pipe to function broken
par_pipe_to_func 1
par_pipe_to_func pipefunc OK
@@ -916,14 +929,14 @@
par_results_arg_256 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
par_results_arg_256 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345
par_results_json ### --results test.json
-par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": "" }
-par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": "" }
-par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": "" }
-par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": "" }
-par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": "" }
-par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": "" }
-par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": "" }
-par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": "" }
+par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": " }
+par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": " }
+par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": " }
+par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": " }
+par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": " }
+par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": " }
+par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": " }
+par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": " }
par_resume_k ### --resume -k
par_resume_k job0id
par_resume_k job1id
@@ -963,10 +976,10 @@
par_sem_quote echo
par_sem_quote
par_shellcompletion ### --shellcompletion
-par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac -
-par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac -
-par_shellcompletion 8da71392e279a12e88f00114d0a4bff0 -
-par_shellcompletion 8da71392e279a12e88f00114d0a4bff0 -
+par_shellcompletion 0097e98f494e6288b33f3201dda7ee11 -
+par_shellcompletion 0097e98f494e6288b33f3201dda7ee11 -
+par_shellcompletion 1655cb29ff14d0008866108c6b5262f7 -
+par_shellcompletion 1655cb29ff14d0008866108c6b5262f7 -
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
@@ -1092,6 +1105,8 @@
par_testquote yash ()*=?'
par_testquote zsh "#&/
par_testquote zsh ()*=?'
+par_testquote fdsh "#&/
+par_testquote fdsh ()*=?'
par_tmpl1 1.t1 /tmp/tmpl-1.1-111.111.t2
par_tmpl1 Template1
par_tmpl1 Xval: 1.1
@@ -1355,19 +1370,19 @@
par_wd_3dot_local bug #45993: --wd ... should also work when run locally
par_wd_3dot_local parallel: Error: Cannot change into non-executable dir /bi: No such file or directory
par_wd_3dot_local /bin
-par_wd_3dot_local ~/privat/parallel/testsuite
+par_wd_3dot_local /TMP
par_wd_3dot_local OK
par_wd_3dot_local /
-par_wd_3dot_local ~/privat/parallel/testsuite
+par_wd_3dot_local /TMP
par_wd_3dot_local OK
par_wd_3dot_local /tmp
-par_wd_3dot_local ~/privat/parallel/testsuite
+par_wd_3dot_local /TMP
par_wd_3dot_local OK
par_wd_3dot_local ~/.parallel/tmp/hostname-0-0
-par_wd_3dot_local ~/privat/parallel/testsuite
+par_wd_3dot_local /TMP
par_wd_3dot_local OK
-par_wd_3dot_local ~/privat/parallel/testsuite
-par_wd_3dot_local ~/privat/parallel/testsuite
+par_wd_3dot_local /TMP
+par_wd_3dot_local /TMP
par_wd_3dot_local OK
par_wd_dotdotdot ### parallel --wd ... should clean up
par_wd_dotdotdot 1 == 1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-10s
^
|
@@ -80,24 +80,28 @@
par_compress_prg_fails parallel: Error: false failed.
par_compress_prg_fails parallel: Error: false failed.
par_compress_prg_fails --files 1
+par_compress_prg_fails --files parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_compress_prg_fails --files parallel: Error: false failed.
par_compress_prg_fails --files parallel: Error: false failed.
par_compress_prg_fails --tag 1
par_compress_prg_fails --tag parallel: Error: false failed.
par_compress_prg_fails --tag parallel: Error: false failed.
par_compress_prg_fails --tag --files 1
+par_compress_prg_fails --tag --files parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_compress_prg_fails --tag --files parallel: Error: false failed.
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 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.
par_compress_prg_fails --line-buffer --tag 1
par_compress_prg_fails --line-buffer --tag parallel: Error: false failed.
par_compress_prg_fails --line-buffer --tag parallel: Error: false failed.
par_compress_prg_fails --line-buffer --tag --files 1
+par_compress_prg_fails --line-buffer --tag --files parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_compress_prg_fails --line-buffer --tag --files parallel: Error: false failed.
par_compress_prg_fails --line-buffer --tag --files parallel: Error: false failed.
par_dryrun_timeout_ungroup bug #51039: --dry-run --timeout 1.4m -u breaks
@@ -106,16 +110,16 @@
par_failing_compressor Test --tag/--line-buffer/--files in all combinations
par_failing_compressor Test working/failing compressor/decompressor in all combinations
par_failing_compressor (-k is used as a dummy argument)
-par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
-par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
-par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
-par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
-par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
-par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
+par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
+par_failing_compressor C=cat;true,D=cat;true /TMP/tmpfile
+par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
+par_failing_compressor C=cat;true,D=cat;false /TMP/tmpfile
+par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
+par_failing_compressor C=cat;false,D=cat;true /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
-par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
-par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
+par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
+par_failing_compressor C=cat;false,D=cat;false /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
@@ -134,16 +138,16 @@
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
-par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
-par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
-par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
-par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
-par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
-par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
+par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
+par_failing_compressor C=cat;true,D=cat;true /TMP/tmpfile
+par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
+par_failing_compressor C=cat;true,D=cat;false /TMP/tmpfile
+par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
+par_failing_compressor C=cat;false,D=cat;true /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
-par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
-par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
+par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
+par_failing_compressor C=cat;false,D=cat;false /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
@@ -162,16 +166,16 @@
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
-par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
-par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
-par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
-par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
-par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
-par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
+par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
+par_failing_compressor /TMP/tmpfile
+par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
+par_failing_compressor /TMP/tmpfile
+par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
+par_failing_compressor /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
-par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
-par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
+par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
+par_failing_compressor /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
@@ -190,16 +194,16 @@
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false
-par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
-par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
-par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
-par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
-par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
-par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
+par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
+par_failing_compressor /TMP/tmpfile
+par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
+par_failing_compressor /TMP/tmpfile
+par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
+par_failing_compressor /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
-par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
-par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
+par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
+par_failing_compressor /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
@@ -219,6 +223,52 @@
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false
par_fifo_under_csh ### Test --fifo under csh
+par_fifo_under_csh parallel: Warning: --cat/--fifo fails under csh if $TMPDIR contains newline.
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh Unmatched '"'.
+par_fifo_under_csh Broken pipe
+par_fifo_under_csh exit 22
par_fifo_under_csh 1048571
par_fifo_under_csh 1
par_fifo_under_csh 1048572
@@ -717,7 +767,7 @@
par_parset 5
par_parset The commands to run can be an array
par_parset <<joe "double space" cartoon>>
-par_parset .
+par_parset /TMP
par_parset You cannot pipe into parset, but must use a tempfile
par_parset 1
par_parset 10
@@ -818,6 +868,7 @@
par_pipe_line_buffer These must diff: 1
par_pipe_line_buffer_compress ### --pipe --line-buffer --compress
par_pipe_line_buffer_compress 200 400 1202
+par_quote_special_results ### Test --results on file systems with limited UTF8 support
par_quote_special_results mkfs.btrfs btrfs-progs v5.16.2
par_quote_special_results mkfs.btrfs See http://btrfs.wiki.kernel.org for more information.
par_quote_special_results mkfs.btrfs
@@ -847,1088 +898,10 @@
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-1s
^
|
@@ -124,15 +124,19 @@
par_eof_on_command_line_input_source ### Test of eof string on :::
par_eof_on_command_line_input_source foo
par_file_rpl ### file as replacement string
-par_file_rpl contest1
-par_file_rpl contest2
-par_file_rpl File name /tmp/parallel-local-1s-tmpdir/tmp.XXXXXX
-par_file_rpl contest1
-par_file_rpl contest2
-par_file_rpl File name /parallel-local-1s-tmpdir/tmp.XXXXXX/parallel-local-1s-tmpdir/tmp.XXXXXX
-par_file_rpl contest1
-par_file_rpl contest2
-par_file_rpl File name /tmp/parallel-local-1s-tmpdir/tmp.XXXXXX
+par_file_rpl # {filename}
+par_file_rpl content1
+par_file_rpl content2
+par_file_rpl File name /TMP/tmp.XXXXXX
+par_file_rpl # Conflict: both {filename} and {/regexp/rpl}
+par_file_rpl content1
+par_file_rpl content2
+par_file_rpl File name /parallel-local-1s/ /bar/tmp.XXXXXX/parallel-local-1s/ /bar/tmp.XXXXXX
+par_file_rpl # --header 0 --plus
+par_file_rpl content1
+par_file_rpl content2
+par_file_rpl File name /TMP/tmp.XXXXXX
+par_file_rpl # Conflict: both {filename} and {n}
par_file_rpl 1
par_file_rpl 1
par_file_rpl 2
@@ -145,6 +149,7 @@
par_file_rpl 1
par_file_rpl 1
par_file_rpl 1
+par_file_rpl # Conflict: both {filename} and {=expr=}
par_file_rpl =chop
par_file_rpl =chop
par_header ### Test --header with -N
@@ -487,7 +492,7 @@
par_profiles_with_space /bin/bash=/bin/bash
par_profiles_with_space echo '/bin/bash=/bin/bash'
par_profiles_with_space /bin/bash=/bin/bash
-par_profiles_with_space With script in $PARALLEL /bin/bash=~/privat/parallel/testsuite
+par_profiles_with_space With script in $PARALLEL /bin/bash=/TMP
par_pxz_complains bug #44250: pxz complains File format not recognized but decompresses anyway
par_pxz_complains ls: cannot access '/OK-if-missing-file': No such file or directory
par_pxz_complains can not seek in input: Illegal seek
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-30s
^
|
@@ -37,7 +37,6 @@
par_exit_code bug #52207: Exit status 0 when child job is killed, even with "now,fail=1"
par_exit_code # Ideally the command should return the same
par_exit_code # with or without parallel
-par_exit_code # but fish 2.4.0 returns 1 while X.X.X returns 0
par_exit_code ash /tmp/mysleep 100 137
par_exit_code ash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
par_exit_code ash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
@@ -158,16 +157,6 @@
par_exit_code bash parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137
par_exit_code bash parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0
par_exit_code bash parallel --halt-on-error now,done=1 'true;exit' ::: 100 100
-par_exit_code fdsh /tmp/mysleep 100 137
-par_exit_code fdsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 2
-par_exit_code fdsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 2
-par_exit_code fdsh parallel --halt-on-error now,done=1 /bin/true ::: 100 2
-par_exit_code fdsh parallel --halt-on-error now,done=1 exit ::: 100 100
-par_exit_code fdsh true;/tmp/mysleep 100 137
-par_exit_code fdsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 2
-par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 2
-par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 2
-par_exit_code fdsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100
par_exit_code ksh93 /tmp/mysleep 100 0
par_exit_code ksh93 parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
par_exit_code ksh93 parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
@@ -218,6 +207,16 @@
par_exit_code zsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137
par_exit_code zsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0
par_exit_code zsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100
+par_exit_code fdsh /tmp/mysleep 100 137
+par_exit_code fdsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 2
+par_exit_code fdsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 2
+par_exit_code fdsh parallel --halt-on-error now,done=1 /bin/true ::: 100 2
+par_exit_code fdsh parallel --halt-on-error now,done=1 exit ::: 100 100
+par_exit_code fdsh true;/tmp/mysleep 100 137
+par_exit_code fdsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 2
+par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 2
+par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 2
+par_exit_code fdsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100
par_exit_code parallel: This job finished:
par_exit_code runit
par_groupby -N1 3 $_%=2 tsv \t ### test tsv | --colsep \t --groupby 3 $_%=2 -N1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-3s
^
|
@@ -646,15 +646,15 @@
par_shebang py A
par_shebang py B
par_shebang py C
-par_shebang r [1] "A"
-par_shebang r [1] "B"
-par_shebang r [1] "C"
par_shebang rb ["A"]
par_shebang rb ["B"]
par_shebang rb ["C"]
par_shebang sh A
par_shebang sh B
par_shebang sh C
+par_shebang r [1] "A"
+par_shebang r [1] "B"
+par_shebang r [1] "C"
par_show_limits ### Test --show-limits
par_show_limits Maximal size of command: 130xxx
par_show_limits Maximal usable size of command: 63xxx
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-race01
^
|
@@ -44,20 +44,20 @@
par_print_before_halt_on_error -2 exit code 0
par_print_before_halt_on_error -2 0.1 0.1
par_print_before_halt_on_error -2 parallel: This job succeeded:
-par_print_before_halt_on_error -2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -2 > 0 ? exit shift : exit not shift;' 0.1
+par_print_before_halt_on_error -2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -2 > 0 ? exit shift : exit not shift;' 0.1
par_print_before_halt_on_error -1 exit code 0
par_print_before_halt_on_error -1 0.1 0.1
par_print_before_halt_on_error -1 parallel: This job succeeded:
-par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 0.1
+par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 0.1
par_print_before_halt_on_error -1 parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_print_before_halt_on_error -1 parallel: This job succeeded:
-par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 1
+par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 1
par_print_before_halt_on_error -1 parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_print_before_halt_on_error -1 3.2 3.2
par_print_before_halt_on_error -1 0 0
par_print_before_halt_on_error -1 1 1
par_print_before_halt_on_error -1 parallel: This job succeeded:
-par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 3.2
+par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 3.2
par_print_before_halt_on_error 0 exit code 1
par_print_before_halt_on_error 0 0.1 0.1
par_print_before_halt_on_error 0 3.2 3.2
@@ -74,26 +74,26 @@
par_print_before_halt_on_error 1 exit code 1
par_print_before_halt_on_error 1 0.1 0.1
par_print_before_halt_on_error 1 parallel: This job failed:
-par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 1
+par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 1
par_print_before_halt_on_error 1 parallel: Starting no more jobs. Waiting for 3 jobs to finish.
par_print_before_halt_on_error 1 parallel: This job failed:
-par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 2
+par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 2
par_print_before_halt_on_error 1 parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_print_before_halt_on_error 1 3.2 3.2
par_print_before_halt_on_error 1 0 0
par_print_before_halt_on_error 1 1 1
par_print_before_halt_on_error 1 2 2
par_print_before_halt_on_error 1 parallel: This job failed:
-par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3.2
+par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3.2
par_print_before_halt_on_error 1 parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_print_before_halt_on_error 1 3 3
par_print_before_halt_on_error 1 parallel: This job failed:
-par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3
+par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3
par_print_before_halt_on_error 2 exit code 1
par_print_before_halt_on_error 2 0.1 0.1
par_print_before_halt_on_error 2 parallel: This job failed:
-par_print_before_halt_on_error 2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 2 > 0 ? exit shift : exit not shift;' 1
+par_print_before_halt_on_error 2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 2 > 0 ? exit shift : exit not shift;' 1
par_sem_dir ### bug #58985: sem stall if .parallel/semaphores is chmod 0
par_sem_dir parallel: Error: Semaphoredir must be writable: '~/.parallel/semaphores'
par_tmux_termination ### --tmux test - check termination
-par_tmux_termination See output with: tmux -S /tmp/parallel-local-race01-tmpdir/tmsXXXXX attach
+par_tmux_termination See output with: tmux -S /TMP/tmsXXXXX attach
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-race02
^
|
@@ -43,12 +43,6 @@
par_continuous_output 1
par_hostgroup ### --hostgroup force ncpu
par_hostgroup parallel
-par_hostgroup parallel
-par_hostgroup tange
-par_hostgroup tange
-par_hostgroup tange
-par_hostgroup tange
-par_hostgroup tange
par_hostgroup tange
par_hostgroup ### --hostgroup two group arg
par_hostgroup parallel
@@ -70,12 +64,6 @@
par_hostgroup tange
par_hostgroup ### --hostgroup multiple group arg + unused group
par_hostgroup parallel
-par_hostgroup parallel
-par_hostgroup tange
-par_hostgroup tange
-par_hostgroup tange
-par_hostgroup tange
-par_hostgroup tange
par_hostgroup tange
par_hostgroup ### --hostgroup two groups @
par_hostgroup parallel parallel
@@ -91,10 +79,6 @@
par_hostgroup implicit_group
par_hostgroup ### --hostgroup -S @group
par_hostgroup tange
-par_hostgroup tange
-par_hostgroup tange
-par_hostgroup tcsh
-par_hostgroup tcsh
par_hostgroup tcsh
par_hostgroup ### --hostgroup -S @group1 -Sgrp2
par_hostgroup parallel
@@ -163,6 +147,14 @@
par_retries_bug_from_2010 4
par_retries_bug_from_2010 4
par_retries_bug_from_2010 2
+par_semaphore ### Test if parallel invoked as sem will run parallel --semaphore
+par_semaphore job1a 1
+par_semaphore job2a 2
+par_semaphore job1b 3
+par_semaphore job3a 4
+par_semaphore job2b 5
+par_semaphore job3b 6
+par_semaphore done
par_sql_CSV ### CSV write to the right place
par_sql_CSV ran OK
par_sql_CSV ok
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-sql
^
|
@@ -332,31 +332,31 @@
par_shuf $MYSQL Exit=0
par_shuf $MYSQL Exit=0
par_shuf $MYSQL Command V1 V2 Stdout Stderr
-par_shuf $MYSQL sleep .3;echo 1 a 1 a /tmp/parallel-bug49791-c20/1/1/2/a/stdout /tmp/parallel-bug49791-c20/1/1/2/a/stderr
-par_shuf $MYSQL sleep .3;echo 1 b 1 b /tmp/parallel-bug49791-c20/1/1/2/b/stdout /tmp/parallel-bug49791-c20/1/1/2/b/stderr
-par_shuf $MYSQL sleep .3;echo 1 c 1 c /tmp/parallel-bug49791-c20/1/1/2/c/stdout /tmp/parallel-bug49791-c20/1/1/2/c/stderr
-par_shuf $MYSQL sleep .3;echo 1 d 1 d /tmp/parallel-bug49791-c20/1/1/2/d/stdout /tmp/parallel-bug49791-c20/1/1/2/d/stderr
-par_shuf $MYSQL sleep .3;echo 1 e 1 e /tmp/parallel-bug49791-c20/1/1/2/e/stdout /tmp/parallel-bug49791-c20/1/1/2/e/stderr
-par_shuf $MYSQL sleep .3;echo 2 a 2 a /tmp/parallel-bug49791-c20/1/2/2/a/stdout /tmp/parallel-bug49791-c20/1/2/2/a/stderr
-par_shuf $MYSQL sleep .3;echo 2 b 2 b /tmp/parallel-bug49791-c20/1/2/2/b/stdout /tmp/parallel-bug49791-c20/1/2/2/b/stderr
-par_shuf $MYSQL sleep .3;echo 2 c 2 c /tmp/parallel-bug49791-c20/1/2/2/c/stdout /tmp/parallel-bug49791-c20/1/2/2/c/stderr
-par_shuf $MYSQL sleep .3;echo 2 d 2 d /tmp/parallel-bug49791-c20/1/2/2/d/stdout /tmp/parallel-bug49791-c20/1/2/2/d/stderr
-par_shuf $MYSQL sleep .3;echo 2 e 2 e /tmp/parallel-bug49791-c20/1/2/2/e/stdout /tmp/parallel-bug49791-c20/1/2/2/e/stderr
-par_shuf $MYSQL sleep .3;echo 3 a 3 a /tmp/parallel-bug49791-c20/1/3/2/a/stdout /tmp/parallel-bug49791-c20/1/3/2/a/stderr
-par_shuf $MYSQL sleep .3;echo 3 b 3 b /tmp/parallel-bug49791-c20/1/3/2/b/stdout /tmp/parallel-bug49791-c20/1/3/2/b/stderr
-par_shuf $MYSQL sleep .3;echo 3 c 3 c /tmp/parallel-bug49791-c20/1/3/2/c/stdout /tmp/parallel-bug49791-c20/1/3/2/c/stderr
-par_shuf $MYSQL sleep .3;echo 3 d 3 d /tmp/parallel-bug49791-c20/1/3/2/d/stdout /tmp/parallel-bug49791-c20/1/3/2/d/stderr
-par_shuf $MYSQL sleep .3;echo 3 e 3 e /tmp/parallel-bug49791-c20/1/3/2/e/stdout /tmp/parallel-bug49791-c20/1/3/2/e/stderr
-par_shuf $MYSQL sleep .3;echo 4 a 4 a /tmp/parallel-bug49791-c20/1/4/2/a/stdout /tmp/parallel-bug49791-c20/1/4/2/a/stderr
-par_shuf $MYSQL sleep .3;echo 4 b 4 b /tmp/parallel-bug49791-c20/1/4/2/b/stdout /tmp/parallel-bug49791-c20/1/4/2/b/stderr
-par_shuf $MYSQL sleep .3;echo 4 c 4 c /tmp/parallel-bug49791-c20/1/4/2/c/stdout /tmp/parallel-bug49791-c20/1/4/2/c/stderr
-par_shuf $MYSQL sleep .3;echo 4 d 4 d /tmp/parallel-bug49791-c20/1/4/2/d/stdout /tmp/parallel-bug49791-c20/1/4/2/d/stderr
-par_shuf $MYSQL sleep .3;echo 4 e 4 e /tmp/parallel-bug49791-c20/1/4/2/e/stdout /tmp/parallel-bug49791-c20/1/4/2/e/stderr
-par_shuf $MYSQL sleep .3;echo 5 a 5 a /tmp/parallel-bug49791-c20/1/5/2/a/stdout /tmp/parallel-bug49791-c20/1/5/2/a/stderr
-par_shuf $MYSQL sleep .3;echo 5 b 5 b /tmp/parallel-bug49791-c20/1/5/2/b/stdout /tmp/parallel-bug49791-c20/1/5/2/b/stderr
-par_shuf $MYSQL sleep .3;echo 5 c 5 c /tmp/parallel-bug49791-c20/1/5/2/c/stdout /tmp/parallel-bug49791-c20/1/5/2/c/stderr
-par_shuf $MYSQL sleep .3;echo 5 d 5 d /tmp/parallel-bug49791-c20/1/5/2/d/stdout /tmp/parallel-bug49791-c20/1/5/2/d/stderr
-par_shuf $MYSQL sleep .3;echo 5 e 5 e /tmp/parallel-bug49791-c20/1/5/2/e/stdout /tmp/parallel-bug49791-c20/1/5/2/e/stderr
+par_shuf $MYSQL sleep .3;echo 1 a 1 a /tmp/parallel-bug49791- <c20/1/1/2/a/stdout /tmp/parallel-bug49791- <c20/1/1/2/a/stderr
+par_shuf $MYSQL sleep .3;echo 1 b 1 b /tmp/parallel-bug49791- <c20/1/1/2/b/stdout /tmp/parallel-bug49791- <c20/1/1/2/b/stderr
+par_shuf $MYSQL sleep .3;echo 1 c 1 c /tmp/parallel-bug49791- <c20/1/1/2/c/stdout /tmp/parallel-bug49791- <c20/1/1/2/c/stderr
+par_shuf $MYSQL sleep .3;echo 1 d 1 d /tmp/parallel-bug49791- <c20/1/1/2/d/stdout /tmp/parallel-bug49791- <c20/1/1/2/d/stderr
+par_shuf $MYSQL sleep .3;echo 1 e 1 e /tmp/parallel-bug49791- <c20/1/1/2/e/stdout /tmp/parallel-bug49791- <c20/1/1/2/e/stderr
+par_shuf $MYSQL sleep .3;echo 2 a 2 a /tmp/parallel-bug49791- <c20/1/2/2/a/stdout /tmp/parallel-bug49791- <c20/1/2/2/a/stderr
+par_shuf $MYSQL sleep .3;echo 2 b 2 b /tmp/parallel-bug49791- <c20/1/2/2/b/stdout /tmp/parallel-bug49791- <c20/1/2/2/b/stderr
+par_shuf $MYSQL sleep .3;echo 2 c 2 c /tmp/parallel-bug49791- <c20/1/2/2/c/stdout /tmp/parallel-bug49791- <c20/1/2/2/c/stderr
+par_shuf $MYSQL sleep .3;echo 2 d 2 d /tmp/parallel-bug49791- <c20/1/2/2/d/stdout /tmp/parallel-bug49791- <c20/1/2/2/d/stderr
+par_shuf $MYSQL sleep .3;echo 2 e 2 e /tmp/parallel-bug49791- <c20/1/2/2/e/stdout /tmp/parallel-bug49791- <c20/1/2/2/e/stderr
+par_shuf $MYSQL sleep .3;echo 3 a 3 a /tmp/parallel-bug49791- <c20/1/3/2/a/stdout /tmp/parallel-bug49791- <c20/1/3/2/a/stderr
+par_shuf $MYSQL sleep .3;echo 3 b 3 b /tmp/parallel-bug49791- <c20/1/3/2/b/stdout /tmp/parallel-bug49791- <c20/1/3/2/b/stderr
+par_shuf $MYSQL sleep .3;echo 3 c 3 c /tmp/parallel-bug49791- <c20/1/3/2/c/stdout /tmp/parallel-bug49791- <c20/1/3/2/c/stderr
+par_shuf $MYSQL sleep .3;echo 3 d 3 d /tmp/parallel-bug49791- <c20/1/3/2/d/stdout /tmp/parallel-bug49791- <c20/1/3/2/d/stderr
+par_shuf $MYSQL sleep .3;echo 3 e 3 e /tmp/parallel-bug49791- <c20/1/3/2/e/stdout /tmp/parallel-bug49791- <c20/1/3/2/e/stderr
+par_shuf $MYSQL sleep .3;echo 4 a 4 a /tmp/parallel-bug49791- <c20/1/4/2/a/stdout /tmp/parallel-bug49791- <c20/1/4/2/a/stderr
+par_shuf $MYSQL sleep .3;echo 4 b 4 b /tmp/parallel-bug49791- <c20/1/4/2/b/stdout /tmp/parallel-bug49791- <c20/1/4/2/b/stderr
+par_shuf $MYSQL sleep .3;echo 4 c 4 c /tmp/parallel-bug49791- <c20/1/4/2/c/stdout /tmp/parallel-bug49791- <c20/1/4/2/c/stderr
+par_shuf $MYSQL sleep .3;echo 4 d 4 d /tmp/parallel-bug49791- <c20/1/4/2/d/stdout /tmp/parallel-bug49791- <c20/1/4/2/d/stderr
+par_shuf $MYSQL sleep .3;echo 4 e 4 e /tmp/parallel-bug49791- <c20/1/4/2/e/stdout /tmp/parallel-bug49791- <c20/1/4/2/e/stderr
+par_shuf $MYSQL sleep .3;echo 5 a 5 a /tmp/parallel-bug49791- <c20/1/5/2/a/stdout /tmp/parallel-bug49791- <c20/1/5/2/a/stderr
+par_shuf $MYSQL sleep .3;echo 5 b 5 b /tmp/parallel-bug49791- <c20/1/5/2/b/stdout /tmp/parallel-bug49791- <c20/1/5/2/b/stderr
+par_shuf $MYSQL sleep .3;echo 5 c 5 c /tmp/parallel-bug49791- <c20/1/5/2/c/stdout /tmp/parallel-bug49791- <c20/1/5/2/c/stderr
+par_shuf $MYSQL sleep .3;echo 5 d 5 d /tmp/parallel-bug49791- <c20/1/5/2/d/stdout /tmp/parallel-bug49791- <c20/1/5/2/d/stderr
+par_shuf $MYSQL sleep .3;echo 5 e 5 e /tmp/parallel-bug49791- <c20/1/5/2/e/stdout /tmp/parallel-bug49791- <c20/1/5/2/e/stderr
par_shuf $PG p_wrapper par_shuf '$PG'
par_shuf $PG 1 a
par_shuf $PG 1 b
@@ -386,33 +386,33 @@
par_shuf $PG OK: Diff bigger than 2500 char
par_shuf $PG Exit=0
par_shuf $PG Exit=0
-par_shuf $PG command | v1 | v2 | stdout | stderr
-par_shuf $PG -------------------+----+----+-------------------------------------------+-------------------------------------------
-par_shuf $PG sleep .3;echo 1 a | 1 | a | /tmp/parallel-bug49791-792/1/1/2/a/stdout | /tmp/parallel-bug49791-792/1/1/2/a/stderr
-par_shuf $PG sleep .3;echo 1 b | 1 | b | /tmp/parallel-bug49791-792/1/1/2/b/stdout | /tmp/parallel-bug49791-792/1/1/2/b/stderr
-par_shuf $PG sleep .3;echo 1 c | 1 | c | /tmp/parallel-bug49791-792/1/1/2/c/stdout | /tmp/parallel-bug49791-792/1/1/2/c/stderr
-par_shuf $PG sleep .3;echo 1 d | 1 | d | /tmp/parallel-bug49791-792/1/1/2/d/stdout | /tmp/parallel-bug49791-792/1/1/2/d/stderr
-par_shuf $PG sleep .3;echo 1 e | 1 | e | /tmp/parallel-bug49791-792/1/1/2/e/stdout | /tmp/parallel-bug49791-792/1/1/2/e/stderr
-par_shuf $PG sleep .3;echo 2 a | 2 | a | /tmp/parallel-bug49791-792/1/2/2/a/stdout | /tmp/parallel-bug49791-792/1/2/2/a/stderr
-par_shuf $PG sleep .3;echo 2 b | 2 | b | /tmp/parallel-bug49791-792/1/2/2/b/stdout | /tmp/parallel-bug49791-792/1/2/2/b/stderr
-par_shuf $PG sleep .3;echo 2 c | 2 | c | /tmp/parallel-bug49791-792/1/2/2/c/stdout | /tmp/parallel-bug49791-792/1/2/2/c/stderr
-par_shuf $PG sleep .3;echo 2 d | 2 | d | /tmp/parallel-bug49791-792/1/2/2/d/stdout | /tmp/parallel-bug49791-792/1/2/2/d/stderr
-par_shuf $PG sleep .3;echo 2 e | 2 | e | /tmp/parallel-bug49791-792/1/2/2/e/stdout | /tmp/parallel-bug49791-792/1/2/2/e/stderr
-par_shuf $PG sleep .3;echo 3 a | 3 | a | /tmp/parallel-bug49791-792/1/3/2/a/stdout | /tmp/parallel-bug49791-792/1/3/2/a/stderr
-par_shuf $PG sleep .3;echo 3 b | 3 | b | /tmp/parallel-bug49791-792/1/3/2/b/stdout | /tmp/parallel-bug49791-792/1/3/2/b/stderr
-par_shuf $PG sleep .3;echo 3 c | 3 | c | /tmp/parallel-bug49791-792/1/3/2/c/stdout | /tmp/parallel-bug49791-792/1/3/2/c/stderr
-par_shuf $PG sleep .3;echo 3 d | 3 | d | /tmp/parallel-bug49791-792/1/3/2/d/stdout | /tmp/parallel-bug49791-792/1/3/2/d/stderr
-par_shuf $PG sleep .3;echo 3 e | 3 | e | /tmp/parallel-bug49791-792/1/3/2/e/stdout | /tmp/parallel-bug49791-792/1/3/2/e/stderr
-par_shuf $PG sleep .3;echo 4 a | 4 | a | /tmp/parallel-bug49791-792/1/4/2/a/stdout | /tmp/parallel-bug49791-792/1/4/2/a/stderr
-par_shuf $PG sleep .3;echo 4 b | 4 | b | /tmp/parallel-bug49791-792/1/4/2/b/stdout | /tmp/parallel-bug49791-792/1/4/2/b/stderr
-par_shuf $PG sleep .3;echo 4 c | 4 | c | /tmp/parallel-bug49791-792/1/4/2/c/stdout | /tmp/parallel-bug49791-792/1/4/2/c/stderr
-par_shuf $PG sleep .3;echo 4 d | 4 | d | /tmp/parallel-bug49791-792/1/4/2/d/stdout | /tmp/parallel-bug49791-792/1/4/2/d/stderr
-par_shuf $PG sleep .3;echo 4 e | 4 | e | /tmp/parallel-bug49791-792/1/4/2/e/stdout | /tmp/parallel-bug49791-792/1/4/2/e/stderr
-par_shuf $PG sleep .3;echo 5 a | 5 | a | /tmp/parallel-bug49791-792/1/5/2/a/stdout | /tmp/parallel-bug49791-792/1/5/2/a/stderr
-par_shuf $PG sleep .3;echo 5 b | 5 | b | /tmp/parallel-bug49791-792/1/5/2/b/stdout | /tmp/parallel-bug49791-792/1/5/2/b/stderr
-par_shuf $PG sleep .3;echo 5 c | 5 | c | /tmp/parallel-bug49791-792/1/5/2/c/stdout | /tmp/parallel-bug49791-792/1/5/2/c/stderr
-par_shuf $PG sleep .3;echo 5 d | 5 | d | /tmp/parallel-bug49791-792/1/5/2/d/stdout | /tmp/parallel-bug49791-792/1/5/2/d/stderr
-par_shuf $PG sleep .3;echo 5 e | 5 | e | /tmp/parallel-bug49791-792/1/5/2/e/stdout | /tmp/parallel-bug49791-792/1/5/2/e/stderr
+par_shuf $PG command | v1 | v2 | stdout | stderr
+par_shuf $PG -------------------+----+----+----------------------------------------------+----------------------------------------------
+par_shuf $PG sleep .3;echo 1 a | 1 | a | /tmp/parallel-bug49791- <792/1/1/2/a/stdout | /tmp/parallel-bug49791- <792/1/1/2/a/stderr
+par_shuf $PG sleep .3;echo 1 b | 1 | b | /tmp/parallel-bug49791- <792/1/1/2/b/stdout | /tmp/parallel-bug49791- <792/1/1/2/b/stderr
+par_shuf $PG sleep .3;echo 1 c | 1 | c | /tmp/parallel-bug49791- <792/1/1/2/c/stdout | /tmp/parallel-bug49791- <792/1/1/2/c/stderr
+par_shuf $PG sleep .3;echo 1 d | 1 | d | /tmp/parallel-bug49791- <792/1/1/2/d/stdout | /tmp/parallel-bug49791- <792/1/1/2/d/stderr
+par_shuf $PG sleep .3;echo 1 e | 1 | e | /tmp/parallel-bug49791- <792/1/1/2/e/stdout | /tmp/parallel-bug49791- <792/1/1/2/e/stderr
+par_shuf $PG sleep .3;echo 2 a | 2 | a | /tmp/parallel-bug49791- <792/1/2/2/a/stdout | /tmp/parallel-bug49791- <792/1/2/2/a/stderr
+par_shuf $PG sleep .3;echo 2 b | 2 | b | /tmp/parallel-bug49791- <792/1/2/2/b/stdout | /tmp/parallel-bug49791- <792/1/2/2/b/stderr
+par_shuf $PG sleep .3;echo 2 c | 2 | c | /tmp/parallel-bug49791- <792/1/2/2/c/stdout | /tmp/parallel-bug49791- <792/1/2/2/c/stderr
+par_shuf $PG sleep .3;echo 2 d | 2 | d | /tmp/parallel-bug49791- <792/1/2/2/d/stdout | /tmp/parallel-bug49791- <792/1/2/2/d/stderr
+par_shuf $PG sleep .3;echo 2 e | 2 | e | /tmp/parallel-bug49791- <792/1/2/2/e/stdout | /tmp/parallel-bug49791- <792/1/2/2/e/stderr
+par_shuf $PG sleep .3;echo 3 a | 3 | a | /tmp/parallel-bug49791- <792/1/3/2/a/stdout | /tmp/parallel-bug49791- <792/1/3/2/a/stderr
+par_shuf $PG sleep .3;echo 3 b | 3 | b | /tmp/parallel-bug49791- <792/1/3/2/b/stdout | /tmp/parallel-bug49791- <792/1/3/2/b/stderr
+par_shuf $PG sleep .3;echo 3 c | 3 | c | /tmp/parallel-bug49791- <792/1/3/2/c/stdout | /tmp/parallel-bug49791- <792/1/3/2/c/stderr
+par_shuf $PG sleep .3;echo 3 d | 3 | d | /tmp/parallel-bug49791- <792/1/3/2/d/stdout | /tmp/parallel-bug49791- <792/1/3/2/d/stderr
+par_shuf $PG sleep .3;echo 3 e | 3 | e | /tmp/parallel-bug49791- <792/1/3/2/e/stdout | /tmp/parallel-bug49791- <792/1/3/2/e/stderr
+par_shuf $PG sleep .3;echo 4 a | 4 | a | /tmp/parallel-bug49791- <792/1/4/2/a/stdout | /tmp/parallel-bug49791- <792/1/4/2/a/stderr
+par_shuf $PG sleep .3;echo 4 b | 4 | b | /tmp/parallel-bug49791- <792/1/4/2/b/stdout | /tmp/parallel-bug49791- <792/1/4/2/b/stderr
+par_shuf $PG sleep .3;echo 4 c | 4 | c | /tmp/parallel-bug49791- <792/1/4/2/c/stdout | /tmp/parallel-bug49791- <792/1/4/2/c/stderr
+par_shuf $PG sleep .3;echo 4 d | 4 | d | /tmp/parallel-bug49791- <792/1/4/2/d/stdout | /tmp/parallel-bug49791- <792/1/4/2/d/stderr
+par_shuf $PG sleep .3;echo 4 e | 4 | e | /tmp/parallel-bug49791- <792/1/4/2/e/stdout | /tmp/parallel-bug49791- <792/1/4/2/e/stderr
+par_shuf $PG sleep .3;echo 5 a | 5 | a | /tmp/parallel-bug49791- <792/1/5/2/a/stdout | /tmp/parallel-bug49791- <792/1/5/2/a/stderr
+par_shuf $PG sleep .3;echo 5 b | 5 | b | /tmp/parallel-bug49791- <792/1/5/2/b/stdout | /tmp/parallel-bug49791- <792/1/5/2/b/stderr
+par_shuf $PG sleep .3;echo 5 c | 5 | c | /tmp/parallel-bug49791- <792/1/5/2/c/stdout | /tmp/parallel-bug49791- <792/1/5/2/c/stderr
+par_shuf $PG sleep .3;echo 5 d | 5 | d | /tmp/parallel-bug49791- <792/1/5/2/d/stdout | /tmp/parallel-bug49791- <792/1/5/2/d/stderr
+par_shuf $PG sleep .3;echo 5 e | 5 | e | /tmp/parallel-bug49791- <792/1/5/2/e/stdout | /tmp/parallel-bug49791- <792/1/5/2/e/stderr
par_shuf $PG (25 rows)
par_shuf $PG
par_shuf $SQLITE p_wrapper par_shuf '$SQLITE'
@@ -445,31 +445,31 @@
par_shuf $SQLITE Exit=0
par_shuf $SQLITE Exit=0
par_shuf $SQLITE Command|V1|V2|Stdout|Stderr
-par_shuf $SQLITE sleep .3;echo 1 a|1|a|/tmp/parallel-bug49791-932/1/1/2/a/stdout|/tmp/parallel-bug49791-932/1/1/2/a/stderr
-par_shuf $SQLITE sleep .3;echo 1 b|1|b|/tmp/parallel-bug49791-932/1/1/2/b/stdout|/tmp/parallel-bug49791-932/1/1/2/b/stderr
-par_shuf $SQLITE sleep .3;echo 1 c|1|c|/tmp/parallel-bug49791-932/1/1/2/c/stdout|/tmp/parallel-bug49791-932/1/1/2/c/stderr
-par_shuf $SQLITE sleep .3;echo 1 d|1|d|/tmp/parallel-bug49791-932/1/1/2/d/stdout|/tmp/parallel-bug49791-932/1/1/2/d/stderr
-par_shuf $SQLITE sleep .3;echo 1 e|1|e|/tmp/parallel-bug49791-932/1/1/2/e/stdout|/tmp/parallel-bug49791-932/1/1/2/e/stderr
-par_shuf $SQLITE sleep .3;echo 2 a|2|a|/tmp/parallel-bug49791-932/1/2/2/a/stdout|/tmp/parallel-bug49791-932/1/2/2/a/stderr
-par_shuf $SQLITE sleep .3;echo 2 b|2|b|/tmp/parallel-bug49791-932/1/2/2/b/stdout|/tmp/parallel-bug49791-932/1/2/2/b/stderr
-par_shuf $SQLITE sleep .3;echo 2 c|2|c|/tmp/parallel-bug49791-932/1/2/2/c/stdout|/tmp/parallel-bug49791-932/1/2/2/c/stderr
-par_shuf $SQLITE sleep .3;echo 2 d|2|d|/tmp/parallel-bug49791-932/1/2/2/d/stdout|/tmp/parallel-bug49791-932/1/2/2/d/stderr
-par_shuf $SQLITE sleep .3;echo 2 e|2|e|/tmp/parallel-bug49791-932/1/2/2/e/stdout|/tmp/parallel-bug49791-932/1/2/2/e/stderr
-par_shuf $SQLITE sleep .3;echo 3 a|3|a|/tmp/parallel-bug49791-932/1/3/2/a/stdout|/tmp/parallel-bug49791-932/1/3/2/a/stderr
-par_shuf $SQLITE sleep .3;echo 3 b|3|b|/tmp/parallel-bug49791-932/1/3/2/b/stdout|/tmp/parallel-bug49791-932/1/3/2/b/stderr
-par_shuf $SQLITE sleep .3;echo 3 c|3|c|/tmp/parallel-bug49791-932/1/3/2/c/stdout|/tmp/parallel-bug49791-932/1/3/2/c/stderr
-par_shuf $SQLITE sleep .3;echo 3 d|3|d|/tmp/parallel-bug49791-932/1/3/2/d/stdout|/tmp/parallel-bug49791-932/1/3/2/d/stderr
-par_shuf $SQLITE sleep .3;echo 3 e|3|e|/tmp/parallel-bug49791-932/1/3/2/e/stdout|/tmp/parallel-bug49791-932/1/3/2/e/stderr
-par_shuf $SQLITE sleep .3;echo 4 a|4|a|/tmp/parallel-bug49791-932/1/4/2/a/stdout|/tmp/parallel-bug49791-932/1/4/2/a/stderr
-par_shuf $SQLITE sleep .3;echo 4 b|4|b|/tmp/parallel-bug49791-932/1/4/2/b/stdout|/tmp/parallel-bug49791-932/1/4/2/b/stderr
-par_shuf $SQLITE sleep .3;echo 4 c|4|c|/tmp/parallel-bug49791-932/1/4/2/c/stdout|/tmp/parallel-bug49791-932/1/4/2/c/stderr
-par_shuf $SQLITE sleep .3;echo 4 d|4|d|/tmp/parallel-bug49791-932/1/4/2/d/stdout|/tmp/parallel-bug49791-932/1/4/2/d/stderr
-par_shuf $SQLITE sleep .3;echo 4 e|4|e|/tmp/parallel-bug49791-932/1/4/2/e/stdout|/tmp/parallel-bug49791-932/1/4/2/e/stderr
-par_shuf $SQLITE sleep .3;echo 5 a|5|a|/tmp/parallel-bug49791-932/1/5/2/a/stdout|/tmp/parallel-bug49791-932/1/5/2/a/stderr
-par_shuf $SQLITE sleep .3;echo 5 b|5|b|/tmp/parallel-bug49791-932/1/5/2/b/stdout|/tmp/parallel-bug49791-932/1/5/2/b/stderr
-par_shuf $SQLITE sleep .3;echo 5 c|5|c|/tmp/parallel-bug49791-932/1/5/2/c/stdout|/tmp/parallel-bug49791-932/1/5/2/c/stderr
-par_shuf $SQLITE sleep .3;echo 5 d|5|d|/tmp/parallel-bug49791-932/1/5/2/d/stdout|/tmp/parallel-bug49791-932/1/5/2/d/stderr
-par_shuf $SQLITE sleep .3;echo 5 e|5|e|/tmp/parallel-bug49791-932/1/5/2/e/stdout|/tmp/parallel-bug49791-932/1/5/2/e/stderr
+par_shuf $SQLITE sleep .3;echo 1 a|1|a|/tmp/parallel-bug49791- <932/1/1/2/a/stdout|/tmp/parallel-bug49791- <932/1/1/2/a/stderr
+par_shuf $SQLITE sleep .3;echo 1 b|1|b|/tmp/parallel-bug49791- <932/1/1/2/b/stdout|/tmp/parallel-bug49791- <932/1/1/2/b/stderr
+par_shuf $SQLITE sleep .3;echo 1 c|1|c|/tmp/parallel-bug49791- <932/1/1/2/c/stdout|/tmp/parallel-bug49791- <932/1/1/2/c/stderr
+par_shuf $SQLITE sleep .3;echo 1 d|1|d|/tmp/parallel-bug49791- <932/1/1/2/d/stdout|/tmp/parallel-bug49791- <932/1/1/2/d/stderr
+par_shuf $SQLITE sleep .3;echo 1 e|1|e|/tmp/parallel-bug49791- <932/1/1/2/e/stdout|/tmp/parallel-bug49791- <932/1/1/2/e/stderr
+par_shuf $SQLITE sleep .3;echo 2 a|2|a|/tmp/parallel-bug49791- <932/1/2/2/a/stdout|/tmp/parallel-bug49791- <932/1/2/2/a/stderr
+par_shuf $SQLITE sleep .3;echo 2 b|2|b|/tmp/parallel-bug49791- <932/1/2/2/b/stdout|/tmp/parallel-bug49791- <932/1/2/2/b/stderr
+par_shuf $SQLITE sleep .3;echo 2 c|2|c|/tmp/parallel-bug49791- <932/1/2/2/c/stdout|/tmp/parallel-bug49791- <932/1/2/2/c/stderr
+par_shuf $SQLITE sleep .3;echo 2 d|2|d|/tmp/parallel-bug49791- <932/1/2/2/d/stdout|/tmp/parallel-bug49791- <932/1/2/2/d/stderr
+par_shuf $SQLITE sleep .3;echo 2 e|2|e|/tmp/parallel-bug49791- <932/1/2/2/e/stdout|/tmp/parallel-bug49791- <932/1/2/2/e/stderr
+par_shuf $SQLITE sleep .3;echo 3 a|3|a|/tmp/parallel-bug49791- <932/1/3/2/a/stdout|/tmp/parallel-bug49791- <932/1/3/2/a/stderr
+par_shuf $SQLITE sleep .3;echo 3 b|3|b|/tmp/parallel-bug49791- <932/1/3/2/b/stdout|/tmp/parallel-bug49791- <932/1/3/2/b/stderr
+par_shuf $SQLITE sleep .3;echo 3 c|3|c|/tmp/parallel-bug49791- <932/1/3/2/c/stdout|/tmp/parallel-bug49791- <932/1/3/2/c/stderr
+par_shuf $SQLITE sleep .3;echo 3 d|3|d|/tmp/parallel-bug49791- <932/1/3/2/d/stdout|/tmp/parallel-bug49791- <932/1/3/2/d/stderr
+par_shuf $SQLITE sleep .3;echo 3 e|3|e|/tmp/parallel-bug49791- <932/1/3/2/e/stdout|/tmp/parallel-bug49791- <932/1/3/2/e/stderr
+par_shuf $SQLITE sleep .3;echo 4 a|4|a|/tmp/parallel-bug49791- <932/1/4/2/a/stdout|/tmp/parallel-bug49791- <932/1/4/2/a/stderr
+par_shuf $SQLITE sleep .3;echo 4 b|4|b|/tmp/parallel-bug49791- <932/1/4/2/b/stdout|/tmp/parallel-bug49791- <932/1/4/2/b/stderr
+par_shuf $SQLITE sleep .3;echo 4 c|4|c|/tmp/parallel-bug49791- <932/1/4/2/c/stdout|/tmp/parallel-bug49791- <932/1/4/2/c/stderr
+par_shuf $SQLITE sleep .3;echo 4 d|4|d|/tmp/parallel-bug49791- <932/1/4/2/d/stdout|/tmp/parallel-bug49791- <932/1/4/2/d/stderr
+par_shuf $SQLITE sleep .3;echo 4 e|4|e|/tmp/parallel-bug49791- <932/1/4/2/e/stdout|/tmp/parallel-bug49791- <932/1/4/2/e/stderr
+par_shuf $SQLITE sleep .3;echo 5 a|5|a|/tmp/parallel-bug49791- <932/1/5/2/a/stdout|/tmp/parallel-bug49791- <932/1/5/2/a/stderr
+par_shuf $SQLITE sleep .3;echo 5 b|5|b|/tmp/parallel-bug49791- <932/1/5/2/b/stdout|/tmp/parallel-bug49791- <932/1/5/2/b/stderr
+par_shuf $SQLITE sleep .3;echo 5 c|5|c|/tmp/parallel-bug49791- <932/1/5/2/c/stdout|/tmp/parallel-bug49791- <932/1/5/2/c/stderr
+par_shuf $SQLITE sleep .3;echo 5 d|5|d|/tmp/parallel-bug49791- <932/1/5/2/d/stdout|/tmp/parallel-bug49791- <932/1/5/2/d/stderr
+par_shuf $SQLITE sleep .3;echo 5 e|5|e|/tmp/parallel-bug49791- <932/1/5/2/e/stdout|/tmp/parallel-bug49791- <932/1/5/2/e/stderr
par_sql_joblog $MYSQL p_wrapper par_sql_joblog '$MYSQL'
par_sql_joblog $MYSQL ### should only give a single --joblog heading
par_sql_joblog $MYSQL ### --sqlmaster/--sqlworker
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-ssh1
^
|
@@ -4,9 +4,66 @@
par_--onall_--plus ### Test --plus is respected with --onall/--nonall
par_--onall_--plus lo
par_--onall_--plus lo
+par_--onall_--transfer ### bug #46519: --onall ignores --transfer
+par_--onall_--transfer bug46519.a
+par_--onall_--transfer bug46519.b
+par_--onall_--transfer bug46519.c
+par_--onall_--transfer bug46519.a
+par_--onall_--transfer bug46519.b
+par_--onall_--transfer bug46519.c
+par_--onall_--transfer bug46519.aa
+par_--onall_--transfer bug46519.aaa
+par_--onall_--transfer bug46519.bb
+par_--onall_--transfer bug46519.bbb
+par_--onall_--transfer bug46519.cc
+par_--onall_--transfer bug46519.ccc
+par_--onall_--transfer ls: cannot access 'bug46519.aa': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.aaa': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.bb': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.bbb': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.cc': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.ccc': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.aa': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.aaa': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.bb': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.bbb': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.cc': No such file or directory
+par_--onall_--transfer ls: cannot access 'bug46519.ccc': No such file or directory
+par_--ssh_ssh_in_ssh ### bug #61894: Pack ssh code in eval protection
+par_--ssh_ssh_in_ssh Unquoted ssh should work
+par_--ssh_ssh_in_ssh aspire
+par_--ssh_ssh_in_ssh OK
+par_--ssh_ssh_in_ssh aspire
+par_--ssh_ssh_in_ssh OK
+par_--ssh_ssh_in_ssh aspire
+par_--ssh_ssh_in_ssh OK
+par_--ssh_ssh_in_ssh aspire
+par_--ssh_ssh_in_ssh OK
par_PARALLEL_SSH_function ### use function as $PARALLEL_SSH
par_PARALLEL_SSH_function Run through FOOSSH?
par_PARALLEL_SSH_function FOOSSH
+par__remote_load ### Test --load remote
+par__remote_load parallel: Warning: This job was killed because it timed out:
+par__remote_load parallel: Warning: perl -e 'while(1){ }'
+par__remote_load parallel: Warning: This job was killed because it timed out:
+par__remote_load parallel: Warning: perl -e 'while(1){ }'
+par__remote_load parallel: Warning: This job was killed because it timed out:
+par__remote_load parallel: Warning: perl -e 'while(1){ }'
+par__remote_load parallel: Warning: This job was killed because it timed out:
+par__remote_load parallel: Warning: perl -e 'while(1){ }'
+par__remote_load parallel: Warning: This job was killed because it timed out:
+par__remote_load parallel: Warning: perl -e 'while(1){ }'
+par__remote_load parallel: Warning: This job was killed because it timed out:
+par__remote_load parallel: Warning: perl -e 'while(1){ }'
+par__remote_load parallel: Warning: This job was killed because it timed out:
+par__remote_load parallel: Warning: perl -e 'while(1){ }'
+par__remote_load parallel: Warning: This job was killed because it timed out:
+par__remote_load parallel: Warning: perl -e 'while(1){ }'
+par__remote_load parallel: Warning: This job was killed because it timed out:
+par__remote_load parallel: Warning: perl -e 'while(1){ }'
+par__remote_load parallel: Warning: This job was killed because it timed out:
+par__remote_load parallel: Warning: perl -e 'while(1){ }'
+par__remote_load OK
par_csh_variable_newline ### Can csh propagate a variable containing \n
par_csh_variable_newline 1
par_csh_variable_newline 2
@@ -17,33 +74,12 @@
par_files_nonall ### bug #40002: --files and --nonall seem not to work together:
par_files_nonall 1
par_hgrp_agrp ### Test --hgrp {hgrp} {agrp}
+par_hgrp_agrp_comma ### bug #63722: hostgroup with , breaks parser
+par_hgrp_agrp_comma parallel: Warning: Adding hostgroups: csh@lo tcsh@lo
+par_hgrp_agrp_comma uid=1004(csh) gid=1004(csh) groups=1004(csh)
+par_hgrp_agrp_comma uid=1007(tcsh) gid=1007(tcsh) groups=1007(tcsh)
par_joblog_nonall ### bug #40001: --joblog and --nonall seem not to work together:
par_joblog_nonall 3
-par_onall_transfer ### bug #46519: --onall ignores --transfer
-par_onall_transfer bug46519.a
-par_onall_transfer bug46519.b
-par_onall_transfer bug46519.c
-par_onall_transfer bug46519.a
-par_onall_transfer bug46519.b
-par_onall_transfer bug46519.c
-par_onall_transfer bug46519.aa
-par_onall_transfer bug46519.aaa
-par_onall_transfer bug46519.bb
-par_onall_transfer bug46519.bbb
-par_onall_transfer bug46519.cc
-par_onall_transfer bug46519.ccc
-par_onall_transfer ls: cannot access 'bug46519.aa': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.aaa': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.bb': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.bbb': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.cc': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.ccc': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.aa': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.aaa': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.bb': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.bbb': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.cc': No such file or directory
-par_onall_transfer ls: cannot access 'bug46519.ccc': No such file or directory
par_pipe_unneeded_spawn ### Test bug #34241: --pipe should not spawn unneeded processes
par_pipe_unneeded_spawn 1
par_pipe_unneeded_spawn 2
@@ -53,28 +89,6 @@
par_pipe_unneeded_spawn Block_end
par_pipe_unneeded_spawn 5
par_pipe_unneeded_spawn Block_end
-par_remote_load ### Test --load remote
-par_remote_load parallel: Warning: This job was killed because it timed out:
-par_remote_load parallel: Warning: perl -e 'while(1){ }'
-par_remote_load parallel: Warning: This job was killed because it timed out:
-par_remote_load parallel: Warning: perl -e 'while(1){ }'
-par_remote_load parallel: Warning: This job was killed because it timed out:
-par_remote_load parallel: Warning: perl -e 'while(1){ }'
-par_remote_load parallel: Warning: This job was killed because it timed out:
-par_remote_load parallel: Warning: perl -e 'while(1){ }'
-par_remote_load parallel: Warning: This job was killed because it timed out:
-par_remote_load parallel: Warning: perl -e 'while(1){ }'
-par_remote_load parallel: Warning: This job was killed because it timed out:
-par_remote_load parallel: Warning: perl -e 'while(1){ }'
-par_remote_load parallel: Warning: This job was killed because it timed out:
-par_remote_load parallel: Warning: perl -e 'while(1){ }'
-par_remote_load parallel: Warning: This job was killed because it timed out:
-par_remote_load parallel: Warning: perl -e 'while(1){ }'
-par_remote_load parallel: Warning: This job was killed because it timed out:
-par_remote_load parallel: Warning: perl -e 'while(1){ }'
-par_remote_load parallel: Warning: This job was killed because it timed out:
-par_remote_load parallel: Warning: perl -e 'while(1){ }'
-par_remote_load OK
par_remote_nice ### Test --nice remote
par_remote_nice NI
par_remote_nice 5
@@ -83,16 +97,6 @@
par_ssh ### use --ssh
par_ssh Run through BARSSH?
par_ssh BARSSH
-par_ssh_ssh ### bug #61894: Pack ssh code in eval protection
-par_ssh_ssh Unquoted ssh should work
-par_ssh_ssh aspire
-par_ssh_ssh OK
-par_ssh_ssh aspire
-par_ssh_ssh OK
-par_ssh_ssh aspire
-par_ssh_ssh OK
-par_ssh_ssh aspire
-par_ssh_ssh OK
par_sshlogin_with_comma ### --sshlogin with \,
par_sshlogin_with_comma OK
par_sshlogin_with_comma ### --sshlogin with ,,
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-ssh2
^
|
@@ -1,3 +1,5 @@
+par__obey_servers_capacity_slf_reload ### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded
+par__obey_servers_capacity_slf_reload OK
par_cat_fifo_exit ### --cat and --fifo exit value in bash
par_cat_fifo_exit true
par_cat_fifo_exit 0
@@ -21,10 +23,6 @@
par_env_parallel_fifo transferred non-exported func
par_env_parallel_fifo data from stdin
par_env_parallel_fifo transferred non-exported func
-par_filter_hosts_slf ### --filter-hosts --slf <()
-par_filter_hosts_slf OK
-par_obey_servers_capacity_slf_reload ### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded
-par_obey_servers_capacity_slf_reload OK
par_pipepart_remote ### bug #42999: --pipepart with remote does not work
par_pipepart_remote 14 14 33
par_pipepart_remote 11 11 33
@@ -101,3 +99,5 @@
par_wd_no_such_dir mkdir: cannot create directory '/no-such-dir': Permission denied
par_wd_no_such_dir parallel: Cannot chdir to /no-such-dir
par_wd_no_such_dir Exit code 1
+par_z_filter_hosts_slf ### --filter-hosts --slf <()
+par_z_filter_hosts_slf OK
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-ssh4
^
|
@@ -1,3 +1,186 @@
+par_--nonall_results ### --results --onall
+par_--nonall_results /TMP/onall
+par_--nonall_results /TMP/onall/noslashsh@lo
+par_--nonall_results /TMP/onall/noslashsh@lo/1
+par_--nonall_results /TMP/onall/noslashsh@lo/1/id
+par_--nonall_results /TMP/onall/noslashsh@lo/1/id/seq
+par_--nonall_results /TMP/onall/noslashsh@lo/1/id/stderr
+par_--nonall_results /TMP/onall/noslashsh@lo/1/id/stdout
+par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd
+par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd/seq
+par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd/stderr
+par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd/stdout
+par_--nonall_results /TMP/onall/rpl1noslash
+par_--nonall_results /TMP/onall/rpl1noslash/idsh@lo.seq
+par_--nonall_results /TMP/onall/rpl1noslash/idcsh@lo.seq
+par_--nonall_results /TMP/onall/rpl1noslash/idcsh@lo
+par_--nonall_results /TMP/onall/rpl1noslash/pwdsh@lo.err
+par_--nonall_results /TMP/onall/rpl1noslash/idcsh@lo.err
+par_--nonall_results /TMP/onall/rpl1noslash/pwdcsh@lo.err
+par_--nonall_results /TMP/onall/rpl1noslash/idsh@lo
+par_--nonall_results /TMP/onall/rpl1noslash/pwdcsh@lo
+par_--nonall_results /TMP/onall/rpl1noslash/pwdsh@lo.seq
+par_--nonall_results /TMP/onall/rpl1noslash/pwdsh@lo
+par_--nonall_results /TMP/onall/rpl1noslash/idsh@lo.err
+par_--nonall_results /TMP/onall/rpl1noslash/pwdcsh@lo.seq
+par_--nonall_results /TMP/onall/slash
+par_--nonall_results /TMP/onall/slash/sh@lo
+par_--nonall_results /TMP/onall/slash/sh@lo/1
+par_--nonall_results /TMP/onall/slash/sh@lo/1/id
+par_--nonall_results /TMP/onall/slash/sh@lo/1/id/seq
+par_--nonall_results /TMP/onall/slash/sh@lo/1/id/stderr
+par_--nonall_results /TMP/onall/slash/sh@lo/1/id/stdout
+par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd
+par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd/seq
+par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd/stderr
+par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd/stdout
+par_--nonall_results /TMP/onall/slash/csh@lo
+par_--nonall_results /TMP/onall/slash/csh@lo/1
+par_--nonall_results /TMP/onall/slash/csh@lo/1/id
+par_--nonall_results /TMP/onall/slash/csh@lo/1/id/seq
+par_--nonall_results /TMP/onall/slash/csh@lo/1/id/stderr
+par_--nonall_results /TMP/onall/slash/csh@lo/1/id/stdout
+par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd
+par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd/seq
+par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd/stderr
+par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd/stdout
+par_--nonall_results /TMP/onall/rplnoslash
+par_--nonall_results /TMP/onall/rplnoslash/idsh@lo.seq
+par_--nonall_results /TMP/onall/rplnoslash/idcsh@lo.seq
+par_--nonall_results /TMP/onall/rplnoslash/idcsh@lo
+par_--nonall_results /TMP/onall/rplnoslash/pwdsh@lo.err
+par_--nonall_results /TMP/onall/rplnoslash/idcsh@lo.err
+par_--nonall_results /TMP/onall/rplnoslash/pwdcsh@lo.err
+par_--nonall_results /TMP/onall/rplnoslash/idsh@lo
+par_--nonall_results /TMP/onall/rplnoslash/pwdcsh@lo
+par_--nonall_results /TMP/onall/rplnoslash/pwdsh@lo.seq
+par_--nonall_results /TMP/onall/rplnoslash/pwdsh@lo
+par_--nonall_results /TMP/onall/rplnoslash/idsh@lo.err
+par_--nonall_results /TMP/onall/rplnoslash/pwdcsh@lo.seq
+par_--nonall_results /TMP/onall/rpl1slash
+par_--nonall_results /TMP/onall/rpl1slash/id
+par_--nonall_results /TMP/onall/rpl1slash/id/sh@lo.seq
+par_--nonall_results /TMP/onall/rpl1slash/id/csh@lo.err
+par_--nonall_results /TMP/onall/rpl1slash/id/csh@lo.seq
+par_--nonall_results /TMP/onall/rpl1slash/id/sh@lo
+par_--nonall_results /TMP/onall/rpl1slash/id/csh@lo
+par_--nonall_results /TMP/onall/rpl1slash/id/sh@lo.err
+par_--nonall_results /TMP/onall/rpl1slash/pwd
+par_--nonall_results /TMP/onall/rpl1slash/pwd/sh@lo.seq
+par_--nonall_results /TMP/onall/rpl1slash/pwd/csh@lo.err
+par_--nonall_results /TMP/onall/rpl1slash/pwd/csh@lo.seq
+par_--nonall_results /TMP/onall/rpl1slash/pwd/sh@lo
+par_--nonall_results /TMP/onall/rpl1slash/pwd/csh@lo
+par_--nonall_results /TMP/onall/rpl1slash/pwd/sh@lo.err
+par_--nonall_results /TMP/onall/noslashcsh@lo
+par_--nonall_results /TMP/onall/noslashcsh@lo/1
+par_--nonall_results /TMP/onall/noslashcsh@lo/1/id
+par_--nonall_results /TMP/onall/noslashcsh@lo/1/id/seq
+par_--nonall_results /TMP/onall/noslashcsh@lo/1/id/stderr
+par_--nonall_results /TMP/onall/noslashcsh@lo/1/id/stdout
+par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd
+par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd/seq
+par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd/stderr
+par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd/stdout
+par_--nonall_results /TMP/onall/rplslash
+par_--nonall_results /TMP/onall/rplslash/id
+par_--nonall_results /TMP/onall/rplslash/id/sh@lo.seq
+par_--nonall_results /TMP/onall/rplslash/id/csh@lo.err
+par_--nonall_results /TMP/onall/rplslash/id/csh@lo.seq
+par_--nonall_results /TMP/onall/rplslash/id/sh@lo
+par_--nonall_results /TMP/onall/rplslash/id/csh@lo
+par_--nonall_results /TMP/onall/rplslash/id/sh@lo.err
+par_--nonall_results /TMP/onall/rplslash/pwd
+par_--nonall_results /TMP/onall/rplslash/pwd/sh@lo.seq
+par_--nonall_results /TMP/onall/rplslash/pwd/csh@lo.err
+par_--nonall_results /TMP/onall/rplslash/pwd/csh@lo.seq
+par_--nonall_results /TMP/onall/rplslash/pwd/sh@lo
+par_--nonall_results /TMP/onall/rplslash/pwd/csh@lo
+par_--nonall_results /TMP/onall/rplslash/pwd/sh@lo.err
+par_--nonall_results ### --results --nonall
+par_--nonall_results /TMP/nonall
+par_--nonall_results /TMP/nonall/noslashsh@lo
+par_--nonall_results /TMP/nonall/noslashsh@lo/1
+par_--nonall_results /TMP/nonall/noslashsh@lo/1/seq
+par_--nonall_results /TMP/nonall/noslashsh@lo/1/stderr
+par_--nonall_results /TMP/nonall/noslashsh@lo/1/stdout
+par_--nonall_results /TMP/nonall/rpl1noslash
+par_--nonall_results /TMP/nonall/rpl1noslash/sh@lo.seq
+par_--nonall_results /TMP/nonall/rpl1noslash/csh@lo.err
+par_--nonall_results /TMP/nonall/rpl1noslash/csh@lo.seq
+par_--nonall_results /TMP/nonall/rpl1noslash/sh@lo
+par_--nonall_results /TMP/nonall/rpl1noslash/csh@lo
+par_--nonall_results /TMP/nonall/rpl1noslash/sh@lo.err
+par_--nonall_results /TMP/nonall/slash
+par_--nonall_results /TMP/nonall/slash/sh@lo
+par_--nonall_results /TMP/nonall/slash/sh@lo/1
+par_--nonall_results /TMP/nonall/slash/sh@lo/1/seq
+par_--nonall_results /TMP/nonall/slash/sh@lo/1/stderr
+par_--nonall_results /TMP/nonall/slash/sh@lo/1/stdout
+par_--nonall_results /TMP/nonall/slash/csh@lo
+par_--nonall_results /TMP/nonall/slash/csh@lo/1
+par_--nonall_results /TMP/nonall/slash/csh@lo/1/seq
+par_--nonall_results /TMP/nonall/slash/csh@lo/1/stderr
+par_--nonall_results /TMP/nonall/slash/csh@lo/1/stdout
+par_--nonall_results /TMP/nonall/rplnoslash
+par_--nonall_results /TMP/nonall/rplnoslash/sh@lo.seq
+par_--nonall_results /TMP/nonall/rplnoslash/csh@lo.err
+par_--nonall_results /TMP/nonall/rplnoslash/csh@lo.seq
+par_--nonall_results /TMP/nonall/rplnoslash/sh@lo
+par_--nonall_results /TMP/nonall/rplnoslash/csh@lo
+par_--nonall_results /TMP/nonall/rplnoslash/sh@lo.err
+par_--nonall_results /TMP/nonall/rpl1slash
+par_--nonall_results /TMP/nonall/rpl1slash/sh@lo.seq
+par_--nonall_results /TMP/nonall/rpl1slash/csh@lo.err
+par_--nonall_results /TMP/nonall/rpl1slash/csh@lo.seq
+par_--nonall_results /TMP/nonall/rpl1slash/sh@lo
+par_--nonall_results /TMP/nonall/rpl1slash/csh@lo
+par_--nonall_results /TMP/nonall/rpl1slash/sh@lo.err
+par_--nonall_results /TMP/nonall/noslashcsh@lo
+par_--nonall_results /TMP/nonall/noslashcsh@lo/1
+par_--nonall_results /TMP/nonall/noslashcsh@lo/1/seq
+par_--nonall_results /TMP/nonall/noslashcsh@lo/1/stderr
+par_--nonall_results /TMP/nonall/noslashcsh@lo/1/stdout
+par_--nonall_results /TMP/nonall/rplslash
+par_--nonall_results /TMP/nonall/rplslash/sh@lo.seq
+par_--nonall_results /TMP/nonall/rplslash/csh@lo.err
+par_--nonall_results /TMP/nonall/rplslash/csh@lo.seq
+par_--nonall_results /TMP/nonall/rplslash/sh@lo
+par_--nonall_results /TMP/nonall/rplslash/csh@lo
+par_--nonall_results /TMP/nonall/rplslash/sh@lo.err
+par_--tmux_different_shells ### Test tmux works on different shells
+par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_different_shells 0
+par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_different_shells 4
+par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_different_shells 0
+par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_different_shells 4
+par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_different_shells 0
+par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_different_shells 4
+par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_different_shells 0
+par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_different_shells 4
+par_--tmux_different_shells # command is currently too long for csh. Maybe it can be fixed?
+par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_different_shells 0
+par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_different_shells 4
+par_--tmux_length ### works
+par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_length ### These blocked due to length
+par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
+par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach
+par__test_different_rsync_versions ### different versions of rsync need fixups
+par__test_different_rsync_versions ### no output is good
par_bigvar_csh ### csh
par_bigvar_csh 3 big vars run remotely - length(base64) > 1000
par_bigvar_csh 1 200 692
@@ -18,8 +201,6 @@
par_bigvar_rc 1 200 692
par_bigvar_rc 1 200 692
par_bigvar_rc 1 150 547
-par_csh_nice ### bug #44143: csh and nice
-par_csh_nice OK
par_env_underscore ### --env _
par_env_underscore OK FUBAR test
par_env_underscore In csh this may fail with ignored_var: Undefined variable.
@@ -37,46 +218,6 @@
par_exporting_in_zsh myfunc ran OK
par_exporting_in_zsh function from zsh to zsh OK
par_exporting_in_zsh function from zsh to bash OK
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-ssh5
^
|
@@ -1,3 +1,5 @@
+par_ssh_cmd_with_newline ### Check --ssh with \n works
+par_ssh_cmd_with_newline uid=1003(sh) gid=1003(sh) groups=1003(sh)
par_pipe_retries ### bug #45025: --pipe --retries does not reschedule on other host
par_pipe_retries parallel: Warning: Could not figure out number of cpus on a.a (). Using 1.
par_pipe_retries 165668 165668 1048571
@@ -5,608 +7,617 @@
par_pipe_retries 134362 134362 940534
par_pipe_retries localhost-:
par_pipe_retries parallel: Error: --retries cannot be combined with --roundrobin.
-par_lsh ### --ssh lsh
-par_lsh OK
-par_lsh OK
-par_lsh OK
-par_lsh OK
par_input_loss_pipe ### bug #36595: silent loss of input with --pipe and --sshlogin
par_input_loss_pipe 1 10000 48894
par_env_parallel_onall bug #54352: env_parallel -Slo --nonall myfunc broken in 20180722
par_env_parallel_onall Myfunc works
par_env_parallel_onall Myfunc works
-par_controlmaster_eats bug #36707: --controlmaster eats jobs
-par_controlmaster_eats OK1
-par_controlmaster_eats OK2
-par_command_len_shellquote ### test quoting will not cause a crash if too long
-par_command_len_shellquote -Slo -j10 " 1 1 1 1 4
-par_command_len_shellquote -Slo -j10 " 1 2 1 1 10
-par_command_len_shellquote -Slo -j10 " 1 3 1 1 28
-par_command_len_shellquote -Slo -j10 " 1 4 1 1 82
-par_command_len_shellquote -Slo -j10 " 1 5 1 1 244
-par_command_len_shellquote -Slo -j10 " 1 6 1 1 730
-par_command_len_shellquote -Slo -j10 " 1 7 1 1 2188
-par_command_len_shellquote -Slo -j10 " 1 8 1 1 6562
-par_command_len_shellquote -Slo -j10 " 1 9 0 0 0
-par_command_len_shellquote -Slo -j10 " 1 10 0 0 0
-par_command_len_shellquote -Slo -j10 " 2 1 1 1 5
-par_command_len_shellquote -Slo -j10 " 2 2 1 1 11
-par_command_len_shellquote -Slo -j10 " 2 3 1 1 29
-par_command_len_shellquote -Slo -j10 " 2 4 1 1 83
-par_command_len_shellquote -Slo -j10 " 2 5 1 1 245
-par_command_len_shellquote -Slo -j10 " 2 6 1 1 731
-par_command_len_shellquote -Slo -j10 " 2 7 1 1 2189
-par_command_len_shellquote -Slo -j10 " 2 8 0 0 0
-par_command_len_shellquote -Slo -j10 " 2 9 0 0 0
-par_command_len_shellquote -Slo -j10 " 2 10 0 0 0
-par_command_len_shellquote -Slo -j10 " 3 1 1 1 6
-par_command_len_shellquote -Slo -j10 " 3 2 1 1 12
-par_command_len_shellquote -Slo -j10 " 3 3 1 1 30
-par_command_len_shellquote -Slo -j10 " 3 4 1 1 84
-par_command_len_shellquote -Slo -j10 " 3 5 1 1 246
-par_command_len_shellquote -Slo -j10 " 3 6 1 1 732
-par_command_len_shellquote -Slo -j10 " 3 7 1 1 2190
-par_command_len_shellquote -Slo -j10 " 3 8 0 0 0
-par_command_len_shellquote -Slo -j10 " 3 9 0 0 0
-par_command_len_shellquote -Slo -j10 " 3 10 0 0 0
-par_command_len_shellquote -Slo -j10 " 4 1 1 1 7
-par_command_len_shellquote -Slo -j10 " 4 2 1 1 13
-par_command_len_shellquote -Slo -j10 " 4 3 1 1 31
-par_command_len_shellquote -Slo -j10 " 4 4 1 1 85
-par_command_len_shellquote -Slo -j10 " 4 5 1 1 247
-par_command_len_shellquote -Slo -j10 " 4 6 1 1 733
-par_command_len_shellquote -Slo -j10 " 4 7 1 1 2191
-par_command_len_shellquote -Slo -j10 " 4 8 0 0 0
-par_command_len_shellquote -Slo -j10 " 4 9 0 0 0
-par_command_len_shellquote -Slo -j10 " 4 10 0 0 0
-par_command_len_shellquote -Slo -j10 " 5 1 1 1 8
-par_command_len_shellquote -Slo -j10 " 5 2 1 1 14
-par_command_len_shellquote -Slo -j10 " 5 3 1 1 32
-par_command_len_shellquote -Slo -j10 " 5 4 1 1 86
-par_command_len_shellquote -Slo -j10 " 5 5 1 1 248
-par_command_len_shellquote -Slo -j10 " 5 6 1 1 734
-par_command_len_shellquote -Slo -j10 " 5 7 1 1 2192
-par_command_len_shellquote -Slo -j10 " 5 8 0 0 0
-par_command_len_shellquote -Slo -j10 " 5 9 0 0 0
-par_command_len_shellquote -Slo -j10 " 5 10 0 0 0
-par_command_len_shellquote -Slo -j10 " 6 1 1 1 9
-par_command_len_shellquote -Slo -j10 " 6 2 1 1 15
-par_command_len_shellquote -Slo -j10 " 6 3 1 1 33
-par_command_len_shellquote -Slo -j10 " 6 4 1 1 87
-par_command_len_shellquote -Slo -j10 " 6 5 1 1 249
-par_command_len_shellquote -Slo -j10 " 6 6 1 1 735
-par_command_len_shellquote -Slo -j10 " 6 7 0 0 0
-par_command_len_shellquote -Slo -j10 " 6 8 0 0 0
-par_command_len_shellquote -Slo -j10 " 6 9 0 0 0
-par_command_len_shellquote -Slo -j10 " 6 10 0 0 0
-par_command_len_shellquote -Slo -j10 " 7 1 1 1 10
-par_command_len_shellquote -Slo -j10 " 7 2 1 1 16
-par_command_len_shellquote -Slo -j10 " 7 3 1 1 34
-par_command_len_shellquote -Slo -j10 " 7 4 1 1 88
-par_command_len_shellquote -Slo -j10 " 7 5 1 1 250
-par_command_len_shellquote -Slo -j10 " 7 6 1 1 736
-par_command_len_shellquote -Slo -j10 " 7 7 0 0 0
-par_command_len_shellquote -Slo -j10 " 7 8 0 0 0
-par_command_len_shellquote -Slo -j10 " 7 9 0 0 0
-par_command_len_shellquote -Slo -j10 " 7 10 0 0 0
-par_command_len_shellquote -Slo -j10 " 8 1 1 1 11
-par_command_len_shellquote -Slo -j10 " 8 2 1 1 17
-par_command_len_shellquote -Slo -j10 " 8 3 1 1 35
-par_command_len_shellquote -Slo -j10 " 8 4 1 1 89
-par_command_len_shellquote -Slo -j10 " 8 5 1 1 251
-par_command_len_shellquote -Slo -j10 " 8 6 1 1 737
-par_command_len_shellquote -Slo -j10 " 8 7 0 0 0
-par_command_len_shellquote -Slo -j10 " 8 8 0 0 0
-par_command_len_shellquote -Slo -j10 " 8 9 0 0 0
-par_command_len_shellquote -Slo -j10 " 8 10 0 0 0
-par_command_len_shellquote -Slo -j10 " 9 1 1 1 12
-par_command_len_shellquote -Slo -j10 " 9 2 1 1 18
-par_command_len_shellquote -Slo -j10 " 9 3 1 1 36
-par_command_len_shellquote -Slo -j10 " 9 4 1 1 90
-par_command_len_shellquote -Slo -j10 " 9 5 1 1 252
-par_command_len_shellquote -Slo -j10 " 9 6 1 1 738
-par_command_len_shellquote -Slo -j10 " 9 7 0 0 0
-par_command_len_shellquote -Slo -j10 " 9 8 0 0 0
-par_command_len_shellquote -Slo -j10 " 9 9 0 0 0
-par_command_len_shellquote -Slo -j10 " 9 10 0 0 0
-par_command_len_shellquote -Slo -j10 " 10 1 1 1 13
-par_command_len_shellquote -Slo -j10 " 10 2 1 1 19
-par_command_len_shellquote -Slo -j10 " 10 3 1 1 37
-par_command_len_shellquote -Slo -j10 " 10 4 1 1 91
-par_command_len_shellquote -Slo -j10 " 10 5 1 1 253
-par_command_len_shellquote -Slo -j10 " 10 6 1 1 739
-par_command_len_shellquote -Slo -j10 " 10 7 0 0 0
-par_command_len_shellquote -Slo -j10 " 10 8 0 0 0
-par_command_len_shellquote -Slo -j10 " 10 9 0 0 0
-par_command_len_shellquote -Slo -j10 " 10 10 0 0 0
-par_command_len_shellquote -Slo -j10 ' 1 1 1 1 4
-par_command_len_shellquote -Slo -j10 ' 1 2 1 1 10
-par_command_len_shellquote -Slo -j10 ' 1 3 1 1 28
-par_command_len_shellquote -Slo -j10 ' 1 4 1 1 82
-par_command_len_shellquote -Slo -j10 ' 1 5 1 1 244
-par_command_len_shellquote -Slo -j10 ' 1 6 1 1 730
-par_command_len_shellquote -Slo -j10 ' 1 7 1 1 2188
-par_command_len_shellquote -Slo -j10 ' 1 8 1 1 6562
-par_command_len_shellquote -Slo -j10 ' 1 9 0 0 0
-par_command_len_shellquote -Slo -j10 ' 1 10 0 0 0
-par_command_len_shellquote -Slo -j10 ' 2 1 1 1 5
-par_command_len_shellquote -Slo -j10 ' 2 2 1 1 11
-par_command_len_shellquote -Slo -j10 ' 2 3 1 1 29
-par_command_len_shellquote -Slo -j10 ' 2 4 1 1 83
-par_command_len_shellquote -Slo -j10 ' 2 5 1 1 245
-par_command_len_shellquote -Slo -j10 ' 2 6 1 1 731
-par_command_len_shellquote -Slo -j10 ' 2 7 1 1 2189
-par_command_len_shellquote -Slo -j10 ' 2 8 0 0 0
-par_command_len_shellquote -Slo -j10 ' 2 9 0 0 0
-par_command_len_shellquote -Slo -j10 ' 2 10 0 0 0
-par_command_len_shellquote -Slo -j10 ' 3 1 1 1 6
-par_command_len_shellquote -Slo -j10 ' 3 2 1 1 12
-par_command_len_shellquote -Slo -j10 ' 3 3 1 1 30
-par_command_len_shellquote -Slo -j10 ' 3 4 1 1 84
-par_command_len_shellquote -Slo -j10 ' 3 5 1 1 246
-par_command_len_shellquote -Slo -j10 ' 3 6 1 1 732
-par_command_len_shellquote -Slo -j10 ' 3 7 1 1 2190
-par_command_len_shellquote -Slo -j10 ' 3 8 0 0 0
-par_command_len_shellquote -Slo -j10 ' 3 9 0 0 0
-par_command_len_shellquote -Slo -j10 ' 3 10 0 0 0
-par_command_len_shellquote -Slo -j10 ' 4 1 1 1 7
-par_command_len_shellquote -Slo -j10 ' 4 2 1 1 13
-par_command_len_shellquote -Slo -j10 ' 4 3 1 1 31
-par_command_len_shellquote -Slo -j10 ' 4 4 1 1 85
-par_command_len_shellquote -Slo -j10 ' 4 5 1 1 247
-par_command_len_shellquote -Slo -j10 ' 4 6 1 1 733
-par_command_len_shellquote -Slo -j10 ' 4 7 1 1 2191
-par_command_len_shellquote -Slo -j10 ' 4 8 0 0 0
-par_command_len_shellquote -Slo -j10 ' 4 9 0 0 0
-par_command_len_shellquote -Slo -j10 ' 4 10 0 0 0
-par_command_len_shellquote -Slo -j10 ' 5 1 1 1 8
-par_command_len_shellquote -Slo -j10 ' 5 2 1 1 14
-par_command_len_shellquote -Slo -j10 ' 5 3 1 1 32
-par_command_len_shellquote -Slo -j10 ' 5 4 1 1 86
-par_command_len_shellquote -Slo -j10 ' 5 5 1 1 248
-par_command_len_shellquote -Slo -j10 ' 5 6 1 1 734
-par_command_len_shellquote -Slo -j10 ' 5 7 1 1 2192
-par_command_len_shellquote -Slo -j10 ' 5 8 0 0 0
-par_command_len_shellquote -Slo -j10 ' 5 9 0 0 0
-par_command_len_shellquote -Slo -j10 ' 5 10 0 0 0
-par_command_len_shellquote -Slo -j10 ' 6 1 1 1 9
-par_command_len_shellquote -Slo -j10 ' 6 2 1 1 15
-par_command_len_shellquote -Slo -j10 ' 6 3 1 1 33
-par_command_len_shellquote -Slo -j10 ' 6 4 1 1 87
-par_command_len_shellquote -Slo -j10 ' 6 5 1 1 249
-par_command_len_shellquote -Slo -j10 ' 6 6 1 1 735
-par_command_len_shellquote -Slo -j10 ' 6 7 0 0 0
-par_command_len_shellquote -Slo -j10 ' 6 8 0 0 0
-par_command_len_shellquote -Slo -j10 ' 6 9 0 0 0
-par_command_len_shellquote -Slo -j10 ' 6 10 0 0 0
-par_command_len_shellquote -Slo -j10 ' 7 1 1 1 10
-par_command_len_shellquote -Slo -j10 ' 7 2 1 1 16
-par_command_len_shellquote -Slo -j10 ' 7 3 1 1 34
-par_command_len_shellquote -Slo -j10 ' 7 4 1 1 88
-par_command_len_shellquote -Slo -j10 ' 7 5 1 1 250
-par_command_len_shellquote -Slo -j10 ' 7 6 1 1 736
-par_command_len_shellquote -Slo -j10 ' 7 7 0 0 0
-par_command_len_shellquote -Slo -j10 ' 7 8 0 0 0
-par_command_len_shellquote -Slo -j10 ' 7 9 0 0 0
-par_command_len_shellquote -Slo -j10 ' 7 10 0 0 0
-par_command_len_shellquote -Slo -j10 ' 8 1 1 1 11
-par_command_len_shellquote -Slo -j10 ' 8 2 1 1 17
-par_command_len_shellquote -Slo -j10 ' 8 3 1 1 35
-par_command_len_shellquote -Slo -j10 ' 8 4 1 1 89
-par_command_len_shellquote -Slo -j10 ' 8 5 1 1 251
-par_command_len_shellquote -Slo -j10 ' 8 6 1 1 737
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-ssh6
^
|
@@ -18,6 +18,18 @@
par_onall_basefile_cleanup tmp/onall--basefile--clean
par_onall_basefile_cleanup rm: cannot remove 'tmp/onall--basefile--clean': No such file or directory
par_onall_basefile_cleanup rm: cannot remove 'tmp/onall--basefile--clean': No such file or directory
+par_onall_timeout ### --timeout --onall on remote machines: 2*slept 1, 2 jobs failed
+par_onall_timeout slept 1
+par_onall_timeout parallel: Warning: This job was killed because it timed out:
+par_onall_timeout parallel: Warning: sleep 8; echo slept 8
+par_onall_timeout parallel: Warning: This job was killed because it timed out:
+par_onall_timeout parallel: Warning: sleep 9; echo slept 9
+par_onall_timeout slept 1
+par_onall_timeout parallel: Warning: This job was killed because it timed out:
+par_onall_timeout parallel: Warning: sleep 8; echo slept 8
+par_onall_timeout parallel: Warning: This job was killed because it timed out:
+par_onall_timeout parallel: Warning: sleep 9; echo slept 9
+par_onall_timeout jobs failed: 2
par_read_sshloginfile_from_stdin ### Test read sshloginfile from STDIN
par_read_sshloginfile_from_stdin /home/csh
par_read_sshloginfile_from_stdin /home/parallel
@@ -127,18 +139,6 @@
par_test_pipe_onall parallel@lo 1
par_test_pipe_onall parallel@lo 2
par_test_pipe_onall parallel@lo 3
-par_timeout_onall ### --timeout --onall on remote machines: 2*slept 1, 2 jobs failed
-par_timeout_onall slept 1
-par_timeout_onall parallel: Warning: This job was killed because it timed out:
-par_timeout_onall parallel: Warning: sleep 8; echo slept 8
-par_timeout_onall parallel: Warning: This job was killed because it timed out:
-par_timeout_onall parallel: Warning: sleep 9; echo slept 9
-par_timeout_onall slept 1
-par_timeout_onall parallel: Warning: This job was killed because it timed out:
-par_timeout_onall parallel: Warning: sleep 8; echo slept 8
-par_timeout_onall parallel: Warning: This job was killed because it timed out:
-par_timeout_onall parallel: Warning: sleep 9; echo slept 9
-par_timeout_onall jobs failed: 2
par_wd_braces ### Test --wd {}
par_wd_braces wd1
par_wd_braces wd2
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-ssh7
^
|
@@ -1,2344 +1,2344 @@
### test --env _, env_parallel for different shells
-par_zsh_underscore ### zsh
-par_zsh_underscore ### Testing of --env _
-par_zsh_underscore variables in aliases in and arrays in functions work
-par_zsh_underscore variables in aliases in and arrays in functions work
-par_zsh_underscore variables in aliases in and arrays in functions work
-par_zsh_underscore variables in aliases in and arrays in functions work
-par_zsh_underscore variables in aliases in and arrays in functions work
-par_zsh_underscore variables in aliases in and arrays in functions work
-par_zsh_underscore (eval):1: command not found: not_copied_alias
-par_zsh_underscore (eval):1: command not found: not_copied_func
-par_zsh_underscore BAD error=OK
-par_zsh_underscore error=OK
-par_zsh_underscore aliases in and arrays in functions work
-par_zsh_underscore aliases in and arrays in functions work
-par_zsh_underscore aliases in functions work
-par_zsh_underscore aliases in functions work
-par_zsh_underscore (eval):1: command not found: myecho
-par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myecho
-par_zsh_underscore (eval):1: command not found: myecho
-par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myecho
-par_zsh_underscore zsh:1: command not found: myfunc
-par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myfunc
-par_zsh_underscore script:2: command not found: myfunc
-par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myfunc
-par_zsh_parset parset
-par_zsh_parset ### parset into array
-par_zsh_parset foo bar baz
-par_zsh_parset ### parset into vars with comma
-par_zsh_parset foo bar baz
-par_zsh_parset ### parset into vars with space
-par_zsh_parset foo bar baz
-par_zsh_parset ### parset with newlines
-par_zsh_parset 1
-par_zsh_parset 1
-par_zsh_parset 2
-par_zsh_parset 1
-par_zsh_parset 2
-par_zsh_parset 3
-par_zsh_parset ### parset into indexed array vars
-par_zsh_parset foo bar baz
-par_zsh_parset foo bar baz
-par_zsh_parset ### env_parset
-par_zsh_parset myecho myvar myarr 0 myfun foo
-par_zsh_parset myecho myvar myarr 0 myfun bar
-par_zsh_parset myecho myvar myarr 0 myfun baz
-par_zsh_parset myecho myvar myarr 0 myfun foo
-par_zsh_parset myecho myvar myarr 0 myfun bar
-par_zsh_parset myecho myvar myarr 0 myfun baz
-par_zsh_parset myecho myvar myarr 0 myfun foo
-par_zsh_parset myecho myvar myarr 0 myfun bar
-par_zsh_parset myecho myvar myarr 0 myfun baz
-par_zsh_parset newline1
-par_zsh_parset newline2
-par_zsh_parset 1
-par_zsh_parset newline1
-par_zsh_parset newline2
-par_zsh_parset 1
-par_zsh_parset 2
-par_zsh_parset newline1
-par_zsh_parset newline2
-par_zsh_parset 1
-par_zsh_parset 2
-par_zsh_parset 3
-par_zsh_parset myecho myvar myarr 0 myfun foo myecho myvar myarr 0 myfun bar myecho myvar myarr 0 myfun baz
-par_zsh_parset myecho myvar myarr 0 myfun foo myecho myvar myarr 0 myfun bar myecho myvar myarr 0 myfun baz
-par_zsh_parset Exit value 2 = 2
-par_zsh_parset Exit value 2 = 2
-par_zsh_man ### zsh
-par_zsh_man ### From man env_parallel
-par_zsh_man aliases with = & " ! ' work
-par_zsh_man aliases with = & " ! ' work
-par_zsh_man aliases with = & " ! ' work
-par_zsh_man aliases with = & " ! ' work
-par_zsh_man aliases with = & " ! ' work
-par_zsh_man multiline
-par_zsh_man aliases with = & " ! ' work
-par_zsh_man multiline
-par_zsh_man aliases with = & " ! ' work
-par_zsh_man multiline
-par_zsh_man aliases with = & " ! ' work
-par_zsh_man multiline
-par_zsh_man aliases with = & " ! ' work
-par_zsh_man multiline
-par_zsh_man aliases with = & " ! ' work
-par_zsh_man functions with = & " ! ' work
-par_zsh_man functions with = & " ! ' work
-par_zsh_man functions with = & " ! ' work
-par_zsh_man functions with = & " ! ' work
-par_zsh_man functions with = & " ! ' work
-par_zsh_man variables with = & " ! ' work
-par_zsh_man variables with = & " ! ' work
-par_zsh_man variables with = & " ! ' work
-par_zsh_man variables with = & " ! ' work
-par_zsh_man variables with = & " ! ' work
-par_zsh_man multiline
-par_zsh_man variables with = & " ! ' work
-par_zsh_man multiline
-par_zsh_man variables with = & " ! ' work
-par_zsh_man multiline
-par_zsh_man variables with = & " ! ' work
-par_zsh_man multiline
-par_zsh_man variables with = & " ! ' work
-par_zsh_man multiline
-par_zsh_man variables with = & " ! ' work
-par_zsh_man arrays with = & " ! ' work, too
-par_zsh_man arrays
-par_zsh_man with = & " ! '
-par_zsh_man work,
-par_zsh_man too
-par_zsh_man arrays
-par_zsh_man with = & " ! '
-par_zsh_man work,
-par_zsh_man too
-par_zsh_man arrays
-par_zsh_man with = & " ! '
-par_zsh_man work,
-par_zsh_man too
-par_zsh_man arrays
-par_zsh_man with = & " ! '
-par_zsh_man work,
-par_zsh_man too
-par_zsh_man multi
-par_zsh_man level
-par_zsh_man env_parallel
-par_zsh_man exit value 2 should be 2
-par_zsh_man Unknown option: no-such-option
-par_zsh_man exit value 255 should be 255
-par_zsh_funky
-par_zsh_funky 
par_zsh_funky C-] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
M- ¡¢£¤¥¦¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜM-]Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky
-par_zsh_funky 
par_zsh_funky C-] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
M- ¡¢£¤¥¦¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜM-]Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky
-par_zsh_funky space 6
-par_zsh_funky space 6
-par_zsh_funky ' '
-par_zsh_funky '
par_zsh_funky  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¥¦¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
-par_zsh_funky 3 arg alias_works
-par_zsh_funky 3 arg alias_works_over_ssh
-par_zsh_funky Funky-
-par_zsh_funky Funky-
-par_zsh_funky assoc_val_a
-par_zsh_funky assoc_val_a
-par_zsh_funky function_works
-par_zsh_funky function_works_over_ssh
-par_zsh_funky myvar works
-par_zsh_funky myvar works
-par_zsh_environment_too_big bug #50815: env_parallel should warn if the environment is too big
-par_zsh_environment_too_big OK_bigvar
-par_zsh_environment_too_big OK_bigvar_remote
-par_zsh_environment_too_big OK_bigvar_quote
-par_zsh_environment_too_big OK_bigvar_quote_remote
-par_zsh_environment_too_big OK_bigfunc
-par_zsh_environment_too_big OK_bigfunc_remote
-par_zsh_environment_too_big OK_bigfunc_quote
-par_zsh_environment_too_big OK_bigfunc_quote_remote
-par_zsh_environment_too_big Rest should fail
-par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl
-par_zsh_environment_too_big env_parallel: Error: Your environment is too big.
-par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches:
-par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set
-par_zsh_environment_too_big env_parallel: Error: variables or define functions.
-par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy.
-par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once:
-par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env
-par_zsh_environment_too_big env_parallel: Error: And then use '--env _'
-par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel
-par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl
-par_zsh_environment_too_big env_parallel: Error: Your environment is too big.
-par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches:
-par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set
-par_zsh_environment_too_big env_parallel: Error: variables or define functions.
-par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy.
-par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once:
-par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env
-par_zsh_environment_too_big env_parallel: Error: And then use '--env _'
-par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel
-par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl
-par_zsh_environment_too_big env_parallel: Error: Your environment is too big.
-par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches:
-par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set
-par_zsh_environment_too_big env_parallel: Error: variables or define functions.
-par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy.
-par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once:
-par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env
-par_zsh_environment_too_big env_parallel: Error: And then use '--env _'
-par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel
-par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl
-par_zsh_environment_too_big env_parallel: Error: Your environment is too big.
-par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches:
-par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set
-par_zsh_environment_too_big env_parallel: Error: variables or define functions.
-par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy.
-par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once:
-par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env
-par_zsh_environment_too_big env_parallel: Error: And then use '--env _'
-par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel
-par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl
-par_zsh_environment_too_big env_parallel: Error: Your environment is too big.
-par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches:
-par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-ssh8
^
|
@@ -1,23 +1,9 @@
-par_bar_m ### test --bar -m
-par_bar_m 0
-par_bar_m 50
-par_bar_m 100
-par_csh_environment_variables_set ### Check $PARALLEL_PID $PARALLEL_SEQ are set in csh
-par_csh_environment_variables_set 3
par_filter_host_noise ### bug #63296: --filter-hosts option gets confused by output from SSH command
par_filter_host_noise localhost OK
par_filter_host_noise localhost Warning: Identity file id_rsa not accessible: No such file or directory.
par_filter_host_noise localhost Warning: Permanently added 'localhost' (ED25519) to the list of known hosts.
par_filter_host_noise localhost
par_filter_host_noise localhost OK
par_filter_host_noise localhost Warning: Permanently added 'localhost' (ED25519) to the list of known hosts.
par_filter_host_noise localhost
-par_keep_order ### Test --keep-order
-par_keep_order job0
-par_keep_order job1
-par_keep_order job2
-par_keeporder ### Test --keeporder
-par_keeporder job0
-par_keeporder job1
-par_keeporder job2
par_load_csh ### Gave Word too long.
par_load_csh a
par_path_remote_bash bug #47695: How to set $PATH on remote? Bash
@@ -42,3 +28,17 @@
par_retries_4 OK
par_transfer_special_char_names ### Test --return of weirdly named file
par_transfer_special_char_names aa<${#}" b
+par_z_bar_m ### test --bar -m
+par_z_bar_m 0
+par_z_bar_m 50
+par_z_bar_m 100
+par_z_csh_environment_variables_set ### Check $PARALLEL_PID $PARALLEL_SEQ are set in csh
+par_z_csh_environment_variables_set 3
+par_z_keep_order ### Test --keep-order
+par_z_keep_order job0
+par_z_keep_order job1
+par_z_keep_order job2
+par_z_keeporder ### Test --keeporder
+par_z_keeporder job0
+par_z_keeporder job1
+par_z_keeporder job2
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local10
^
|
@@ -2,3 +2,5 @@
### See if we get compile error
perl
### See if we read modules outside perllib
+### Test make .deb package
+To install the GNU Parallel Debian package, run:
|
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local104
^
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local12
^
|
@@ -91,8 +91,6 @@
https://www.gnu.org/software/parallel/parallel_design.html#citation-notice
https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
-mentioned in the release notes of next version of GNU Parallel.
-
Type: 'will cite' and press enter.
>
\ No newline at end of file
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local150
^
|
@@ -141,9 +141,6 @@
### bug #35268: shell_quote doesn't treats [] brackets correctly
touch /tmp/foo1; stdout parallel echo ::: '/tmp/foo[123]'; rm /tmp/foo1
/tmp/foo[123]
-echo '### Test make .deb package'; cd ~/privat/parallel/packager/debian; stdout make | grep 'To install the GNU Parallel Debian package, run:'
-### Test make .deb package
-To install the GNU Parallel Debian package, run:
echo '### Test basic --arg-sep'
### Test basic --arg-sep
parallel -k echo ::: a b
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local21
^
|
@@ -1,15 +1,19 @@
par_basic_shebang_wrap ### Test basic --shebang-wrap
par_basic_shebang_wrap Shebang from perl with args arg1
par_basic_shebang_wrap Shebang from perl with args arg2
+par_basic_shebang_wrap Shebang from perl with args arg3.1 arg3.2
par_basic_shebang_wrap ### Test basic --shebang-wrap Same as
par_basic_shebang_wrap Shebang from perl with args arg1
par_basic_shebang_wrap Shebang from perl with args arg2
+par_basic_shebang_wrap Shebang from perl with args arg3.1 arg3.2
par_basic_shebang_wrap ### Test basic --shebang-wrap stdin
par_basic_shebang_wrap Shebang from perl with args arg1
par_basic_shebang_wrap Shebang from perl with args arg2
+par_basic_shebang_wrap Shebang from perl with args arg3.1 arg3.2
par_basic_shebang_wrap ### Test basic --shebang-wrap Same as
par_basic_shebang_wrap Shebang from perl with args arg1
par_basic_shebang_wrap Shebang from perl with args arg2
+par_basic_shebang_wrap Shebang from perl with args arg3.1 arg3.2
par_shebang_with_parser_options ### Test --shebang-wrap with parser options
par_shebang_with_parser_options Shebang from perl with args
par_shebang_with_parser_options 1
@@ -67,55 +71,55 @@
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"
+par_shebang_wrap_R [1] "Arguments arg3.1 arg3.2"
par_shebang_wrap_bash Arguments arg1
par_shebang_wrap_bash Arguments arg2
-par_shebang_wrap_bash Arguments arg3
+par_shebang_wrap_bash Arguments arg3.1 arg3.2
par_shebang_wrap_clisp ARGUMENTS
par_shebang_wrap_clisp ("arg1")
par_shebang_wrap_clisp ARGUMENTS
par_shebang_wrap_clisp ("arg2")
par_shebang_wrap_clisp ARGUMENTS
-par_shebang_wrap_clisp ("arg3")
+par_shebang_wrap_clisp ("arg3.1 arg3.2")
par_shebang_wrap_csh Arguments arg1
par_shebang_wrap_csh Arguments arg2
-par_shebang_wrap_csh Arguments arg3
+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
+par_shebang_wrap_csharp Arguments arg3.1 arg3.2
par_shebang_wrap_gnuplot Arguments arg1
par_shebang_wrap_gnuplot Arguments arg2
-par_shebang_wrap_gnuplot Arguments arg3
+par_shebang_wrap_gnuplot Arguments arg3.1 arg3.2
par_shebang_wrap_ksh Arguments arg1
par_shebang_wrap_ksh Arguments arg2
-par_shebang_wrap_ksh Arguments arg3
+par_shebang_wrap_ksh Arguments arg3.1 arg3.2
par_shebang_wrap_lua Arguments arg1
par_shebang_wrap_lua Arguments arg2
-par_shebang_wrap_lua Arguments arg3
+par_shebang_wrap_lua Arguments arg3.1 arg3.2
par_shebang_wrap_nodejs Arguments [ 'arg1' ]
par_shebang_wrap_nodejs Arguments [ 'arg2' ]
-par_shebang_wrap_nodejs Arguments [ 'arg3' ]
+par_shebang_wrap_nodejs Arguments [ 'arg3.1 arg3.2' ]
par_shebang_wrap_octave Arguments arg1
par_shebang_wrap_octave Arguments arg2
-par_shebang_wrap_octave Arguments arg3
+par_shebang_wrap_octave Arguments arg3.1 arg3.2
par_shebang_wrap_perl Arguments arg1
par_shebang_wrap_perl Arguments arg2
-par_shebang_wrap_perl Arguments arg3
+par_shebang_wrap_perl Arguments arg3.1 arg3.2
par_shebang_wrap_php Arguments arg1
par_shebang_wrap_php Arguments arg2
-par_shebang_wrap_php Arguments arg3
-par_shebang_wrap_python Arguments ['/tmp/shebang_wrap_python', 'arg1']
-par_shebang_wrap_python Arguments ['/tmp/shebang_wrap_python', 'arg2']
-par_shebang_wrap_python Arguments ['/tmp/shebang_wrap_python', 'arg3']
+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_ruby Arguments arg1
par_shebang_wrap_ruby Arguments arg2
-par_shebang_wrap_ruby Arguments arg3
+par_shebang_wrap_ruby Arguments arg3.1 arg3.2
par_shebang_wrap_sh Arguments arg1
par_shebang_wrap_sh Arguments arg2
-par_shebang_wrap_sh Arguments arg3
+par_shebang_wrap_sh Arguments arg3.1 arg3.2
par_shebang_wrap_tcl Arguments arg1
par_shebang_wrap_tcl Arguments arg2
-par_shebang_wrap_tcl Arguments arg3
+par_shebang_wrap_tcl Arguments {arg3.1 arg3.2}
par_shebang_wrap_zsh Arguments arg1
par_shebang_wrap_zsh Arguments arg2
-par_shebang_wrap_zsh Arguments arg3
+par_shebang_wrap_zsh Arguments arg3.1 arg3.2
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local22
^
|
@@ -45,25 +45,25 @@
2
echo '### bug #42363: --pipepart and --fifo/--cat does not work'
### bug #42363: --pipepart and --fifo/--cat does not work
- seq 100 > /tmp/bug42363; parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo wc | perl -pe 's:(/tmp\S+par).....:${1}XXXXX:'; parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat wc | perl -pe 's:(/tmp\S+par).....:${1}XXXXX:'; rm /tmp/bug42363
- 14 14 33 /tmp/parallel-local22-tmpdir/parXXXXX
- 11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
- 11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
- 11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
- 11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
- 11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
- 11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
- 11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
- 9 9 28 /tmp/parallel-local22-tmpdir/parXXXXX
-14 14 33 /tmp/parallel-local22-tmpdir/parXXXXX
-11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
-11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
-11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
-11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
-11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
-11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
-11 11 33 /tmp/parallel-local22-tmpdir/parXXXXX
- 9 9 28 /tmp/parallel-local22-tmpdir/parXXXXX
+ seq 100 > /tmp/bug42363; parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo 'cat {} | wc'; parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat 'cat {} | wc'; rm /tmp/bug42363
+ 14 14 33
+ 11 11 33
+ 11 11 33
+ 11 11 33
+ 11 11 33
+ 11 11 33
+ 11 11 33
+ 11 11 33
+ 9 9 28
+ 14 14 33
+ 11 11 33
+ 11 11 33
+ 11 11 33
+ 11 11 33
+ 11 11 33
+ 11 11 33
+ 11 11 33
+ 9 9 28
echo '### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile'
### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile
parallel --pipepart -a /etc/passwd -L 1 should not be run
@@ -166,6 +166,7 @@
0 332 0
0 336 0
Send Receive Exitval
+parallel: Warning: Use --files0 when $TMPDIR contains newline.
echo '### --files --tag'
### --files --tag
seq 100 111 | parallel --files --tag --joblog /dev/stderr seq {} '|' pv -qL100 2>&1 >/dev/null | cut -f 5-7 | sort
@@ -182,6 +183,7 @@
0 332 0
0 336 0
Send Receive Exitval
+parallel: Warning: Use --files0 when $TMPDIR contains newline.
echo '### --pipe'
### --pipe
seq 1000 | parallel --joblog /dev/stderr --block 1111 --pipe pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort
@@ -222,6 +224,7 @@
1108 1108 0
569 569 0
Send Receive Exitval
+parallel: Warning: Use --files0 when $TMPDIR contains newline.
echo '### --files --pipe --tag'
### --files --pipe --tag
seq 1000 | parallel --joblog /dev/stderr --block 1111 --files --pipe --tag pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort
@@ -230,6 +233,7 @@
1108 1108 0
569 569 0
Send Receive Exitval
+parallel: Warning: Use --files0 when $TMPDIR contains newline.
echo '### --pipe --round-robin'
### --pipe --round-robin
seq 1000 | parallel --joblog /dev/stderr --block 1111 -j2 --pipe --round-robin pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local5
^
|
@@ -250,11 +250,11 @@
echo '### Test --recstart + --recend'; cat /tmp/blocktest | parallel --block 1M -k --recstart 44 --recend "44" -j10 --pipe sort -n |md5sum
### Test --recstart + --recend
fb1560edff4b891a213ce2205b2c1bcb -
-echo '### Race condition bug - 1 - would block'; seq 1 80 | nice parallel -j0 'seq 1 10| parallel --block 1 --recend "" --pipe cat;true' >/dev/null
+echo '### Race condition bug - 1 - would block'; seq 1 80 | nice parallel -j0 'seq 1 10| parallel --block 1 --recend " --pipe cat;true' >/dev/null
### Race condition bug - 1 - would block
-echo '### Race condition bug - 2 - would block'; seq 1 100 | nice parallel -j100 --block 1 --recend "" --pipe cat >/dev/null
+echo '### Race condition bug - 2 - would block'; seq 1 100 | nice parallel -j100 --block 1 --recend " --pipe cat >/dev/null
### Race condition bug - 2 - would block
-echo '### Test --block size=1'; seq 1 10| parallel --block 1 --files --recend "" --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {}
+echo '### Test --block size=1'; seq 1 10| TMPDIR=/tmp parallel --block 1 --files --recend " --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {}
### Test --block size=1
@@ -277,14 +277,14 @@
7
8
9
-echo '### Test --block size=1M -j10 --files - more jobs than data'; sort -n < /tmp/blocktest | md5sum; cat /tmp/blocktest | parallel --files --recend "\n" -j10 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
+echo '### Test --block size=1M -j10 --files - more jobs than data'; sort -n < /tmp/blocktest | md5sum; cat /tmp/blocktest | TMPDIR=/tmp parallel --files --recend "\n" -j10 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
### Test --block size=1M -j10 --files - more jobs than data
8a7095c1c23bfadc311fe6b16d950582 -
8a7095c1c23bfadc311fe6b16d950582 -
-echo '### Test --block size=1M -j1 - more data than cpu'; cat /tmp/blocktest | parallel --files --recend "\n" -j1 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
+echo '### Test --block size=1M -j1 - more data than cpu'; cat /tmp/blocktest | TMPDIR=/tmp parallel --files --recend "\n" -j1 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
### Test --block size=1M -j1 - more data than cpu
8a7095c1c23bfadc311fe6b16d950582 -
-echo '### Test --block size=1M -j1 - more data than cpu'; cat /tmp/blocktest | parallel --files --recend "\n" -j2 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
+echo '### Test --block size=1M -j1 - more data than cpu'; cat /tmp/blocktest | TMPDIR=/tmp parallel --files --recend "\n" -j2 --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
### Test --block size=1M -j1 - more data than cpu
8a7095c1c23bfadc311fe6b16d950582 -
echo '### Test --pipe default settings'; cat /tmp/blocktest | parallel --pipe sort | sort -n | md5sum
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local7
^
|
@@ -1,13 +1,13 @@
echo '### tmux-1.9'
### tmux-1.9
seq 510 512 | PARALLEL_TMUX=tmux-1.9 par_tmux
-See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
+See output with: tmux-1.9 -S /TMP/tmsXXXXX attach
0
seq 0000 10 510 | PARALLEL_TMUX=tmux-1.9 par_tmux
-See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
+See output with: tmux-1.9 -S /TMP/tmsXXXXX attach
0
echo '### tmux-1.9 fails' seq 512 10 2000 | PARALLEL_TMUX=tmux-1.9 par_tmux
-See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
+See output with: tmux-1.9 -S /TMP/tmsXXXXX attach
0
seq 2001 10 3000 | PARALLEL_TMUX=tmux-1.9 par_tmux
parallel: Error: Command line too long (2012 >= 523) at input 0: 2001
@@ -62,19 +62,19 @@
echo '### tmux-1.9 0..255 ascii'
### tmux-1.9 0..255 ascii
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } 0..$_),"\n" } 0..255' | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux --timeout 5 echo | par_tmux_filter; echo $?
-See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
+See output with: tmux-1.9 -S /TMP/tmsXXXXX attach
0
echo '### Test output ascii'
### Test output ascii
rm -f /tmp/paralocal7-ascii*; perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } $_-10..$_),"\n" } 1..255' | stdout parallel --tmux echo {}'>>/tmp/paralocal7-ascii{%}' | par_tmux_filter; sort /tmp/paralocal7-ascii* | md5sum
-See output with: tmux -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
+See output with: tmux -S /TMP/tmsXXXXX attach
053c7e8e945ef7641fc63bc309ac069d -
echo '### Test critical lengths. Must not block'
### Test critical lengths. Must not block
seq 140 260 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
parallel: Error: Command line too long (150 >= -1264) at input 0: 140
seq 140 260 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
-See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
+See output with: tmux-1.9 -S /TMP/tmsXXXXX attach
seq 560 850 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
parallel: Error: Command line too long (568 >= -1264) at input 0: 560
seq 560 850 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local9
^
|
@@ -61,7 +61,8 @@
echo '### Test --spreadstdin -k'; nice seq 1 1000000 | $NICEPAR -k --recend "\n" -j10 --spreadstdin gzip -9 | zcat | md5sum
### Test --spreadstdin -k
8a7095c1c23bfadc311fe6b16d950582 -
-echo '### Test --spreadstdin --files'; nice seq 1 1000000 | shuf | $NICEPAR --files --recend "\n" -j10 --spreadstdin sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
+# --files requires TMPDIR does not contain \n
+echo '### Test --spreadstdin --files'; nice seq 1 1000000 | shuf | TMPDIR=/tmp $NICEPAR --files --recend "\n" -j10 --spreadstdin sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
### Test --spreadstdin --files
8a7095c1c23bfadc311fe6b16d950582 -
echo '### Test --tag ::: a ::: b'; stdout $NICEPAR -k --tag -j1 echo stderr-{.} ">&2;" echo stdout-{} ::: a ::: b
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-macos
^
|
@@ -32,40 +32,40 @@
par_many_args 1 3XXX 6XXX
par_many_args 1 3XXX 6XXX
par_many_args 1 1XXX 3XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
+par_many_func 1 196 4XXX
par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 200 4XXX
-par_many_func 1 68 1XXX
par_many_var 22XXX
par_many_var 22XXX
par_many_var 22XXX
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-remote1
^
|
@@ -6,8 +6,8 @@
par_filter_hosts_different_errors aspire
par_filter_hosts_no_ssh_nxserver ### test --filter-hosts with server w/o ssh, non-existing server
par_filter_hosts_no_ssh_nxserver vagrant@parallel-server1
-par_filter_hosts_no_ssh_nxserver vagrant@parallel-server2
par_filter_hosts_no_ssh_nxserver vagrant@parallel-server3
+par_filter_hosts_no_ssh_nxserver vagrant@parallel-server4
par_special_ssh ### Test use special ssh
par_special_ssh TODO test ssh with > 9 simultaneous
par_special_ssh 1
@@ -119,7 +119,7 @@
par_timeout_retries parallel: Warning: This job was killed because it timed out:
par_timeout_retries parallel: Warning: ssh 8.8.8.8 echo 8.8.8.8
par_timeout_retries vagrant@parallel-server1
-par_timeout_retries vagrant@parallel-server2
+par_timeout_retries vagrant@parallel-server4
par_timeout_retries vagrant@parallel-server3
par_workdir_in_HOME ### test --workdir . in $HOME
par_workdir_in_HOME OK
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-tutorial
^
|
@@ -148,9 +148,12 @@
num128
num30000
num8
+outdir
+tmsFPAdA
+tmsNGdem
tsv-file.tsv
foo
-~
+/TMP
my_func() {
echo in my_func $1
}
@@ -384,6 +387,18 @@
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="num8"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
+/usr/bin/bash: -c: line 1: `set a="outdir"; if( { test -d "$a" } ) echo "$a is a dir"'
+/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
+/usr/bin/bash: -c: line 1: `set a="tempfile"; if( { test -d "$a" } ) echo "$a is a dir"'
+/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
+/usr/bin/bash: -c: line 1: `set a="tempfile"; if( { test -d "$a" } ) echo "$a is a dir"'
+/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
+/usr/bin/bash: -c: line 1: `set a="tempfile"; if( { test -d "$a" } ) echo "$a is a dir"'
+/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
+/usr/bin/bash: -c: line 1: `set a="tmsFPAdA"; if( { test -d "$a" } ) echo "$a is a dir"'
+/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
+/usr/bin/bash: -c: line 1: `set a="tmsNGdem"; if( { test -d "$a" } ) echo "$a is a dir"'
+/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="tsv-file.tsv"; if( { test -d "$a" } ) echo "$a is a dir"'
parallel --tag echo foo-{} ::: A B C
A foo-A
@@ -439,9 +454,9 @@
1-middle
1-end
parallel --files echo ::: A B C
-/tmp/parallel-tutorial-tmpdir/parXXXXX.par
+/TMP/tempfile
parallel --tmpdir /var/tmp --files echo ::: A B C
-/var/tmp/parXXXXX.par
+/var/tmp/tempfile
parallel --results outdir echo ::: A B C
outdir/1/A/seq
outdir/1/A/stderr
@@ -509,7 +524,7 @@
parallel --shuf echo ::: 1 2 3 ::: a b c ::: A B C
123 abc ABC
seq 10 20 | parallel --tmux 'echo start {}; sleep {}; echo done {}'
-See output with: tmux -S /tmp/parallel-tutorial-tmpdir/tmsXXXXX attach
+See output with: tmux -S /TMP/tmsXXXXX attach
tmux -S /tmp/tmsXXXXX attach
no sessions
parallel --delay 2.5 echo Starting {}\;date ::: 1 2 3
@@ -697,10 +712,11 @@
cat common_file\; echo {} ::: foo
common data
foo
- parallel -S $SERVER1 pwd ::: ""
- parallel --workdir . -S $SERVER1 pwd ::: ""
- parallel --workdir ... -S $SERVER1 pwd ::: ""
+ parallel -S $SERVER1 pwd ::: "
+ parallel --workdir . -S $SERVER1 pwd ::: "
+ parallel --workdir ... -S $SERVER1 pwd ::: "
/home/parallel
+/TMP
/home/parallel/.TMPWORKDIR
parallel -S $SERVER1 --sshdelay 0.2 echo ::: 1 2 3
9
@@ -782,11 +798,15 @@
in my_func baz
parallel --record-env
cat ~/.parallel/ignored_vars|sort
+BASH_FUNC_replace_tmpdir%%
BASH_FUNC_run_once%%
BASH_FUNC_run_test%%
_
mysqlrootpass
oracle_password
+qTMPDIR
+qqTMPDIR
+testsuitedir
withpassword
# The function is only copied if using Bash
my_func2() {
@@ -863,7 +883,7 @@
export -f my_func3
parallel -vv --workdir ... --nice 17 --env _ --trc {}.out \
-S $SERVER1 my_func3 {} ::: abc-file
-ssh -l parallel lo -- exec mkdir -p ./.TMPWORKDIR && rsync --protocol 30 -rlDzR -e'ssh -l parallel' ./abc-file lo:./.TMPWORKDIR;ssh -l parallel lo -- exec perl -X -e GNU_Parallel_worker,eval+pack+q/H10000000/,join+q//,@ARGV BASE64;_EXIT_status=$?; mkdir -p ./. && rsync --protocol 30 -rlDzR -e'ssh -l parallel' --rsync-path='cd ./.TMPWORKDIR/./.; rsync' -- lo:./abc-file.out ./.;ssh -l parallel lo -- exec 'sh -c '"'"'rm -f ./.TMPWORKDIR/abc-file 2>/dev/null;rmdir ./.TMPWORKDIR/ ./.parallel/tmp/ ./.parallel/ 2>/dev/null;rm -rf ./.TMPWORKDIR;'"'";ssh -l parallel lo -- exec 'sh -c '"'"'rm -f ./.TMPWORKDIR/abc-file.out 2>/dev/null;rmdir ./.TMPWORKDIR/ ./.parallel/tmp/ ./.parallel/ 2>/dev/null;rm -rf ./.TMPWORKDIR;'"'";ssh -l parallel lo -- exec rm -rf .TMPWORKDIR;exit $_EXIT_status;
+ssh -l parallel lo -- exec mkdir -p ./.TMPWORKDIR && rsync --protocol 30 --old-args -rlDzR -e'ssh -l parallel' ./abc-file lo:./.TMPWORKDIR;ssh -l parallel lo -- exec perl -X -e GNU_Parallel_worker,eval+pack+q/H10000000/,join+q//,@ARGV BASE64;_EXIT_status=$?; mkdir -p ./. && rsync --protocol 30 --old-args -rlDzR -e'ssh -l parallel' --rsync-path='cd ./.TMPWORKDIR/./.; rsync' -- lo:./abc-file.out ./.;ssh -l parallel lo -- exec 'sh -c '"'"'rm -f ./.TMPWORKDIR/abc-file 2>/dev/null;rmdir ./.TMPWORKDIR/ ./.parallel/tmp/ ./.parallel/ 2>/dev/null;rm -rf ./.TMPWORKDIR;'"'";ssh -l parallel lo -- exec 'sh -c '"'"'rm -f ./.TMPWORKDIR/abc-file.out 2>/dev/null;rmdir ./.TMPWORKDIR/ ./.parallel/tmp/ ./.parallel/ 2>/dev/null;rm -rf ./.TMPWORKDIR;'"'";ssh -l parallel lo -- exec rm -rf .TMPWORKDIR;exit $_EXIT_status;
parset myvar1,myvar2 echo ::: a b
echo $myvar1
echo $myvar2
@@ -1202,7 +1222,7 @@
io.write(" ")
io.write(arg[a])
end
- print("")
+ print(")
/usr/bin/bash: line 3: io.write: command not found
/usr/bin/bash: -c: line 4: syntax error near unexpected token `='
/usr/bin/bash: -c: line 4: ` for a = 1, #arg do'
@@ -1252,7 +1272,6 @@
Forced running after 1 sec
Slow ended
parallel: Warning: Semaphore timed out. Stealing the semaphore.
-parallel: Warning: Semaphore timed out. Exiting.
parallel --help
Usage:
parallel [options] [command [arguments]] < list_of_arguments
@@ -1302,7 +1321,7 @@
author = {Tange, Ole},
- year = 2022,
+ year = 2023,
note = {{GNU Parallel is a general parallelizer to run
multiple serial command line programs in parallel
without changing them.}},
@@ -1315,10 +1334,8 @@
If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
More about funding GNU Parallel and the citation notice:
https://lists.gnu.org/archive/html/parallel/2013-11/msg00006.html
-https://www.gnu.org/software/parallel/parallel_design.html#citation-notice
+https://www.gnu.org/software/tempfileallel_design.html#citation-notice
https:BASE64-notice-faq.txt
-If you send a copy of your published article to tange@gnu.org, it will be
-mentioned in the release notes of next version of GNU Parallel.
parallel --number-of-cpus
parallel --number-of-cores
9
@@ -1330,4 +1347,10 @@
echo A
echo B
echo C
-9
+### 3+3 .par files (from --files), 1 .tms-file from tmux attach
+A
+A
+B
+B
+C
+C
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/sql01
^
|
@@ -47,7 +47,7 @@
### Test --debug
dburl mysql://tange:tange@localhost:3306/tange
databasedriver mysql user tange password tange host localhost port 3306 database tange query
-[ | ((sleep 1; rm tmpfile) & mysql --defaults-extra-file=tmpfile -C --host=localhost --user=tange --port=3306 tange)]
+[ | ((sleep 1; rm /TMP/tmpfile') & mysql --defaults-extra-file=/TMP/tmpfile' --host=localhost --user=tange --port=3306 tange)]
Test if --debug works
Yes it does
### Test --version -V
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/sql02
^
|
@@ -3,7 +3,7 @@
par_influx empty input
par_influx empty input
par_influx dbsize is not implemented for influx
-par_influx Field separator not implemented for influx at /usr/local/bin/sql line 889.
+par_influx Field separator not implemented for influx at /usr/local/bin/sql line 892.
par_influx name: databases
par_influx name
par_influx ----
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/test37
^
|
@@ -73,6 +73,6 @@
1foo
### Test merging of profiles - sort needed because -k only works on the single machine
vagrant@parallel-server1 a
-vagrant@parallel-server2 a
+vagrant@parallel-server3 a
### Test merging of profiles - sort needed because -k only works on the single machine --plain
a
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230322+git1.tar.bz2/upstream/testsuite/wanted-results/test60
^
|
@@ -1,6 +1,6 @@
par_nonall ### Test --nonall
par_nonall centos8.localdomain
-par_nonall freebsd11.localdomain
+par_nonall freebsd12.localdomain
par_nonall_basefile ### Test --nonall --basefile
par_nonall_basefile /tmp/nonall--basefile
par_nonall_basefile /tmp/nonall--basefile
@@ -10,8 +10,8 @@
par_nonall_u ### Test --nonall -u - should be interleaved x y x y
par_nonall_u 1 centos8.localdomain
par_nonall_u 1 centos8.localdomain
-par_nonall_u 1 freebsd11.localdomain
-par_nonall_u 1 freebsd11.localdomain
+par_nonall_u 1 freebsd12.localdomain
+par_nonall_u 1 freebsd12.localdomain
par_onall ### Test --onall
par_onall 1
par_onall 2
|