[-]
[+]
|
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">20220822+git2</param>
+ <param name="revision">20230522+git1</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/.reuse/dep5
^
|
@@ -3,7 +3,7 @@
Upstream-Contact: Ole Tange, http://ole.tange.dk
Source: https://git.savannah.gnu.org/git/parallel.git
-Files: testsuite/input-files/testdir/* testsuite/input-files/testdir2/* testsuite/wanted-results/* testsuite/testdir/* packager/obs/* src/optional/* packager/debian/debian-template/* configure config.h.in aclocal.m4 install-sh missing testsuite/input-files/random_dirs_no_newline.tar.bz2 testsuite/input-files/random_dirs_with_newline.tar.bz2
+Files: testsuite/input-files/testdir.tar.bz2 testsuite/input-files/testdir/* testsuite/input-files/testdir2/* testsuite/wanted-results/* testsuite/testdir/* packager/obs/* src/optional/* packager/debian/debian-template/* configure config.h.in aclocal.m4 install-sh missing testsuite/input-files/random_dirs_no_newline.tar.bz2 testsuite/input-files/random_dirs_with_newline.tar.bz2
Copyright: 2007-2022 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc.
License: GPL-3.0-or-later
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+git1.tar.bz2/upstream/Makefile.am
^
|
@@ -145,7 +145,7 @@
testurls:
mkdir -p urls
- cd urls && grep -v '(dead)' ../src/* | grep -h -Po 'https?://[^ $$<>")}]+' | perl -pe 's/(>|\{).*//;s/\\-/-/g;s/\\n//g;s/&/&/g;s/&#.*//;'"s/'.*//" | grep -Ev 'parallel-(20)?$$|coolwebsite.biz' | sort -u | egrep -v 'example.com|##|\*\(' | parallel -j0 --timeout 33 --bar --tag --joblog joblog --retries 3 neno wget -m -l1 -Q1 '{=$$_=Q($$_)=}'
+ cd urls && ../src/testurls
reconf:
rm -fr autom4te.cache aclocal.m4 config.h config.h.in config.log Makefile.in missing install-sh
@@ -176,7 +176,7 @@
zshcompletion=${zshcompletiondir}/_parallel
install-data-hook:
mkdir -p ${zshcompletiondir} ${bashcompletiondir}
- src/parallel --shell-completion bash > ${bashcompletion}
+ $(DESTDIR)$(bindir)/parallel --shell-completion bash > ${bashcompletion}
# Make zsh eval the --shell-completion code dynamically so if
# a newer version of GNU Parallel is installed by a normal
# user, this newer version will generate the
@@ -186,4 +186,7 @@
echo ' eval "$$(parallel --shell-completion auto)" &&' >> ${zshcompletion}
echo ' _comp_parallel' >> ${zshcompletion}
+uninstall-hook:
+ rm -rf ${zshcompletiondir} ${bashcompletiondir}
+
EXTRA_DIST = CITATION CITATION.cff CREDITS LICENSES/CC-BY-SA-4.0.txt LICENSES/GFDL-1.3-or-later.txt LICENSES/GPL-3.0-or-later.txt
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/Makefile.in
^
|
@@ -749,9 +749,10 @@
ps-am:
uninstall-am:
-
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
.MAKE: $(am__recursive_targets) all install-am install-data-am \
- install-strip
+ install-strip uninstall-am
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-am clean clean-cscope clean-generic \
@@ -767,7 +768,7 @@
install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
- tags-am uninstall uninstall-am
+ tags-am uninstall uninstall-am uninstall-hook
.PRECIOUS: Makefile
@@ -913,7 +914,7 @@
testurls:
mkdir -p urls
- cd urls && grep -v '(dead)' ../src/* | grep -h -Po 'https?://[^ $$<>")}]+' | perl -pe 's/(>|\{).*//;s/\\-/-/g;s/\\n//g;s/&/&/g;s/&#.*//;'"s/'.*//" | grep -Ev 'parallel-(20)?$$|coolwebsite.biz' | sort -u | egrep -v 'example.com|##|\*\(' | parallel -j0 --timeout 33 --bar --tag --joblog joblog --retries 3 neno wget -m -l1 -Q1 '{=$$_=Q($$_)=}'
+ cd urls && ../src/testurls
reconf:
rm -fr autom4te.cache aclocal.m4 config.h config.h.in config.log Makefile.in missing install-sh
@@ -936,7 +937,7 @@
./configure && make -j && sudo make -j install
install-data-hook:
mkdir -p ${zshcompletiondir} ${bashcompletiondir}
- src/parallel --shell-completion bash > ${bashcompletion}
+ $(DESTDIR)$(bindir)/parallel --shell-completion bash > ${bashcompletion}
# Make zsh eval the --shell-completion code dynamically so if
# a newer version of GNU Parallel is installed by a normal
# user, this newer version will generate the
@@ -946,6 +947,9 @@
echo ' eval "$$(parallel --shell-completion auto)" &&' >> ${zshcompletion}
echo ' _comp_parallel' >> ${zshcompletion}
+uninstall-hook:
+ rm -rf ${zshcompletiondir} ${bashcompletiondir}
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/NEWS
^
|
@@ -1,3 +1,189 @@
+20230522
+
+New in this release:
+
+* Bug fixes and man page updates.
+
+News about GNU Parallel:
+
+* Introduction to parallel computing https://youtu.be/fvrHXV8yqU4?t=2874
+
+* Script for summarizing GNU parallel joblog file https://github.com/gavinmdouglas/parallel_joblog_summary
+
+* How to copy a single file to multiple directories in Linux or Unix https://www.cyberciti.biz/faq/linux-unix-copy-a-file-to-multiple-directories-using-cp-command/
+
+* Search in your Jupyter notebooks from the CLI, fast. https://dev.to/attilavm/search-in-your-jupyter-notebooks-from-the-cli-fast-1408
+
+* Parallel Job Orchestration with GNU Parallel https://www.youtube.com/watch?v=2tVpUfND3LI
+
+* Optional Individual Submission 4 Job Handling 20266001 - GNU Parallel https://www.youtube.com/watch?v=eC_RPuFCcU8
+
+* DOE Cross-facility Workflows Training - April 12, 2023 https://www.youtube.com/watch?v=Ke3sirM-aQQ
+
+* How to run MiXCR 4.x on multiple patient samples using GNU Parallel https://www.youtube.com/watch?v=OXg-WHlB_dk
+
+
+20230422
+
+New in this release:
+
+* --jobs evaluates expression: +3*log(55)% = ncpu*1.12
+
+* Bug fixes and man page updates.
+
+News about GNU Parallel:
+
+* Running shell script in parallel
+ https://w3toppers.com/running-shell-script-in-parallel/
+
+* Simulating climate risk scenarios for the Amazon Rainforest
+ https://aws.amazon.com/blogs/hpc/simulating-climate-risk-scenarios-for-the-amazon-rainforest/
+
+* How To Use Your Entire CPU In Bash With Parallel
+ https://bash-prompt.net/guides/parallell-bash/
+
+* Bash - parallel command execution
+ https://medium.com/linuxstories/bash-parallel-command-execution-d4bd7c7cc1d6
+
+* 3 tips for faster batch post-pro
+ https://www.cfdengine.com/newsletter/142/
+
+
+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:
+
+* 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
+
+* GNU Parallel: criando atividades em paralelo com shell script
+ https://www.vivaolinux.com.br/artigo/GNU-Parallel-criando-atividades-em-paralelo-com-shell-script/
+
+
+20221222
+
+New in this release:
+
+* --results works on more file systems (e.g. fat)
+
+* Joblog gives the same exit code as bash.
+
+News about GNU Parallel:
+
+* Programação Shell Linux: Paralelismo de processos com GNU parallel
+ https://www.youtube.com/watch?v=duheTWLIrp8
+
+* Talk Python: Data Science from the Command Line
+ https://talkpython.fm/episodes/show/392/data-science-from-the-command-line
+
+
+20221122
+
+New in this release:
+
+* Support for IPv6 adresses and _ in hostnames in --sshlogin.
+
+* Use --total-jobs for --eta/--bar if generating jobs is slow.
+
+* A lot of bugs fixed in --latest-line.
+
+* Better support for MSYS2.
+
+* Better Text::CSV error messages.
+
+* --bar supports UTF8.
+
+* Bug fixes and man page updates.
+
+News about GNU Parallel:
+
+* GNU Parallel is now on Mastodon: @GNU_Parallel@hostux.social
+
+
+20221022
+
+New in this release:
+
+* --latest-line chops line length at terminal width.
+
+* Determine max command length faster on Microsoft Windows.
+
+News about GNU Parallel:
+
+* Distributed Task Processing with GNU Parallel
+ https://www.youtube.com/watch?v=usbMLggdMgc
+
+* GNU Parallel workflow for many small, independent runs
+ https://docs.csc.fi/support/tutorials/many/
+
+* Copy a File To Multiple Directories With A Single Command on Linux
+ https://www.linuxfordevices.com/tutorials/linux/copy-file-to-multiple-directories-with-one-command
+
+* Behind The Scenes: The Power Of Simple Command Line Tools At Cloud
+ Scale
+ https://blog.gdeltproject.org/behind-the-scenes-the-power-of-simple-command-line-tools-at-cloud-scale/
+
+* Run lz4 compression in parallel using GNU parallel
+ https://www.openguru.com/2022/09/
+
+* Xargs / Parallel With Code Examples
+ https://www.folkstalk.com/2022/09/xargs-parallel-with-code-examples.html
+
+* Parallel processing on a single node with GNU Parallel
+ https://www3.cs.stonybrook.edu/~cse416/Section01/Slides/SeaWulfIntro_CSE416_09222022.pdf
+
+* Using GNU parallel painlessly -- from basics to bioinformatics job
+ orchestration https://www.youtube.com/watch?v=qypUdm-IE9c
+
+
+20220922
+
+New in this release:
+
+* --colour-failed only changes output for failing jobs.
+
+* Password for --sshlogin can be put in $SSHPASS.
+
+* Examples are moved from `man parallel` to `man parallel_examples`.
+
+* Bug fixes and man page updates.
+
+News about GNU Parallel:
+
+* WOMM - Works On My Machine uses GNU Parallel https://pypi.org/project/womm/
+
+
20220822
New in this release:
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20220822.tar.bz2
- wget https://ftpmirror.gnu.org/parallel/parallel-20220822.tar.bz2.sig
- gpg parallel-20220822.tar.bz2.sig
- bzip2 -dc parallel-20220822.tar.bz2 | tar xvf -
- cd parallel-20220822
+ wget https://ftpmirror.gnu.org/parallel/parallel-20230522.tar.bz2
+ wget https://ftpmirror.gnu.org/parallel/parallel-20230522.tar.bz2.sig
+ gpg parallel-20230522.tar.bz2.sig
+ bzip2 -dc parallel-20230522.tar.bz2 | tar xvf -
+ cd parallel-20230522
./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-20220822.tar.bz2
- wget https://ftpmirror.gnu.org/parallel/parallel-20220822.tar.bz2.sig
- gpg parallel-20220822.tar.bz2.sig
- bzip2 -dc parallel-20220822.tar.bz2 | tar xvf -
- cd parallel-20220822
+ wget https://ftpmirror.gnu.org/parallel/parallel-20230522.tar.bz2
+ wget https://ftpmirror.gnu.org/parallel/parallel-20230522.tar.bz2.sig
+ gpg parallel-20230522.tar.bz2.sig
+ bzip2 -dc parallel-20230522.tar.bz2 | tar xvf -
+ cd parallel-20230522
./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. (2022, August 22). GNU Parallel 20220822 ('Rushdie').
- Zenodo. https://doi.org/10.5281/zenodo.7015730
+ Tange, O. (2023, May 22). GNU Parallel 20230522 ('Charles').
+ Zenodo. https://doi.org/10.5281/zenodo.7958356
Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc.
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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 20220822.
+# Generated by GNU Autoconf 2.71 for parallel 20230522.
#
# Report bugs to <bug-parallel@gnu.org>.
#
@@ -610,8 +610,8 @@
# Identity of this package.
PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel'
-PACKAGE_VERSION='20220822'
-PACKAGE_STRING='parallel 20220822'
+PACKAGE_VERSION='20230522'
+PACKAGE_STRING='parallel 20230522'
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 20220822 to adapt to many kinds of systems.
+\`configure' configures parallel 20230522 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 20220822:";;
+ short | recursive ) echo "Configuration of parallel 20230522:";;
esac
cat <<\_ACEOF
@@ -1390,7 +1390,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-parallel configure 20220822
+parallel configure 20230522
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 20220822, which was
+It was created by parallel $as_me 20230522, 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='20220822'
+ VERSION='20230522'
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 20220822, which was
+This file was extended by parallel $as_me 20230522, 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 20220822
+parallel config.status 20230522
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/configure.ac
^
|
@@ -1,4 +1,4 @@
-AC_INIT([parallel],[20220822],[bug-parallel@gnu.org])
+AC_INIT([parallel],[20230522],[bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/doc/citation-notice-faq.txt
^
|
@@ -22,8 +22,10 @@
* https://www.slideshare.net/NadiaEghbal/consider-the-maintainer
* https://www.youtube.com/watch?v=vTsc1m78BUk
* https://web.archive.org/web/20210203105621/https://blog.licensezero.com/2019/08/24/process-of-elimination.html
+* https://web.archive.org/web/20210923091339/https://blog.licensezero.com/2019/08/26/but-you-said.html
* https://www.numfocus.org/blog/why-is-numpy-only-now-getting-funded/
-
+* https://feross.org/funding-experiment-recap/
+* https://www.fordfoundation.org/media/2976/roads-and-bridges-the-unseen-labor-behind-our-digital-infrastructure.pdf
== Is the citation notice compatible with GPLv3? ==
@@ -119,7 +121,7 @@
The citation is also needed for reproducibility: Let us assume a bug
in GNU Parallel skews the results. People replicating the research
-needs to have the information, so they can replicate the (possibly
+need to have the information, so they can replicate the (possibly
wrong) results.
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/doc/haikus
^
|
@@ -4,6 +4,48 @@
Quote of the month:
+
+ 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
+Output is in sync
+
+
+write a haiku about gnu parallel and the :::+ option
+
+
+ Got around to using GNU parallel for the first time from a suggestion by @jdwasmuth ... now I'm wishing I started using this years ago
+ -- Stefan Gavriliuc @GavriliucStefan@twitter
+
+ I’m a big fan of GNU parallel!
+ -- Scott Cain @scottjcain@twitter
+
+ gnu parallelが便利すぎてxargsの使い方忘れちゃった
+ -- @mathbbQ@twitter ℕ@凍結解除手続き中
+
+ Doing some absolutely bonkers "data science" on the command line. GNU parallel + JQ is very powerful, allowing me to parse and 10Gig-JSON-File in under a minute.
+ -- @jeeger@twitter Keter-class developer
+
+ I've learned a lot during my internship, but getting even slightly more proficient with GNU parallel is probably the most important thing I've learned...
+ -- Elijah Rippeth @terrible_coder@twitter
+
+ I honestly don't know how I'd survive without @Docker and @GNU_Parallel
+ -- Eric Pauley @EricPauley_@twitter
+
Gnu parallel is indeed slick. I always try to align my data to make it possible to loop over it with a nice for loop added in a call to run the jobs in parallel then becomes super easy. I love the {1..99} syntax in bash.
-- ragsofx
@@ -186,6 +228,35 @@
=== Used ===
+ Recently learned how to use GNU parallel (from ChatGPT, no less!) and I've gone mad with power
+ -- Mark, Anthropomorphic Anuran @reject_resubmit@twitter
+
+ parallel might be one of the best utilities out there
+ -- @ThePrimeagen ThePrimeagen
+
+ 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
+ -- ChatGPT
+
+ GNU Parallel absolutely rocks.
+ -- Austin Mordahl@Stackoverflow
+
+ [GNU Parallel] is the most amazing tool ever invented for bioinformatics!
+ -- Istvan Albert https://www.ialbert.me/
+
+ If used properly, #gnuparallel actually enables time travel.
+ -- Dr. James Wasmuth @jdwasmuth@twitter
+
+ reduced our backend test pipelines from 4 to 1.30 hrs. gnu parallel for the win!!!
+ -- Swapnil Sahu @CaffeinatedWryy@twitter
+
Parallel is Good Stuff (tm)
-- bloopernova@ycombinator
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/doc/release_new_version
^
|
@@ -23,6 +23,7 @@
Start termux on Android
Start: wssh mac ping fi.dk
+niceload --prg firefox &
cd testsuite; make mem; make polar; make long; make short
== Update version ==
@@ -103,6 +104,7 @@
. .last-doitag.txt
file_path="`pwd`/parallel-$YYYYMMDD.tar.bz2"
+title="GNU Parallel $YYYYMMDD ('$SPCTAG') [stable]"
title="GNU Parallel $YYYYMMDD ('$SPCTAG')"
name="GNU-Parallel-$YYYYMMDD-$TAG"
author="Ole Tange"
@@ -115,7 +117,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 \
@@ -152,9 +154,9 @@
pushd ../parallel-web/parallel
# Bug at Savannah makes this take 30 seconds
(cd ..;
- torsocks cvs -z3 -d:ext:tange@cvs.savannah.gnu.org:/web/parallel co parallel)
-torsocks cvs up
-torsocks cvs ci -m "New release"
+ cvs -z3 -d:ext:tange@cvs.savannah.gnu.org:/web/parallel co parallel)
+cvs up
+cvs ci -m "New release"
pushd
== Commit released version ==
@@ -176,6 +178,10 @@
torsocks git push origin $TAG
torsocks git push origin $YYYYMMDD
+git branch -d premaster
+git branch premaster
+
+
== Zenodo ==
Add tar.bz2 [Start upload] and [Publish].
@@ -226,9 +232,11 @@
// FreeCode is dying
http://freshmeat.net/projects/parallel/releases/new
-== Update Diaspora Twitter ==
+== Update Mastodon Twitter ==
-https://joindiaspora.com/stream
+https://hostux.social/@GNU_Parallel
+
+# Dead: https://joindiaspora.com/stream
New release of #GNU Parallel pi.dk/0
New in this release pi.dk/2
@@ -255,21 +263,39 @@
to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
-Subject: GNU Parallel 20220822 ('Rushdie') released
+Subject: GNU Parallel 20230522 ('Charles') released [stable]
-GNU Parallel 20220822 ('Rushdie') has been released. It is available for download at: lbry://@GnuParallel:4
+GNU Parallel 20230522 ('Charles') has been released. It is available for download at: lbry://@GnuParallel:4
Quote of the month:
- Parallel is Good Stuff (tm)
- -- bloopernova@ycombinator
-
+ Recently learned how to use GNU parallel (from ChatGPT, no less!) and I've gone mad with power
+ -- Mark, Anthropomorphic Anuran @reject_resubmit@twitter
+
New in this release:
-* --header 0 allows using {filename} as replacement string
+* No new features. This is a candidate for a stable release.
* Bug fixes and man page updates.
+News about GNU Parallel:
+
+* Introduction to parallel computing https://youtu.be/fvrHXV8yqU4?t=2874
+
+* Script for summarizing GNU parallel joblog file https://github.com/gavinmdouglas/parallel_joblog_summary
+
+* How to copy a single file to multiple directories in Linux or Unix https://www.cyberciti.biz/faq/linux-unix-copy-a-file-to-multiple-directories-using-cp-command/
+
+* Search in your Jupyter notebooks from the CLI, fast. https://dev.to/attilavm/search-in-your-jupyter-notebooks-from-the-cli-fast-1408
+
+* Parallel Job Orchestration with GNU Parallel https://www.youtube.com/watch?v=2tVpUfND3LI
+
+* Optional Individual Submission 4 Job Handling 20266001 - GNU Parallel https://www.youtube.com/watch?v=eC_RPuFCcU8
+
+* DOE Cross-facility Workflows Training - April 12, 2023 https://www.youtube.com/watch?v=Ke3sirM-aQQ
+
+* How to run MiXCR 4.x on multiple patient samples using GNU Parallel https://www.youtube.com/watch?v=OXg-WHlB_dk
+
GNU Parallel - For people who live life in the parallel lane.
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+git1.tar.bz2/upstream/packager/obs/home-tange/parallel/.osc/_files
^
|
@@ -1,6 +1,7 @@
-<directory name="parallel" rev="347" vrev="2" srcmd5="803d9855154ec525873bed4782299c57">
- <entry name="PKGBUILD" md5="20e14c8cccb155e3face39ed1a5f8e32" size="1866" mtime="1661195576" />
- <entry name="parallel-20220822.tar.bz2" md5="df66fc183b6abddcf3d096d3d9c7e3fd" size="2389868" mtime="1661195576" />
- <entry name="parallel.spec" md5="5782a2e9ee73bd3bf2b3824dc7fe9b61" size="6224" mtime="1661195576" />
- <entry name="parallel_20220822.tar.gz" md5="b4907f90688afd39e7e8ce14650e7209" size="2646757" mtime="1661195577" />
+<directory name="parallel" rev="362" vrev="2" srcmd5="4c35e54a8a572db4bd70dbf4e3cd3e2d">
+ <entry name="PKGBUILD" md5="bd771f3fadb24d5f4c3847113ecac698" size="1246" mtime="1684784391" />
+ <entry name="parallel-20230522.tar.bz2" md5="a25c77e65e0e3c269514381c01bdb049" size="2495738" mtime="1684784391" />
+ <entry name="parallel.spec" md5="e78eb660abc88e51a6bd43e9321b2285" size="6224" mtime="1684784391" />
+ <entry name="parallel_20230522.dsc" md5="b87ba7da6b01101b2619a9bea59e910b" size="556" mtime="1684784391" />
+ <entry name="parallel_20230522.tar.gz" md5="1820fdc6713245eb1122fdf27f552892" size="2777335" mtime="1684784392" />
</directory>
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/packager/obs/home-tange/parallel/.osc/parallel.spec
^
|
@@ -1,8 +1,8 @@
Summary: Shell tool for executing jobs in parallel
Name: parallel
-Version: 20220822
-Release: 2.2
+Version: 20230522
+Release: 2.1
License: GPL-3.0-or-later
Group: Productivity/File utilities
URL: ftp://ftp.gnu.org/gnu/parallel
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/Makefile.am
^
|
@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2002-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
+# SPDX-FileCopyrightText: 2002-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
#
# SPDX-License-Identifier: GPL-3.0-or-later
@@ -8,32 +8,58 @@
env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
env_parallel.sh env_parallel.tcsh env_parallel.zsh
+POD_FILES = parcat.pod parset.pod sem.pod parallel.pod \
+ env_parallel.pod niceload.pod parallel_examples.pod \
+ parallel_tutorial.pod parallel_book.pod parallel_design.pod \
+ parallel_alternatives.pod
+
+MAN_FILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
+ parallel_examples.7 parallel_tutorial.7 parallel_book.7 \
+ parallel_design.7 parallel_alternatives.7 parcat.1 parset.1 \
+ parsort.1
+
+PDF_MAN = parallel.pdf env_parallel.pdf sem.pdf sql.pdf \
+ niceload.pdf parallel_examples.pdf parallel_tutorial.pdf \
+ parallel_book.pdf parallel_design.pdf \
+ parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf
+
+PDF_OTHER = parallel_cheat_bw.pdf parallel_options_map.pdf
+
+PDF_FILES = $(PDF_MAN) $(PDF_OTHER)
+
+RST_FILES = parallel.rst env_parallel.rst sem.rst sql.rst \
+ niceload.rst parallel_examples.rst parallel_tutorial.rst \
+ parallel_book.rst parallel_design.rst \
+ parallel_alternatives.rst parcat.rst parset.rst parsort.rst
+
+TEXI_FILES = parallel.texi env_parallel.texi sem.texi sql.texi \
+ niceload.texi parallel_examples.texi parallel_tutorial.texi \
+ parallel_book.texi parallel_design.texi \
+ parallel_alternatives.texi parcat.texi parset.texi \
+ parsort.texi
+
+HTML_FILES = parallel.html env_parallel.html sem.html sql.html \
+ niceload.html parallel_examples.html parallel_tutorial.html \
+ parallel_book.html parallel_design.html \
+ parallel_alternatives.html parcat.html parset.html \
+ parsort.html
+
install-exec-hook:
rm "$(DESTDIR)$(bindir)"/sem || true
$(LN_S) parallel "$(DESTDIR)$(bindir)"/sem
if DOCUMENTATION
-man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
- parallel_tutorial.7 parallel_book.7 parallel_design.7 \
- parallel_alternatives.7 parcat.1 parset.1 parsort.1
-doc_DATA = parallel.html env_parallel.html sem.html sql.html \
- niceload.html parallel_tutorial.html parallel_book.html \
- parallel_design.html parallel_alternatives.html parcat.html \
- parset.html parsort.html \
- parallel.texi env_parallel.texi sem.texi sql.texi \
- niceload.texi parallel_tutorial.texi parallel_book.texi \
- parallel_design.texi parallel_alternatives.texi parcat.texi \
- parset.texi parsort.texi \
- parallel.rst env_parallel.rst sem.rst sql.rst \
- niceload.rst parallel_tutorial.rst parallel_book.rst \
- parallel_design.rst parallel_alternatives.rst parcat.rst \
- parset.rst parsort.rst \
- parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
- parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \
- parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf \
- parallel_cheat_bw.pdf parallel_options_map.pdf
+man_MANS = $(MAN_FILES)
+doc_DATA = $(HTML_FILES) $(TEXI_FILES) $(RST_FILES) $(PDF_FILES)
endif
+DISTCLEANFILES = $(MAN_FILES) $(HTML_FILES) $(TEXI_FILES) \
+ $(RST_FILES) $(PDF_FILES)
+
+
+EXTRA_DIST = $(bin_SCRIPTS) sem $(POD_FILES) \
+ parallel_cheat_bw.fodt pod2graph $(DISTCLEANFILES)
+
web: sphinx
true
@@ -54,6 +80,12 @@
&& mv "$(srcdir)"/env_parallel.1n "$(srcdir)"/env_parallel.1 \
|| echo "Warning: pod2man not found. Using old env_parallel.1"
+parallel_examples.7: parallel_examples.pod
+ pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
+ --section=7 "$(srcdir)"/parallel_examples.pod > "$(srcdir)"/parallel_examples.7n \
+ && mv "$(srcdir)"/parallel_examples.7n "$(srcdir)"/parallel_examples.7 \
+ || echo "Warning: pod2man not found. Using old parallel_examples.7"
+
parallel_tutorial.7: parallel_tutorial.pod
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=7 "$(srcdir)"/parallel_tutorial.pod > "$(srcdir)"/parallel_tutorial.7n \
@@ -128,7 +160,14 @@
rm -f "$(srcdir)"/pod2htm*
# Depending on env_parallel.html to avoid stupid pod2html race condition
-parallel_tutorial.html: parallel_tutorial.pod env_parallel.html
+parallel_examples.html: parallel_examples.pod env_parallel.html
+ pod2html --title "GNU Parallel examples" "$(srcdir)"/parallel_examples.pod > "$(srcdir)"/parallel_examples.htmln \
+ && mv "$(srcdir)"/parallel_examples.htmln "$(srcdir)"/parallel_examples.html \
+ || echo "Warning: pod2html not found. Using old parallel_examples.html"
+ rm -f "$(srcdir)"/pod2htm*
+
+# Depending on parallel_examples.html to avoid stupid pod2html race condition
+parallel_tutorial.html: parallel_tutorial.pod parallel_examples.html
pod2html --title "GNU Parallel tutorial" "$(srcdir)"/parallel_tutorial.pod > "$(srcdir)"/parallel_tutorial.htmln \
&& mv "$(srcdir)"/parallel_tutorial.htmln "$(srcdir)"/parallel_tutorial.html \
|| echo "Warning: pod2html not found. Using old parallel_tutorial.html"
@@ -205,6 +244,10 @@
pod2texi --output="$(srcdir)"/env_parallel.texi "$(srcdir)"/env_parallel.pod \
|| echo "Warning: pod2texi not found. Using old env_parallel.texi"
+parallel_examples.texi: parallel_examples.pod
+ pod2texi --output="$(srcdir)"/parallel_examples.texi "$(srcdir)"/parallel_examples.pod \
+ || echo "Warning: pod2texi not found. Using old parallel_examples.texi"
+
parallel_tutorial.texi: parallel_tutorial.pod
pod2texi --output="$(srcdir)"/parallel_tutorial.texi "$(srcdir)"/parallel_tutorial.pod \
|| echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
@@ -253,6 +296,10 @@
./pod2rst-fix < "$(srcdir)"/env_parallel.pod > "$(srcdir)"/env_parallel.rst \
|| echo "Warning: pod2rst not found. Using old env_parallel.rst"
+parallel_examples.rst: parallel_examples.pod
+ ./pod2rst-fix < "$(srcdir)"/parallel_examples.pod > "$(srcdir)"/parallel_examples.rst \
+ || echo "Warning: pod2rst not found. Using old parallel_examples.rst"
+
parallel_tutorial.rst: parallel_tutorial.pod
./pod2rst-fix < "$(srcdir)"/parallel_tutorial.pod > "$(srcdir)"/parallel_tutorial.rst \
|| echo "Warning: pod2rst not found. Using old parallel_tutorial.rst"
@@ -301,6 +348,10 @@
pod2pdf --output-file "$(srcdir)"/env_parallel.pdf "$(srcdir)"/env_parallel.pod --title "GNU Parallel with environment" \
|| echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
+parallel_examples.pdf: parallel_examples.pod
+ pod2pdf --output-file "$(srcdir)"/parallel_examples.pdf "$(srcdir)"/parallel_examples.pod --title "GNU Parallel Examples" \
+ || echo "Warning: pod2pdf not found. Using old parallel_examples.pdf"
+
parallel_tutorial.pdf: parallel_tutorial.pod
pod2pdf --output-file "$(srcdir)"/parallel_tutorial.pdf "$(srcdir)"/parallel_tutorial.pod --title "GNU Parallel Tutorial" \
|| echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
@@ -352,31 +403,3 @@
sem: parallel
ln -fs parallel sem
-DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
- parallel_tutorial.7 parallel_book.7 parallel_design.7 \
- parallel_alternatives.7 parcat.1 parset.1 parsort.1 \
- parallel.html env_parallel.html sem.html sql.html \
- niceload.html parallel_tutorial.html parallel_book.html \
- parallel_design.html parallel_alternatives.html parcat.html \
- parset.html parsort.html parallel.texi env_parallel.texi \
- sem.texi sql.texi niceload.texi parallel_tutorial.texi \
- parallel_book.texi parallel_design.texi \
- parallel_alternatives.texi parcat.texi parset.texi \
- parsort.texi \
- parallel.rst env_parallel.rst sem.rst sql.rst niceload.rst \
- parallel_tutorial.rst parallel_book.rst parallel_design.rst \
- parallel_alternatives.rst parcat.rst parset.rst parsort.rst \
- parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
- parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \
- parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf \
- parallel_cheat_bw.pdf parallel_options_map.pdf
-
-EXTRA_DIST = parallel sem sql niceload parcat parset parsort \
- env_parallel env_parallel.ash env_parallel.bash \
- env_parallel.csh env_parallel.dash env_parallel.fish \
- env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
- env_parallel.sh env_parallel.tcsh env_parallel.zsh parcat.pod \
- parset.pod sem.pod parallel.pod env_parallel.pod niceload.pod \
- parallel_tutorial.pod parallel_book.pod parallel_design.pod \
- parallel_alternatives.pod parallel_cheat_bw.fodt \
- pod2graph $(DISTCLEANFILES)
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230522+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-20230522+git1.tar.bz2/upstream/src/christmastree
^
|
@@ -18,7 +18,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
=head1 NAME
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -18,7 +18,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
grepq() {
@@ -83,8 +83,8 @@
Do this and restart your shell:
-bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
- E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
+bash: Put this in $HOME/.bashrc: . env_parallel.bash
+ E.g. by doing: echo '. env_parallel.bash' >> $HOME/.bashrc
Supports: variables, aliases, functions, arrays
fish: Put this in $HOME/.config/fish/config.fish: . (which env_parallel.fish)
@@ -92,28 +92,28 @@
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
Supports: variables, aliases, functions, arrays
-ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
- E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
+ksh: Put this in $HOME/.kshrc: source env_parallel.ksh
+ E.g. by doing: echo 'source env_parallel.ksh' >> $HOME/.kshrc
Supports: variables, aliases, functions, arrays
-mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
- E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
+mksh: Put this in $HOME/.mkshrc: source env_parallel.mksh
+ E.g. by doing: echo 'source env_parallel.mksh' >> $HOME/.mkshrc
Supports: variables, aliases, functions, arrays
-pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
- E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
+pdksh: Put this in $HOME/.profile: source env_parallel.pdksh
+ E.g. by doing: echo '. env_parallel.pdksh' >> $HOME/.profile
Supports: variables, aliases, functions, arrays
-zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
- E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
+zsh: Put this in $HOME/.zshrc: . env_parallel.zsh
+ E.g. by doing: echo '. env_parallel.zsh' >> $HOME/.zshenv
Supports: variables, functions, arrays
-ash: Put this in $HOME/.profile: . `which env_parallel.ash`
- E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
+ash: Put this in $HOME/.profile: . env_parallel.ash
+ E.g. by doing: echo '. env_parallel.ash' >> $HOME/.profile
Supports: variables, aliases
-dash: Put this in $HOME/.profile: . `which env_parallel.dash`
- E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
+dash: Put this in $HOME/.profile: . env_parallel.dash
+ E.g. by doing: echo '. env_parallel.dash' >> $HOME/.profile
Supports: variables, aliases
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
@@ -130,13 +130,13 @@
In a script you need to run this before using env_parallel:
-bash: . `which env_parallel.bash`
-ksh: source `which env_parallel.ksh`
-mksh: source `which env_parallel.mksh`
-pdksh: source `which env_parallel.pdksh`
-zsh: . `which env_parallel.zsh`
-ash: . `which env_parallel.ash`
-dash: . `which env_parallel.dash`
+bash: . env_parallel.bash
+ksh: source env_parallel.ksh
+mksh: source env_parallel.mksh
+pdksh: source env_parallel.pdksh
+zsh: . env_parallel.zsh
+ash: . env_parallel.ash
+dash: . env_parallel.dash
For details: see man env_parallel
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.ash
^
|
@@ -2,12 +2,12 @@
# This file must be sourced in ash:
#
-# . `which env_parallel.ash`
+# . env_parallel.ash
#
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# shellcheck disable=SC2006 shell=dash
@@ -104,9 +104,7 @@
_ignore_RO="`_ignore_READONLY`"
# shellcheck disable=SC2006
_ignore_HARD="`_ignore_HARDCODED`"
- # Macos-grep does not like long patterns
- # Old Solaris grep does not support -E
- # Perl Version of:
+ # To avoid depending on grep dialect, use Perl version of:
# grep -Ev '^(...)$' |
perl -ne '/^(
PARALLEL_ENV|
@@ -395,8 +393,8 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20220822 (GNU parallel `parallel --minversion 1`)"
- echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
+ echo "parset 20230522 (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>"
echo "This is free software: you are free to change and redistribute it."
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.bash
^
|
@@ -2,12 +2,12 @@
# This file must be sourced in bash:
#
-# source `which env_parallel.bash`
+# source env_parallel.bash
#
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# shellcheck disable=SC2006
@@ -90,9 +90,7 @@
_ignore_RO="`_ignore_READONLY`"
# shellcheck disable=SC2006
_ignore_HARD="`_ignore_HARDCODED`"
- # Macos-grep does not like long patterns
- # Old Solaris grep does not support -E
- # Perl Version of:
+ # To avoid depending on grep dialect, use Perl version of:
# grep -Ev '^(...)$' |
perl -ne '/^(
PARALLEL_ENV|
@@ -397,8 +395,8 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20220822 (GNU parallel `parallel --minversion 1`)"
- echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
+ echo "parset 20230522 (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>"
echo "This is free software: you are free to change and redistribute it."
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.csh
^
|
@@ -7,7 +7,7 @@
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
set _parallel_exit_CODE=0
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.dash
^
|
@@ -2,12 +2,12 @@
# This file must be sourced in dash:
#
-# . `which env_parallel.dash`
+# . env_parallel.dash
#
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# shellcheck disable=SC2006
@@ -104,9 +104,7 @@
_ignore_RO="`_ignore_READONLY`"
# shellcheck disable=SC2006
_ignore_HARD="`_ignore_HARDCODED`"
- # Macos-grep does not like long patterns
- # Old Solaris grep does not support -E
- # Perl Version of:
+ # To avoid depending on grep dialect, use Perl version of:
# grep -Ev '^(...)$' |
perl -ne '/^(
PARALLEL_ENV|
@@ -395,8 +393,8 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20220822 (GNU parallel `parallel --minversion 1`)"
- echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
+ echo "parset 20230522 (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>"
echo "This is free software: you are free to change and redistribute it."
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.fish
^
|
@@ -7,7 +7,7 @@
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# If you are a fisherman feel free to improve the code
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.ksh
^
|
@@ -2,12 +2,12 @@
# This file must be sourced in ksh:
#
-# source `which env_parallel.ksh`
+# source env_parallel.ksh
#
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# shellcheck disable=SC2006
@@ -87,9 +87,7 @@
_ignore_RO="`_ignore_READONLY`"
# shellcheck disable=SC2006
_ignore_HARD="`_ignore_HARDCODED`"
- # Macos-grep does not like long patterns
- # Old Solaris grep does not support -E
- # Perl Version of:
+ # To avoid depending on grep dialect, use Perl version of:
# grep -Ev '^(...)$' |
perl -ne '/^(
PARALLEL_ENV|
@@ -378,8 +376,8 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20220822 (GNU parallel `parallel --minversion 1`)"
- echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
+ echo "parset 20230522 (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>"
echo "This is free software: you are free to change and redistribute it."
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.mksh
^
|
@@ -2,12 +2,12 @@
# This file must be sourced in mksh:
#
-# source `which env_parallel.mksh`
+# source env_parallel.mksh
#
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# shellcheck disable=SC2006
@@ -89,9 +89,7 @@
_ignore_RO="`_ignore_READONLY`"
# shellcheck disable=SC2006
_ignore_HARD="`_ignore_HARDCODED`"
- # Macos-grep does not like long patterns
- # Old Solaris grep does not support -E
- # Perl Version of:
+ # To avoid depending on grep dialect, use Perl version of:
# grep -Ev '^(...)$' |
perl -ne '/^(
PARALLEL_ENV|
@@ -380,8 +378,8 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20220822 (GNU parallel `parallel --minversion 1`)"
- echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
+ echo "parset 20230522 (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>"
echo "This is free software: you are free to change and redistribute it."
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.pdksh
^
|
@@ -2,12 +2,12 @@
# This file must be sourced in pdksh:
#
-# source `which env_parallel.pdksh`
+# source env_parallel.pdksh
#
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
env_parallel() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.pod
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
-# 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: GFDL-1.3-or-later
# SPDX-License-Identifier: CC-BY-SA-4.0
@@ -147,11 +147,11 @@
Put this in $HOME/.profile:
- . `which env_parallel.ash`
+ . env_parallel.ash
E.g. by doing:
- echo '. `which env_parallel.ash`' >> $HOME/.profile
+ echo '. env_parallel.ash' >> $HOME/.profile
=head3 Supported use
@@ -201,11 +201,11 @@
Put this in $HOME/.bashrc:
- . `which env_parallel.bash`
+ . env_parallel.bash
E.g. by doing:
- echo '. `which env_parallel.bash`' >> $HOME/.bashrc
+ echo '. env_parallel.bash' >> $HOME/.bashrc
=head3 Supported use
@@ -328,11 +328,11 @@
Put this in $HOME/.profile:
- . `which env_parallel.dash`
+ . env_parallel.dash
E.g. by doing:
- echo '. `which env_parallel.dash`' >> $HOME/.profile
+ echo '. env_parallel.dash' >> $HOME/.profile
=head3 Supported use
@@ -443,11 +443,11 @@
Put this in $HOME/.kshrc:
- source `which env_parallel.ksh`
+ source env_parallel.ksh
E.g. by doing:
- echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
+ echo 'source env_parallel.ksh' >> $HOME/.kshrc
=head3 Supported use
@@ -507,11 +507,11 @@
Put this in $HOME/.mkshrc:
- source `which env_parallel.mksh`
+ source env_parallel.mksh
E.g. by doing:
- echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
+ echo 'source env_parallel.mksh' >> $HOME/.mkshrc
=head3 Supported use
@@ -571,11 +571,11 @@
Put this in $HOME/.profile:
- source `which env_parallel.pdksh`
+ source env_parallel.pdksh
E.g. by doing:
- echo 'source `which env_parallel.pdksh`' >> $HOME/.profile
+ echo 'source env_parallel.pdksh' >> $HOME/.profile
=head3 Supported use
@@ -628,11 +628,11 @@
Put this in $HOME/.profile:
- . `which env_parallel.sh`
+ . env_parallel.sh
E.g. by doing:
- echo '. `which env_parallel.sh`' >> $HOME/.profile
+ echo '. env_parallel.sh' >> $HOME/.profile
=head3 Supported use
@@ -730,11 +730,11 @@
Put this in $HOME/.zshrc:
- . `which env_parallel.zsh`
+ . env_parallel.zsh
E.g. by doing:
- echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
+ echo '. env_parallel.zsh' >> $HOME/.zshenv
=head3 Supported use
@@ -807,7 +807,7 @@
Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk
-Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free
+Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc.
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.sh
^
|
@@ -7,7 +7,7 @@
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# shellcheck disable=SC2006
@@ -104,9 +104,7 @@
_ignore_RO="`_ignore_READONLY`"
# shellcheck disable=SC2006
_ignore_HARD="`_ignore_HARDCODED`"
- # Macos-grep does not like long patterns
- # Old Solaris grep does not support -E
- # Perl Version of:
+ # To avoid depending on grep dialect, use Perl version of:
# grep -Ev '^(...)$' |
perl -ne '/^(
PARALLEL_ENV|
@@ -395,8 +393,8 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20220822 (GNU parallel `parallel --minversion 1`)"
- echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
+ echo "parset 20230522 (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>"
echo "This is free software: you are free to change and redistribute it."
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.tcsh
^
|
@@ -7,7 +7,7 @@
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
set _parallel_exit_CODE=0
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/env_parallel.zsh
^
|
@@ -7,7 +7,7 @@
# after which 'env_parallel' works
#
#
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +25,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# shellcheck disable=SC2006
@@ -79,9 +79,7 @@
_ignore_RO="`_ignore_READONLY`"
# shellcheck disable=SC2006
_ignore_HARD="`_ignore_HARDCODED`"
- # Macos-grep does not like long patterns
- # Old Solaris grep does not support -E
- # Perl Version of:
+ # To avoid depending on grep dialect, use Perl version of:
# grep -Ev '^(...)$' |
perl -ne '/^(
PARALLEL_ENV|
@@ -370,8 +368,8 @@
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
- echo "parset 20220822 (GNU parallel `parallel --minversion 1`)"
- echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
+ echo "parset 20230522 (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>"
echo "This is free software: you are free to change and redistribute it."
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/niceload
^
|
@@ -2,7 +2,7 @@
# Copyright (C) 2004-2010 Ole Tange, http://ole.tange.dk
#
-# Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and
+# Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and
# Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -20,13 +20,13 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
use strict;
use Getopt::Long;
$Global::progname="niceload";
-$Global::version = 20220822;
+$Global::version = 20230522;
Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage();
if($opt::version) {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/niceload.pod
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
-# 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: GFDL-1.3-or-later
# SPDX-License-Identifier: CC-BY-SA-4.0
@@ -309,7 +309,7 @@
Copyright (C) 2005-2010 Ole Tange, http://ole.tange.dk
-Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free
+Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc.
=head1 LICENSE
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parallel
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/env perl
-# Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -18,7 +18,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# open3 used in Job::start
@@ -80,7 +80,7 @@
for my $s (@opt::a) {
# ::: are put into files and given a filehandle
# ignore these and only keep the filenames.
- fileno $s and next;
+ fileno $s and next;
for(@$command_ref, @Global::ret_files,
@Global::transfer_files, $opt::tagstring,
$opt::workdir, $opt::results, $opt::retries,
@@ -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(@) {
@@ -740,27 +742,34 @@
sub split_positions_for_group_by($$$$) {
my($fh);
+ my %value;
sub value_at($) {
my $pos = shift;
- if($pos != 0) {
- seek($fh, $pos-1, 0) || die;
- # Read half line
- <$fh>;
- }
- # Read full line
- my $linepos = tell($fh);
- $_ = <$fh>;
- if(defined $_) {
- # Not end of file
- my @F;
- if(defined $group_by::col) {
- $opt::colsep ||= "\t";
- @F = split /$opt::colsep/, $_;
- $_ = $F[$group_by::col];
+ if(not defined $value{$pos}) {
+ if($pos != 0) {
+ seek($fh, $pos-1, 0) || die;
+ # Read half line
+ <$fh>;
+ }
+ # Read full line
+ my $linepos = tell($fh);
+ if(not defined $value{$linepos}) {
+ $_ = <$fh>;
+ if(defined $_) {
+ # Not end of file
+ my @F;
+ if(defined $group_by::col) {
+ $opt::colsep ||= "\t";
+ @F = split /$opt::colsep/, $_;
+ $_ = $F[$group_by::col];
+ }
+ eval $group_by::perlexpr;
+ }
+ $value{$linepos} = [$_,$linepos];
}
- eval $group_by::perlexpr;
+ $value{$pos} = $value{$linepos};
}
- return ($_,$linepos);
+ return (@{$value{$pos}});
}
sub binary_search_end($$$) {
@@ -802,48 +811,70 @@
}
my ($file,$size,$block,$header,$firstlinelen) = @_;
- my ($a,$b,$c,$apos,$bpos,$cpos);
my @pos;
$fh = open_or_exit($file);
# Set $Global::group_by_column $Global::group_by_perlexpr
group_by_loop($fh,$opt::recsep);
- # $xpos = linestart, $x = value at $xpos, $apos < $bpos < $cpos
- $apos = $firstlinelen + length $header;
- for(($a,$apos) = value_at($apos); $apos < $size;) {
- push @pos, $apos;
- $bpos = $apos + $block;
- ($b,$bpos) = value_at($bpos);
- if(eof($fh)) {
- push @pos, $size; last;
- }
- $cpos = $bpos + $block;
- ($c,$cpos) = value_at($cpos);
- if($a eq $b) {
- while($b eq $c) {
- # Move bpos, cpos a block forward until $a == $b != $c
- $bpos = $cpos;
- $cpos += $block;
- ($c,$cpos) = value_at($cpos);
- if($cpos >= $size) {
- $cpos = $size;
- last;
- }
+ if($opt::max_args) {
+ # Split after n values
+ my ($a,$apos);
+ # $xpos = linestart, $x = value at $xpos
+ $apos = $firstlinelen + length $header;
+ for(($a,$apos) = value_at($apos); $apos < $size;) {
+ push @pos, $apos;
+ ($a,$apos) = binary_search_end($a,$apos,$size);
+ if(eof($fh)) {
+ push @pos, $size; last;
}
- # $a == $b != $c
- # Binary search for $b ending between ($bpos,$cpos)
- ($b,$bpos) = binary_search_end($b,$bpos,$cpos);
- } else {
- if($b eq $c) {
- # $a != $b == $c
- # Binary search for $b starting between ($apos,$bpos)
- ($b,$bpos) = binary_search_start($b,$apos,$bpos);
- } else {
- # $a != $b != $c
+ }
+ # @pos = start of every value
+ # Merge n values
+ # -nX = keep every X'th position
+ my $i = 0;
+ @pos = grep { not ($i++ % $opt::max_args) } @pos;
+ } else {
+ # Split after any value group
+ # Preferable < $blocksize
+ my ($a,$b,$c,$apos,$bpos,$cpos);
+ # $xpos = linestart, $x = value at $xpos, $apos < $bpos < $cpos
+ $apos = $firstlinelen + length $header;
+ for(($a,$apos) = value_at($apos); $apos < $size;) {
+ push @pos, $apos;
+ $bpos = $apos + $block;
+ ($b,$bpos) = value_at($bpos);
+ if(eof($fh)) {
+ # EOF is less than 1 block away
+ push @pos, $size; last;
+ }
+ $cpos = $bpos + $block;
+ ($c,$cpos) = value_at($cpos);
+ if($a eq $b) {
+ while($b eq $c) {
+ # Move bpos, cpos a block forward until $a == $b != $c
+ $bpos = $cpos;
+ $cpos += $block;
+ ($c,$cpos) = value_at($cpos);
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parallel.pod
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
-# 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: GFDL-1.3-or-later
# SPDX-License-Identifier: CC-BY-SA-4.0
@@ -61,7 +61,7 @@
=head2 Reader's guide
GNU B<parallel> includes the 4 types of documentation: Tutorial,
-how-to, reference and explanation.
+how-to, reference and explanation/design.
=head3 Tutorial
@@ -81,10 +81,15 @@
=head3 How-to
-You can find a lot of B<EXAMPLE>s of use after the list of
-B<OPTIONS> in B<man parallel> (Use B<LESS=+/EXAMPLE: man parallel>). That will
-give you an idea of what GNU B<parallel> is capable of, and you may
-find a solution you can simply adapt to your situation.
+You can find a lot of examples of use in B<man
+parallel_examples>. They will give you an idea of what GNU B<parallel>
+is capable of, and you may find a solution you can simply adapt to
+your situation.
+
+If the example do not cover your exact needs, the options map
+(https://www.gnu.org/software/parallel/parallel_options_map.pdf) can
+help you identify options that are related, so you can look these up
+in the man page.
=head3 Reference
@@ -92,7 +97,8 @@
If you need a one page printable cheat sheet you can find it on:
https://www.gnu.org/software/parallel/parallel_cheat.pdf
-The man page is the reference for all options.
+The man page is the reference for all options, and reading the man
+page from cover to cover is probably not what you need.
=head3 Design discussion
@@ -556,6 +562,8 @@
2> >(perl -pe 'BEGIN{$/="\r";$|=1};s/\r/\n/g' |
zenity --progress --auto-kill) | wc
+See also: B<--eta> B<--progress> B<--total-jobs>
+
=item B<--basefile> I<file>
@@ -749,7 +757,7 @@
B<--return>
-=item B<--color> (beta testing)
+=item B<--color>
Colour output.
@@ -761,9 +769,9 @@
See also: B<--color-failed>
-=item B<--color-failed> (beta testing)
+=item B<--color-failed>
-=item B<--cf> (beta testing)
+=item B<--cf>
Colour the output from failing jobs white on red.
@@ -813,6 +821,9 @@
B<lzma>, B<bzip2>, B<xz>, B<clzip>, in that order, and use the first
available.
+GNU B<parallel> will use up to 8 processes per job waiting to be
+printed. See B<man parallel_design> for details.
+
See also: B<--compress-program>
@@ -983,15 +994,15 @@
Show the estimated number of seconds before finishing.
This forces GNU B<parallel> to read all jobs before starting to find
-the number of jobs. GNU B<parallel> normally only reads the next job
-to run.
+the number of jobs (unless you use B<--total-jobs>). GNU B<parallel>
+normally only reads the next job to run.
The estimate is based on the runtime of finished jobs, so the first
estimate will only be shown when the first job has finished.
Implies B<--progress>.
-See also: B<--bar> B<--progress>
+See also: B<--bar> B<--progress> B<--total-jobs>
=item B<--fg>
@@ -1020,9 +1031,12 @@
Beware: If the fifo is never opened for reading, the job will block forever:
- seq 1000000 | parallel --fifo echo This will block
+ seq 1000000 | parallel --fifo echo This will block forever
seq 1000000 | parallel --fifo 'echo This will not block < {}'
+By using B<--fifo> instead of B<--cat> you may save I/O as B<--cat>
+will write to a temporary file, whereas B<--fifo> will not.
+
Implies B<--pipe> unless B<--pipe-part> is used.
See also: B<--cat> B<--pipe> B<--pipe-part>
@@ -1067,7 +1081,7 @@
This option historically took precedence over B<--tollef>. The
B<--tollef> option is now retired, and therefore may not be
-used. B<--gnu> is kept for compatibility.
+used. B<--gnu> is kept for compatibility, but does nothing.
=item B<--group>
@@ -1079,10 +1093,9 @@
(standard error).
This takes in the order of 0.5ms CPU time per job and depends on the
-speed of your disk for larger output. It can be disabled with B<-u>,
-but this means output from different commands can get mixed.
+speed of your disk for larger output.
-B<--group> is the default. Can be reversed with B<-u>.
+B<--group> is the default.
See also: B<--line-buffer> B<--ungroup> B<--tag>
@@ -1198,11 +1211,11 @@
=item Z<> --halt now,fail=1
-exit when the first job fails. Kill running jobs.
+exit when a job has failed. Kill running jobs.
=item Z<> --halt soon,fail=3
-exit when 3 jobs fail, but wait for running jobs to complete.
+exit when 3 jobs have failed, but wait for running jobs to complete.
=item Z<> --halt soon,fail=3%
@@ -1210,11 +1223,11 @@
=item Z<> --halt now,success=1
-exit when a job succeeds. Kill running jobs.
+exit when a job has succeeded. Kill running jobs.
=item Z<> --halt soon,success=3
-exit when 3 jobs succeeds, but wait for running jobs to complete.
+exit when 3 jobs have succeeded, but wait for running jobs to complete.
=item Z<> --halt now,success=3%
@@ -1222,11 +1235,11 @@
=item Z<> --halt now,done=1
-exit when one of the jobs finishes. Kill running jobs.
+exit when a job has finished. Kill running jobs.
=item Z<> --halt soon,done=3
-exit when 3 jobs finishes, but wait for running jobs to complete.
+exit when 3 jobs have finished, but wait for running jobs to complete.
=item Z<> --halt now,done=3%
@@ -1265,7 +1278,7 @@
=back
-=item B<--header> I<regexp> (alpha testing)
+=item B<--header> I<regexp>
Use regexp as header.
@@ -1335,6 +1348,8 @@
=item B<--joblog> I<logfile>
+=item B<--jl> I<logfile>
+
Logfile for executed jobs.
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parallel_alternatives.pod
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
-# 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: GFDL-1.3-or-later
# SPDX-License-Identifier: CC-BY-SA-4.0
@@ -104,7 +104,7 @@
=over
-=item E1. Running jobs in parallel
+=item E1. Run jobs in parallel
=item E2. List running jobs
@@ -246,7 +246,7 @@
B<Parallel grep> cannot be done reliably with B<xargs> because of
this. To see this in action try:
- parallel perl -e '\$a=\"1\".\"{}\"x10000000\;print\ \$a,\"\\n\"' \
+ parallel perl -e "'"'$a="1"."{}"x10000000;print $a,"\n"'"'" \
'>' {} ::: a b c d e f g h
# Serial = no mixing = the wanted result
# 'tr -s a-z' squeezes repeating letters into a single letter
@@ -327,7 +327,8 @@
hosts or URLs) will require creating these inputs as files. B<find
-exec> has no support for running commands in parallel.
-https://www.gnu.org/software/findutils/ (Last checked: 2019-01)
+https://www.gnu.org/software/findutils/
+(Last checked: 2019-01)
=head2 DIFFERENCES BETWEEN make -j AND GNU Parallel
@@ -360,7 +361,8 @@
(Very early versions of GNU B<parallel> were coincidentally implemented
using B<make -j>).
-https://www.gnu.org/software/make/ (Last checked: 2019-01)
+https://www.gnu.org/software/make/
+(Last checked: 2019-01)
=head2 DIFFERENCES BETWEEN ppss AND GNU Parallel
@@ -417,7 +419,8 @@
1$ find /path/to/files -type f | parallel gzip
- 2$ ./ppss.sh standalone -d /path/to/files -c 'cp "$ITEM" /destination/dir '
+ 2$ ./ppss.sh standalone -d /path/to/files \
+ -c 'cp "$ITEM" /destination/dir '
2$ find /path/to/files -type f | parallel cp {} /destination/dir
@@ -435,9 +438,11 @@
./ppss deploy -C config.cfg
./ppss start -C config
- 5$ # parallel does not use configs. If you want a different username put it in nodes.txt: user@hostname
+ 5$ # parallel does not use configs. If you want
+ # a different username put it in nodes.txt: user@hostname
find source/dir -type f |
- parallel --sshloginfile nodes.txt --trc {.}.mp3 lame -a {} -o {.}.mp3 --preset standard --quiet
+ parallel --sshloginfile nodes.txt --trc {.}.mp3 \
+ lame -a {} -o {.}.mp3 --preset standard --quiet
6$ ./ppss stop -C config.cfg
@@ -456,6 +461,7 @@
9$ killall -SIGUSR2 parallel
https://github.com/louwrentius/PPSS
+(Last checked: 2010-12)
=head2 DIFFERENCES BETWEEN pexec AND GNU Parallel
@@ -535,6 +541,7 @@
'pnmscale 0.5 | pnmtojpeg | sem --id diskio cat > th_{}'
https://www.gnu.org/software/pexec/
+(Last checked: 2010-12)
=head2 DIFFERENCES BETWEEN xjobs AND GNU Parallel
@@ -580,7 +587,8 @@
echo unzip 1.zip >> /var/run/my_named_pipe;
echo tar cf /backup/myhome.tar /home/me >> /var/run/my_named_pipe
-https://www.maier-komor.de/xjobs.html (Last checked: 2019-01)
+https://www.maier-komor.de/xjobs.html
+(Last checked: 2019-01)
=head2 DIFFERENCES BETWEEN prll AND GNU Parallel
@@ -605,7 +613,8 @@
1$ parallel mogrify -flip ::: *.jpg
-https://github.com/exzombie/prll (Last checked: 2019-01)
+https://github.com/exzombie/prll
+(Last checked: 2019-01)
=head2 DIFFERENCES BETWEEN dxargs AND GNU Parallel
@@ -617,7 +626,8 @@
support transferring of files.
https://web.archive.org/web/20120518070250/http://www.
-semicomplete.com/blog/geekery/distributed-xargs.html (Last checked: 2019-01)
+semicomplete.com/blog/geekery/distributed-xargs.html
+(Last checked: 2019-01)
=head2 DIFFERENCES BETWEEN mdm/middleman AND GNU Parallel
@@ -634,7 +644,8 @@
cat files | parallel cmd
find dir -execdir sem cmd {} \;
-https://github.com/cklin/mdm (Last checked: 2019-01)
+https://github.com/cklin/mdm
+(Last checked: 2019-01)
=head2 DIFFERENCES BETWEEN xapply AND GNU Parallel
@@ -697,7 +708,8 @@
11$ parallel '[ -f {} ] && echo {}' < List | ...
-https://www.databits.net/~ksb/msrc/local/bin/xapply/xapply.html
+https://www.databits.net/~ksb/msrc/local/bin/xapply/xapply.html (Last
+checked: 2010-12)
=head2 DIFFERENCES BETWEEN AIX apply AND GNU Parallel
@@ -735,7 +747,8 @@
4$ parallel ln {} /usr/joe ::: *
https://www-01.ibm.com/support/knowledgecenter/
-ssw_aix_71/com.ibm.aix.cmds1/apply.htm (Last checked: 2019-01)
+ssw_aix_71/com.ibm.aix.cmds1/apply.htm
+(Last checked: 2019-01)
=head2 DIFFERENCES BETWEEN paexec AND GNU Parallel
@@ -788,6 +801,7 @@
parallel echo {} '| awk {print\ toupper\(\$0\)}' <<EOF [...]
https://github.com/cheusov/paexec
+(Last checked: 2010-12)
=head2 DIFFERENCES BETWEEN map(sitaramc) AND GNU Parallel
@@ -917,7 +931,8 @@
8$ export PARALLEL=-j50%
-https://github.com/sitaramc/map (Last checked: 2020-05)
+https://github.com/sitaramc/map
+(Last checked: 2020-05)
=head2 DIFFERENCES BETWEEN ladon AND GNU Parallel
@@ -973,7 +988,8 @@
4$ parallel lame -V 2 FULLPATH DIRNAME/BASENAME.mp3 ::: ~/Music/*.wav
-https://github.com/danielgtaylor/ladon (Last checked: 2019-01)
+https://github.com/danielgtaylor/ladon
+(Last checked: 2019-01)
=head2 DIFFERENCES BETWEEN jobflow AND GNU Parallel
@@ -1050,7 +1066,8 @@
5$ seq 100 | parallel echo '{= $_>10 and $_<=20 or skip() =}'
-https://github.com/rofl0r/jobflow (Last checked: 2022-05)
+https://github.com/rofl0r/jobflow
+(Last checked: 2022-05)
=head2 DIFFERENCES BETWEEN gargs AND GNU Parallel
@@ -1081,6 +1098,7 @@
-P 2 "echo '{1}:{2}-{3}' full-line: \'{}\'"
https://github.com/brentp/gargs
+(Last checked: 2016-08)
=head2 DIFFERENCES BETWEEN orgalorg AND GNU Parallel
@@ -1122,9 +1140,10 @@
file. GNU B<parallel> does not.
https://github.com/reconquest/orgalorg
+(Last checked: 2016-08)
-=head2 DIFFERENCES BETWEEN Rust parallel AND GNU Parallel
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parallel_book.pod
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
-# 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: GFDL-1.3-or-later
# SPDX-License-Identifier: CC-BY-SA-4.0
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parallel_design.pod
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
-# 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: GFDL-1.3-or-later
# SPDX-License-Identifier: CC-BY-SA-4.0
@@ -51,7 +51,7 @@
3-10 ms/job and 1 ms/MB output (and even more if you use B<--tag>).
-=head2 Old Perl style
+=head2 Old Perl style
GNU B<parallel> uses some old, deprecated constructs. This is due to a
goal of being able to run on old installations. Currently the target
@@ -254,6 +254,17 @@
As most compression programs write out a header when they start, the
tmpfile in practice is removed by B<cattail> after around 40 ms.
+More detailed it works like this:
+
+ bash ( command ) |
+ sh ( emptywrapper ( bash ( compound compress ) ) >tmpfile )
+ cattail ( rm tmpfile; compound decompress ) < tmpfile
+
+This complex setup is to make sure compress program is only started if
+there is input. This means each job will cause 8 processes to run. If
+combined with B<--keep-order> these processes will run until the job
+has been printed.
+
=head2 Wrapping
@@ -411,7 +422,7 @@
$RETURN is the wrapper from B<--return>
- $COMMAND; _EXIT_status=$?; $RETURN;
+ $COMMAND; _EXIT_status=$?; $RETURN;
ssh $SSHLOGIN \(rm\ -f\ ./$WORKDIR/{}\;\
rmdir\ ./$WORKDIR\ \>\&/dev/null\;\);
exit $_EXIT_status;
@@ -478,9 +489,9 @@
You can map the bad limits using:
perl -e 'sub r { int(rand(shift)).($_[0] && "\t".r(@_)) } print map { r(@ARGV)."\n" } 1..10000' 1600 1500 90 |
- perl -ane '$F[0]+$F[1]+$F[2] < 2037 and print ' |
+ perl -ane '$F[0]+$F[1]+$F[2] < 2037 and print ' |
parallel --colsep '\t' --tagstring '{1}\t{2}\t{3}' tmux -S /tmp/p{%}-'{=3 $_="O"x$_ =}' \
- new-session -d -n '{=1 $_="O"x$_ =}' true'\ {=2 $_="O"x$_ =};echo $?;rm -f /tmp/p{%}-O*'
+ new-session -d -n '{=1 $_="O"x$_ =}' true'\ {=2 $_="O"x$_ =};echo $?;rm -f /tmp/p{%}-O*'
perl -e 'sub r { int(rand(shift)).($_[0] && "\t".r(@_)) } print map { r(@ARGV)."\n" } 1..10000' 17000 17000 90 |
parallel --colsep '\t' --tagstring '{1}\t{2}\t{3}' \
@@ -975,7 +986,7 @@
the command and the full command is executed just as if GNU
B<parallel> had been in its normal mode. The script looks like this:
- < file perl -e 'while(@ARGV) {
+ < file perl -e 'while(@ARGV) {
sysseek(STDIN,shift,0) || die;
$left = shift;
while($read = sysread(STDIN,$buf,
@@ -1015,7 +1026,7 @@
With B<--pipepart> GNU B<parallel> can compute the B<--block-size>
automatically. A B<--block-size> of B<-1> will use a block size so
that each jobslot will receive approximately 1 block. B<--block -2>
-will pass 2 blocks to each jobslot and B<-I<n>> will pass I<n> blocks
+will pass 2 blocks to each jobslot and B<->I<n> will pass I<n> blocks
to each jobslot.
This can be done because B<--pipepart> reads from files, and we can
@@ -1052,7 +1063,7 @@
a,b,c
a,b,c
a,b,c
- ",c
+ ",c
a,b,c
Here the second record contains a multi-line field that looks like
@@ -1378,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
@@ -1425,7 +1439,7 @@
=head2 --rrs on remote using a perl wrapper
-... | perl -pe '$/=$recend$recstart;BEGIN{ if(substr($_) eq $recstart) substr($_)="" } eof and substr($_) eq $recend) substr($_)=""
+... | perl -pe '$/=$recend$recstart;BEGIN{ if(substr($_) eq $recstart) substr($_)="" } eof and substr($_) eq $recend) substr($_)=""
It ought to be possible to write a filter that removed rec sep on the
fly instead of inside GNU B<parallel>. This could then use more cpus.
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parallel_examples.pod
^
|
@@ -0,0 +1,2014 @@
+#!/usr/bin/perl -w
+
+# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
+# SPDX-License-Identifier: GFDL-1.3-or-later
+# SPDX-License-Identifier: CC-BY-SA-4.0
+
+=encoding utf8
+
+=head1 GNU PARALLEL EXAMPLES
+
+=head2 EXAMPLE: Working as xargs -n1. Argument appending
+
+GNU B<parallel> can work similar to B<xargs -n1>.
+
+To compress all html files using B<gzip> run:
+
+ find . -name '*.html' | parallel gzip --best
+
+If the file names may contain a newline use B<-0>. Substitute FOO BAR with
+FUBAR in all files in this dir and subdirs:
+
+ find . -type f -print0 | \
+ parallel -q0 perl -i -pe 's/FOO BAR/FUBAR/g'
+
+Note B<-q> is needed because of the space in 'FOO BAR'.
+
+
+=head2 EXAMPLE: Simple network scanner
+
+B<prips> can generate IP-addresses from CIDR notation. With GNU
+B<parallel> you can build a simple network scanner to see which
+addresses respond to B<ping>:
+
+ prips 130.229.16.0/20 | \
+ parallel --timeout 2 -j0 \
+ 'ping -c 1 {} >/dev/null && echo {}' 2>/dev/null
+
+
+=head2 EXAMPLE: Reading arguments from command line
+
+GNU B<parallel> can take the arguments from command line instead of
+stdin (standard input). To compress all html files in the current dir
+using B<gzip> run:
+
+ parallel gzip --best ::: *.html
+
+To convert *.wav to *.mp3 using LAME running one process per CPU run:
+
+ parallel lame {} -o {.}.mp3 ::: *.wav
+
+
+=head2 EXAMPLE: Inserting multiple arguments
+
+When moving a lot of files like this: B<mv *.log destdir> you will
+sometimes get the error:
+
+ bash: /bin/mv: Argument list too long
+
+because there are too many files. You can instead do:
+
+ ls | grep -E '\.log$' | parallel mv {} destdir
+
+This will run B<mv> for each file. It can be done faster if B<mv> gets
+as many arguments that will fit on the line:
+
+ ls | grep -E '\.log$' | parallel -m mv {} destdir
+
+In many shells you can also use B<printf>:
+
+ printf '%s\0' *.log | parallel -0 -m mv {} destdir
+
+
+=head2 EXAMPLE: Context replace
+
+To remove the files I<pict0000.jpg> .. I<pict9999.jpg> you could do:
+
+ seq -w 0 9999 | parallel rm pict{}.jpg
+
+You could also do:
+
+ seq -w 0 9999 | perl -pe 's/(.*)/pict$1.jpg/' | parallel -m rm
+
+The first will run B<rm> 10000 times, while the last will only run
+B<rm> as many times needed to keep the command line length short
+enough to avoid B<Argument list too long> (it typically runs 1-2 times).
+
+You could also run:
+
+ seq -w 0 9999 | parallel -X rm pict{}.jpg
+
+This will also only run B<rm> as many times needed to keep the command
+line length short enough.
+
+
+=head2 EXAMPLE: Compute intensive jobs and substitution
+
+If ImageMagick is installed this will generate a thumbnail of a jpg
+file:
+
+ convert -geometry 120 foo.jpg thumb_foo.jpg
+
+This will run with number-of-cpus jobs in parallel for all jpg files
+in a directory:
+
+ ls *.jpg | parallel convert -geometry 120 {} thumb_{}
+
+To do it recursively use B<find>:
+
+ find . -name '*.jpg' | \
+ parallel convert -geometry 120 {} {}_thumb.jpg
+
+Notice how the argument has to start with B<{}> as B<{}> will include path
+(e.g. running B<convert -geometry 120 ./foo/bar.jpg
+thumb_./foo/bar.jpg> would clearly be wrong). The command will
+generate files like ./foo/bar.jpg_thumb.jpg.
+
+Use B<{.}> to avoid the extra .jpg in the file name. This command will
+make files like ./foo/bar_thumb.jpg:
+
+ find . -name '*.jpg' | \
+ parallel convert -geometry 120 {} {.}_thumb.jpg
+
+
+=head2 EXAMPLE: Substitution and redirection
+
+This will generate an uncompressed version of .gz-files next to the .gz-file:
+
+ parallel zcat {} ">"{.} ::: *.gz
+
+Quoting of > is necessary to postpone the redirection. Another
+solution is to quote the whole command:
+
+ parallel "zcat {} >{.}" ::: *.gz
+
+Other special shell characters (such as * ; $ > < | >> <<) also need
+to be put in quotes, as they may otherwise be interpreted by the shell
+and not given to GNU B<parallel>.
+
+
+=head2 EXAMPLE: Composed commands
+
+A job can consist of several commands. This will print the number of
+files in each directory:
+
+ ls | parallel 'echo -n {}" "; ls {}|wc -l'
+
+To put the output in a file called <name>.dir:
+
+ ls | parallel '(echo -n {}" "; ls {}|wc -l) >{}.dir'
+
+Even small shell scripts can be run by GNU B<parallel>:
+
+ find . | parallel 'a={}; name=${a##*/};' \
+ 'upper=$(echo "$name" | tr "[:lower:]" "[:upper:]");'\
+ 'echo "$name - $upper"'
+
+ ls | parallel 'mv {} "$(echo {} | tr "[:upper:]" "[:lower:]")"'
+
+Given a list of URLs, list all URLs that fail to download. Print the
+line number and the URL.
+
+ cat urlfile | parallel "wget {} 2>/dev/null || grep -n {} urlfile"
+
+Create a mirror directory with the same file names except all files and
+symlinks are empty files.
+
+ cp -rs /the/source/dir mirror_dir
+ find mirror_dir -type l | parallel -m rm {} '&&' touch {}
+
+Find the files in a list that do not exist
+
+ cat file_list | parallel 'if [ ! -e {} ] ; then echo {}; fi'
+
+
+=head2 EXAMPLE: Composed command with perl replacement string
+
+You have a bunch of file. You want them sorted into dirs. The dir of
+each file should be named the first letter of the file name.
+
+ parallel 'mkdir -p {=s/(.).*/$1/=}; mv {} {=s/(.).*/$1/=}' ::: *
+
+
+=head2 EXAMPLE: Composed command with multiple input sources
+
+You have a dir with files named as 24 hours in 5 minute intervals:
+00:00, 00:05, 00:10 .. 23:55. You want to find the files missing:
+
+ parallel [ -f {1}:{2} ] "||" echo {1}:{2} does not exist \
+ ::: {00..23} ::: {00..55..5}
+
+
+=head2 EXAMPLE: Calling Bash functions
+
+If the composed command is longer than a line, it becomes hard to
+read. In Bash you can use functions. Just remember to B<export -f> the
+function.
+
+ doit() {
+ echo Doing it for $1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parallel_tutorial.pod
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
-# 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: GFDL-1.3-or-later
# SPDX-License-Identifier: CC-BY-SA-4.0
@@ -3003,8 +3003,8 @@
Output:
- GNU parallel 20210122
- Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software
+ GNU parallel 20230122
+ Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software
Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
@@ -3165,7 +3165,7 @@
=back
-(C) 2013-2022 Ole Tange, GFDLv1.3+ (See
+(C) 2013-2023 Ole Tange, GFDLv1.3+ (See
LICENSES/GFDL-1.3-or-later.txt)
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parcat
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -18,7 +18,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
use Symbol qw(gensym);
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parcat.pod
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# 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: GFDL-1.3-or-later
# SPDX-License-Identifier: CC-BY-SA-4.0
@@ -71,7 +71,7 @@
=head1 AUTHOR
-Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc.
=head1 LICENSE
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parset
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -18,7 +18,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
grepq() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parset.pod
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
-# 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: GFDL-1.3-or-later
# SPDX-License-Identifier: CC-BY-SA-4.0
@@ -202,7 +202,7 @@
Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk
-Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free
+Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc.
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/parsort
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# 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
=pod
@@ -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>.
@@ -45,7 +60,7 @@
=head1 AUTHOR
-Copyright (C) 2020-2022 Ole Tange,
+Copyright (C) 2020-2023 Ole Tange,
http://ole.tange.dk and Free Software Foundation, Inc.
@@ -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 = 20220822;
+$Global::version = 20230522;
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;
+ chomp($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);
}
@@ -238,7 +274,7 @@
print join
("\n",
"GNU $Global::progname $Global::version",
- "Copyright (C) 2020-2022 Ole Tange, http://ole.tange.dk and Free Software",
+ "Copyright (C) 2020-2023 Ole Tange, http://ole.tange.dk and Free Software",
"Foundation, Inc.",
"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>",
"This is free software: you are free to change and redistribute it.",
@@ -402,23 +438,6 @@
exit(255);
}
-sub version() {
- # Returns: N/A
- print join
- ("\n",
- "GNU $Global::progname $Global::version",
- "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software",
- "Foundation, Inc.",
- "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>",
- "This is free software: you are free to change and redistribute it.",
- "GNU $Global::progname comes with no warranty.",
- "",
- "Web site: https://www.gnu.org/software/${Global::progname}\n",
- "When using programs that use GNU Parallel to process data for publication",
- "please cite as described in 'parallel --citation'.\n",
- );
-}
-
if(@ARGV) {
sort_files(@ARGV);
} elsif(length $opt::files0_from) {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/pod2graph
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free
+# Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free
# Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -18,7 +18,7 @@
# 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-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# Convert .pod file containing:
@@ -30,8 +30,11 @@
# to a graph.pdf with link between --option and --other-option
$pod=join("",<>);
+# Remove stuff before OPTIONS
$pod=~s/^.*=head1 OPTIONS//s;
+# Remove from EXAMPLES (which is next section) and till end
$pod=~s/=head1 EXAMPLES.*//s;
+# Remove =over / =back pairs
$pod=~s/^.*?=over//s;
$pod=~s/=back\s*$//s;
$pod=~s/=over.*?=back//sg;
@@ -40,19 +43,21 @@
$in_item = 0;
$in_see_also = 0;
-
for(split(/\n\n+/,$pod)) {
if(/^See also:\s+(\S.*)/s) {
+ # "See also" paragraph
$lex = "seealso";
$in_text = 0;
$in_item = 0;
$in_see_only = 1;
} elsif(/^=item\s+(B<[{]=.*?perl expression.*?=[}]>|[IB]<.*?>)(\s|$)/s) {
+ # "=item" paragraph
$lex = "item";
$in_text = 0;
$in_item = 1;
$in_see_only = 0;
} elsif(/\S/) {
+ # else it is just text
$lex = "text";
$in_text = 1;
$in_item = 0;
@@ -60,11 +65,13 @@
}
if($lex eq "seealso") {
+ # We found "See also": output edge
if($lastlex eq "item") {
@saveditems = @items;
@items = ();
}
my $to = $1;
+ # Edge from = item/item/item
my $from = (join "/",
map {
s/I<(.*?)>/$1/g;
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/sem.pod
^
|
@@ -1,6 +1,6 @@
#!/usr/bin/perl -w
-# 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: GFDL-1.3-or-later
# SPDX-License-Identifier: CC-BY-SA-4.0
@@ -116,7 +116,7 @@
10.
-=item B<--pipe> (beta testing)
+=item B<--pipe>
Pass stdin (standard input) to I<command>.
@@ -255,7 +255,7 @@
=head1 AUTHOR
-Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free
+Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc.
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/sphinx/Makefile
^
|
@@ -11,7 +11,10 @@
BUILDDIR = build
all: copy
- make html
+ make html 2>&1 | \
+ grep -v 'WARNING: Could not lex literal_block as "perl". Highlighting skipped.'
+
+
install:
true dummy
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/sphinx/source/conf.py
^
|
@@ -105,6 +105,26 @@
#
# html_sidebars = {}
+html_theme_options = {
+ 'logo_only': False,
+ 'display_version': True,
+ 'prev_next_buttons_location': 'bottom',
+ 'style_external_links': False,
+ 'vcs_pageview_mode': '',
+# 'style_nav_header_background': 'white',
+ # Toc options
+ 'collapse_navigation': True,
+ 'sticky_navigation': True,
+ 'navigation_depth': 0,
+ 'includehidden': True,
+ 'titles_only': False
+}
+
+
+html_sidebars = {
+ '**': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'],
+}
+
# -- Options for HTMLHelp output ---------------------------------------------
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/sphinx/source/sphinx.rst
^
|
@@ -11,13 +11,19 @@
========================================
.. toctree::
- :maxdepth: 1
+ :maxdepth: 3
:caption: parallel
parallel
.. toctree::
:maxdepth: 3
+ :caption: parallel_examples
+
+ parallel_examples
+
+.. toctree::
+ :maxdepth: 3
:caption: sem
sem
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/sql
^
|
@@ -2,7 +2,7 @@
# Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk
#
-# Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and
+# Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and
# Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
@@ -20,7 +20,7 @@
# or write to the Free Software Foundation, Inc., 51 Franklin St,
# Fifth Floor, Boston, MA 02110-1301 USA
#
-# SPDX-FileCopyrightText: 2008-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
+# SPDX-FileCopyrightText: 2008-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-License-Identifier: GFDL-1.3-or-later
@@ -76,7 +76,7 @@
Example: echo 'SELECT * FROM foo;' | sql mysql:///
-=item B<--csv> (alpha testing)
+=item B<--csv>
CSV output.
@@ -102,9 +102,9 @@
HTML output. Turn on HTML tabular output.
-=item B<--json> (alpha testing)
+=item B<--json>
-=item B<--pretty> (alpha testing)
+=item B<--pretty>
Pretty JSON output.
@@ -388,7 +388,7 @@
Copyright (C) 2008-2010 Ole Tange http://ole.tange.dk
-Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free
+Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc.
=head1 LICENSE
@@ -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 = 20220822;
+ $Global::version = 20230522;
$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*)(.*)/;
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/src/testurls
^
|
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+# Copyright (C) 2022-2023 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: 2022-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+grep -hv '(dead)' ../src/* |
+ # Merge lines ending in .
+ perl -pe 's{(http\S+\.)\s}{$1}s' |
+ # Grep out URLs
+ grep -h -Po 'https?://[^ $$<>")}]+' |
+ # Remove anchor
+ perl -pe 's/#.*//' |
+ perl -pe 's/(>|\{).*//;s/\\-/-/g;s/\\n//g;s/&/&/g;s/&#.*//;s/\s*//;'"s/'.*//;" |
+ # Remove spacing
+ perl -pe 's/\s*$/\n/' |
+ perl -pe 's/"$//g; s/&$//g; s/\\//g;' |
+ grep -Ev 'parallel-(20)?$$|coolwebsite.biz' |
+ sort -u |
+ egrep -v 'example.com|##|\*\(' |
+ parallel -j0 --timeout 10 --bar --tag --joblog joblog --retries 3 neno wget -l1 -Q1 -U "'"'"'"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"'"'"'" '{=$_=Q($_)=}'
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/Fixed.sh
^
|
@@ -1,6 +1,6 @@
#!/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
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/Makefile
^
|
@@ -1,4 +1,4 @@
-# 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
@@ -26,6 +26,10 @@
touch ~/.parallel/will-cite
make stopvm
+# The output must be inspected visually
+manual: ../src/parallel tests-to-run/*manual* wanted-results/*manual*
+ bash tests-to-run/parallel-manual.sh
+
# Tutorial
tutorial: ../src/parallel tests-to-run/*tutorial* wanted-results/*tutorial* prereqlocal
TRIES=1 time bash Start.sh tutorial NONE || true
@@ -52,7 +56,7 @@
# short
short: ../src/parallel tests-to-run/* wanted-results/* prereqlocal installparallel
- TRIES=1 time bash Start.sh '' 'polar|mem|100s|300s'
+ TRIES=1 time bash Start.sh '' 'polar|mem|100s|300s|manual'
# long
long: ../src/parallel tests-to-run/* wanted-results/* prereqlocal installparallel
@@ -79,20 +83,21 @@
}; \
export -f is_installed; \
parallel -n2 --tag is_installed ::: \
- script "echo | script -c echo -q /dev/null" \
+ script "echo | script -c echo -q /dev/null" \
"ssh sh@lo" "timeout 20 ssh sh@lo true" \
"ssh csh@lo" "timeout 5 ssh csh@lo true" \
niceload "niceload echo niceload is installed" \
expect "expect -c \"spawn cat; puts \\\"expect is installed\\\"\"" \
- autossh "autossh -V" \
- tcsh "tcsh -c echo tcsh installed" \
- seq "seq 1 2" \
- stdout "stdout echo stdout is installed" \
- convert "convert -version" \
- bc "echo 1+2 | bc" \
- gawk "echo | gawk \"{print \\\"gawk is installed\\\"}\"" \
- pv "echo | pv -qL 10" \
- timeout "timeout 1 echo timeout is installed" \
+ autossh "autossh -V" \
+ tcsh "tcsh -c echo tcsh installed" \
+ seq "seq 1 2" \
+ stdout "stdout echo stdout is installed" \
+ convert "convert -version" \
+ bc "echo 1+2 | bc" \
+ gawk "echo | gawk \"{print \\\"gawk is installed\\\"}\"" \
+ pv "echo | pv -qL 10" \
+ timeout "timeout 1 echo timeout is installed" \
+ sshpass "sshpass echo sshpass is installed" \
'
# lsh "lsh lo echo lsh is installed" \
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/Portable.sh
^
|
@@ -1,6 +1,6 @@
#!/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
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/REQUIREMENTS
^
|
@@ -1,6 +1,6 @@
#!/bin/bash
-# SPDX-FileCopyrightText: 2002-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
+# SPDX-FileCopyrightText: 2002-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
#
# SPDX-License-Identifier: GPL-3.0-or-later
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/Start.sh
^
|
@@ -1,6 +1,6 @@
#!/bin/bash -x
-# 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
@@ -14,21 +14,73 @@
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\`/tmp/trip\`>/tmp/tripwire;\n".
+ (pack "c*",2..10,34,39)."\@<?[]|~\\"')"
+# OK
+# fancychars="$(perl -e 'print "\n\`/tmp/trip\`>/tmp/tripwire;\n".
+# (pack "c*",2..10,34,39)."\@<?[]|~\\"')"
+# OK
+# fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
+# (pack "c*",34,39)."\@<?[]|~\\"')"
+
+# OK
+# fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n".
+# ""')"
+ export TMPDIR=/tmp/"$base-tmp"/"$fancychars"/tmp
+ export PARALLEL="--_unsafe";
+ 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
+ printf '#!/bin/bash\ntouch /tmp/tripwire' > /tmp/trip
+ chmod +x /tmp/trip
# Force running once
echo >> actual-results/"$base"
if [ "$TRIES" = "3" ] ; then
@@ -37,6 +89,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-20230522+git1.tar.bz2/upstream/testsuite/input-files/perl-v5.14.2/lib/Text/ParseWords.pm
^
|
@@ -0,0 +1,294 @@
+package Text::ParseWords;
+
+use strict;
+require 5.006;
+our $VERSION = "3.27";
+
+
+use Exporter;
+our @ISA = qw(Exporter);
+our @EXPORT = qw(shellwords quotewords nested_quotewords parse_line);
+our @EXPORT_OK = qw(old_shellwords);
+our $PERL_SINGLE_QUOTE;
+
+
+sub shellwords {
+ my (@lines) = @_;
+ my @allwords;
+
+ foreach my $line (@lines) {
+ $line =~ s/^\s+//;
+ my @words = parse_line('\s+', 0, $line);
+ pop @words if (@words and !defined $words[-1]);
+ return() unless (@words || !length($line));
+ push(@allwords, @words);
+ }
+ return(@allwords);
+}
+
+
+
+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 {
+ my($delimiter, $keep, $line) = @_;
+ my($word, @pieces);
+
+ no warnings 'uninitialized'; # we will be testing undef strings
+
+ while (length($line)) {
+ # This pattern is optimised to be stack conservative on older perls.
+ # Do not refactor without being careful and testing it on very long strings.
+ # See Perl bug #42980 for an example of a stack busting input.
+ $line =~ s/^
+ (?:
+ # double quoted string
+ (") # $quote
+ ((?>[^\\"]*(?:\\.[^\\"]*)*))" # $quoted
+ | # --OR--
+ # singe quoted string
+ (') # $quote
+ ((?>[^\\']*(?:\\.[^\\']*)*))' # $quoted
+ | # --OR--
+ # unquoted string
+ ( # $unquoted
+ (?:\\.|[^\\"'])*?
+ )
+ # followed by
+ ( # $delim
+ \Z(?!\n) # EOL
+ | # --OR--
+ (?-x:$delimiter) # delimiter
+ | # --OR--
+ (?!^)(?=["']) # a quote
+ )
+ )//xs or return; # extended layout
+ my ($quote, $quoted, $unquoted, $delim) = (($1 ? ($1,$2) : ($3,$4)), $5, $6);
+
+
+ return() unless( defined($quote) || length($unquoted) || length($delim));
+
+ if ($keep) {
+ $quoted = "$quote$quoted$quote";
+ }
+ else {
+ $unquoted =~ s/\\(.)/$1/sg;
+ if (defined $quote) {
+ $quoted =~ s/\\(.)/$1/sg if ($quote eq '"');
+ $quoted =~ s/\\([\\'])/$1/g if ( $PERL_SINGLE_QUOTE && $quote eq "'");
+ }
+ }
+ $word .= substr($line, 0, 0); # leave results tainted
+ $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);
+ # or
+ # @words = old_shellwords(); # defaults to $_ (and clobbers it)
+
+ no warnings 'uninitialized'; # we will be testing undef strings
+ local *_ = \join('', @_) if @_;
+ my (@words, $snippet);
+
+ s/\A\s+//;
+ while ($_ ne '') {
+ my $field = substr($_, 0, 0); # leave results tainted
+ for (;;) {
+ if (s/\A"(([^"\\]|\\.)*)"//s) {
+ ($snippet = $1) =~ s#\\(.)#$1#sg;
+ }
+ elsif (/\A"/) {
+ require Carp;
+ Carp::carp("Unmatched double quote: $_");
+ return();
+ }
+ elsif (s/\A'(([^'\\]|\\.)*)'//s) {
+ ($snippet = $1) =~ s#\\(.)#$1#sg;
+ }
+ elsif (/\A'/) {
+ require Carp;
+ Carp::carp("Unmatched single quote: $_");
+ return();
+ }
+ elsif (s/\A\\(.?)//s) {
+ $snippet = $1;
+ }
+ elsif (s/\A([^\s\\'"]+)//) {
+ $snippet = $1;
+ }
+ else {
+ s/\A\s+//;
+ last;
+ }
+ $field .= $snippet;
+ }
+ push(@words, $field);
+ }
+ return @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 = quotewords($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()
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-centos3.sh
^
|
@@ -29,6 +29,9 @@
start_centos3() {
stdout ping -w 1 -c 1 centos3 >/dev/null || (
# Vagrant does not set the IP addr
+ # cd to the centos3 dir with the Vagrantfile
+ # Try different "cd"s as the script may be started from another dir
+ cd $testsuitedir/vagrant/tange/centos3/ 2>/dev/null
cd testsuite/vagrant/tange/centos3/ 2>/dev/null
cd vagrant/tange/centos3/ 2>/dev/null
cd ../vagrant/tange/centos3/ 2>/dev/null
@@ -41,15 +44,18 @@
# Ignore empty ^M line
grep ..
}
- (
- stdout vagrant up >/dev/null
- vagrantssh 'sudo /sbin/ifconfig eth1 172.27.27.3'
- ) &
+ stdout vagrant up >/dev/null &
+ (sleep 10; stdout vagrant up >/dev/null ) &
+ vagrantssh 'sudo /sbin/ifconfig eth1 172.27.27.3; echo centos3: added 172.27.27.3 >&2'
)
}
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-20230522+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
@@ -69,6 +74,7 @@
echo '### Test --load (must give 1=true)'
parallel -j0 -N0 --timeout 5 --nice 10 'bzip2 < /dev/zero >/dev/null' ::: 1 2 3 4 5 6 &
parallel --argsep ,, --joblog - -N0 parallel --load 100% echo ::: 1 ,, 1 |
+ # Must take > 5 sec
parallel -k --colsep '\t' --header : echo '{=4 $_=$_>5=}'
}
@@ -89,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-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-0.3s.sh
^
|
@@ -16,12 +16,48 @@
# Test amount of parallelization
# parallel --shuf --jl /tmp/myjl -j1 'export JOBS={1};'bash tests-to-run/parallel-local-0.3s.sh ::: {1..16} ::: {1..5}
+par_uninstalled_sshpass() {
+ echo '### sshpass must be installed for --sshlogin user:pass@host'
+ sshpass=$(command -v sshpass)
+ sudo mv "$sshpass" "$sshpass".hidden
+ parallel -S user:pass@host echo ::: must fail
+ sudo mv "$sshpass".hidden "$sshpass"
+}
+
+par_bug43654() {
+ echo "bug #43654: --bar with command not using {} - only last output line "
+ COLUMNS=80 stdout parallel --bar true {.} ::: 1 | perl -pe 's/.*\r/\r/'
+}
+
+par_eof_on_command_line_input_source() {
+ echo '### Test of eof string on :::'
+ parallel -k -E ole echo ::: foo ole bar
+}
+
+par_empty_string_command_line() {
+ echo '### Test of ignore-empty string on :::'
+ parallel -k -r echo ::: foo '' ole bar
+}
+
+par_ll_no_newline() {
+ echo 'bug #64030: parallel --ll echo -n ::: foo'
+ parallel --ll echo -n ::: two lines | sort
+ parallel --ll echo -n '>&2' ::: two lines | sort
+ parallel --linebuffer 'echo -n last {}' ::: line
+ stdout parallel --linebuffer 'echo -n last {} >&2' ::: line
+ echo
+}
+
+par_ll_long_followed_by_short() {
+ parallel --ll 'echo A very long line;sleep 0.2;echo' ::: OK | puniq
+}
+
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
}
@@ -34,10 +70,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() {
@@ -66,7 +102,7 @@
par_env_parallel_pipefail() {
cat <<'EOF' | bash
echo "### test env_parallel with pipefail + inherit_errexit"
- . $(which env_parallel.bash)
+ . env_parallel.bash
env_parallel --session
set -Eeuo pipefail
shopt -s inherit_errexit
@@ -98,7 +134,7 @@
# x with 2 decimals
DecimalX: {=x $_=sprintf("%.2f",$_) =}
TenX: {=x $_=$_*10 =}
- RandomVal: {=1 $_=rand() =}
+ RandomVal: {=1 $_=0.1+0.9*rand() =}
EOF
@@ -133,25 +169,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() {
@@ -205,7 +242,7 @@
echo Should give 60k and not overflow
PARALLEL_ENV="$PARALLEL_ENV" parallel echo '{=$_="\""x$_=}' ::: 60000 | wc
}
- . `which env_parallel.bash`
+ . env_parallel.bash
# Make PARALLEL_ENV as big as possible
PARALLEL_ENV="a='$(seq 100000 | head -c $((139000-$(set|wc -c) )) )'"
env_parallel doit ::: 1
@@ -223,18 +260,6 @@
seq 1 6 | parallel -j1 -I :: -X echo 'a::b::^c::[.}c'
}
-par_test_m_X() {
- echo '### Test -m vs -X'
- (echo foo;echo bar;echo joe.gif) | parallel -j1 -km echo 1{}2{.}3 A{.}B{.}C
- (echo foo;echo bar;echo joe.gif) | parallel -j1 -kX echo 1{}2{.}3 A{.}B{.}C
- seq 1 6 | parallel -k printf '{}.gif\\n' | parallel -j1 -km echo a{}b{.}c{.}
- seq 1 6 | parallel -k printf '{}.gif\\n' | parallel -j1 -kX echo a{}b{.}c{.}
-
- echo '### Test -q {.}'
- echo a | parallel -qX echo "'"{.}"' "
- echo a | parallel -qX echo "'{.}'"
-}
-
par_i_t() {
echo '### Test -i'
(echo a; echo END; echo b) | parallel -k -i -eEND echo repl{.}ce
@@ -291,7 +316,7 @@
echo 'bug #47002: --tagstring with -d \n\n'
(seq 3; echo; seq 4) |
- parallel -k -d '\n\n' --tagstring {%} echo ABC';'echo
+ parallel -k -d '\n\n' --tagstring {#} echo ABC';'echo
}
par_xargs_nul_char_in_input() {
@@ -411,10 +436,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() {
@@ -449,19 +474,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() {
@@ -488,9 +513,9 @@
par_total_from_joblog() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-100s.sh
^
|
@@ -39,7 +39,7 @@
# Random data because it does not compress well
# forcing the compress tool to spit out compressed blocks
perl -pe 'y/[A-Za-z]//cd; $t++ % 1000 or print "\n"' < /dev/urandom |
- head -c 10000000 > $randomfile
+ head -c 10000000 > "$randomfile"
export randomfile
testfunc() {
@@ -49,10 +49,10 @@
# generate some incompressible ascii
# with lines starting with the same string
id=$1
- shuf $randomfile | perl -pe 's/^/'$id' /'
+ shuf "$randomfile" | perl -pe 's/^/'$id' /'
# Sleep to give time to linebuffer-print the first part
sleep 10
- shuf $randomfile | perl -pe 's/^/'$id' /'
+ shuf "$randomfile" | perl -pe 's/^/'$id' /'
echo
}
export -f incompressible_ascii
@@ -72,15 +72,15 @@
}
# These can run in parallel if there are enough ressources
- testfunc > $nolbfile
- testfunc > $controlfile
- testfunc --linebuffer > $lbfile
+ testfunc > "$nolbfile"
+ testfunc > "$controlfile"
+ testfunc --linebuffer > "$lbfile"
wait
- nolb="$(cat $nolbfile)"
- control="$(cat $controlfile)"
- lb="$(cat $lbfile)"
- rm $nolbfile $lbfile $controlfile $randomfile
+ nolb="$(cat "$nolbfile")"
+ control="$(cat "$controlfile")"
+ lb="$(cat "$lbfile")"
+ rm "$nolbfile" "$lbfile" "$controlfile" "$randomfile"
if [ "$nolb" == "$control" ] ; then
if [ "$lb" == "$nolb" ] ; then
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-10s.sh
^
|
@@ -8,6 +8,157 @@
# Each should be taking 10-30s and be possible to run in parallel
# I.e.: No race conditions, no logins
+par_retries_0() {
+ echo '--retries 0 = inf'
+ echo this wraps at 256 and should retry until it wraps
+ tmp=$(mktemp)
+ 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"
+}
+
+par_seqreplace_long_line() {
+ echo '### Test --seqreplace and line too long'
+ seq 1 1000 |
+ stdout parallel -j1 -s 210 -k --seqreplace I echo IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII \|wc |
+ uniq -c
+}
+
+par__print_in_blocks() {
+ echo '### bug #41565: Print happens in blocks - not after each job complete'
+ median() { perl -e '@a=sort {$a<=>$b} <>;print $a[$#a/2]';}
+ export -f median
+
+ echo 'The timing here is important: a full second between each'
+ perl -e 'for(1..30){print("$_\n");`sleep 1`}' |
+ parallel -j3 'echo {#}' |
+ timestamp -dd |
+ perl -pe '$_=int($_+0.3)."\n"' |
+ median
+ echo '300 ms jobs:'
+ perl -e 'for(1..30){print("$_\n");`sleep .3`}' |
+ parallel -j3 --delay 0.3 echo |
+ timestamp -d -d |
+ perl -pe 's/(.....).*/int($1*10+0.2)/e' |
+ median
+}
+
+par__keeporder_roundrobin() {
+ echo 'bug #50081: --keep-order --round-robin should give predictable results'
+ . `which env_parallel.bash`
+
+ run_roundrobin() {
+ random1G() {
+ < /dev/zero openssl enc -aes-128-ctr -K 1234 -iv 1234 2>/dev/null |
+ head -c 1G;
+ }
+ random1G |
+ parallel $1 -j13 --block 1m --pipe --roundrobin 'echo {#} $(md5sum)' |
+ sort
+ }
+ env_parset a,b,c run_roundrobin ::: -k -k ''
+
+ if [ "$a" == "$b" ] ; then
+ # Good: -k should be == -k
+ if [ "$a" == "$c" ] ; then
+ # Bad: without -k the command should give different output
+ echo 'Broken: a == c'
+ printf "$a\n$b\n$c\n"
+ else
+ echo OK
+ fi
+ else
+ echo 'Broken: a <> b'
+ printf "$a\n$b\n$c\n"
+ fi
+}
+
+par__load_from_PARALLEL() {
+ echo "### Test reading load from PARALLEL"
+ export PARALLEL="--load 300%"
+ # Ignore stderr due to 'Starting processes took > 2 sec'
+ seq 1 1000000 |
+ parallel -kj200 --recend "\n" --spreadstdin gzip -1 2>/dev/null |
+ zcat | sort -n | md5sum
+ seq 1 1000000 |
+ parallel -kj20 --recend "\n" --spreadstdin gzip -1 |
+ zcat | sort -n | md5sum
+}
+
+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"
+ # Use the mkfs.$filesystem
+ $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"
+ printf "%s\0" '' +m . +_ .. +__ ,. ,.. + ++ / +z |
+ parallel -0 --results a echo
+ (cd a/1 && find . -type d | sort | fmt -2000)
+ seq 128 | perl -ne 'printf "%c\0",$_' |
+ parallel -0 --results b128 echo
+ (cd b128/1 && find . -type d | sort | fmt -2000)
+ seq 128 255 | perl -ne 'printf "%c\0",$_' |
+ parallel -0 --results b255 echo
+ (cd b255/1 && find . -type d | sort | fmt -2000)
+ cd
+ sudo umount "$dir"
+ rmdir "$dir"/
+ rm "$img"
+ }
+ export -f doit
+ stdout parallel -k --tag --plus doit ::: \
+ mkfs.btrfs mkfs.exfat mkfs.ext2 mkfs.ext3 mkfs.ext4 \
+ "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 GB/s UUID Binutils
+ # Skip:
+ # mkfs.bfs - ro
+ # mkfs.cramfs - ro
+}
+
+par_totaljobs() {
+ . `which env_parallel.bash`
+ myrun() {
+ total="$@"
+ slowseq() { seq "$@" | pv -qL 3; }
+ elapsed() { /usr/bin/time -f %e stdout "$@" 2>&1 >/dev/null; }
+ slowseq 5 | elapsed parallel -j 1 $total --bar 'sleep 1; true'
+ }
+ export -f myrun
+ parset mytime myrun ::: '' '--total 5'
+ # --total should run > 2 sec faster
+ perl -E 'say ((2+shift) < (shift) ? "Error: --total should be faster" : "OK")' ${mytime[0]} ${mytime[1]}
+}
+
+par_ll_long_line() {
+ echo '### --latest-line with lines longer than terminal width'
+ COLUMNS=30 parallel --delay 0.3 --tagstring '{=$_.="x"x$_=}' \
+ --ll 'echo {}00000 | sed -e "s/$/' {1..100} /'"' ::: {01..30} |
+ perl -ne 's/.\[A//g;
+ /.\[K .{4}\[m/ and next;
+ /x\s*$/ and next;
+ /\S/ && print'| sort -u
+}
+
+par_ll_color_long_line() {
+ echo '### --latest-line --color with lines longer than terminal width'
+ COLUMNS=30 parallel --delay 0.3 --color --tagstring '{=$_.="x"x$_=}' \
+ --ll 'echo {}00000 | sed -e "s/$/' {1..100} /'"' ::: {01..30} |
+ perl -ne 's/.\[A//g;
+ /.\[K .{4}\[m/ and next;
+ /\S/ && print'| sort -u
+}
+
par_reload_slf_every_second() {
echo "### --slf should reload every second"
tmp=$(mktemp)
@@ -37,12 +188,16 @@
grep -Ev 'processes took|Consider adjusting -j'
}
-par_round_robin_blocks() {
+par__round_robin_blocks() {
echo "bug #49664: --round-robin does not complete"
seq 20000000 | parallel -j8 --block 10M --round-robin --pipe wc -c | wc -l
}
par_compress_prg_fails() {
+ echo "### bug #41609: --compress fails"
+ seq 12 | parallel --compress --compress-program gzip -k seq {} 10000 | md5sum
+ seq 12 | parallel --compress -k seq {} 10000 | md5sum
+
echo '### bug #44546: If --compress-program fails: fail'
doit() {
(parallel $* --compress-program false \
@@ -170,111 +325,33 @@
echo 'Test --tag/--line-buffer/--files in all combinations'
echo 'Test working/failing compressor/decompressor in all combinations'
echo '(-k is used as a dummy argument)'
+ doit() {
+ # Print something to stdout/stderr
+ echo "$@"
+ echo "$@" >&2
+ }
+ export -f doit
stdout parallel -vk --header : --argsep ,,, \
- parallel -k {tag} {lb} {files} --compress --compress-program {comp} --decompress-program {decomp} echo ::: C={comp},D={decomp} \
+ 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() {
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-1s.sh
^
|
@@ -8,7 +8,66 @@
# Each should be taking 1-3s and be possible to run in parallel
# I.e.: No race conditions, no logins
-par_plus() {
+par_tagstring() {
+ echo '### Test --tagstring'
+ parallel -j1 -X -v --tagstring a{}b echo ::: 3 4
+ parallel -j1 -k -v --tagstring a{}b echo ::: 3 4
+ parallel -j1 -k -v --tagstring a{}b echo job{#} ::: 3 4
+ parallel -j1 -k -v --tagstring ajob{#}b echo job{#} ::: 3 4
+}
+
+par_quote_bugs() {
+ echo '### Bug did not quote'
+ echo '>' | parallel -v echo
+ parallel -v echo ::: '>'
+ (echo '>'; echo 2) | parallel -j1 -vX echo
+ parallel -X -j1 echo ::: '>' 2
+
+ echo '### Must not quote';
+ echo 'echo | wc -l' | parallel -v
+ parallel -v ::: 'echo | wc -l'
+ echo 'echo a b c | wc -w' | parallel -v
+ parallel -kv ::: 'echo a b c | wc -w' 'echo a b | wc -w'
+}
+
+par_keep_order() {
+ echo '### Bug made 4 5 go before 1 2 3'
+ parallel -k ::: "sleep 1; echo 1" "echo 2" "echo 3" "echo 4" "echo 5"
+
+ echo '### Bug made 3 go before 1 2'
+ parallel -kj 1 ::: "sleep 1; echo 1" "echo 2" "echo 3"
+}
+
+par__arg_sep() {
+ echo '### Test basic --arg-sep'
+ parallel -k echo ::: a b
+
+ echo '### Run commands using --arg-sep'
+ parallel -kv ::: 'echo a' 'echo b'
+
+ echo '### Change --arg-sep'
+ parallel --arg-sep ::: -kv ::: 'echo a' 'echo b'
+ parallel --arg-sep .--- -kv .--- 'echo a' 'echo b'
+ parallel --argsep ::: -kv ::: 'echo a' 'echo b'
+ parallel --argsep .--- -kv .--- 'echo a' 'echo b'
+
+ echo '### Test stdin goes to first command only'
+ echo via cat | parallel --arg-sep .--- -kv .--- 'cat' 'echo b'
+ echo via cat | parallel -kv ::: 'cat' 'echo b'
+}
+
+par_retired() {
+ echo '### Test retired'
+ stdout parallel -B foo
+ stdout parallel -g
+ stdout parallel -H 1
+ stdout parallel -T
+ stdout parallel -U foo
+ stdout parallel -W foo
+ stdout parallel -Y
+}
+
+par__plus() {
echo '### --plus'
echo '(It is OK to start with extra / or end with extra .)'
parallel -k --plus echo {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = \
@@ -39,32 +98,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 +167,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"
@@ -143,36 +208,28 @@
parallel --sqlandworker csv:///%2Ftmp%2Fparallel-bug-56096/mytable echo ::: works
}
-par_uninstalled_sshpass() {
- echo '### sshpass must be installed for --sshlogin user:pass@host'
- sshpass=$(command -v sshpass)
- sudo mv "$sshpass" "$sshpass".hidden
- parallel -S user:pass@host echo ::: must fail
- sudo mv "$sshpass".hidden "$sshpass"
-}
-
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"
}
-par_I_X_m() {
+par__I_X_m() {
echo '### Test -I with -X and -m'
seq 10 | parallel -k 'seq 1 {.} | parallel -k -I :: echo {.} ::'
@@ -197,11 +254,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() {
@@ -241,11 +302,6 @@
LC_ALL=C sort
}
-par_bug43654() {
- echo "bug #43654: --bar with command not using {} - only last output line "
- COLUMNS=80 stdout parallel --bar true {.} ::: 1 | perl -pe 's/.*\r/\r/'
-}
-
par_replacement_rename() {
echo "### Test --basenamereplace"
parallel -j1 -k -X --basenamereplace FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
@@ -302,16 +358,6 @@
(echo '> '; echo '> '; echo '>') | parallel --max-lines 3 echo
}
-par_eof_on_command_line_input_source() {
- echo '### Test of eof string on :::'
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-300s.sh
^
|
@@ -14,6 +14,82 @@
rm -f /tmp/*.{tmx,pac,arg,all,log,swp,loa,ssh,df,pip,tmb,chr,tms,par}
+par_compare_exit_codes() {
+ echo '### compare the exit codes'
+ echo 'directly from shells, shells called from parallel,'
+ echo 'killed with different signals'
+ # run:
+ # * exit $val
+ # * kill -$1 $$'
+ # both:
+ # * under different shells
+ # * from parallel running under different shells
+ # record:
+ # * exit value
+ # * signal
+ echo sig=joblog_sig shell=parallel=joblog
+ # The quoting of \n is wrong for csh, so just use a sane TMPDIR here
+ TMPDIR=/tmp/par-300s
+ export TMPDIR
+ mkdir -p "$TMPDIR"
+
+ selfkill=$(mktemp)
+ qselfkill=$(parallel -0 --shellquote ::: "$selfkill")
+ qqselfkill=$(parallel -0 --shellquote --shellquote ::: "$selfkill")
+ export selfkill qselfkill qqselfkill
+ echo 'kill -$1 $$' >"$selfkill"
+ exit=$(mktemp)
+ qexit=$(parallel -0 --shellquote ::: "$exit")
+ qqexit=$(parallel -0 --shellquote --shellquote ::: "$exit")
+ export exit qexit qqexit
+ echo 'exit $1' >"$exit"
+
+ doit() {
+ shell=$1
+ sig=$2
+ sig128=$(( sig + 128 ))
+ sh -c "$shell $qselfkill $sig" 2>/dev/null
+ raw=$?
+ sh -c "$shell $qexit $sig128" 2>/dev/null
+ raw128=$?
+
+ log=$(mktemp)
+ qlog=$(parallel -0 --shellquote ::: "$log")
+ qqlog=$(parallel -0 --shellquote --shellquote ::: "$log")
+ $shell -c "parallel --halt now,done=1 --jl $qlog $shell $qqselfkill ::: $sig" 2>/dev/null
+ #echo parallel $shell $sig = $?
+ parallel=$?
+ joblog_exit=$(field 7 < "$log" | tail -n1)
+ joblog_signal=$(field 8 < "$log" | tail -n1)
+ $shell -c "parallel --halt now,done=1 --jl $qlog $shell $qqexit ::: $sig128" 2>/dev/null
+ parallel128=$?
+ joblog_exit128=$(field 7 < "$log" | tail -n1)
+ joblog_signal128=$(field 8 < "$log" | tail -n1)
+
+ rm "$log"
+
+ echo $shell sig' ' $sig=$joblog_signal $raw=$parallel=$joblog_exit
+ echo $shell exit $sig128=$joblog_signal128 $raw128=$parallel128=$joblog_exit128
+ }
+ export -f doit
+
+ # These give the same exit code prepended with 'true;' or not
+ OK="ash csh dash fish fizsh posh rc sash sh tcsh"
+ # These do not give the same exit code prepended with 'true;' or not
+ BAD="bash ksh93 mksh static-sh yash zsh"
+ (
+ # Most block on signals: 19+20+21+22
+ ulimit -n `ulimit -Hn`
+ parallel -j1000% -k doit ::: $OK $BAD ::: {1..18} {23..64}
+ # fdsh blocks on a lot more signals
+ parallel -j1000% -k doit ::: fdsh ::: 2 {9..12} {14..18} {20..23} 26 27 29 30 {32..64}
+ ) |
+ # Ignore lines where the exit codes are the same
+ perl -ne '/(\d+)=\1=\1/ or print'
+ rm "$selfkill" "$exit"
+ rmdir "$TMPDIR"
+}
+
par_retries_unreachable() {
echo '### Test of --retries on unreachable host'
seq 2 | stdout parallel -k --retries 2 -v -S 4.3.2.1,: echo
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-30s.sh
^
|
@@ -8,6 +8,49 @@
# Each should be taking 30-100s and be possible to run in parallel
# I.e.: No race conditions, no logins
+par__groupby_big() {
+ echo "### test --group-by on file bigger than block"
+ groupcol() {
+ export groupcol=$1
+ export n=$2
+ export sorted=$(mktemp)
+ # Sort on grouping column
+ parsort -k${groupcol}n "$testfile" > "$sorted"
+ headtail() { (head -n1;tail -n1); }
+ export -f headtail
+ # wrapper functions for -v below to give headers in output
+ _ppart() { headtail; }
+ export -f _ppart
+ _pipe() { headtail; }
+ export -f _pipe
+ pipepart() {
+ parallel $n -k --groupby $groupcol --colsep ' ' -v \
+ --pipepart -a "$sorted" _ppart
+ }
+ pipe() {
+ parallel $n -k --groupby $groupcol --colsep ' ' -v \
+ < "$sorted" _pipe
+ }
+ export -f pipepart pipe
+ . $(which env_parallel.bash)
+ # Do the same with --pipe and --pipepart
+ parset a,b -k ::: pipe pipepart
+ paste <(echo "$a") <(echo "$b")
+ rm "$sorted"
+ }
+ export -f groupcol
+
+ export testfile=$(mktemp)
+ # 3 columns: 1..10, 1..100, 1..14
+ seq 1 1000000 |
+ awk '{print int(10*rand()),int(100*rand()),int(14*rand())}' > "$testfile"
+
+ echo "--group-by on col 1..3, -n1..5"
+ echo "_pipe and _ppart (pipepart) must return the same"
+ parallel -k --tag groupcol ::: 1 2 3 ::: '' -n1 -n2 -n3 -n4 -n5
+ rm "$testfile"
+}
+
par_test_diff_roundrobin_k() {
echo '### test there is difference on -k'
. $(which env_parallel.bash)
@@ -112,18 +155,6 @@
perl -pe 's/(.*\d{5,}){3}/OK/'
}
-par_load_from_PARALLEL() {
- echo "### Test reading load from PARALLEL"
- export PARALLEL="--load 300%"
- # Ignore stderr due to 'Starting processes took > 2 sec'
- seq 1 1000000 |
- parallel -kj200 --recend "\n" --spreadstdin gzip -1 2>/dev/null |
- zcat | sort -n | md5sum
- seq 1 1000000 |
- parallel -kj20 --recend "\n" --spreadstdin gzip -1 |
- zcat | sort -n | md5sum
-}
-
par_exit_code() {
echo 'bug #52207: Exit status 0 when child job is killed, even with "now,fail=1"'
in_shell_run_command() {
@@ -135,29 +166,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
@@ -286,14 +324,14 @@
# Test --colsep --header : (OK: --header : not needed)
}
-par_groupby_pipepart() {
+par__groupby_pipepart() {
tsv() {
# TSV file
printf "%s\t" header_a1 head_b1 c1 d1 e1 f1; echo
# Make 6 columns: 123456 => 1\t2\t3\t4\t5\t6
seq 100000 999999 | perl -pe '$_=join"\t",split//' |
# Sort reverse on column 3 (This should group on col 3)
- sort --parallel=8 --buffer-size=50% -k3r
+ sort --parallel=8 -k3r
}
export -f tsv
@@ -319,12 +357,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 \
@@ -351,7 +389,7 @@
rm /tmp/parallel_race_cond
}
-par_memory_leak() {
+par__memory_leak() {
a_run() {
seq $1 |time -v parallel true 2>&1 |
grep 'Maximum resident' |
@@ -360,7 +398,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."
@@ -462,7 +500,7 @@
) | perl -pe 's/(\d\d+)\d\d\d/${1}xxx/g'
}
-par_plus_dyn_repl() {
+par__plus_dyn_repl() {
echo "Dynamic replacement strings defined by --plus"
unset myvar
@@ -558,38 +596,29 @@
echo $myvar | parallel --plus echo {} {/%def/}
}
-par_keeporder_roundrobin() {
- echo 'bug #50081: --keep-order --round-robin should give predictable results'
- . `which env_parallel.bash`
-
- run_roundrobin() {
- random1G() {
- < /dev/zero openssl enc -aes-128-ctr -K 1234 -iv 1234 2>/dev/null |
- head -c 1G;
- }
- random1G |
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-3s.sh
^
|
@@ -10,24 +10,15 @@
par_process_slot_var() {
echo '### bug #62310: xargs compatibility: --process-slot-var=name'
- seq 0.1 0.1 0.5 |
- parallel -n1 -P4 --process-slot-var=name -q bash -c 'sleep $1; echo "$name"' _
- seq 0.1 0.1 0.5 |
+ seq 0.1 0.3 1.5 |
+ parallel -n1 -kP4 --process-slot-var=name -q bash -c 'sleep $1; echo "$name"' _
+ seq 0.1 0.3 1.5 |
xargs -n1 -P4 --process-slot-var=name bash -c 'sleep $1; echo "$name"' _
- seq 0.1 0.1 0.5 |
- parallel -P4 --process-slot-var=name sleep {}\; echo '$name'
+ seq 0.1 0.3 1.5 |
+ parallel -kP4 --process-slot-var=name sleep {}\; echo '$name'
}
-par_retries_0() {
- 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
- echo
- rm -f $tmp
-}
-
-par_prefix_for_L_n_N_s() {
+par__prefix_for_L_n_N_s() {
echo Must give xxx000 args
seq 10000 | parallel -N 1k 'echo {} | wc -w' | sort
seq 10000 | parallel -n 1k 'echo {} | wc -w' | sort
@@ -37,7 +28,102 @@
seq 10000 | parallel -mj1 -s 1k 'echo {} | wc -w' | sort
}
-par_parset_assoc_arr() {
+par_parset() {
+ echo '### test parset'
+ (
+ . `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 'Commands with newline require -0'
+ parset var -k -0 ::: 'echo "line1
+line2"' 'echo "command2"'
+ echo "${var[0]}"
+ ) | replace_tmpdir
+}
+
+par_parset2() {
+ echo '### parset into array'
+ (
+ . `which env_parallel.bash`
+
+ parset arr1 echo ::: foo bar baz
+ echo ${arr1[0]} ${arr1[1]} ${arr1[2]}
+
+ 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"
+ env_parset 'myarray[6],myarray[5],myarray[4]' myecho ::: baz bar foo
+ echo "${myarray[*]}"
+ echo "${myarray[4]} ${myarray[5]} ${myarray[5]}"
+
+ echo 'bug #52507: parset arr1 -v echo ::: fails'
+ parset arr1 -v seq ::: 1 2 3
+ echo "${arr1[2]}"
+ ) | replace_tmpdir
+}
+
+par__parset_assoc_arr() {
mytest=$(cat <<'EOF'
mytest() {
shell=`basename $SHELL`
@@ -135,7 +221,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() {
@@ -222,13 +311,16 @@
parallel -k --pipe --tee ::: wc md5sum
}
-par_10000_5_rpl_X() {
+par__10000_5_rpl_X() {
echo '### Test -X with 10000 args and 5 replacement strings'
- seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.}{} | wc -l
- seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.}{.} | wc -l
- seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.} | wc -l
- seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c | wc -l
- seq 10000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b | wc -l
+ gen() {
+ seq 10000 | perl -pe 's/$/.gif/'
+ }
+ gen | parallel -j1 -kX echo a{}b{.}c{.}{.}{} | wc -l
+ gen | parallel -j1 -kX echo a{}b{.}c{.}{.} | wc -l
+ gen | parallel -j1 -kX echo a{}b{.}c{.} | wc -l
+ gen | parallel -j1 -kX echo a{}b{.}c | wc -l
+ gen | parallel -j1 -kX echo a{}b | wc -l
}
par_X_I_meta() {
@@ -300,8 +392,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 +401,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,14 +413,18 @@
else
echo OK
fi
+ rm "$tmpdir"/tee
+ rmdir "$tmpdir"
}
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-mem.sh
^
|
@@ -9,6 +9,8 @@
mkdir -p $TMPDIR
# Jobs that eat more than 2 GB RAM
+echo "dir $testsuitedir"
+[ -e "$testsuitedir" ] && cd "$testsuitedir"
gendata() {
# Generate a lot of text data fast
yes "`seq 3000`" | head -c $1
@@ -18,6 +20,7 @@
perl5.14parallel() {
# Run GNU Parallel under perl 5.14 which does not support 64-bit very well
# Remove setpgrp_func because 5.14 may use another func
+ pwd
rm -f ~/.parallel/tmp/sshlogin/*/setpgrp_func
PATH=input-files/perl-v5.14.2:$PATH
PERL5LIB=input-files/perl-v5.14.2/lib input-files/perl-v5.14.2/perl `which parallel` "$@"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-race01.sh
^
|
@@ -4,6 +4,20 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
+par_change_content_--jobs_filename() {
+ echo '### Test of -j filename with file content changing (missing -k is correct)'
+ echo 1 >/tmp/jobs_to_run2
+ (sleep 3; echo 10 >/tmp/jobs_to_run2) &
+ parallel -j /tmp/jobs_to_run2 -v sleep {} ::: 3.3 2.{1..5} 0.{1..7}
+}
+
+par_csv_not_installed() {
+ echo '### Give error if CSV.pm is not installed when using --csv'
+ sudo parallel mv {} {}.hidden ::: /usr/share/perl5/Text/CSV.pm
+ stdout parallel --csv echo ::: this should give an error
+ sudo parallel mv {}.hidden {} ::: /usr/share/perl5/Text/CSV.pm
+}
+
par_sem_dir() {
echo '### bug #58985: sem stall if .parallel/semaphores is chmod 0'
chmod 0 ~/.parallel/semaphores
@@ -15,9 +29,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
@@ -27,18 +41,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
@@ -54,7 +70,8 @@
}
par_distribute_input_by_ability() {
- echo "### bug #48290: round-robin does not distribute data based on business"
+ echo "### bug #48290: round-robin does not distribute data"
+ echo "based on busy-ness"
echo "### Distribute input to jobs that are ready"
echo "Job-slot n is 50% slower than n+1, so the order should be 1..7"
seq 20000000 |
@@ -110,9 +127,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-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-race02.sh
^
|
@@ -1,78 +1,58 @@
#!/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
# These fail regularly
-par_ll_lb_color() {
- echo 'bug #62386: --color (--ctag but without --tag)'
- echo 'bug #62438: See last line from multiple jobslots'
- # This is a race condition
- # # delay modulo 4 seconds
- # perl -MTime::HiRes -E 'Time::HiRes::usleep(1000000*(((time|3)+1)-Time::HiRes::time()));'
- # # delay modulo 2 seconds
- # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|1)));say time;'
- # # delay modulo 1 second
- # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|0)));say time;'
- # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time*4|0)/4));say time;'
- # # delay modulo 1/4 second
- # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(-time+(1+time*3|0)/3));say time;';
- # # delay modulo 1/4 second + 100 ms
- # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.1-time+(1+time*3|0)/3));say time;';
- # # delay modulo 1 second + 200 ms
- # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.2-time+(1+time*1|0)/1));say time;';
- # # delay modulo 1 second + delta ms
- # perl -E 'use Time::HiRes qw(usleep time); $d=shift; for(1..shift){
- # usleep(1000000*($d-time+(1+time*1|0)/1));say;}' 0.2 6;
- _offset_seq() {
- perl -E 'use Time::HiRes qw(usleep time); $|=1;$d=shift; for(1..shift){
- usleep(1000000*($d-time+(1+time*1|0)/1));say;}' $@;
- }
- offset_seq() {
- perl -E 'use Time::HiRes qw(usleep time); $|=1;usleep(shift); for(1..shift){
- usleep(1000000);say;}' $@;
- }
- export -f offset_seq
- run() {
- seq 4 -1 1 | parallel -j0 $@ offset_seq '{= $_=seq()*170000 =}' {}
- }
- export -f run
-
- parallel --delay 0.07 -vkj0 run \
- ::: --lb --ll '' ::: --color '' ::: '--tagstring {}{}' --tag '' ::: -k '' |
- md5sum
-}
-
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'
echo 'The 5 second sleep will make it be killed by timeout when it fgs'
- stdout bash -i -c 'stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | \grep -q CPUTIME=1 &
- sleep 1.9;
- kill -TSTP -$!;
- sleep 5;
- fg;
- echo Zero=OK $?' | grep -v '\[1\]' | grep -v 'SHA256'
-
- stdout bash -i -c 'echo 1 | stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" | \grep -q CPUTIME=1 &
- sleep 1.9;
- kill -TSTP -$!;
- sleep 5;
- fg;
- echo Zero=OK $?' | grep -v '\[1\]' | grep -v 'SHA256'
-
- echo Control case: Burn for 2.9 seconds
- stdout bash -i -c 'stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | \grep -q CPUTIME=1 &
- sleep 2.9;
- kill -TSTP -$!;
- sleep 5;
- fg;
- echo 1=OK $?' | grep -v '\[1\]' | grep -v 'SHA256'
+
+ run() {
+ cmd="$1"
+ sleep="$2"
+ error="$3"
+ input_source_pipe() {
+ echo 1 | stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" | \grep -q CPUTIME=1
+ }
+ input_source_cmdline() {
+ stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | \grep -q CPUTIME=1
+ }
+ # $cmd is input_source_pipe or input_source_cmdline
+ $cmd &
+ echo $cmd
+ sleep $sleep
+ kill -TSTP -$!
+ sleep 5
+ fg
+ echo $error $?
+ }
+ export -f run
+ clean() {
+ grep -v '\[1\]' | grep -v 'SHA256'
+ }
+
+ stdout bash -i -c 'run input_source_pipe 1.9 Zero=OK' | clean
+ stdout bash -i -c 'run input_source_cmdline 1.9 Zero=OK' | clean
+ echo "Control case: This should run 2.9 seconds"
+ stdout bash -i -c 'run input_source_cmdline 2.9 1=OK' | clean
}
ctrlz_should_suspend_children
+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
+}
+
par_more_than_9_relative_sshlogin() {
echo '### Check more than 9(relative) simultaneous sshlogins'
seq 1 11 | stdout parallel -k -j10000% -S "ssh lo" echo |
@@ -91,7 +71,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
@@ -100,7 +80,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
@@ -112,7 +92,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
@@ -194,15 +174,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() {
@@ -246,4 +226,4 @@
export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | sort |
# parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1'
- parallel --joblog /tmp/jl-`basename $0` -j1 --tag -k '{} 2>&1'
+ parallel -o --joblog /tmp/jl-`basename $0` -j1 --tag -k '{} 2>&1'
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+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-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local-ssh1.sh
^
|
@@ -30,9 +30,11 @@
echo '### sshpass'
echo OK | parallel -S "sshpass -p $withpassword ssh withpassword@lo:22" echo
echo OK | parallel -S withpassword:"$withpassword"@lo:22 echo
+ export SSHPASS="$withpassword"
+ 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
@@ -58,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
}
@@ -186,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
@@ -201,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
@@ -214,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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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,11 +125,16 @@
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
}
+par_filter_host_noise() {
+ echo '### bug #63296: --filter-hosts option gets confused by output from SSH command'
+ parallel --ssh "ssh -i id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o GlobalKnownHostsFile=/dev/null " -S localhost --nonall --tag --filter-hosts echo OK
+ parallel --ssh "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o GlobalKnownHostsFile=/dev/null " -S localhost --nonall --tag --filter-hosts echo OK
+}
export -f $(compgen -A function | grep par_)
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+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
@@ -16,5 +22,14 @@
stdout strace -ff perl32 `which parallel` echo |
grep open |
grep perl |
+ 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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-local150.sh
^
|
@@ -4,40 +4,18 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
+mkdir -p tmp
cd tmp
-median() { perl -e '@a=sort {$a<=>$b} <>;print $a[$#a/2]';}
-export -f median
# -L1 will join lines ending in ' '
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 -r
-echo '### bug #41565: Print happens in blocks - not after each job complete'
-echo 'The timing here is important: a full second between each'
- perl -e 'for(1..30){print("$_\n");`sleep 1`}' | parallel -j3 'echo {#}' | timestamp -dd | perl -pe '$_=int($_+0.3)."\n"' | median
-echo '300 ms jobs:'
- perl -e 'for(1..30){print("$_\n");`sleep .3`}' | parallel -j3 --delay 0.3 echo | timestamp -d -d | perl -pe 's/(.....).*/int($1*10+0.2)/e' | median
-
-echo '### Test --tagstring'
- nice parallel -j1 -X -v --tagstring a{}b echo ::: 3 4
- nice parallel -j1 -k -v --tagstring a{}b echo ::: 3 4
- nice parallel -j1 -k -v --tagstring a{}b echo job{#} ::: 3 4
- nice parallel -j1 -k -v --tagstring ajob{#}b echo job{#} ::: 3 4
-
echo '### Bug in --load';
nice parallel -k --load 30 sleep 0.1\;echo ::: 1 2 3
echo '### Test --timeout'
nice parallel -j0 -k --timeout 2 echo {}\; sleep {}\; echo {} ::: 1.1 7.7 8.8 9.9
-echo '### Test retired'
- stdout parallel -B foo
- stdout parallel -g
- stdout parallel -H 1
- stdout parallel -T
- stdout parallel -U foo
- stdout parallel -W foo
- stdout parallel -Y
-
echo '### Test --joblog followed by --resume --joblog'
rm -f /tmp/joblog;
timeout -k 1 1 parallel -j2 --joblog /tmp/joblog sleep {} ::: 1.1 2.2 3.3 4.4 2>/dev/null;
@@ -66,43 +44,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
-
-echo '### Run commands using --arg-sep'
- parallel -kv ::: 'echo a' 'echo b'
-
-echo '### Change --arg-sep'
- parallel --arg-sep ::: -kv ::: 'echo a' 'echo b'
- parallel --arg-sep .--- -kv .--- 'echo a' 'echo b'
- parallel --argsep ::: -kv ::: 'echo a' 'echo b'
- parallel --argsep .--- -kv .--- 'echo a' 'echo b'
-
-echo '### Test stdin goes to first command only'
- echo via cat |parallel --arg-sep .--- -kv .--- 'cat' 'echo b'
- echo via cat |parallel -kv ::: 'cat' 'echo b'
-
-echo '### Bug made 4 5 go before 1 2 3'
- parallel -k ::: "sleep 1; echo 1" "echo 2" "echo 3" "echo 4" "echo 5"
-
-echo '### Bug made 3 go before 1 2'
- parallel -kj 1 ::: "sleep 1; echo 1" "echo 2" "echo 3"
-
-echo '### Bug did not quote'
- echo '>' | parallel -v echo
- parallel -v echo ::: '>'
- (echo '>'; echo 2) | parallel -j1 -vX echo
- parallel -X -j1 echo ::: '>' 2
-
-echo '### Must not quote';
- echo 'echo | wc -l' | parallel -v
- parallel -v ::: 'echo | wc -l'
- echo 'echo a b c | wc -w' | parallel -v
- parallel -kv ::: 'echo a b c | wc -w' 'echo a b | wc -w'
echo '### Test bug #35820: sem breaks if $HOME is not writable'
echo 'Workaround: use another writable dir';
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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
@@ -209,7 +210,3 @@
EOF
-echo '### Test of -j filename with file content changing (missing -k is correct)';
- echo 1 >/tmp/jobs_to_run2;
- (sleep 3; echo 10 >/tmp/jobs_to_run2) &
- parallel -j /tmp/jobs_to_run2 -v sleep {} ::: 3.3 1.5 1.5 1.5 1.5 1 1 1 1 1 1 1 1 1 1 1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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
@@ -78,11 +79,13 @@
export -f pecho
gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; }
for a in `seq 6000`; do eval "export a$a=1" ; done
- gen 40000 | stdout parallel -Xkj1 'pecho {} {} {} {} | wc' |
- perl -pe 's/\d{10,}.\d+ //g'
+ gen 40000 | stdout parallel -Xkj1 'pecho {} {} {} {} | wc -c' |
+ perl -pe 's/\d{10,}.\d+ //g; s/(\d+)\d\d\d/${1}XXX/g;' |
+ grep 22XXX
}
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; }
@@ -96,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; }
@@ -108,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; }
@@ -131,7 +136,8 @@
for a in `seq 10`; do eval "a$a() { '$big'; }" ; done
for a in `seq 10`; do eval export -f a$a ; done
gen 40000 | stdout parallel -Xkj1 'pecho {} {} {} {} | wc -c' |
- perl -pe 's/\d{10,}.\d+ //g'
+ perl -pe 's/\d{10,}.\d+ //g; s/(\d+)\d\d\d/${1}XXX/g;' |
+ grep 5XXX
}
par_big_func_name() {
@@ -143,7 +149,8 @@
big=`perl -e print\"x\"x10000`
for a in `seq 10`; do eval "export a$big$a=1" ; done
gen 30000 | stdout parallel -Xkj1 'pecho {} {} {} {} | wc -c' |
- perl -pe 's/\d{10,}.\d+ //g'
+ perl -pe 's/\d{10,}.\d+ //g; s/(\d+)\d\d\d/${1}XXX/g;' |
+ grep 18XXX
}
par_big_var_func_name() {
@@ -157,9 +164,11 @@
for a in `seq 10`; do eval "a$big$a() { 1; }" ; done
for a in `seq 10`; do eval export -f a$big$a ; done
gen 80000 | stdout parallel --load 4 -Xkj1 'pecho {} {} {} {} | wc -c' |
- perl -pe 's/\d{10,}.\d+ //g'
+ perl -pe 's/\d{10,}.\d+ //g; s/(\d+)\d\d\d/${1}XXX/g;' |
+ grep 18XXX
}
+export PARALLEL="--_unsafe"
macsshlogin=$(parallel --halt now,success=1 ssh {} echo {} ::: ota@mac macosx.p)
scp /usr/local/bin/parallel $macsshlogin:bin/
|
[-]
[+]
|
Added |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-manual.sh
^
|
@@ -0,0 +1,82 @@
+#!/bin/bash
+
+# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+# 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"
+ echo Oops: the first adds '>' too early
+ COLUMNS=50 $p echo tag fits, line fits a{}b{}c \
+ ::: ヌー平
+ COLUMNS=50 $p echo tag fits, line too long a{}b{}c \
+ ::: ヌー平行ヌー平行ヌー平行ヌー平行ヌ
+ COLUMNS=50 $p echo tag too long a{}b{}c \
+ ::: ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行ヌー平行a
+}
+
+par_mbswidth() {
+ echo '### characters with screen width > 1'
+ perl -e '@a=qw(ヌ ー 平 行.);
+ print map {
+ (join"",map{ $a[$_% $#a] } (1..$_))."\n".
+ "a".(join"",map{ $a[$_% $#a] } (1..$_))."\n"
+ } (1..40)' |
+ COLUMNS=50 parallel -k --ll --color --tag echo
+}
+
+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
+ parallel --color --tag --ll true ::: ERROR-should-not-be-printed
+ parallel --color --tag --ll 'echo;true {}' ::: empty-line
+ parallel --color --tag --ll 'echo {};true {}' ::: full-line
+}
+
+par_ll_lb_color() {
+ echo '### This should give the same output with color and without'
+ echo 'bug #62386: --color (--ctag but without --tag)'
+ echo 'bug #62438: See last line from multiple jobslots'
+ # This is a race condition
+ # # delay modulo 4 seconds
+ # perl -MTime::HiRes -E 'Time::HiRes::usleep(1000000*(((time|3)+1)-Time::HiRes::time()));'
+ # # delay modulo 2 seconds
+ # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|1)));say time;'
+ # # delay modulo 1 second
+ # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|0)));say time;'
+ # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time*4|0)/4));say time;'
+ # # delay modulo 1/4 second
+ # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(-time+(1+time*3|0)/3));say time;';
+ # # delay modulo 1/4 second + 100 ms
+ # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.1-time+(1+time*3|0)/3));say time;';
+ # # delay modulo 1 second + 200 ms
+ # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.2-time+(1+time*1|0)/1));say time;';
+ # # delay modulo 1 second + delta ms
+ # perl -E 'use Time::HiRes qw(usleep time); $d=shift; for(1..shift){
+ # usleep(1000000*($d-time+(1+time*1|0)/1));say;}' 0.2 6;
+ _offset_seq() {
+ perl -E 'use Time::HiRes qw(usleep time); $|=1;$d=shift; for(1..shift){
+ usleep(1000000*($d-time+(1+time*1|0)/1));say;}' $@;
+ }
+ offset_seq() {
+ perl -E 'use Time::HiRes qw(usleep time); $|=1;usleep(shift); for(1..shift){
+ usleep(1000000);say;}' $@;
+ }
+ export -f offset_seq
+ run() {
+ seq 4 -1 1 | parallel -j0 $@ offset_seq '{= $_=seq()*170000 =}' {}
+ }
+ export -f run
+
+ parallel --delay 0.07 -vkj0 run \
+ ::: --lb --ll '' ::: -k '' ::: '--tagstring {}{}' --tag '' ::: '' --color
+}
+
+export -f $(compgen -A function | grep par_)
+compgen -A function | grep par_ | sort |
+ # parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1'
+ parallel --joblog /tmp/jl-`basename $0` -j0 --tag -k '{} 2>&1'
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/parallel-tutorial.sh
^
|
@@ -3,107 +3,125 @@
#
# 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)' |
+ egrep -v 'shellquote|works|num128|--filter-hosts|--tmux|my_id' |
+ 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//;
+ # Race condition
+ s/^parallel: This job failed:\n//;
+ s/^echo .; exit .\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{parallel: Starting no more jobs. Waiting for 1 jobs to finish.}{};
+ s{.* GtkDialog .*\n}{};
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/tests-to-run/test60.sh
^
|
@@ -5,55 +5,75 @@
# SPDX-License-Identifier: GPL-3.0-or-later
SERVER1=parallel-server1
-SERVER2=parallel-server2
+SERVER2=parallel-server3
SSHUSER1=vagrant
SSHUSER2=vagrant
-SSHLOGIN1=$SSHUSER1@$SERVER1
-SSHLOGIN2=$SSHUSER2@$SERVER2
+export SSHLOGIN1=$SSHUSER1@$SERVER1
+export SSHLOGIN2=$SSHUSER2@$SERVER2
-#SERVER1=parallel-server1
-#SERVER2=parallel-server2
-#SSHLOGIN1=parallel@$SERVER1
-#SSHLOGIN2=parallel@$SERVER2
-
-# -L1 will join lines ending in ' '
-cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/\;s/\$SSHLOGIN1/$SSHLOGIN1/\;s/\$SSHLOGIN2/$SSHLOGIN2/ | parallel -vj10 -k --joblog /tmp/jl-`basename $0` -L1 -r
-echo '### Test --onall';
- parallel --onall -S $SSHLOGIN1,$SSHLOGIN2 '(echo {1} {2}) | awk \{print\ \$2}' ::: a b c ::: 1 2
-
-echo '### Test | --onall';
- seq 3 | parallel --onall -S $SSHLOGIN1,$SSHLOGIN2 '(echo {1} {2}) | awk \{print\ \$2}' ::: a b c :::: -
-
-echo '### Test --onall -u';
- parallel --onall -S $SSHLOGIN1,$SSHLOGIN2 -u '(echo {1} {2}) | awk \{print\ \$2}' ::: a b c ::: 1 2 3 | sort
-
-echo '### Test --nonall';
- parallel --nonall -k -S $SSHLOGIN1,$SSHLOGIN2 'hostname' | sort
-
-echo '### Test --nonall -u - should be interleaved x y x y';
- parallel --nonall --sshdelay 2 -S $SSHLOGIN1,$SSHLOGIN2 -u 'hostname|grep -q centos && sleep 2; hostname;sleep 4;hostname;'
-
-echo '### Test read sshloginfile from STDIN';
- echo $SSHLOGIN1 | parallel -S - --nonall hostname;
- echo $SSHLOGIN1 | parallel --sshloginfile - --nonall hostname
-
-echo '### Test --nonall --basefile';
- touch /tmp/nonall--basefile;
- parallel --nonall --basefile /tmp/nonall--basefile -S $SSHLOGIN1,$SSHLOGIN2 ls /tmp/nonall--basefile\; rm /tmp/nonall--basefile;
- rm /tmp/nonall--basefile
-
-echo '### Test --onall --basefile';
- touch /tmp/onall--basefile;
- parallel --onall --basefile /tmp/onall--basefile -S $SSHLOGIN1,$SSHLOGIN2 ls {}\; rm {} ::: /tmp/onall--basefile;
- rm /tmp/onall--basefile
-
-echo '### Test --workdir .';
- ssh $SSHLOGIN1 mkdir -p mydir;
- mkdir -p $HOME/mydir; cd $HOME/mydir;
- parallel --workdir . -S $SSHLOGIN1 ::: pwd
-
-echo '### Test --wd .';
- ssh $SSHLOGIN2 mkdir -p mydir;
- mkdir -p $HOME/mydir; cd $HOME/mydir;
- parallel --workdir . -S $SSHLOGIN2 ::: pwd
-EOF
+par_onall() {
+ echo '### Test --onall'
+ parallel --onall -S $SSHLOGIN1,$SSHLOGIN2 '(echo {1} {2}) | awk \{print\ \$2}' ::: a b c ::: 1 2
+}
+
+par_pipe_onall() {
+ echo '### Test | --onall'
+ seq 3 | parallel --onall -S $SSHLOGIN1,$SSHLOGIN2 '(echo {1} {2}) | awk \{print\ \$2}' ::: a b c :::: -
+}
+
+par_onall_u() {
+ echo '### Test --onall -u'
+ parallel --onall -S $SSHLOGIN1,$SSHLOGIN2 -u '(echo {1} {2}) | awk \{print\ \$2}' ::: a b c ::: 1 2 3 | sort
+}
+
+par_nonall() {
+ echo '### Test --nonall'
+ parallel --nonall -k -S $SSHLOGIN1,$SSHLOGIN2 'hostname' | sort
+}
+
+par_nonall_u() {
+ echo '### Test --nonall -u - should be interleaved x y x y'
+ parallel --nonall --sshdelay 2 -S $SSHLOGIN1,$SSHLOGIN2 -u \
+ 'hostname|grep -q centos && sleep 2; hostname;sleep 4;hostname;' |
+ uniq -c | sort
+}
+
+par_nonall_sshloginfile_stdin() {
+ echo '### Test read sshloginfile from STDIN'
+ echo $SSHLOGIN1 | parallel -S - --nonall hostname;
+ echo $SSHLOGIN1 | parallel --sshloginfile - --nonall hostname
+}
+
+par_nonall_basefile() {
+ echo '### Test --nonall --basefile'
+ touch /tmp/nonall--basefile
+ parallel --nonall --basefile /tmp/nonall--basefile -S $SSHLOGIN1,$SSHLOGIN2 ls /tmp/nonall--basefile\; rm /tmp/nonall--basefile
+ rm /tmp/nonall--basefile
+}
+
+par_onall_basefile() {
+ echo '### Test --onall --basefile'
+ touch /tmp/onall--basefile
+ parallel --onall --basefile /tmp/onall--basefile -S $SSHLOGIN1,$SSHLOGIN2 ls {}\; rm {} ::: /tmp/onall--basefile
+ rm /tmp/onall--basefile
+}
+
+par_workdir() {
+ echo '### Test --workdir .'
+ ssh $SSHLOGIN1 mkdir -p mydir
+ mkdir -p $HOME/mydir; cd $HOME/mydir
+ parallel --workdir . -S $SSHLOGIN1 ::: pwd
+}
+
+par_wd() {
+ echo '### Test --wd .'
+ ssh $SSHLOGIN2 mkdir -p mydir
+ mkdir -p $HOME/mydir; cd $HOME/mydir
+ parallel --workdir . -S $SSHLOGIN2 ::: pwd
+}
+
+export -f $(compgen -A function | grep par_)
+#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
+compgen -A function | grep par_ | sort |
+ parallel --joblog /tmp/jl-`basename $0` --retries 3 -j300% --tag -k '{} 2>&1' |
+ perl -pe "s/‘/'/g;s/’/'/g"
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/vagrant/tange/centos3/Vagrantfile
^
|
@@ -1,6 +1,10 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
+# SPDX-FileCopyrightText: 2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+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
@@ -46,13 +48,6 @@
par_arguments_on_cmdline ### Test arguments on commandline
par_arguments_on_cmdline args on cmdline
par_arguments_on_cmdline args on cmdline
-par_basic_halt parallel: This job failed:
-par_basic_halt false
-par_basic_halt parallel: This job succeeded:
-par_basic_halt true
-par_basic_halt parallel: Error: --halt must have 'never', 'soon', or 'now'.
-par_basic_halt parallel: Error: --halt soon must be followed by ,success or ,fail.
-par_basic_halt parallel: Error: --halt now must be followed by ,success or ,fail.
par_blocking_redir 0 0 0
par_blocking_redir 0 0 0
par_blocking_redir 1 9 54
@@ -64,31 +59,33 @@
par_blocking_redir stderr
par_blocking_redir stdout
par_blocking_redir stdout
+par_bug43654 bug #43654: --bar with command not using {} - only last output line
+par_bug43654
par_bug43654 [7m100% 1:0=0s 1 [0m[0m
par_colour_failed --colour-failed --colour
-par_colour_failed seq 1;exit 0(B[m
-par_colour_failed 1(B[m
+par_colour_failed seq 1;exit 0
+par_colour_failed 1
par_colour_failed [48;5;196;38;5;231m[Kseq 1;exit 1(B[m
par_colour_failed [48;5;196;38;5;231m[K1(B[m
par_colour_failed [48;5;196;38;5;231m[Kseq 1;exit 2(B[m
par_colour_failed [48;5;196;38;5;231m[K1(B[m
-par_colour_failed seq 2;exit 0(B[m
-par_colour_failed 1(B[m
-par_colour_failed 2(B[m
+par_colour_failed seq 2;exit 0
+par_colour_failed 1
+par_colour_failed 2
par_colour_failed [48;5;196;38;5;231m[Kseq 2;exit 1(B[m
par_colour_failed [48;5;196;38;5;231m[K1(B[m
par_colour_failed [48;5;196;38;5;231m[K2(B[m
par_colour_failed [48;5;196;38;5;231m[Kseq 2;exit 2(B[m
par_colour_failed [48;5;196;38;5;231m[K1(B[m
par_colour_failed [48;5;196;38;5;231m[K2(B[m
-par_colour_failed [48;5;134;38;5;231m[Kseq 1;exit 0(B[m
-par_colour_failed [48;5;134;38;5;231m[K1(B[m
+par_colour_failed [48;5;178;38;5;000m[Kseq 1;exit 0(B[m
+par_colour_failed [48;5;178;38;5;000m[K1(B[m
par_colour_failed [48;5;196;38;5;231m[Kseq 1;exit 1(B[m
par_colour_failed [48;5;196;38;5;231m[K1(B[m
par_colour_failed [48;5;196;38;5;231m[Kseq 1;exit 2(B[m
par_colour_failed [48;5;196;38;5;231m[K1(B[m
-par_colour_failed [48;5;149;38;5;000m[Kseq 2;exit 0(B[m
-par_colour_failed [48;5;149;38;5;000m[K1(B[m
-par_colour_failed [48;5;149;38;5;000m[K2(B[m
+par_colour_failed [48;5;203;38;5;000m[Kseq 2;exit 0(B[m
+par_colour_failed [48;5;203;38;5;000m[K1(B[m
+par_colour_failed [48;5;203;38;5;000m[K2(B[m
par_colour_failed [48;5;196;38;5;231m[Kseq 2;exit 1(B[m
par_colour_failed [48;5;196;38;5;231m[K1(B[m
par_colour_failed [48;5;196;38;5;231m[K2(B[m
@@ -214,10 +211,16 @@
par_empty_line ### Test bug: empty line for | sh with -k
par_empty_line a
par_empty_line b
+par_empty_string_command_line ### Test of ignore-empty string on :::
+par_empty_string_command_line foo
+par_empty_string_command_line ole
+par_empty_string_command_line bar
par_empty_string_quote bug #37694: Empty string argument skipped when using --quote
par_empty_string_quote 3
par_env_parallel_pipefail ### test env_parallel with pipefail + inherit_errexit
par_env_parallel_pipefail OK
+par_eof_on_command_line_input_source ### Test of eof string on :::
+par_eof_on_command_line_input_source foo
par_exit_val ### Test bug #45619: "--halt" erroneous error exit code (should give 0)
par_exit_val 0
par_exit_val ### Test exit val - true
@@ -237,9 +240,8 @@
par_group-by_colsep_space 1 2 5
par_group-by_colsep_space 2 2 10
par_group-by_colsep_space 1 1 6
-par_group-by_colsep_space 1 2 5
par_group-by_colsep_space 2 4 10
-par_group-by_colsep_space 1 3 6
+par_group-by_colsep_space 2 5 11
par_halt_on_error_division_by_zero ### --halt-on-error soon,fail=100% with no input should not give division by zero
par_halt_on_error_division_by_zero 0
par_halt_one_job # Halt soon if there is a single job
@@ -308,22 +310,36 @@
par_japanese_chars_in_replacement_string ã¯
par_japanese_chars_in_replacement_string �<�> �<1 $_=2�> ã¯
par_japanese_chars_in_replacement_string �<�>
-par_jobslot_jobnumber_pipe ### Test bug #43376: {%} and {#} with --pipe
-par_jobslot_jobnumber_pipe 1
-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_no_newline bug #64030: parallel --ll echo -n ::: foo
+par_ll_no_newline
par_ll_no_newline [Klines
+par_ll_no_newline
par_ll_no_newline [Ktwo
+par_ll_no_newline
par_ll_no_newline [Klines
+par_ll_no_newline
par_ll_no_newline [Ktwo
+par_ll_no_newline last linelast line
par_locale_quoting ### quoting in different locales
par_locale_quoting £`/tmp/test£`
par_locale_quoting $LC_ALL £`/tmp/test£`
@@ -689,7 +705,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
@@ -893,13 +910,6 @@
par_replace_replacementstring ### Test replace {}
par_replace_replacementstring replace curlies
par_replace_replacementstring replace curlies
-par_replacement_string_as_part_of_command ### {} as part of the command
-par_replacement_string_as_part_of_command /bin/ls
-par_replacement_string_as_part_of_command /bin/ls
-par_replacement_string_as_part_of_command /bin/ls
-par_replacement_string_as_part_of_command /bin/ls
-par_replacement_string_as_part_of_command /bin/ls
-par_replacement_string_as_part_of_command /bin/ls
par_replacement_string_on_utf8 ### test {} {.} on UTF8 input
par_replacement_string_on_utf8 ä¸å½ (ZhÅngguó)/China's (ä¸å½) road.jpg ä¸å½ (ZhÅngguó)/China's (ä¸å½) road
par_replacement_string_on_utf8 ä¸å½.(ä¸å½) ä¸å½
@@ -913,14 +923,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
@@ -960,10 +970,10 @@
par_sem_quote echo
par_sem_quote
par_shellcompletion ### --shellcompletion
-par_shellcompletion 863f31c091219fc53dc89fd707f5995b -
-par_shellcompletion 863f31c091219fc53dc89fd707f5995b -
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-100s
^
|
@@ -3,99 +3,115 @@
par_linebuffer_files zstd normal
par_linebuffer_files zstd 100000
par_linebuffer_files zstd --files
-par_linebuffer_files zstd 1
+par_linebuffer_files zstd 4
par_linebuffer_files zstd --results
par_linebuffer_files zstd 1
+par_linebuffer_files zstd parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files pzstd normal
par_linebuffer_files pzstd 100000
par_linebuffer_files pzstd --files
-par_linebuffer_files pzstd 1
+par_linebuffer_files pzstd 4
par_linebuffer_files pzstd --results
par_linebuffer_files pzstd 1
+par_linebuffer_files pzstd parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files clzip normal
par_linebuffer_files clzip 100000
par_linebuffer_files clzip --files
-par_linebuffer_files clzip 1
+par_linebuffer_files clzip 4
par_linebuffer_files clzip --results
par_linebuffer_files clzip 1
+par_linebuffer_files clzip parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files lz4 normal
par_linebuffer_files lz4 100000
par_linebuffer_files lz4 --files
-par_linebuffer_files lz4 1
+par_linebuffer_files lz4 4
par_linebuffer_files lz4 --results
par_linebuffer_files lz4 1
+par_linebuffer_files lz4 parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files lzop normal
par_linebuffer_files lzop 100000
par_linebuffer_files lzop --files
-par_linebuffer_files lzop 1
+par_linebuffer_files lzop 4
par_linebuffer_files lzop --results
par_linebuffer_files lzop 1
+par_linebuffer_files lzop parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files pigz normal
par_linebuffer_files pigz 100000
par_linebuffer_files pigz --files
-par_linebuffer_files pigz 1
+par_linebuffer_files pigz 4
par_linebuffer_files pigz --results
par_linebuffer_files pigz 1
+par_linebuffer_files pigz parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files pxz normal
par_linebuffer_files pxz 100000
par_linebuffer_files pxz --files
-par_linebuffer_files pxz 1
+par_linebuffer_files pxz 4
par_linebuffer_files pxz --results
par_linebuffer_files pxz 1
+par_linebuffer_files pxz parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files gzip normal
par_linebuffer_files gzip 100000
par_linebuffer_files gzip --files
-par_linebuffer_files gzip 1
+par_linebuffer_files gzip 4
par_linebuffer_files gzip --results
par_linebuffer_files gzip 1
+par_linebuffer_files gzip parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files plzip normal
par_linebuffer_files plzip 100000
par_linebuffer_files plzip --files
-par_linebuffer_files plzip 1
+par_linebuffer_files plzip 4
par_linebuffer_files plzip --results
par_linebuffer_files plzip 1
+par_linebuffer_files plzip parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files pbzip2 normal
par_linebuffer_files pbzip2 100000
par_linebuffer_files pbzip2 --files
-par_linebuffer_files pbzip2 1
+par_linebuffer_files pbzip2 4
par_linebuffer_files pbzip2 --results
par_linebuffer_files pbzip2 1
+par_linebuffer_files pbzip2 parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files lzma normal
par_linebuffer_files lzma 100000
par_linebuffer_files lzma --files
-par_linebuffer_files lzma 1
+par_linebuffer_files lzma 4
par_linebuffer_files lzma --results
par_linebuffer_files lzma 1
+par_linebuffer_files lzma parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files xz normal
par_linebuffer_files xz 100000
par_linebuffer_files xz --files
-par_linebuffer_files xz 1
+par_linebuffer_files xz 4
par_linebuffer_files xz --results
par_linebuffer_files xz 1
+par_linebuffer_files xz parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files lzip normal
par_linebuffer_files lzip 100000
par_linebuffer_files lzip --files
-par_linebuffer_files lzip 1
+par_linebuffer_files lzip 4
par_linebuffer_files lzip --results
par_linebuffer_files lzip 1
+par_linebuffer_files lzip parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files bzip2 normal
par_linebuffer_files bzip2 100000
par_linebuffer_files bzip2 --files
-par_linebuffer_files bzip2 1
+par_linebuffer_files bzip2 4
par_linebuffer_files bzip2 --results
par_linebuffer_files bzip2 1
+par_linebuffer_files bzip2 parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files lbzip2 normal
par_linebuffer_files lbzip2 100000
par_linebuffer_files lbzip2 --files
-par_linebuffer_files lbzip2 1
+par_linebuffer_files lbzip2 4
par_linebuffer_files lbzip2 --results
par_linebuffer_files lbzip2 1
+par_linebuffer_files lbzip2 parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_files lrz normal
par_linebuffer_files lrz 100000
par_linebuffer_files lrz --files
-par_linebuffer_files lrz 1
+par_linebuffer_files lrz 4
par_linebuffer_files lrz --results
par_linebuffer_files lrz 1
+par_linebuffer_files lrz parallel: Warning: Use --files0 when $TMPDIR contains newline.
par_linebuffer_matters_compress ### (--linebuffer) --compress should give different output
par_linebuffer_matters_compress OK: --linebuffer makes a difference
par_linebuffer_matters_compress_tag ### (--linebuffer) --compress --tag should give different output
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-10s
^
|
@@ -16,14 +16,20 @@
par_END include this
par_END include this
par_END include this
-par__pipe_tee bug #45479: --pipe/--pipepart --tee
-par__pipe_tee --pipe --tee
-par__pipe_tee 314572800
+par__keeporder_roundrobin bug #50081: --keep-order --round-robin should give predictable results
+par__keeporder_roundrobin OK
+par__load_from_PARALLEL ### Test reading load from PARALLEL
+par__load_from_PARALLEL 8a7095c1c23bfadc311fe6b16d950582 -
+par__load_from_PARALLEL 8a7095c1c23bfadc311fe6b16d950582 -
par__pipepart_spawn ### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922
par__pipepart_spawn 1:local / 2+ / 2+
-par__pipepart_tee bug #45479: --pipe/--pipepart --tee
-par__pipepart_tee --pipepart --tee
-par__pipepart_tee 314572800
+par__print_in_blocks ### bug #41565: Print happens in blocks - not after each job complete
+par__print_in_blocks The timing here is important: a full second between each
+par__print_in_blocks 1
+par__print_in_blocks 300 ms jobs:
+par__print_in_blocks 3
+par__round_robin_blocks bug #49664: --round-robin does not complete
+par__round_robin_blocks 8
par_colsep ### Test of --colsep
par_colsep a b c
par_colsep a b c
@@ -72,32 +78,36 @@
par_colsep ac
par_colsep echo ac
par_colsep ac
-par_compress_fail ### bug #41609: --compress fails
-par_compress_fail f1a751b1283e99e7dda40f63f1225f74 -
-par_compress_fail f1a751b1283e99e7dda40f63f1225f74 -
+par_compress_prg_fails ### bug #41609: --compress fails
+par_compress_prg_fails f1a751b1283e99e7dda40f63f1225f74 -
+par_compress_prg_fails f1a751b1283e99e7dda40f63f1225f74 -
par_compress_prg_fails ### bug #44546: If --compress-program fails: fail
par_compress_prg_fails 1
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,87 +116,165 @@
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' echo ::: 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' echo ::: 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' echo ::: 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 -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: 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: Error: cat;false failed.
-par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
+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'
+par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
-par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
+par_failing_compressor parallel -k --tag --line-buffer -k --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 C=cat;true,D=cat;false
-par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
+par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
+par_failing_compressor parallel -k --tag --line-buffer -k --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 C=cat;false,D=cat;true
par_failing_compressor parallel: Error: cat;false failed.
-par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
+par_failing_compressor parallel: Error: cat;false failed.
+par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
+par_failing_compressor parallel -k --tag --line-buffer -k --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 C=cat;false,D=cat;false
+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 --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 -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: 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' echo ::: 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' echo ::: 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: Error: cat;false failed.
-par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: 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 -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
+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'
+par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
-par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
+par_failing_compressor parallel -k --tag -k -k --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 C=cat;true,D=cat;false
-par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
+par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
+par_failing_compressor parallel -k --tag -k -k --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 C=cat;false,D=cat;true
+par_failing_compressor parallel: Error: cat;false failed.
+par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
+par_failing_compressor parallel -k --tag -k -k --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 C=cat;false,D=cat;false
+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;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
+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 -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: 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' echo ::: 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' echo ::: C='cat;false',D='cat;true'
-par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
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' echo ::: 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 -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
+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'
+par_failing_compressor C=cat;true,D=cat;true
par_failing_compressor C=cat;true,D=cat;true
-par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
+par_failing_compressor parallel -k -k --line-buffer -k --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
-par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
+par_failing_compressor C=cat;true,D=cat;false
+par_failing_compressor parallel -k -k --line-buffer -k --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
+par_failing_compressor parallel: Error: cat;false failed.
+par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true
+par_failing_compressor parallel -k -k --line-buffer -k --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
+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;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
par_failing_compressor C=cat;false,D=cat;false
+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 -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
-par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-1s
^
|
@@ -1,79 +1,326 @@
-par_I_X_m ### Test -I with -X and -m
-par_I_X_m 1 1
-par_I_X_m 2 1
-par_I_X_m 2 2
-par_I_X_m 3 1
-par_I_X_m 3 2
-par_I_X_m 3 3
-par_I_X_m 4 1
-par_I_X_m 4 2
-par_I_X_m 4 3
-par_I_X_m 4 4
-par_I_X_m 5 1
-par_I_X_m 5 2
-par_I_X_m 5 3
-par_I_X_m 5 4
-par_I_X_m 5 5
-par_I_X_m 6 1
-par_I_X_m 6 2
-par_I_X_m 6 3
-par_I_X_m 6 4
-par_I_X_m 6 5
-par_I_X_m 6 6
-par_I_X_m 7 1
-par_I_X_m 7 2
-par_I_X_m 7 3
-par_I_X_m 7 4
-par_I_X_m 7 5
-par_I_X_m 7 6
-par_I_X_m 7 7
-par_I_X_m 8 1
-par_I_X_m 8 2
-par_I_X_m 8 3
-par_I_X_m 8 4
-par_I_X_m 8 5
-par_I_X_m 8 6
-par_I_X_m 8 7
-par_I_X_m 8 8
-par_I_X_m 9 1
-par_I_X_m 9 2
-par_I_X_m 9 3
-par_I_X_m 9 4
-par_I_X_m 9 5
-par_I_X_m 9 6
-par_I_X_m 9 7
-par_I_X_m 9 8
-par_I_X_m 9 9
-par_I_X_m 10 1
-par_I_X_m 10 2
-par_I_X_m 10 3
-par_I_X_m 10 4
-par_I_X_m 10 5
-par_I_X_m 10 6
-par_I_X_m 10 7
-par_I_X_m 10 8
-par_I_X_m 10 9
-par_I_X_m 10 10
-par_I_X_m a1 b1
-par_I_X_m a2 b1 b2
-par_I_X_m a3 b1 b2 b3
-par_I_X_m a4 b1 b2 b3 b4
-par_I_X_m a5 b1 b2 b3 b4 b5
-par_I_X_m a6 b1 b2 b3 b4 b5 b6
-par_I_X_m a7 b1 b2 b3 b4 b5 b6 b7
-par_I_X_m a8 b1 b2 b3 b4 b5 b6 b7 b8
-par_I_X_m a9 b1 b2 b3 b4 b5 b6 b7 b8 b9
-par_I_X_m a10 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10
-par_I_X_m a1 b1
-par_I_X_m a2 b1 2
-par_I_X_m a3 b1 2 3
-par_I_X_m a4 b1 2 3 4
-par_I_X_m a5 b1 2 3 4 5
-par_I_X_m a6 b1 2 3 4 5 6
-par_I_X_m a7 b1 2 3 4 5 6 7
-par_I_X_m a8 b1 2 3 4 5 6 7 8
-par_I_X_m a9 b1 2 3 4 5 6 7 8 9
-par_I_X_m a10 b1 2 3 4 5 6 7 8 9 10
+par__I_X_m ### Test -I with -X and -m
+par__I_X_m 1 1
+par__I_X_m 2 1
+par__I_X_m 2 2
+par__I_X_m 3 1
+par__I_X_m 3 2
+par__I_X_m 3 3
+par__I_X_m 4 1
+par__I_X_m 4 2
+par__I_X_m 4 3
+par__I_X_m 4 4
+par__I_X_m 5 1
+par__I_X_m 5 2
+par__I_X_m 5 3
+par__I_X_m 5 4
+par__I_X_m 5 5
+par__I_X_m 6 1
+par__I_X_m 6 2
+par__I_X_m 6 3
+par__I_X_m 6 4
+par__I_X_m 6 5
+par__I_X_m 6 6
+par__I_X_m 7 1
+par__I_X_m 7 2
+par__I_X_m 7 3
+par__I_X_m 7 4
+par__I_X_m 7 5
+par__I_X_m 7 6
+par__I_X_m 7 7
+par__I_X_m 8 1
+par__I_X_m 8 2
+par__I_X_m 8 3
+par__I_X_m 8 4
+par__I_X_m 8 5
+par__I_X_m 8 6
+par__I_X_m 8 7
+par__I_X_m 8 8
+par__I_X_m 9 1
+par__I_X_m 9 2
+par__I_X_m 9 3
+par__I_X_m 9 4
+par__I_X_m 9 5
+par__I_X_m 9 6
+par__I_X_m 9 7
+par__I_X_m 9 8
+par__I_X_m 9 9
+par__I_X_m 10 1
+par__I_X_m 10 2
+par__I_X_m 10 3
+par__I_X_m 10 4
+par__I_X_m 10 5
+par__I_X_m 10 6
+par__I_X_m 10 7
+par__I_X_m 10 8
+par__I_X_m 10 9
+par__I_X_m 10 10
+par__I_X_m a1 b1
+par__I_X_m a2 b1 b2
+par__I_X_m a3 b1 b2 b3
+par__I_X_m a4 b1 b2 b3 b4
+par__I_X_m a5 b1 b2 b3 b4 b5
+par__I_X_m a6 b1 b2 b3 b4 b5 b6
+par__I_X_m a7 b1 b2 b3 b4 b5 b6 b7
+par__I_X_m a8 b1 b2 b3 b4 b5 b6 b7 b8
+par__I_X_m a9 b1 b2 b3 b4 b5 b6 b7 b8 b9
+par__I_X_m a10 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10
+par__I_X_m a1 b1
+par__I_X_m a2 b1 2
+par__I_X_m a3 b1 2 3
+par__I_X_m a4 b1 2 3 4
+par__I_X_m a5 b1 2 3 4 5
+par__I_X_m a6 b1 2 3 4 5 6
+par__I_X_m a7 b1 2 3 4 5 6 7
+par__I_X_m a8 b1 2 3 4 5 6 7 8
+par__I_X_m a9 b1 2 3 4 5 6 7 8 9
+par__I_X_m a10 b1 2 3 4 5 6 7 8 9 10
+par__arg_sep ### Test basic --arg-sep
+par__arg_sep a
+par__arg_sep b
+par__arg_sep ### Run commands using --arg-sep
+par__arg_sep echo a
+par__arg_sep a
+par__arg_sep echo b
+par__arg_sep b
+par__arg_sep ### Change --arg-sep
+par__arg_sep echo a
+par__arg_sep a
+par__arg_sep echo b
+par__arg_sep b
+par__arg_sep echo a
+par__arg_sep a
+par__arg_sep echo b
+par__arg_sep b
+par__arg_sep echo a
+par__arg_sep a
+par__arg_sep echo b
+par__arg_sep b
+par__arg_sep echo a
+par__arg_sep a
+par__arg_sep echo b
+par__arg_sep b
+par__arg_sep ### Test stdin goes to first command only
+par__arg_sep cat
+par__arg_sep echo b
+par__arg_sep b
+par__arg_sep cat
+par__arg_sep echo b
+par__arg_sep b
+par__plus ### --plus
+par__plus (It is OK to start with extra / or end with extra .)
+par__plus a = /a = a. = /a. = a. = /a. = a. = /a.
+par__plus a.b = /a.b = a.b = /a.b = a.b. = /a.b. = a.b. = /a.b.
+par__plus a.b.c = /a.b.c = a.b.c = /a.b.c = a.b.c = /a.b.c = a.b.c. = /a.b.c.
+par__plus a.b.c.d = /a.b.c.d = a.b.c.d = /a.b.c.d = a.b.c.d = /a.b.c.d = a.b.c.d = /a.b.c.d
+par__plus a/1 = a/1 = a/1. = a/1. = a/1. = a/1. = a/1. = a/1.
+par__plus a.b/1.2 = a.b/1.2 = a.b/1.2 = a.b/1.2 = a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2.
+par__plus a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3. = a.b.c/1.2.3.
+par__plus a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4
+par__plus a. = /a. = a. = /a. = a.. = /a.. = a.. = /a..
+par__plus a.b. = /a.b. = a.b. = /a.b. = a.b. = /a.b. = a.b.. = /a.b..
+par__plus a.b.c. = /a.b.c. = a.b.c. = /a.b.c. = a.b.c. = /a.b.c. = a.b.c. = /a.b.c.
+par__plus a.b.c.d. = /a.b.c.d. = a.b.c.d. = /a.b.c.d. = a.b.c.d. = /a.b.c.d. = a.b.c.d. = /a.b.c.d.
+par__plus a/1. = a/1. = a/1. = a/1. = a/1.. = a/1.. = a/1.. = a/1..
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-300s
^
|
@@ -1,3 +1,134 @@
+par_compare_exit_codes ### compare the exit codes
+par_compare_exit_codes directly from shells, shells called from parallel,
+par_compare_exit_codes killed with different signals
+par_compare_exit_codes sig=joblog_sig shell=parallel=joblog
+par_compare_exit_codes
par_compare_exit_codes
+par_compare_exit_codes csh sig 2=0 130=1=1
+par_compare_exit_codes posh sig 34=11 162=139=139
+par_compare_exit_codes posh sig 35=11 163=139=139
+par_compare_exit_codes posh sig 36=11 164=139=139
+par_compare_exit_codes posh sig 37=11 165=139=139
+par_compare_exit_codes posh sig 38=11 166=139=139
+par_compare_exit_codes posh sig 39=11 167=139=139
+par_compare_exit_codes posh sig 40=11 168=139=139
+par_compare_exit_codes posh sig 41=11 169=139=139
+par_compare_exit_codes posh sig 42=11 170=139=139
+par_compare_exit_codes posh sig 43=11 171=139=139
+par_compare_exit_codes posh sig 44=11 172=139=139
+par_compare_exit_codes posh sig 45=11 173=139=139
+par_compare_exit_codes posh sig 46=11 174=139=139
+par_compare_exit_codes posh sig 47=11 175=139=139
+par_compare_exit_codes posh sig 48=11 176=139=139
+par_compare_exit_codes posh sig 49=11 177=139=139
+par_compare_exit_codes posh sig 50=11 178=139=139
+par_compare_exit_codes posh sig 51=11 179=139=139
+par_compare_exit_codes posh sig 52=11 180=139=139
+par_compare_exit_codes posh sig 53=11 181=139=139
+par_compare_exit_codes posh sig 54=11 182=139=139
+par_compare_exit_codes posh sig 55=11 183=139=139
+par_compare_exit_codes posh sig 56=11 184=139=139
+par_compare_exit_codes posh sig 57=11 185=139=139
+par_compare_exit_codes posh sig 58=11 186=139=139
+par_compare_exit_codes posh sig 59=11 187=139=139
+par_compare_exit_codes posh sig 60=11 188=139=139
+par_compare_exit_codes posh sig 61=11 189=139=139
+par_compare_exit_codes posh sig 62=11 190=139=139
+par_compare_exit_codes posh sig 63=11 191=139=139
+par_compare_exit_codes posh sig 64=11 192=139=139
+par_compare_exit_codes
par_compare_exit_codes
+par_compare_exit_codes tcsh sig 2=0 130=1=1
+par_compare_exit_codes fdsh sig 2=0 0=2=2
+par_compare_exit_codes fdsh exit 130=0 130=2=2
+par_compare_exit_codes fdsh sig 9=0 137=2=2
+par_compare_exit_codes fdsh exit 137=0 137=2=2
+par_compare_exit_codes fdsh sig 10=0 0=2=2
+par_compare_exit_codes fdsh exit 138=0 138=2=2
+par_compare_exit_codes fdsh sig 11=0 0=2=2
+par_compare_exit_codes fdsh exit 139=0 139=2=2
+par_compare_exit_codes fdsh sig 12=0 0=2=2
+par_compare_exit_codes fdsh exit 140=0 140=2=2
+par_compare_exit_codes fdsh sig 15=0 0=2=2
+par_compare_exit_codes fdsh exit 143=0 143=2=2
+par_compare_exit_codes fdsh sig 16=0 144=2=2
+par_compare_exit_codes fdsh exit 144=0 144=2=2
+par_compare_exit_codes fdsh sig 17=0 0=2=2
+par_compare_exit_codes fdsh exit 145=0 145=2=2
+par_compare_exit_codes fdsh sig 18=0 0=2=2
+par_compare_exit_codes fdsh exit 146=0 146=2=2
+par_compare_exit_codes fdsh sig 20=0 0=2=2
+par_compare_exit_codes fdsh exit 148=0 148=2=2
+par_compare_exit_codes fdsh sig 21=0 0=2=2
+par_compare_exit_codes fdsh exit 149=0 149=2=2
+par_compare_exit_codes fdsh sig 22=0 0=2=2
+par_compare_exit_codes fdsh exit 150=0 150=2=2
+par_compare_exit_codes fdsh sig 23=0 0=2=2
+par_compare_exit_codes fdsh exit 151=0 151=2=2
+par_compare_exit_codes fdsh sig 26=0 154=2=2
+par_compare_exit_codes fdsh exit 154=0 154=2=2
+par_compare_exit_codes fdsh sig 27=0 155=2=2
+par_compare_exit_codes fdsh exit 155=0 155=2=2
+par_compare_exit_codes fdsh sig 29=0 157=2=2
+par_compare_exit_codes fdsh exit 157=0 157=2=2
+par_compare_exit_codes fdsh sig 30=0 158=2=2
+par_compare_exit_codes fdsh exit 158=0 158=2=2
+par_compare_exit_codes fdsh sig 32=0 0=2=2
+par_compare_exit_codes fdsh exit 160=0 160=2=2
+par_compare_exit_codes fdsh sig 33=0 0=2=2
+par_compare_exit_codes fdsh exit 161=0 161=2=2
+par_compare_exit_codes fdsh sig 35=0 163=2=2
+par_compare_exit_codes fdsh exit 163=0 163=2=2
+par_compare_exit_codes fdsh sig 36=0 164=2=2
+par_compare_exit_codes fdsh exit 164=0 164=2=2
+par_compare_exit_codes fdsh sig 37=0 165=2=2
+par_compare_exit_codes fdsh exit 165=0 165=2=2
+par_compare_exit_codes fdsh sig 38=0 166=2=2
+par_compare_exit_codes fdsh exit 166=0 166=2=2
+par_compare_exit_codes fdsh sig 39=0 167=2=2
+par_compare_exit_codes fdsh exit 167=0 167=2=2
+par_compare_exit_codes fdsh sig 40=0 168=2=2
+par_compare_exit_codes fdsh exit 168=0 168=2=2
+par_compare_exit_codes fdsh sig 41=0 169=2=2
+par_compare_exit_codes fdsh exit 169=0 169=2=2
+par_compare_exit_codes fdsh sig 42=0 170=2=2
+par_compare_exit_codes fdsh exit 170=0 170=2=2
+par_compare_exit_codes fdsh sig 43=0 171=2=2
+par_compare_exit_codes fdsh exit 171=0 171=2=2
+par_compare_exit_codes fdsh sig 45=0 173=2=2
+par_compare_exit_codes fdsh exit 173=0 173=2=2
+par_compare_exit_codes fdsh sig 46=0 174=2=2
+par_compare_exit_codes fdsh exit 174=0 174=2=2
+par_compare_exit_codes fdsh sig 47=0 175=2=2
+par_compare_exit_codes fdsh exit 175=0 175=2=2
+par_compare_exit_codes fdsh sig 48=0 176=2=2
+par_compare_exit_codes fdsh exit 176=0 176=2=2
+par_compare_exit_codes fdsh sig 49=0 177=2=2
+par_compare_exit_codes fdsh exit 177=0 177=2=2
+par_compare_exit_codes fdsh sig 50=0 178=2=2
+par_compare_exit_codes fdsh exit 178=0 178=2=2
+par_compare_exit_codes fdsh sig 51=0 179=2=2
+par_compare_exit_codes fdsh exit 179=0 179=2=2
+par_compare_exit_codes fdsh sig 52=0 180=2=2
+par_compare_exit_codes fdsh exit 180=0 180=2=2
+par_compare_exit_codes fdsh sig 53=0 181=2=2
+par_compare_exit_codes fdsh exit 181=0 181=2=2
+par_compare_exit_codes fdsh sig 55=0 183=2=2
+par_compare_exit_codes fdsh exit 183=0 183=2=2
+par_compare_exit_codes fdsh sig 56=0 184=2=2
+par_compare_exit_codes fdsh exit 184=0 184=2=2
+par_compare_exit_codes fdsh sig 57=0 185=2=2
+par_compare_exit_codes fdsh exit 185=0 185=2=2
+par_compare_exit_codes fdsh sig 58=0 186=2=2
+par_compare_exit_codes fdsh exit 186=0 186=2=2
+par_compare_exit_codes fdsh sig 59=0 187=2=2
+par_compare_exit_codes fdsh exit 187=0 187=2=2
+par_compare_exit_codes fdsh sig 60=0 188=2=2
+par_compare_exit_codes fdsh exit 188=0 188=2=2
+par_compare_exit_codes fdsh sig 61=0 189=2=2
+par_compare_exit_codes fdsh exit 189=0 189=2=2
+par_compare_exit_codes fdsh sig 62=0 190=2=2
+par_compare_exit_codes fdsh exit 190=0 190=2=2
+par_compare_exit_codes fdsh sig 63=0 191=2=2
+par_compare_exit_codes fdsh exit 191=0 191=2=2
par_halt_on_error -2 true true 0
par_halt_on_error -2 true true 0
par_halt_on_error -2 true true parallel: This job succeeded:
@@ -186,7 +317,7 @@
par_test_build_and_install make[0]: Entering directory '~/privat/parallel/src'
par_test_build_and_install make[0]: Leaving directory '~/privat/parallel/src'
par_test_build_and_install make[0]: Leaving directory '~/privat/parallel/src'
-par_test_build_and_install test -n "" \
+par_test_build_and_install test -n " \
par_test_build_and_install || find "parallel-00000000" -type d ! -perm -755 \
par_test_build_and_install -exec chmod u+rwx,go+rx {} \; -o \
par_test_build_and_install ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
@@ -223,12 +354,12 @@
par_test_build_and_install ln -s parallel "/tmp/parallel-install/bin"/sem
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
-par_test_build_and_install /bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.rst env_parallel.rst sem.rst sql.rst niceload.rst parallel_tutorial.rst parallel_book.rst parallel_design.rst parallel_alternatives.rst parcat.rst parset.rst parsort.rst parallel.pdf env_parallel.pdf sem.pdf sql.pdf '/tmp/parallel-install/share/doc/parallel'
-par_test_build_and_install /bin/install -c -m 644 niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf parallel_options_map.pdf '/tmp/parallel-install/share/doc/parallel'
+par_test_build_and_install /bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_examples.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_examples.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.rst env_parallel.rst sem.rst sql.rst niceload.rst parallel_examples.rst parallel_tutorial.rst parallel_book.rst parallel_design.rst parallel_alternatives.rst parcat.rst parset.rst parsort.rst parallel.pdf '/tmp/parallel-install/share/doc/parallel'
+par_test_build_and_install /bin/install -c -m 644 env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_examples.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf parallel_options_map.pdf '/tmp/parallel-install/share/doc/parallel'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1'
par_test_build_and_install /bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7'
-par_test_build_and_install /bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7'
+par_test_build_and_install /bin/install -c -m 644 parallel_examples.7 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7'
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000'
@@ -237,7 +368,7 @@
par_test_build_and_install make install-data-hook
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000'
par_test_build_and_install mkdir -p /tmp/parallel-install/share/zsh/site-functions /tmp/parallel-install/share/bash-completion/completions
-par_test_build_and_install src/parallel --shell-completion bash > /tmp/parallel-install/share/bash-completion/completions/parallel
+par_test_build_and_install /tmp/parallel-install/bin/parallel --shell-completion bash > /tmp/parallel-install/share/bash-completion/completions/parallel
par_test_build_and_install echo '#compdef parallel' > /tmp/parallel-install/share/zsh/site-functions/_parallel
par_test_build_and_install echo '(( $+functions[_comp_parallel] )) ||' >> /tmp/parallel-install/share/zsh/site-functions/_parallel
par_test_build_and_install echo ' eval "$(parallel --shell-completion auto)" &&' >> /tmp/parallel-install/share/zsh/site-functions/_parallel
@@ -294,6 +425,12 @@
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old niceload.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
+par_test_build_and_install --section=7 "."/parallel_examples.pod > "."/parallel_examples.7n \
+par_test_build_and_install && mv "."/parallel_examples.7n "."/parallel_examples.7 \
+par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_examples.7"
+par_test_build_and_install /bin/bash: line 1: pod2man: command not found
+par_test_build_and_install Warning: pod2man not found. Using old parallel_examples.7
+par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 "."/parallel_tutorial.pod > "."/parallel_tutorial.7n \
par_test_build_and_install && mv "."/parallel_tutorial.7n "."/parallel_tutorial.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
@@ -341,6 +478,12 @@
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html
par_test_build_and_install rm -f "."/pod2htm*
+par_test_build_and_install pod2html --title "GNU Parallel examples" "."/parallel_examples.pod > "."/parallel_examples.htmln \
+par_test_build_and_install && mv "."/parallel_examples.htmln "."/parallel_examples.html \
+par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_examples.html"
+par_test_build_and_install /bin/bash: line 1: pod2html: command not found
+par_test_build_and_install Warning: pod2html not found. Using old parallel_examples.html
+par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel tutorial" "."/parallel_tutorial.pod > "."/parallel_tutorial.htmln \
par_test_build_and_install && mv "."/parallel_tutorial.htmln "."/parallel_tutorial.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
@@ -415,6 +558,10 @@
par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi"
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi
+par_test_build_and_install pod2texi --output="."/parallel_examples.texi "."/parallel_examples.pod \
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-30s
^
|
@@ -1,3 +1,1610 @@
+par__groupby_big ### test --group-by on file bigger than block
+par__groupby_big --group-by on col 1..3, -n1..5
+par__groupby_big _pipe and _ppart (pipepart) must return the same
+par__groupby_big 1 _pipe _ppart
+par__groupby_big 1 0 0 0 0 0 0
+par__groupby_big 1 0 99 9 0 99 9
+par__groupby_big 1 _pipe _ppart
+par__groupby_big 1 1 0 0 1 0 0
+par__groupby_big 1 1 99 9 1 99 9
+par__groupby_big 1 _pipe _ppart
+par__groupby_big 1 2 0 0 2 0 0
+par__groupby_big 1 2 99 9 2 99 9
+par__groupby_big 1 _pipe _ppart
+par__groupby_big 1 3 0 0 3 0 0
+par__groupby_big 1 3 99 9 3 99 9
+par__groupby_big 1 _pipe _ppart
+par__groupby_big 1 4 0 0 4 0 0
+par__groupby_big 1 4 99 9 4 99 9
+par__groupby_big 1 _pipe _ppart
+par__groupby_big 1 5 0 0 5 0 0
+par__groupby_big 1 5 99 9 5 99 9
+par__groupby_big 1 _pipe _ppart
+par__groupby_big 1 6 0 0 6 0 0
+par__groupby_big 1 6 99 9 6 99 9
+par__groupby_big 1 _pipe _ppart
+par__groupby_big 1 7 0 0 7 0 0
+par__groupby_big 1 7 99 9 7 99 9
+par__groupby_big 1 _pipe _ppart
+par__groupby_big 1 8 0 0 8 0 0
+par__groupby_big 1 8 99 9 8 99 9
+par__groupby_big 1 _pipe _ppart
+par__groupby_big 1 9 0 0 9 0 0
+par__groupby_big 1 9 99 9 9 99 9
+par__groupby_big 1 -n1 _pipe _ppart
+par__groupby_big 1 -n1 0 0 0 0 0 0
+par__groupby_big 1 -n1 0 99 9 0 99 9
+par__groupby_big 1 -n1 _pipe _ppart
+par__groupby_big 1 -n1 1 0 0 1 0 0
+par__groupby_big 1 -n1 1 99 9 1 99 9
+par__groupby_big 1 -n1 _pipe _ppart
+par__groupby_big 1 -n1 2 0 0 2 0 0
+par__groupby_big 1 -n1 2 99 9 2 99 9
+par__groupby_big 1 -n1 _pipe _ppart
+par__groupby_big 1 -n1 3 0 0 3 0 0
+par__groupby_big 1 -n1 3 99 9 3 99 9
+par__groupby_big 1 -n1 _pipe _ppart
+par__groupby_big 1 -n1 4 0 0 4 0 0
+par__groupby_big 1 -n1 4 99 9 4 99 9
+par__groupby_big 1 -n1 _pipe _ppart
+par__groupby_big 1 -n1 5 0 0 5 0 0
+par__groupby_big 1 -n1 5 99 9 5 99 9
+par__groupby_big 1 -n1 _pipe _ppart
+par__groupby_big 1 -n1 6 0 0 6 0 0
+par__groupby_big 1 -n1 6 99 9 6 99 9
+par__groupby_big 1 -n1 _pipe _ppart
+par__groupby_big 1 -n1 7 0 0 7 0 0
+par__groupby_big 1 -n1 7 99 9 7 99 9
+par__groupby_big 1 -n1 _pipe _ppart
+par__groupby_big 1 -n1 8 0 0 8 0 0
+par__groupby_big 1 -n1 8 99 9 8 99 9
+par__groupby_big 1 -n1 _pipe _ppart
+par__groupby_big 1 -n1 9 0 0 9 0 0
+par__groupby_big 1 -n1 9 99 9 9 99 9
+par__groupby_big 1 -n2 _pipe _ppart
+par__groupby_big 1 -n2 0 0 0 0 0 0
+par__groupby_big 1 -n2 1 99 9 1 99 9
+par__groupby_big 1 -n2 _pipe _ppart
+par__groupby_big 1 -n2 2 0 0 2 0 0
+par__groupby_big 1 -n2 3 99 9 3 99 9
+par__groupby_big 1 -n2 _pipe _ppart
+par__groupby_big 1 -n2 4 0 0 4 0 0
+par__groupby_big 1 -n2 5 99 9 5 99 9
+par__groupby_big 1 -n2 _pipe _ppart
+par__groupby_big 1 -n2 6 0 0 6 0 0
+par__groupby_big 1 -n2 7 99 9 7 99 9
+par__groupby_big 1 -n2 _pipe _ppart
+par__groupby_big 1 -n2 8 0 0 8 0 0
+par__groupby_big 1 -n2 9 99 9 9 99 9
+par__groupby_big 1 -n2 parallel: Warning: A record was longer than 1048576. Increasing to --blocksize 1363150.
+par__groupby_big 1 -n2 parallel: Warning: A record was longer than 1363150. Increasing to --blocksize 1772096.
+par__groupby_big 1 -n3 _pipe _ppart
+par__groupby_big 1 -n3 0 0 0 0 0 0
+par__groupby_big 1 -n3 2 99 9 2 99 9
+par__groupby_big 1 -n3 _pipe _ppart
+par__groupby_big 1 -n3 3 0 0 3 0 0
+par__groupby_big 1 -n3 5 99 9 5 99 9
+par__groupby_big 1 -n3 _pipe _ppart
+par__groupby_big 1 -n3 6 0 0 6 0 0
+par__groupby_big 1 -n3 8 99 9 8 99 9
+par__groupby_big 1 -n3 _pipe _ppart
+par__groupby_big 1 -n3 9 0 0 9 0 0
+par__groupby_big 1 -n3 9 99 9 9 99 9
+par__groupby_big 1 -n3 parallel: Warning: A record was longer than 1048576. Increasing to --blocksize 1363150.
+par__groupby_big 1 -n3 parallel: Warning: A record was longer than 1363150. Increasing to --blocksize 1772096.
+par__groupby_big 1 -n3 parallel: Warning: A record was longer than 1772096. Increasing to --blocksize 2303726.
+par__groupby_big 1 -n4 _pipe _ppart
+par__groupby_big 1 -n4 0 0 0 0 0 0
+par__groupby_big 1 -n4 3 99 9 3 99 9
+par__groupby_big 1 -n4 _pipe _ppart
+par__groupby_big 1 -n4 4 0 0 4 0 0
+par__groupby_big 1 -n4 7 99 9 7 99 9
+par__groupby_big 1 -n4 _pipe _ppart
+par__groupby_big 1 -n4 8 0 0 8 0 0
+par__groupby_big 1 -n4 9 99 9 9 99 9
+par__groupby_big 1 -n4 parallel: Warning: A record was longer than 1048576. Increasing to --blocksize 1363150.
+par__groupby_big 1 -n4 parallel: Warning: A record was longer than 1363150. Increasing to --blocksize 1772096.
+par__groupby_big 1 -n4 parallel: Warning: A record was longer than 1772096. Increasing to --blocksize 2303726.
+par__groupby_big 1 -n4 parallel: Warning: A record was longer than 2303726. Increasing to --blocksize 2994845.
+par__groupby_big 1 -n5 _pipe _ppart
+par__groupby_big 1 -n5 0 0 0 0 0 0
+par__groupby_big 1 -n5 4 99 9 4 99 9
+par__groupby_big 1 -n5 _pipe _ppart
+par__groupby_big 1 -n5 5 0 0 5 0 0
+par__groupby_big 1 -n5 9 99 9 9 99 9
+par__groupby_big 1 -n5 parallel: Warning: A record was longer than 1048576. Increasing to --blocksize 1363150.
+par__groupby_big 1 -n5 parallel: Warning: A record was longer than 1363150. Increasing to --blocksize 1772096.
+par__groupby_big 1 -n5 parallel: Warning: A record was longer than 1772096. Increasing to --blocksize 2303726.
+par__groupby_big 1 -n5 parallel: Warning: A record was longer than 2303726. Increasing to --blocksize 2994845.
+par__groupby_big 1 -n5 parallel: Warning: A record was longer than 2994845. Increasing to --blocksize 3893300.
+par__groupby_big 2 _pipe _ppart
+par__groupby_big 2 0 0 0 0 0 0
+par__groupby_big 2 9 14 9 9 1 9
+par__groupby_big 2 _pipe _ppart
+par__groupby_big 2 0 15 0 0 2 0
+par__groupby_big 2 9 28 9 9 3 9
+par__groupby_big 2 _pipe _ppart
+par__groupby_big 2 0 29 0 0 4 0
+par__groupby_big 2 9 42 9 9 5 9
+par__groupby_big 2 _pipe _ppart
+par__groupby_big 2 0 43 0 0 6 0
+par__groupby_big 2 9 56 9 9 7 9
+par__groupby_big 2 _pipe _ppart
+par__groupby_big 2 0 57 0 0 8 0
+par__groupby_big 2 9 70 9 9 9 9
+par__groupby_big 2 _pipe _ppart
+par__groupby_big 2 0 71 0 0 10 0
+par__groupby_big 2 9 84 9 9 11 9
+par__groupby_big 2 _pipe _ppart
+par__groupby_big 2 0 85 0 0 12 0
+par__groupby_big 2 9 98 9 9 13 9
+par__groupby_big 2 _pipe _ppart
+par__groupby_big 2 0 99 0 0 14 0
+par__groupby_big 2 9 99 9 9 15 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 16 0
+par__groupby_big 2 9 17 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 18 0
+par__groupby_big 2 9 19 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 20 0
+par__groupby_big 2 9 21 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 22 0
+par__groupby_big 2 9 23 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 24 0
+par__groupby_big 2 9 25 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 26 0
+par__groupby_big 2 9 27 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 28 0
+par__groupby_big 2 9 29 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 30 0
+par__groupby_big 2 9 31 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 32 0
+par__groupby_big 2 9 33 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 34 0
+par__groupby_big 2 9 35 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 36 0
+par__groupby_big 2 9 37 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 38 0
+par__groupby_big 2 9 39 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 40 0
+par__groupby_big 2 9 41 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 42 0
+par__groupby_big 2 9 43 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 44 0
+par__groupby_big 2 9 45 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 46 0
+par__groupby_big 2 9 47 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 48 0
+par__groupby_big 2 9 49 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 50 0
+par__groupby_big 2 9 51 9
+par__groupby_big 2 _ppart
+par__groupby_big 2 0 52 0
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-3s
^
|
@@ -1,17 +1,173 @@
-par_10000_5_rpl_X ### Test -X with 10000 args and 5 replacement strings
-par_10000_5_rpl_X 5
-par_10000_5_rpl_X 4
-par_10000_5_rpl_X 4
-par_10000_5_rpl_X 3
-par_10000_5_rpl_X 2
par_10000_m_X ### Test -m with 10000 args
par_10000_m_X 3 29994 186685
-par_10000_m_X 68c56110ece48d4cd34af322ea65ebaf -
+par_10000_m_X 5642f8f374aa4881e96f4f49e932d109 -
par_X_I_meta ### Test -X -I with shell meta chars
par_X_I_meta 3
par_X_I_meta 3
par_X_I_meta 3
par_X_I_meta 3
+par__10000_5_rpl_X ### Test -X with 10000 args and 5 replacement strings
+par__10000_5_rpl_X 5
+par__10000_5_rpl_X 4
+par__10000_5_rpl_X 4
+par__10000_5_rpl_X 3
+par__10000_5_rpl_X 2
+par__parset_assoc_arr bash@lo parset into an assoc array
+par__parset_assoc_arr bash@lo val 1 val 2 val 3
+par__parset_assoc_arr bash@lo val 1 val 2 val 3
+par__parset_assoc_arr bash@lo val 1 val 2 val 3
+par__parset_assoc_arr bash@lo Bad var name
+par__parset_assoc_arr bash@lo parset: Error: -badname is an invalid variable name.
+par__parset_assoc_arr bash@lo parset: Error: Variable names must be letter followed by letters or digits.
+par__parset_assoc_arr bash@lo parset: Error: Usage:
+par__parset_assoc_arr bash@lo parset: Error: parset varname GNU Parallel options and command
+par__parset_assoc_arr bash@lo Too few var names
+par__parset_assoc_arr bash@lo parset: Error: Too few named destination variables
+par__parset_assoc_arr bash@lo val 2
+par__parset_assoc_arr bash@lo Exit value
+par__parset_assoc_arr bash@lo 2
+par__parset_assoc_arr bash@lo 2
+par__parset_assoc_arr bash@lo 2
+par__parset_assoc_arr bash@lo Stderr to stderr
+par__parset_assoc_arr bash@lo ls: cannot access 'no-such-file': No such file or directory
+par__parset_assoc_arr bash@lo ls: cannot access 'no-such-file': No such file or directory
+par__parset_assoc_arr bash@lo ls: cannot access 'no-such-file1': No such file or directory
+par__parset_assoc_arr bash@lo ls: cannot access 'no-such-file2': No such file or directory
+par__parset_assoc_arr ksh@lo parset into an assoc array
+par__parset_assoc_arr ksh@lo val 1 val 2 val 3
+par__parset_assoc_arr ksh@lo val 1 val 2 val 3
+par__parset_assoc_arr ksh@lo val 1 val 2 val 3
+par__parset_assoc_arr ksh@lo Bad var name
+par__parset_assoc_arr ksh@lo parset: Error: -badname is an invalid variable name.
+par__parset_assoc_arr ksh@lo parset: Error: Variable names must be letter followed by letters or digits.
+par__parset_assoc_arr ksh@lo parset: Error: Usage:
+par__parset_assoc_arr ksh@lo parset: Error: parset varname GNU Parallel options and command
+par__parset_assoc_arr ksh@lo Too few var names
+par__parset_assoc_arr ksh@lo parset: Error: Too few named destination variables
+par__parset_assoc_arr ksh@lo val 2
+par__parset_assoc_arr ksh@lo Exit value
+par__parset_assoc_arr ksh@lo 2
+par__parset_assoc_arr ksh@lo 2
+par__parset_assoc_arr ksh@lo 2
+par__parset_assoc_arr ksh@lo Stderr to stderr
+par__parset_assoc_arr ksh@lo ls: cannot access 'no-such-file': No such file or directory
+par__parset_assoc_arr ksh@lo ls: cannot access 'no-such-file': No such file or directory
+par__parset_assoc_arr ksh@lo ls: cannot access 'no-such-file1': No such file or directory
+par__parset_assoc_arr ksh@lo ls: cannot access 'no-such-file2': No such file or directory
+par__parset_assoc_arr zsh@lo parset into an assoc array
+par__parset_assoc_arr zsh@lo val 1 val 2 val 3
+par__parset_assoc_arr zsh@lo val 1 val 2
+par__parset_assoc_arr zsh@lo val 1 val 2 val 3
+par__parset_assoc_arr zsh@lo Bad var name
+par__parset_assoc_arr zsh@lo parset: Error: -badname is an invalid variable name.
+par__parset_assoc_arr zsh@lo parset: Error: Variable names must be letter followed by letters or digits.
+par__parset_assoc_arr zsh@lo parset: Error: Usage:
+par__parset_assoc_arr zsh@lo parset: Error: parset varname GNU Parallel options and command
+par__parset_assoc_arr zsh@lo Too few var names
+par__parset_assoc_arr zsh@lo parset: Error: Too few named destination variables
+par__parset_assoc_arr zsh@lo val 2
+par__parset_assoc_arr zsh@lo Exit value
+par__parset_assoc_arr zsh@lo 2
+par__parset_assoc_arr zsh@lo 2
+par__parset_assoc_arr zsh@lo 2
+par__parset_assoc_arr zsh@lo Stderr to stderr
+par__parset_assoc_arr zsh@lo ls: cannot access 'no-such-file': No such file or directory
+par__parset_assoc_arr zsh@lo ls: cannot access 'no-such-file': No such file or directory
+par__parset_assoc_arr zsh@lo ls: cannot access 'no-such-file1': No such file or directory
+par__parset_assoc_arr zsh@lo ls: cannot access 'no-such-file2': No such file or directory
+par__prefix_for_L_n_N_s Must give xxx000 args
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s 1000
+par__prefix_for_L_n_N_s Must give xxx000 lines
+par__prefix_for_L_n_N_s 149000
+par__prefix_for_L_n_N_s 149000
+par__prefix_for_L_n_N_s 149000
+par__prefix_for_L_n_N_s 149000
+par__prefix_for_L_n_N_s 149000
+par__prefix_for_L_n_N_s 165000
+par__prefix_for_L_n_N_s 90000
+par__prefix_for_L_n_N_s Must give max 1000 chars per line
+par__prefix_for_L_n_N_s 126
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 197
+par__prefix_for_L_n_N_s 244
+par__prefix_for_L_n_N_s 246
+par__prefix_for_L_n_N_s 246
+par__prefix_for_L_n_N_s 273
+par__tee_too_many_args ### Fail if there are more arguments than --jobs
+par__tee_too_many_args 1 1
+par__tee_too_many_args 1 10
+par__tee_too_many_args 1 11
+par__tee_too_many_args 2 2
+par__tee_too_many_args 3 3
+par__tee_too_many_args 4 4
+par__tee_too_many_args parallel: Warning: Only enough file handles to run 999 jobs in parallel.
+par__tee_too_many_args parallel: Warning: Try running 'parallel -j999 -N 999 --pipe parallel -j999'
+par__tee_too_many_args parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`)
+par__tee_too_many_args parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf
+par__tee_too_many_args parallel: Warning: or increasing /proc/sys/fs/file-max
+par__tee_too_many_args parallel: Error: --tee requires --jobs to be higher. Try --jobs 999.
par_children_receive_sig ### Do children receive --termseq signals
par_children_receive_sig parallel: Warning: This job was killed because it timed out:
par_children_receive_sig parallel: Warning: show_signals ''
@@ -177,69 +333,82 @@
par_multiline_commands parallel: Warning: Command lines contain newline. Forcing --null.
par_multiline_commands 4
par_multiline_commands finish 4
-par_parset_assoc_arr bash@lo parset into an assoc array
-par_parset_assoc_arr bash@lo val 1 val 2 val 3
-par_parset_assoc_arr bash@lo val 1 val 2 val 3
-par_parset_assoc_arr bash@lo val 1 val 2 val 3
-par_parset_assoc_arr bash@lo Bad var name
-par_parset_assoc_arr bash@lo parset: Error: -badname is an invalid variable name.
-par_parset_assoc_arr bash@lo parset: Error: Variable names must be letter followed by letters or digits.
-par_parset_assoc_arr bash@lo parset: Error: Usage:
-par_parset_assoc_arr bash@lo parset: Error: parset varname GNU Parallel options and command
-par_parset_assoc_arr bash@lo Too few var names
-par_parset_assoc_arr bash@lo parset: Error: Too few named destination variables
-par_parset_assoc_arr bash@lo val 2
-par_parset_assoc_arr bash@lo Exit value
-par_parset_assoc_arr bash@lo 2
-par_parset_assoc_arr bash@lo 2
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-race01
^
|
@@ -5,11 +5,29 @@
par_bug56403 1 job1a
par_bug56403 1 job1b
par_bug56403 2 job2cjob2d
+par_change_content_--jobs_filename ### Test of -j filename with file content changing (missing -k is correct)
+par_change_content_--jobs_filename sleep 3.3
+par_change_content_--jobs_filename sleep 0.1
+par_change_content_--jobs_filename sleep 0.2
+par_change_content_--jobs_filename sleep 0.3
+par_change_content_--jobs_filename sleep 0.4
+par_change_content_--jobs_filename sleep 0.5
+par_change_content_--jobs_filename sleep 0.6
+par_change_content_--jobs_filename sleep 0.7
+par_change_content_--jobs_filename sleep 2.1
+par_change_content_--jobs_filename sleep 2.2
+par_change_content_--jobs_filename sleep 2.3
+par_change_content_--jobs_filename sleep 2.4
+par_change_content_--jobs_filename sleep 2.5
+par_csv_not_installed ### Give error if CSV.pm is not installed when using --csv
+par_csv_not_installed parallel: Error: The perl module Text::CSV is not installed.
+par_csv_not_installed parallel: Error: Try installing libtext-csv-perl or perl-Text-CSV.
par_delay_Xauto TODO: --retries for those that fail and --sshdelay
par_delay_Xauto ### bug #58911: --delay Xauto
par_delay_Xauto 0
par_delay_Xauto 2
-par_distribute_input_by_ability ### bug #48290: round-robin does not distribute data based on business
+par_distribute_input_by_ability ### bug #48290: round-robin does not distribute data
+par_distribute_input_by_ability based on busy-ness
par_distribute_input_by_ability ### Distribute input to jobs that are ready
par_distribute_input_by_ability Job-slot n is 50% slower than n+1, so the order should be 1..7
par_distribute_input_by_ability 1
@@ -41,20 +59,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
@@ -71,26 +89,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-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-race02
^
|
@@ -1,15 +1,18 @@
bug #46120: Suspend should suspend (at least local) children
it should burn 1.9 CPU seconds, but no more than that
The 5 second sleep will make it be killed by timeout when it fgs
+input_source_pipe
-stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | \grep -q CPUTIME=1
+$cmd
Zero=OK 0
+input_source_cmdline
-echo 1 | stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" | \grep -q CPUTIME=1
+$cmd
Zero=OK 0
-Control case: Burn for 2.9 seconds
+Control case: This should run 2.9 seconds
+input_source_cmdline
-stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | \grep -q CPUTIME=1
+$cmd
1=OK 1
par_PARALLEL_RSYNC_OPTS ### test rsync opts
par_PARALLEL_RSYNC_OPTS -rlDzRRRR
@@ -43,12 +46,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 +67,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 +82,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
@@ -118,9 +105,6 @@
par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
par_kill_hup bash---pstree
-par_ll_lb_color bug #62386: --color (--ctag but without --tag)
-par_ll_lb_color bug #62438: See last line from multiple jobslots
-par_ll_lb_color 90c6a891f3cd706c82a76c9747de176c -
par_more_than_9_relative_sshlogin ### Check more than 9(relative) simultaneous sshlogins
par_more_than_9_relative_sshlogin 1
par_more_than_9_relative_sshlogin 2
@@ -166,6 +150,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-20230522+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-20230522+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 ,,
@@ -100,6 +104,7 @@
par_sshpass_with_password ### sshpass
par_sshpass_with_password OK
par_sshpass_with_password OK
+par_sshpass_with_password OK
par_stop_if_no_hosts_left ### Stop if all hosts are filtered and there are no hosts left to run on
par_stop_if_no_hosts_left parallel: Warning: Removed no-such.host.
par_stop_if_no_hosts_left parallel: Error: Cannot run any jobs.
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-ssh4
^
|
@@ -1,3 +1,198 @@
+par_--nonall_results ### --results --onall
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+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 parallel: Warning: --(n)onall + --results not supported (yet).
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+par_--nonall_results parallel: Warning: --(n)onall + --results not supported (yet).
+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_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__--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__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 +213,6 @@
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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 9
-par_command_len_shellquote -Slo -j10 ' 2 2 1 1 27
-par_command_len_shellquote -Slo -j10 ' 2 3 1 1 81
-par_command_len_shellquote -Slo -j10 ' 2 4 1 1 243
-par_command_len_shellquote -Slo -j10 ' 2 5 1 1 729
-par_command_len_shellquote -Slo -j10 ' 2 6 1 1 2187
-par_command_len_shellquote -Slo -j10 ' 2 7 1 1 6561
-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 14
-par_command_len_shellquote -Slo -j10 ' 3 2 1 1 44
-par_command_len_shellquote -Slo -j10 ' 3 3 1 1 134
-par_command_len_shellquote -Slo -j10 ' 3 4 1 1 404
-par_command_len_shellquote -Slo -j10 ' 3 5 1 1 1214
-par_command_len_shellquote -Slo -j10 ' 3 6 1 1 3644
-par_command_len_shellquote -Slo -j10 ' 3 7 1 1 10xxx
-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 19
-par_command_len_shellquote -Slo -j10 ' 4 2 1 1 61
-par_command_len_shellquote -Slo -j10 ' 4 3 1 1 187
-par_command_len_shellquote -Slo -j10 ' 4 4 1 1 565
-par_command_len_shellquote -Slo -j10 ' 4 5 1 1 1699
-par_command_len_shellquote -Slo -j10 ' 4 6 1 1 5101
-par_command_len_shellquote -Slo -j10 ' 4 7 1 1 15xxx
-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 24
-par_command_len_shellquote -Slo -j10 ' 5 2 1 1 78
-par_command_len_shellquote -Slo -j10 ' 5 3 1 1 240
-par_command_len_shellquote -Slo -j10 ' 5 4 1 1 726
-par_command_len_shellquote -Slo -j10 ' 5 5 1 1 2184
-par_command_len_shellquote -Slo -j10 ' 5 6 1 1 6558
-par_command_len_shellquote -Slo -j10 ' 5 7 1 1 19xxx
-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 29
-par_command_len_shellquote -Slo -j10 ' 6 2 1 1 95
-par_command_len_shellquote -Slo -j10 ' 6 3 1 1 293
-par_command_len_shellquote -Slo -j10 ' 6 4 1 1 887
-par_command_len_shellquote -Slo -j10 ' 6 5 1 1 2669
-par_command_len_shellquote -Slo -j10 ' 6 6 1 1 8015
-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 34
-par_command_len_shellquote -Slo -j10 ' 7 2 1 1 112
-par_command_len_shellquote -Slo -j10 ' 7 3 1 1 346
-par_command_len_shellquote -Slo -j10 ' 7 4 1 1 1048
-par_command_len_shellquote -Slo -j10 ' 7 5 1 1 3154
-par_command_len_shellquote -Slo -j10 ' 7 6 1 1 9472
-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 39
-par_command_len_shellquote -Slo -j10 ' 8 2 1 1 129
-par_command_len_shellquote -Slo -j10 ' 8 3 1 1 399
-par_command_len_shellquote -Slo -j10 ' 8 4 1 1 1209
-par_command_len_shellquote -Slo -j10 ' 8 5 1 1 3639
-par_command_len_shellquote -Slo -j10 ' 8 6 1 1 10xxx
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local-ssh8
^
|
@@ -1,17 +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_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_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_load_csh ### Gave Word too long.
par_load_csh a
par_path_remote_bash bug #47695: How to set $PATH on remote? Bash
@@ -36,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-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local104
^
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local13
^
|
@@ -459,7 +459,7 @@
### true < 32767-ys.xi
stdout xargs true < 32767-ys.xi
stdout parallel -k true < 32767-ys.xi
-parallel: Error: Command line too long (65541 >= 64031) at input 0: y y y y y y y y y y y y y y y y y y y y y y y y y ...
+parallel: Error: Command line too long (65541 >= 63664) at input 0: y y y y y y y y y y y y y y y y y y y y y y y y y ...
echo '### true < 16383-ys.xi'
### true < 16383-ys.xi
stdout xargs true < 16383-ys.xi
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local150
^
|
@@ -1,33 +1,3 @@
-echo '### bug #41565: Print happens in blocks - not after each job complete'
-### bug #41565: Print happens in blocks - not after each job complete
-echo 'The timing here is important: a full second between each'
-The timing here is important: a full second between each
- perl -e 'for(1..30){print("$_\n");`sleep 1`}' | parallel -j3 'echo {#}' | timestamp -dd | perl -pe '$_=int($_+0.3)."\n"' | median
-1
-echo '300 ms jobs:'
-300 ms jobs:
- perl -e 'for(1..30){print("$_\n");`sleep .3`}' | parallel -j3 --delay 0.3 echo | timestamp -d -d | perl -pe 's/(.....).*/int($1*10+0.2)/e' | median
-3
-echo '### Test --tagstring'
-### Test --tagstring
- nice parallel -j1 -X -v --tagstring a{}b echo ::: 3 4
-a3b a4b echo 3 4
-a3b a4b 3 4
- nice parallel -j1 -k -v --tagstring a{}b echo ::: 3 4
-a3b echo 3
-a3b 3
-a4b echo 4
-a4b 4
- nice parallel -j1 -k -v --tagstring a{}b echo job{#} ::: 3 4
-a3b echo job1
-a3b job1
-a4b echo job2
-a4b job2
- nice parallel -j1 -k -v --tagstring ajob{#}b echo job{#} ::: 3 4
-ajob1b echo job1
-ajob1b job1
-ajob2b echo job2
-ajob2b job2
echo '### Bug in --load'; nice parallel -k --load 30 sleep 0.1\;echo ::: 1 2 3
### Bug in --load
1
@@ -41,85 +11,6 @@
7.7
8.8
9.9
-echo '### Test retired'
-### Test retired
- stdout parallel -B foo
-parallel: Error: -g has been retired. Use --group.
-parallel: Error: -B has been retired. Use --bf.
-parallel: Error: -T has been retired. Use --tty.
-parallel: Error: -U has been retired. Use --er.
-parallel: Error: -W has been retired. Use --wd.
-parallel: Error: -Y has been retired. Use --shebang.
-parallel: Error: -H has been retired. Use --halt.
-parallel: Error: --sql has been retired. Use --sqlmaster.
-parallel: Error: --ctrlc has been retired.
-parallel: Error: --noctrlc has been retired.
- stdout parallel -g
-parallel: Error: -g has been retired. Use --group.
-parallel: Error: -B has been retired. Use --bf.
-parallel: Error: -T has been retired. Use --tty.
-parallel: Error: -U has been retired. Use --er.
-parallel: Error: -W has been retired. Use --wd.
-parallel: Error: -Y has been retired. Use --shebang.
-parallel: Error: -H has been retired. Use --halt.
-parallel: Error: --sql has been retired. Use --sqlmaster.
-parallel: Error: --ctrlc has been retired.
-parallel: Error: --noctrlc has been retired.
- stdout parallel -H 1
-parallel: Error: -g has been retired. Use --group.
-parallel: Error: -B has been retired. Use --bf.
-parallel: Error: -T has been retired. Use --tty.
-parallel: Error: -U has been retired. Use --er.
-parallel: Error: -W has been retired. Use --wd.
-parallel: Error: -Y has been retired. Use --shebang.
-parallel: Error: -H has been retired. Use --halt.
-parallel: Error: --sql has been retired. Use --sqlmaster.
-parallel: Error: --ctrlc has been retired.
-parallel: Error: --noctrlc has been retired.
- stdout parallel -T
-parallel: Error: -g has been retired. Use --group.
-parallel: Error: -B has been retired. Use --bf.
-parallel: Error: -T has been retired. Use --tty.
-parallel: Error: -U has been retired. Use --er.
-parallel: Error: -W has been retired. Use --wd.
-parallel: Error: -Y has been retired. Use --shebang.
-parallel: Error: -H has been retired. Use --halt.
-parallel: Error: --sql has been retired. Use --sqlmaster.
-parallel: Error: --ctrlc has been retired.
-parallel: Error: --noctrlc has been retired.
- stdout parallel -U foo
-parallel: Error: -g has been retired. Use --group.
-parallel: Error: -B has been retired. Use --bf.
-parallel: Error: -T has been retired. Use --tty.
-parallel: Error: -U has been retired. Use --er.
-parallel: Error: -W has been retired. Use --wd.
-parallel: Error: -Y has been retired. Use --shebang.
-parallel: Error: -H has been retired. Use --halt.
-parallel: Error: --sql has been retired. Use --sqlmaster.
-parallel: Error: --ctrlc has been retired.
-parallel: Error: --noctrlc has been retired.
- stdout parallel -W foo
-parallel: Error: -g has been retired. Use --group.
-parallel: Error: -B has been retired. Use --bf.
-parallel: Error: -T has been retired. Use --tty.
-parallel: Error: -U has been retired. Use --er.
-parallel: Error: -W has been retired. Use --wd.
-parallel: Error: -Y has been retired. Use --shebang.
-parallel: Error: -H has been retired. Use --halt.
-parallel: Error: --sql has been retired. Use --sqlmaster.
-parallel: Error: --ctrlc has been retired.
-parallel: Error: --noctrlc has been retired.
- stdout parallel -Y
-parallel: Error: -g has been retired. Use --group.
-parallel: Error: -B has been retired. Use --bf.
-parallel: Error: -T has been retired. Use --tty.
-parallel: Error: -U has been retired. Use --er.
-parallel: Error: -W has been retired. Use --wd.
-parallel: Error: -Y has been retired. Use --shebang.
-parallel: Error: -H has been retired. Use --halt.
-parallel: Error: --sql has been retired. Use --sqlmaster.
-parallel: Error: --ctrlc has been retired.
-parallel: Error: --noctrlc has been retired.
echo '### Test --joblog followed by --resume --joblog'
### Test --joblog followed by --resume --joblog
rm -f /tmp/joblog; timeout -k 1 1 parallel -j2 --joblog /tmp/joblog sleep {} ::: 1.1 2.2 3.3 4.4 2>/dev/null; parallel -j2 --resume --joblog /tmp/joblog sleep {} ::: 1.1 2.2 3.3 4.4; cat /tmp/joblog | wc -lw; rm -f /tmp/joblog; echo '### Test --resume --joblog followed by --resume --joblog'; rm -f /tmp/joblog2; timeout -k 1 1 parallel -j2 --resume --joblog /tmp/joblog2 sleep {} ::: 1.1 2.2 3.3 4.4 2>/dev/null; parallel -j2 --resume --joblog /tmp/joblog2 sleep {} ::: 1.1 2.2 3.3 4.4; cat /tmp/joblog2 | wc -lw; rm -f /tmp/joblog2; echo '### Test --header'
@@ -141,95 +32,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
-a
-b
-echo '### Run commands using --arg-sep'
-### Run commands using --arg-sep
- parallel -kv ::: 'echo a' 'echo b'
-echo a
-a
-echo b
-b
-echo '### Change --arg-sep'
-### Change --arg-sep
- parallel --arg-sep ::: -kv ::: 'echo a' 'echo b'
-echo a
-a
-echo b
-b
- parallel --arg-sep .--- -kv .--- 'echo a' 'echo b'
-echo a
-a
-echo b
-b
- parallel --argsep ::: -kv ::: 'echo a' 'echo b'
-echo a
-a
-echo b
-b
- parallel --argsep .--- -kv .--- 'echo a' 'echo b'
-echo a
-a
-echo b
-b
-echo '### Test stdin goes to first command only'
-### Test stdin goes to first command only
- echo via cat |parallel --arg-sep .--- -kv .--- 'cat' 'echo b'
-cat
-echo b
-b
- echo via cat |parallel -kv ::: 'cat' 'echo b'
-cat
-echo b
-b
-echo '### Bug made 4 5 go before 1 2 3'
-### Bug made 4 5 go before 1 2 3
- parallel -k ::: "sleep 1; echo 1" "echo 2" "echo 3" "echo 4" "echo 5"
-1
-2
-3
-4
-5
-echo '### Bug made 3 go before 1 2'
-### Bug made 3 go before 1 2
- parallel -kj 1 ::: "sleep 1; echo 1" "echo 2" "echo 3"
-1
-2
-3
-echo '### Bug did not quote'
-### Bug did not quote
- echo '>' | parallel -v echo
-echo '>'
->
- parallel -v echo ::: '>'
-echo '>'
->
- (echo '>'; echo 2) | parallel -j1 -vX echo
-echo '>' 2
-> 2
- parallel -X -j1 echo ::: '>' 2
-> 2
-echo '### Must not quote'; echo 'echo | wc -l' | parallel -v
-### Must not quote
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local22
^
|
@@ -1,16 +1,16 @@
echo '### Test of xargs -m command lines > 130k'; seq 1 60000 | parallel -m -j1 echo a{}b{}c | tee >(wc >/tmp/awc$$) >(sort | md5sum) >/tmp/a$$; wait; CHAR=$(cat /tmp/a$$ | wc -c); LINES=$(cat /tmp/a$$ | wc -l); echo "Chars per line:" $(echo "$CHAR/$LINES" | bc); cat /tmp/awc$$; rm /tmp/a$$ /tmp/awc$$
### Test of xargs -m command lines > 130k
-2f0d9d11a071f5dbe6bd876a19499ff5 -
+a3c892de2524f32f78550b47336eadd0 -
Chars per line: 63437
11 119989 697810
echo '### Test of xargs -X command lines > 130k'; seq 1 60000 | parallel -X -j1 echo a{}b{}c | tee >(wc >/tmp/bwc$$) >(sort | (sleep 1; md5sum)) >/tmp/b$$; wait; CHAR=$(cat /tmp/b$$ | wc -c); LINES=$(cat /tmp/b$$ | wc -l); echo "Chars per line:" $(echo "$CHAR/$LINES" | bc); cat /tmp/bwc$$; rm /tmp/b$$ /tmp/bwc$$
### Test of xargs -X command lines > 130k
-42d5c115907de0044ef988a0639204cd -
+a98747678a5d18c4470a073812437ab2 -
Chars per line: 62906
13 60000 817788
echo '### Test of xargs -m command lines > 130k'; seq 1 60000 | parallel -k -j1 -m echo | md5sum
### Test of xargs -m command lines > 130k
-0896c693a7d42440f31c13c803d27df2 -
+ba869d577103ef0cc6b6045c2a618c43 -
echo '### This causes problems if we kill child processes'; # 2>/dev/null to avoid parallel: Warning: Starting 45 processes took > 2 sec.
### This causes problems if we kill child processes
seq 2 40 | parallel -j 0 seq 1 10 2>/dev/null | sort | md5sum
@@ -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-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-local23
^
|
@@ -59,9 +59,9 @@
echo '### bug #39787: --xargs broken'
### bug #39787: --xargs broken
nice perl -e 'for(1..30000){print "$_\n"}' | $NICEPAR --xargs -k echo | perl -ne 'print length $_,"\n"'
-64026
-64026
-40842
+63654
+63654
+41586
echo '### --delay should grow by 3 sec per arg'
### --delay should grow by 3 sec per arg
stdout /usr/bin/time -f %e parallel --delay 3 true ::: 1 2 | perl -ne '$_ >= 3 and $_ <= 8 and print "OK\n"'
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+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-20230522+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
@@ -343,7 +344,7 @@
echo "### BUG: The length for -X is not close to max (131072)"
### BUG: The length for -X is not close to max (131072)
seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
- 1 6725 64004
+ 1 6693 63652
echo '### Test -N'
### Test -N
seq 1 5 | $NICEPAR -kN3 echo {1} {2} {3}
@@ -420,20 +421,3 @@
$NICEPAR -k -a <(printf 'def\tabc\njkl\tghi') --colsep '\t' echo {2} {1}
abc def
ghi jkl
-### Test of -j filename with file content changing (missing -k is correct)
-sleep 3.3
-sleep 1
-sleep 1
-sleep 1
-sleep 1
-sleep 1
-sleep 1
-sleep 1.5
-sleep 1.5
-sleep 1.5
-sleep 1.5
-sleep 1
-sleep 1
-sleep 1
-sleep 1
-sleep 1
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-macos
^
|
@@ -1,102 +1,108 @@
-par_big_func 1 3XXX 91XXX
-par_big_func 1 3XXX 91XXX
-par_big_func 1 3XXX 91XXX
-par_big_func 1 1XXX 45XXX
-par_big_func_name 19XXX
-par_big_func_name 19XXX
-par_big_func_name 19XXX
-par_big_func_name 19XXX
-par_big_func_name 19XXX
-par_big_func_name 19XXX
-par_big_func_name 3XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 19XXX
-par_big_var_func_name 9XXX
+par_big_func 1 3XXX 90XXX
+par_big_func 1 3XXX 90XXX
+par_big_func 1 3XXX 90XXX
+par_big_func 1 1XXX 47XXX
+par_big_func_name 18XXX
+par_big_func_name 18XXX
+par_big_func_name 18XXX
+par_big_func_name 18XXX
+par_big_func_name 18XXX
+par_big_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
+par_big_var_func_name 18XXX
par_many_args 1 3XXX 6XXX
par_many_args 1 3XXX 6XXX
par_many_args 1 3XXX 6XXX
par_many_args 1 3XXX 6XXX
par_many_args 1 3XXX 6XXX
par_many_args 1 3XXX 6XXX
-par_many_args 1 1XXX 2XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 224 5XXX
-par_many_func 1 172 4XXX
-par_many_var 1 976 23XXX
-par_many_var 1 976 23XXX
-par_many_var 1 976 23XXX
-par_many_var 1 976 23XXX
-par_many_var 1 976 23XXX
-par_many_var 1 976 23XXX
-par_many_var 1 812 19XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 6XXX
-par_many_var_big_func 260
-par_many_var_func 1 2XXX 59XXX
-par_many_var_func 1 2XXX 59XXX
-par_many_var_func 1 1XXX 41XXX
+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 196 4XXX
+par_many_func 1 4 68
+par_many_var 22XXX
+par_many_var 22XXX
+par_many_var 22XXX
+par_many_var 22XXX
+par_many_var 22XXX
+par_many_var 22XXX
+par_many_var 22XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
+par_many_var_big_func 5XXX
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/parallel-tutorial
^
|
@@ -16,7 +16,6 @@
perl -e 'printf "A_B_C_"' > abc_-file
perl -e 'printf "f1\tf2\nA\tB\nC\tD\n"' > tsv-file.tsv
perl -e 'for(1..8){print "$_\n"}' > num8
- perl -e 'for(1..128){print "$_\n"}' > num128
perl -e 'for(1..30000){print "$_\n"}' > num30000
perl -e 'for(1..1000000){print "$_\n"}' > num1000000
(echo %head1; echo %head2; \
@@ -145,12 +144,12 @@
def-file
fixedlen
num1000000
-num128
num30000
num8
+outdir
tsv-file.tsv
foo
-~
+/TMP
my_func() {
echo in my_func $1
}
@@ -378,12 +377,12 @@
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="num1000000"; 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="num128"; 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="num30000"; 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="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="tsv-file.tsv"; if( { test -d "$a" } ) echo "$a is a dir"'
parallel --tag echo foo-{} ::: A B C
A foo-A
@@ -439,9 +438,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
@@ -486,30 +485,13 @@
/usr/bin/bash: line 10: outdir/f1/B/f2/D/seq: No such file or directory
/usr/bin/bash: line 11: outdir/f1/B/f2/D/stderr: No such file or directory
/usr/bin/bash: line 12: outdir/f1/B/f2/D/stdout: No such file or directory
- /usr/bin/time -f %e parallel -N0 -j64 sleep 1 :::: num128
-9
- /usr/bin/time -f %e parallel -N0 sleep 1 :::: num128
-99
- /usr/bin/time -f %e parallel -N0 --jobs 200% sleep 1 :::: num128
-9
- /usr/bin/time -f %e parallel -N0 --jobs 0 sleep 1 :::: num128
-9
echo 50% > my_jobs
- /usr/bin/time -f %e parallel -N0 --jobs my_jobs sleep 1 :::: num128 &
sleep 1
echo 0 > my_jobs
wait
-parallel: Warning: Only enough file handles to run 247 jobs in parallel.
-parallel: Warning: Try running 'parallel -j0 -N 247 --pipe parallel -j0'
-parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`)
-parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf
-parallel: Warning: or increasing /proc/sys/fs/file-max
-9
parallel --use-cpus-instead-of-cores -N0 sleep 1 :::: num8
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
tmux -S /tmp/tmsXXXXX attach
no sessions
parallel --delay 2.5 echo Starting {}\;date ::: 1 2 3
@@ -591,29 +573,14 @@
2 : TIMESTAMP 9.999 0 0 2 0 exit 2
3 : TIMESTAMP 9.999 0 0 3 0 exit 3
9
-parallel: This job failed:
-echo X; exit X
-parallel: Starting no more jobs. Waiting for 1 jobs to finish.
-parallel: This job failed:
-echo X; exit X
parallel -j2 --halt now,fail=1 echo {}\; exit {} ::: 0 0 1 2 3
9
-parallel: This job failed:
-echo X; exit X
parallel -j2 --halt soon,fail=20% echo {}\; exit {} \
::: 0 1 2 3 4 5 6 7 8 9
9
-parallel: This job failed:
-echo X; exit X
-parallel: This job failed:
-echo X; exit X
-parallel: Starting no more jobs. Waiting for 1 jobs to finish.
-parallel: This job failed:
-echo X; exit X
parallel -j2 --halt now,success=1 echo {}\; exit {} ::: 1 2 3 0 4 5 6
9
parallel: This job succeeded:
-echo X; exit X
parallel -k --retries 3 \
'echo tried {} >>/tmp/runs; echo completed {}; exit {}' ::: 1 2 0
cat /tmp/runs
@@ -697,18 +664,16 @@
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
parallel --controlmaster -S $SERVER1 echo ::: 1 2 3
9
- parallel --filter-hosts -S 173.194.32.46,$SERVER1 echo ::: bar
-bar
-parallel: Warning: Removed 173.194.32.46.
parallel --onall -S $SERVER1,$SERVER2 echo ::: foo bar
foo
bar
@@ -728,30 +693,30 @@
Unknown option: green
env_parallel only works if it is a function.
Do this and restart your shell:
-bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
- E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
+bash: Put this in $HOME/.bashrc: . env_parallel.bash
+ E.g. by doing: echo '. env_parallel.bash' >> $HOME/.bashrc
Supports: variables, aliases, functions, arrays
fish: Put this in $HOME/.config/fish/config.fish: . (which env_parallel.fish)
E.g. by doing:
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
Supports: variables, aliases, functions, arrays
-ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
- E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
+ksh: Put this in $HOME/.kshrc: source env_parallel.ksh
+ E.g. by doing: echo 'source env_parallel.ksh' >> $HOME/.kshrc
Supports: variables, aliases, functions, arrays
-mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
- E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
+mksh: Put this in $HOME/.mkshrc: source env_parallel.mksh
+ E.g. by doing: echo 'source env_parallel.mksh' >> $HOME/.mkshrc
Supports: variables, aliases, functions, arrays
-pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
- E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
+pdksh: Put this in $HOME/.profile: source env_parallel.pdksh
+ E.g. by doing: echo '. env_parallel.pdksh' >> $HOME/.profile
Supports: variables, aliases, functions, arrays
-zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
- E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
+zsh: Put this in $HOME/.zshrc: . env_parallel.zsh
+ E.g. by doing: echo '. env_parallel.zsh' >> $HOME/.zshenv
Supports: variables, functions, arrays
-ash: Put this in $HOME/.profile: . `which env_parallel.ash`
- E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
+ash: Put this in $HOME/.profile: . env_parallel.ash
+ E.g. by doing: echo '. env_parallel.ash' >> $HOME/.profile
Supports: variables, aliases
-dash: Put this in $HOME/.profile: . `which env_parallel.dash`
- E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
+dash: Put this in $HOME/.profile: . env_parallel.dash
+ E.g. by doing: echo '. env_parallel.dash' >> $HOME/.profile
Supports: variables, aliases
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
@@ -762,13 +727,13 @@
To install in all shells run:
env_parallel --install
In a script you need to run this before using env_parallel:
-bash: . `which env_parallel.bash`
-ksh: source `which env_parallel.ksh`
-mksh: source `which env_parallel.mksh`
-pdksh: source `which env_parallel.pdksh`
-zsh: . `which env_parallel.zsh`
-ash: . `which env_parallel.ash`
-dash: . `which env_parallel.dash`
+bash: . env_parallel.bash
+ksh: source env_parallel.ksh
+mksh: source env_parallel.mksh
+pdksh: source env_parallel.pdksh
+zsh: . env_parallel.zsh
+ash: . env_parallel.ash
+dash: . env_parallel.dash
For details: see man env_parallel
MYVAR='foo bar'
export MYVAR
|
[-]
[+]
|
Changed |
_service:tar_git:parallel-20230522+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-20230522+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-20230522+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-20230522+git1.tar.bz2/upstream/testsuite/wanted-results/test60
^
|
@@ -1,82 +1,72 @@
-echo '### Test --onall'; parallel --onall -S vagrant@parallel-server1,vagrant@parallel-server2 '(echo {1} {2}) | awk \{print\ \$2}' ::: a b c ::: 1 2
-### Test --onall
-1
-2
-1
-2
-1
-2
-1
-2
-1
-2
-1
-2
-echo '### Test | --onall'; seq 3 | parallel --onall -S vagrant@parallel-server1,vagrant@parallel-server2 '(echo {1} {2}) | awk \{print\ \$2}' ::: a b c :::: -
-### Test | --onall
-1
-2
-3
-1
-2
-3
-1
-2
-3
-1
-2
-3
-1
-2
-3
-1
-2
-3
-echo '### Test --onall -u'; parallel --onall -S vagrant@parallel-server1,vagrant@parallel-server2 -u '(echo {1} {2}) | awk \{print\ \$2}' ::: a b c ::: 1 2 3 | sort
-### Test --onall -u
-1
-1
-1
-1
-1
-1
-2
-2
-2
-2
-2
-2
-3
-3
-3
-3
-3
-3
-echo '### Test --nonall'; parallel --nonall -k -S vagrant@parallel-server1,vagrant@parallel-server2 'hostname' | sort
-### Test --nonall
-centos8.localdomain
-freebsd11.localdomain
-echo '### Test --nonall -u - should be interleaved x y x y'; parallel --nonall --sshdelay 2 -S vagrant@parallel-server1,vagrant@parallel-server2 -u 'hostname|grep -q centos && sleep 2; hostname;sleep 4;hostname;'
-### Test --nonall -u - should be interleaved x y x y
-freebsd11.localdomain
-centos8.localdomain
-freebsd11.localdomain
-centos8.localdomain
-echo '### Test read sshloginfile from STDIN'; echo vagrant@parallel-server1 | parallel -S - --nonall hostname; echo vagrant@parallel-server1 | parallel --sshloginfile - --nonall hostname
-### Test read sshloginfile from STDIN
-centos8.localdomain
-centos8.localdomain
-echo '### Test --nonall --basefile'; touch /tmp/nonall--basefile; parallel --nonall --basefile /tmp/nonall--basefile -S vagrant@parallel-server1,vagrant@parallel-server2 ls /tmp/nonall--basefile\; rm /tmp/nonall--basefile; rm /tmp/nonall--basefile
-### Test --nonall --basefile
-/tmp/nonall--basefile
-/tmp/nonall--basefile
-echo '### Test --onall --basefile'; touch /tmp/onall--basefile; parallel --onall --basefile /tmp/onall--basefile -S vagrant@parallel-server1,vagrant@parallel-server2 ls {}\; rm {} ::: /tmp/onall--basefile; rm /tmp/onall--basefile
-### Test --onall --basefile
-/tmp/onall--basefile
-/tmp/onall--basefile
-echo '### Test --workdir .'; ssh vagrant@parallel-server1 mkdir -p mydir; mkdir -p $HOME/mydir; cd $HOME/mydir; parallel --workdir . -S vagrant@parallel-server1 ::: pwd
-### Test --workdir .
-/home/vagrant/mydir
-echo '### Test --wd .'; ssh vagrant@parallel-server2 mkdir -p mydir; mkdir -p $HOME/mydir; cd $HOME/mydir; parallel --workdir . -S vagrant@parallel-server2 ::: pwd
-### Test --wd .
-/usr/home/vagrant/mydir
+par_nonall ### Test --nonall
+par_nonall centos8.localdomain
+par_nonall freebsd12.localdomain
+par_nonall_basefile ### Test --nonall --basefile
+par_nonall_basefile /tmp/nonall--basefile
+par_nonall_basefile /tmp/nonall--basefile
+par_nonall_sshloginfile_stdin ### Test read sshloginfile from STDIN
+par_nonall_sshloginfile_stdin centos8.localdomain
+par_nonall_sshloginfile_stdin centos8.localdomain
+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 freebsd12.localdomain
+par_nonall_u 1 freebsd12.localdomain
+par_onall ### Test --onall
+par_onall 1
+par_onall 2
+par_onall 1
+par_onall 2
+par_onall 1
+par_onall 2
+par_onall 1
+par_onall 2
+par_onall 1
+par_onall 2
+par_onall 1
+par_onall 2
+par_onall_basefile ### Test --onall --basefile
+par_onall_basefile /tmp/onall--basefile
+par_onall_basefile /tmp/onall--basefile
+par_onall_u ### Test --onall -u
+par_onall_u 1
+par_onall_u 1
+par_onall_u 1
+par_onall_u 1
+par_onall_u 1
+par_onall_u 1
+par_onall_u 2
+par_onall_u 2
+par_onall_u 2
+par_onall_u 2
+par_onall_u 2
+par_onall_u 2
+par_onall_u 3
+par_onall_u 3
+par_onall_u 3
+par_onall_u 3
+par_onall_u 3
+par_onall_u 3
+par_pipe_onall ### Test | --onall
+par_pipe_onall 1
+par_pipe_onall 2
+par_pipe_onall 3
+par_pipe_onall 1
+par_pipe_onall 2
+par_pipe_onall 3
+par_pipe_onall 1
+par_pipe_onall 2
+par_pipe_onall 3
+par_pipe_onall 1
+par_pipe_onall 2
+par_pipe_onall 3
+par_pipe_onall 1
+par_pipe_onall 2
+par_pipe_onall 3
+par_pipe_onall 1
+par_pipe_onall 2
+par_pipe_onall 3
+par_wd ### Test --wd .
+par_wd /usr/home/vagrant/mydir
+par_workdir ### Test --workdir .
+par_workdir /home/vagrant/mydir
|