Released as 20230722 ('Приго́жин')

This commit is contained in:
Ole Tange 2023-07-23 14:31:07 +02:00
parent 84a44e4435
commit 58c59fb8fc
26 changed files with 146 additions and 140 deletions

24
README
View file

@ -57,11 +57,11 @@ document.
Full installation of GNU Parallel is as simple as: Full installation of GNU Parallel is as simple as:
wget https://ftpmirror.gnu.org/parallel/parallel-20230622.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20230722.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20230622.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20230722.tar.bz2.sig
gpg parallel-20230622.tar.bz2.sig gpg parallel-20230722.tar.bz2.sig
bzip2 -dc parallel-20230622.tar.bz2 | tar xvf - bzip2 -dc parallel-20230722.tar.bz2 | tar xvf -
cd parallel-20230622 cd parallel-20230722
./configure && make && sudo make install ./configure && make && sudo make install
@ -70,11 +70,11 @@ Full installation of GNU Parallel is as simple as:
If you are not root you can add ~/bin to your path and install in If you are not root you can add ~/bin to your path and install in
~/bin and ~/share: ~/bin and ~/share:
wget https://ftpmirror.gnu.org/parallel/parallel-20230622.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20230722.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20230622.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20230722.tar.bz2.sig
gpg parallel-20230622.tar.bz2.sig gpg parallel-20230722.tar.bz2.sig
bzip2 -dc parallel-20230622.tar.bz2 | tar xvf - bzip2 -dc parallel-20230722.tar.bz2 | tar xvf -
cd parallel-20230622 cd parallel-20230722
./configure --prefix=$HOME && make && make install ./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel Or if your system lacks 'make' you can simply copy src/parallel
@ -122,8 +122,8 @@ will love you for it.
When using programs that use GNU Parallel to process data for When using programs that use GNU Parallel to process data for
publication please cite: publication please cite:
Tange, O. (2023, June 22). GNU Parallel 20230622 ('Nova Kakhovka'). Tange, O. (2023, July 22). GNU Parallel 20230722 ('Приго́жин').
Zenodo. https://doi.org/10.5281/zenodo.8051271 Zenodo. https://doi.org/10.5281/zenodo.8175685
Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc. Software Foundation, Inc.

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for parallel 20230622. # Generated by GNU Autoconf 2.71 for parallel 20230722.
# #
# Report bugs to <bug-parallel@gnu.org>. # Report bugs to <bug-parallel@gnu.org>.
# #
@ -610,8 +610,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='parallel' PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel' PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20230622' PACKAGE_VERSION='20230722'
PACKAGE_STRING='parallel 20230622' PACKAGE_STRING='parallel 20230722'
PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL='' PACKAGE_URL=''
@ -1246,7 +1246,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # 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. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures parallel 20230622 to adapt to many kinds of systems. \`configure' configures parallel 20230722 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1313,7 +1313,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20230622:";; short | recursive ) echo "Configuration of parallel 20230722:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1390,7 +1390,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
parallel configure 20230622 parallel configure 20230722
generated by GNU Autoconf 2.71 generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc. Copyright (C) 2021 Free Software Foundation, Inc.
@ -1427,7 +1427,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20230622, which was It was created by parallel $as_me 20230722, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw $ $0$ac_configure_args_raw
@ -2379,7 +2379,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='parallel' PACKAGE='parallel'
VERSION='20230622' VERSION='20230722'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@ -3026,7 +3026,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by parallel $as_me 20230622, which was This file was extended by parallel $as_me 20230722, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -3090,7 +3090,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped' ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\ ac_cs_version="\\
parallel config.status 20230622 parallel config.status 20230722
configured by $0, generated by GNU Autoconf 2.71, configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel],[20230622],[bug-parallel@gnu.org]) AC_INIT([parallel],[20230722],[bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([ AC_CONFIG_FILES([

View file

@ -280,6 +280,7 @@ New in this release:
* Bug fixes and man page updates. * Bug fixes and man page updates.
GNU Parallel - For people who live life in the parallel lane. GNU Parallel - For people who live life in the parallel lane.
If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it. If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.

View file

@ -1,6 +1,6 @@
<directory name="parallel" rev="365" vrev="4" srcmd5="b88151437bd4fc10ea07247dcfb937c6"> <directory name="parallel" rev="366" vrev="2" srcmd5="e055a264441e5caf98bd8e8b4fb0dd19">
<entry name="PKGBUILD" md5="8ea326ba319ebbf7c6abadc9e7a29bc6" size="1246" mtime="1687108322" /> <entry name="PKGBUILD" md5="4f17e94fd76c81eba76fa09aa19370a0" size="1246" mtime="1690113100" />
<entry name="parallel.spec" md5="1c9f05e6fed13893d3902808b2fdea6c" size="6224" mtime="1687034229" /> <entry name="parallel.spec" md5="467fc6f4bcc40043db48217d8894a93f" size="6224" mtime="1690113101" />
<entry name="parallel_20230622.dsc" md5="a6fc2a778b4befadf25d089eb7df036c" size="556" mtime="1687108322" /> <entry name="parallel_20230722.dsc" md5="9ff42873a1f33b3dcd721105dd7bd9da" size="556" mtime="1690113102" />
<entry name="parallel_20230622.tar.gz" md5="bf4dfb571fce981bb4507593d546f340" size="2777624" mtime="1687108324" /> <entry name="parallel_20230722.tar.gz" md5="1484bc9732abef8329afecf87a6c22e9" size="2772354" mtime="1690113119" />
</directory> </directory>

View file

@ -1,7 +1,7 @@
Summary: Shell tool for executing jobs in parallel Summary: Shell tool for executing jobs in parallel
Name: parallel Name: parallel
Version: 20230622 Version: 20230722
Release: 2.1 Release: 2.1
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Productivity/File utilities Group: Productivity/File utilities

View file

@ -393,7 +393,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20230622 (GNU parallel `parallel --minversion 1`)" echo "parset 20230722 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -395,7 +395,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20230622 (GNU parallel `parallel --minversion 1`)" echo "parset 20230722 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -393,7 +393,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20230622 (GNU parallel `parallel --minversion 1`)" echo "parset 20230722 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -376,7 +376,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20230622 (GNU parallel `parallel --minversion 1`)" echo "parset 20230722 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -378,7 +378,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20230622 (GNU parallel `parallel --minversion 1`)" echo "parset 20230722 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -393,7 +393,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20230622 (GNU parallel `parallel --minversion 1`)" echo "parset 20230722 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -368,7 +368,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20230622 (GNU parallel `parallel --minversion 1`)" echo "parset 20230722 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -26,7 +26,7 @@
use strict; use strict;
use Getopt::Long; use Getopt::Long;
$Global::progname="niceload"; $Global::progname="niceload";
$Global::version = 20230622; $Global::version = 20230722;
Getopt::Long::Configure("bundling","require_order"); Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage(); get_options_from_array(\@ARGV) || die_usage();
if($opt::version) { if($opt::version) {

View file

@ -2800,7 +2800,7 @@ sub check_invalid_option_combinations() {
sub init_globals() { sub init_globals() {
# Defaults: # Defaults:
$Global::version = 20230623; $Global::version = 20230722;
$Global::progname = 'parallel'; $Global::progname = 'parallel';
$::name = "GNU Parallel"; $::name = "GNU Parallel";
$Global::infinity = 2**31; $Global::infinity = 2**31;
@ -5761,8 +5761,8 @@ sub usage() {
"If you use programs that use GNU Parallel to process data for an article in a", "If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:", "scientific publication, please cite:",
"", "",
" Tange, O. (2023, June 22). GNU Parallel 20230622 ('Nova Kakhovka').", " Tange, O. (2023, July 22). GNU Parallel 20230722 ('Приго́жин').",
" Zenodo. https://doi.org/10.5281/zenodo.8051271", " Zenodo. https://doi.org/10.5281/zenodo.8175685",
"", "",
# Before changing these lines, please read # Before changing these lines, please read
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice # https://www.gnu.org/software/parallel/parallel_design.html#citation-notice
@ -5794,8 +5794,8 @@ sub citation_notice() {
"If you use programs that use GNU Parallel to process data for an article in a", "If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:", "scientific publication, please cite:",
"", "",
" Tange, O. (2023, June 22). GNU Parallel 20230622 ('Nova Kakhovka').", " Tange, O. (2023, July 22). GNU Parallel 20230722 ('Приго́жин').",
" Zenodo. https://doi.org/10.5281/zenodo.8051271", " Zenodo. https://doi.org/10.5281/zenodo.8175685",
"", "",
# Before changing these line, please read # Before changing these line, please read
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and # https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and
@ -5922,20 +5922,20 @@ sub citation() {
"If you use programs that use GNU Parallel to process data for an article in a", "If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:", "scientific publication, please cite:",
"", "",
"\@software{tange_2023_8051271,", "\@software{tange_2023_8175685,",
" author = {Tange, Ole},", " author = {Tange, Ole},",
" title = {GNU Parallel 20230622 ('Nova Kakhovka')},", " title = {GNU Parallel 20230722 ('Приго́жин')},",
" month = Jun,", " month = Jul,",
" year = 2023,", " year = 2023,",
" note = {{GNU Parallel is a general parallelizer to run", " note = {{GNU Parallel is a general parallelizer to run",
" multiple serial command line programs in parallel", " multiple serial command line programs in parallel",
" without changing them.}},", " without changing them.}},",
" publisher = {Zenodo},", " publisher = {Zenodo},",
" doi = {10.5281/zenodo.8051271},", " doi = {10.5281/zenodo.8175685},",
" url = {https://doi.org/10.5281/zenodo.8051271}", " url = {https://doi.org/10.5281/zenodo.8175685}",
"}", "}",
"", "",
"(Feel free to use \\nocite{tange_2023_8051271})", "(Feel free to use \\nocite{tange_2023_8175685})",
"", "",
# Before changing these lines, please read # Before changing these lines, please read
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and # https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and

View file

@ -1388,13 +1388,13 @@ If the host is long, you can use B<column -t> to pretty print it:
See also: B<--resume> B<--resume-failed> See also: B<--resume> B<--resume-failed>
=item B<--jobs> I<num> (beta testing) =item B<--jobs> I<num>
=item B<-j> I<num> (beta testing) =item B<-j> I<num>
=item B<--max-procs> I<num> (beta testing) =item B<--max-procs> I<num>
=item B<-P> I<num> (beta testing) =item B<-P> I<num>
Number of jobslots on each machine. Number of jobslots on each machine.
@ -1905,7 +1905,7 @@ See also: B<--block> B<--block-timeout> B<--recstart> B<--recend>
B<--fifo> B<--cat> B<--pipe-part> B<-N> B<-L> B<--round-robin> B<--fifo> B<--cat> B<--pipe-part> B<-N> B<-L> B<--round-robin>
=item B<--pipe-part> (beta testing) =item B<--pipe-part>
Pipe parts of a physical file. Pipe parts of a physical file.

View file

@ -137,7 +137,7 @@ GetOptions(
"help" => \$opt::dummy, "help" => \$opt::dummy,
) || exit(255); ) || exit(255);
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1]; $Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
$Global::version = 20230622; $Global::version = 20230722;
if($opt::version) { version(); exit 0; } if($opt::version) { version(); exit 0; }
# Remove -D and --parallel=N # Remove -D and --parallel=N
my @s = (grep { ! /^-D$|^--parallel=\S+$/ } my @s = (grep { ! /^-D$|^--parallel=\S+$/ }

View file

@ -670,7 +670,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err); exit ($err);
sub parse_options { sub parse_options {
$Global::version = 20230622; $Global::version = 20230722;
$Global::progname = 'sql'; $Global::progname = 'sql';
# This must be done first as this may exec myself # This must be done first as this may exec myself

View file

@ -297,7 +297,9 @@ par_failing_compressor() {
} }
export -f doit export -f doit
stdout parallel -vk --header : --argsep ,,, \ stdout parallel -vk --header : --argsep ,,, \
parallel -k {tag} {lb} {files} --compress --compress-program {comp} --decompress-program {decomp} doit ::: C={comp},D={decomp} \ stdout parallel -k {tag} {lb} {files} --compress \
--compress-program {comp} --decompress-program {decomp} doit \
::: C={comp},D={decomp} \
,,, tag --tag -k \ ,,, tag --tag -k \
,,, lb --line-buffer -k \ ,,, lb --line-buffer -k \
,,, files --files0 -k \ ,,, files --files0 -k \
@ -418,17 +420,6 @@ par_xargs_compat() {
(seq 1 10; echo 1234; seq 12 15) | stdsort xargs -s 10 -x echo (seq 1 10; echo 1234; seq 12 15) | stdsort xargs -s 10 -x echo
} }
par_sem_2jobs() {
echo '### Test semaphore 2 jobs running simultaneously'
parallel --semaphore --id 2jobs -u -j2 'echo job1a 1; sleep 4; echo job1b 3'
sleep 0.5
parallel --semaphore --id 2jobs -u -j2 'echo job2a 2; sleep 4; echo job2b 5'
sleep 0.5
parallel --semaphore --id 2jobs -u -j2 'echo job3a 4; sleep 4; echo job3b 6'
parallel --semaphore --id 2jobs --wait
echo done
}
par_line_buffer() { par_line_buffer() {
echo "### --line-buffer" echo "### --line-buffer"
tmp1=$(mktemp) tmp1=$(mktemp)

View file

@ -4,6 +4,17 @@
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
par_sem_2jobs() {
echo '### Test semaphore 2 jobs running simultaneously'
parallel --semaphore --id 2jobs -u -j2 'echo job1a 1; sleep 4; echo job1b 3'
sleep 0.5
parallel --semaphore --id 2jobs -u -j2 'echo job2a 2; sleep 4; echo job2b 5'
sleep 0.5
parallel --semaphore --id 2jobs -u -j2 'echo job3a 4; sleep 4; echo job3b 6'
parallel --semaphore --id 2jobs --wait
echo done
}
par_2jobs() { par_2jobs() {
echo '### Test similar example as from man page - run 2 jobs simultaneously' echo '### Test similar example as from man page - run 2 jobs simultaneously'
echo 'Expect done: 1 2 5 3 4' echo 'Expect done: 1 2 5 3 4'

View file

@ -174,7 +174,9 @@ macsshlogin=$(parallel --halt now,success=1 ssh {} echo {} ::: ota@mac macosx.p)
if scp /usr/local/bin/parallel $macsshlogin:bin/ ; then if scp /usr/local/bin/parallel $macsshlogin:bin/ ; then
true true
else else
echo "Mac not found. Skip testing" echo "**"
echo "** Mac not found. Skip testing"
echo "**"
exit 1 exit 1
fi fi

View file

@ -114,117 +114,117 @@ par_failing_compressor Compress with failing (de)compressor
par_failing_compressor Test --tag/--line-buffer/--files in all combinations 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 Test working/failing compressor/decompressor in all combinations
par_failing_compressor (-k is used as a dummy argument) par_failing_compressor (-k is used as a dummy argument)
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 stdout 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 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 stdout 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 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 stdout 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 C=cat;false,D=cat;true /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
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 stdout 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 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: 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 stdout 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 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' doit ::: C='cat;true',D='cat;false' par_failing_compressor stdout 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 C=cat;true,D=cat;false C=cat;true,D=cat;false
par_failing_compressor C=cat;true,D=cat;false 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' doit ::: C='cat;false',D='cat;true' par_failing_compressor stdout 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: 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 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;true C=cat;false,D=cat;true
par_failing_compressor stdout 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 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 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 parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
par_failing_compressor stdout 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 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 stdout 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 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 stdout parallel -k --tag -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true /TMP/tmpfile par_failing_compressor C=cat;false,D=cat;true /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor stdout parallel -k --tag -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: 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 --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 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: Error: cat;false failed. par_failing_compressor stdout parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
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 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' doit ::: C='cat;true',D='cat;false' par_failing_compressor stdout 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 C=cat;true,D=cat;false C=cat;true,D=cat;false
par_failing_compressor C=cat;true,D=cat;false 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' doit ::: C='cat;false',D='cat;true' par_failing_compressor stdout 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 parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true 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 -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 C=cat;false,D=cat;true C=cat;false,D=cat;true
par_failing_compressor stdout parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: 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 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 parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
par_failing_compressor stdout 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 /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 stdout 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 /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 stdout 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 /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
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 stdout 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 /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' par_failing_compressor stdout 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 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' doit ::: C='cat;true',D='cat;false' par_failing_compressor stdout 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 C=cat;true,D=cat;false
par_failing_compressor 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' doit ::: C='cat;false',D='cat;true' par_failing_compressor stdout 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 parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true 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 parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true
par_failing_compressor stdout 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 parallel: Error: cat;false failed.
par_failing_compressor 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: Error: cat;false failed.
par_failing_compressor 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 stdout 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 /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 stdout 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 /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 stdout parallel -k -k -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor /TMP/tmpfile par_failing_compressor /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor stdout parallel -k -k -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: 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 -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
par_failing_compressor /TMP/tmpfile par_failing_compressor /TMP/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor stdout parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
par_failing_compressor parallel -k -k -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 par_failing_compressor 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 -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false' par_failing_compressor stdout parallel -k -k -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 par_failing_compressor C=cat;true,D=cat;false
par_failing_compressor C=cat;true,D=cat;false par_failing_compressor C=cat;true,D=cat;false
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true' par_failing_compressor stdout parallel -k -k -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
par_failing_compressor parallel: Error: cat;false failed.
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 C=cat;false,D=cat;true
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true
par_failing_compressor stdout parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor 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: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false par_failing_compressor C=cat;false,D=cat;false
par_fifo_under_csh ### Test --fifo under csh par_fifo_under_csh ### Test --fifo under csh
par_fifo_under_csh parallel: Warning: --cat/--fifo fails under csh if $TMPDIR contains newline. par_fifo_under_csh parallel: Warning: --cat/--fifo fails under csh if $TMPDIR contains newline.
@ -1118,14 +1118,6 @@ par_retries_all_fail 5
par_retries_all_fail 6 par_retries_all_fail 6
par_retries_all_fail 7 par_retries_all_fail 7
par_retries_all_fail 8 par_retries_all_fail 8
par_sem_2jobs ### Test semaphore 2 jobs running simultaneously
par_sem_2jobs job1a 1
par_sem_2jobs job2a 2
par_sem_2jobs job1b 3
par_sem_2jobs job3a 4
par_sem_2jobs job2b 5
par_sem_2jobs job3b 6
par_sem_2jobs done
par_seqreplace_long_line ### Test --seqreplace and line too long par_seqreplace_long_line ### Test --seqreplace and line too long
par_seqreplace_long_line 9 1 1 101 par_seqreplace_long_line 9 1 1 101
par_seqreplace_long_line 90 1 1 201 par_seqreplace_long_line 90 1 1 201

View file

@ -1,3 +1,20 @@
par_2jobs ### Test similar example as from man page - run 2 jobs simultaneously
par_2jobs Expect done: 1 2 5 3 4
par_2jobs Scheduling 5
par_2jobs starting 5
par_2jobs Scheduling 1
par_2jobs starting 1
par_2jobs Scheduling 2
par_2jobs done 1
par_2jobs starting 2
par_2jobs Scheduling 3
par_2jobs done 2
par_2jobs starting 3
par_2jobs Scheduling 4
par_2jobs done 5
par_2jobs starting 4
par_2jobs done 3
par_2jobs done 4
par_bug56403 bug #56403: --pipe block by time. par_bug56403 bug #56403: --pipe block by time.
par_bug56403 1 job1a par_bug56403 1 job1a
par_bug56403 2 job2b par_bug56403 2 job2b
@ -108,6 +125,14 @@ 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 0.1 0.1
par_print_before_halt_on_error 2 parallel: This job failed: 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_2jobs ### Test semaphore 2 jobs running simultaneously
par_sem_2jobs job1a 1
par_sem_2jobs job2a 2
par_sem_2jobs job1b 3
par_sem_2jobs job3a 4
par_sem_2jobs job2b 5
par_sem_2jobs job3b 6
par_sem_2jobs done
par_sem_dir ### bug #58985: sem stall if .parallel/semaphores is chmod 0 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_sem_dir parallel: Error: Semaphoredir must be writable: '~/.parallel/semaphores'
par_tmux_termination ### --tmux test - check termination par_tmux_termination ### --tmux test - check termination

View file

@ -9,6 +9,7 @@ par_controlmaster_is_faster -M should finish first - eventhough there are 2x job
par_controlmaster_is_faster With --controlmaster - finish first par_controlmaster_is_faster With --controlmaster - finish first
par_controlmaster_is_faster No --controlmaster - finish last par_controlmaster_is_faster No --controlmaster - finish last
par_force_number_of_cpu ### Check forced number of CPUs being respected par_force_number_of_cpu ### Check forced number of CPUs being respected
par_force_number_of_cpu ssh is slow, so should only get 7. : should get the rest
par_force_number_of_cpu 7 par_force_number_of_cpu 7
par_force_number_of_cpu 13 par_force_number_of_cpu 13
par_special_ssh ### Test use special ssh par_special_ssh ### Test use special ssh

View file

@ -1,20 +1,3 @@
par_2jobs ### Test similar example as from man page - run 2 jobs simultaneously
par_2jobs Expect done: 1 2 5 3 4
par_2jobs Scheduling 5
par_2jobs starting 5
par_2jobs Scheduling 1
par_2jobs starting 1
par_2jobs Scheduling 2
par_2jobs done 1
par_2jobs starting 2
par_2jobs Scheduling 3
par_2jobs done 2
par_2jobs starting 3
par_2jobs Scheduling 4
par_2jobs done 5
par_2jobs starting 4
par_2jobs done 3
par_2jobs done 4
par_bg_p_should_error ### Test bug #33621: --bg -p should give an error message par_bg_p_should_error ### Test bug #33621: --bg -p should give an error message
par_bg_p_should_error parallel: Error: Jobs running in the background cannot be interactive. par_bg_p_should_error parallel: Error: Jobs running in the background cannot be interactive.
par_exit ### Exit values par_exit ### Exit values

View file

@ -60,7 +60,7 @@ par_dburl_user_password_host_port ### Test dburl with username password host por
par_dburl_user_password_host_port Test dburl with username password host port par_dburl_user_password_host_port Test dburl with username password host port
par_dburl_user_password_host_port OK par_dburl_user_password_host_port OK
par_listproc ### Test --show-processlist|proclist|listproc par_listproc ### Test --show-processlist|proclist|listproc
par_listproc 3 34 par_listproc 3 32
par_listproc 2 17 par_listproc 2 17
par_listproc 2 17 par_listproc 2 17
par_noheaders ### Test --noheaders --no-headers -n par_noheaders ### Test --noheaders --no-headers -n