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..10){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..10){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
echo 3 4
a3b a4b	3 4
  nice parallel -j1 -k -v --tagstring a{}b echo  ::: 3 4
echo 3
a3b	3
echo 4
a4b	4
  nice parallel -j1 -k -v --tagstring a{}b echo job{#} ::: 3 4
echo job1
a3b	job1
echo job2
a4b	job2
  nice parallel -j1 -k -v --tagstring ajob{#}b echo job{#} ::: 3 4
echo job1
ajob1b	job1
echo job2
ajob2b	job2
echo '### Bug in --load';   nice parallel -k --load 30 sleep 0.1\;echo ::: 1 2 3
### Bug in --load
1
2
3
echo '### Test --timeout'
### Test --timeout
  nice parallel -j0 -k --timeout 1 echo {}\; sleep {}\; echo {} ::: 1.1 7.7 8.8 9.9
1.1
1.1
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: --tollef has been retired. Use -u -q --arg-sep -- and --load for -l.
  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: --tollef has been retired. Use -u -q --arg-sep -- and --load for -l.
  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: --tollef has been retired. Use -u -q --arg-sep -- and --load for -l.
  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: --tollef has been retired. Use -u -q --arg-sep -- and --load for -l.
  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: --tollef has been retired. Use -u -q --arg-sep -- and --load for -l.
  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: --tollef has been retired. Use -u -q --arg-sep -- and --load for -l.
  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: --tollef has been retired. Use -u -q --arg-sep -- and --load for -l.
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'
      5      49
### Test --resume --joblog followed by --resume --joblog
      5      49
### Test --header
  printf "a\tb\n1.2\t3/4.5" | parallel --colsep "\t" --header "\n" echo {b} {a} {b.} {b/} {b//} {b/.}
3/4.5 1.2 3/4 4.5 3 4
echo '### 64-bit wierdness - this did not complete on a 64-bit machine';   seq 1 2 | parallel -j1 'seq 1 1 | parallel true'
### 64-bit wierdness - this did not complete on a 64-bit machine
echo "### BUG-fix: bash -c 'parallel -a <(seq 1 3) echo'"
### BUG-fix: bash -c 'parallel -a <(seq 1 3) echo'
  stdout bash -c 'parallel -k -a <(seq 1 3)  echo'
1
2
3
echo "### bug #35268: shell_quote doesn't treats [] brackets correctly"
### 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 of segfaulting issue'
### Test of segfaulting issue
  echo 'This gave /home/tange/bin/stdout: line 3: 20374 Segmentation fault      "$@" 2>&1';   echo 'before adding wait() before exit';   seq 1 300 | stdout parallel ./trysegfault
This gave /home/tange/bin/stdout: line 3: 20374 Segmentation fault      "$@" 2>&1
before adding wait() before exit
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
via cat
echo b
b
  echo via cat |parallel -kv ::: 'cat' 'echo b'
cat
via 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
echo | wc -l
1
  parallel -v ::: 'echo | wc -l'
echo | wc -l
1
  echo 'echo a b c | wc -w' | parallel -v
echo a b c | wc -w
3
  parallel -kv ::: 'echo a b c | wc -w' 'echo a b | wc -w'
echo a b c | wc -w
3
echo a b | wc -w
2
echo '### Test bug #35820: sem breaks if $HOME is not writable'
### Test bug #35820: sem breaks if $HOME is not writable
  echo 'Workaround: use another writable dir';   rm -rf /tmp/.parallel;   HOME=/tmp sem echo OK;   HOME=/tmp sem --wait;   HOME=/usr/this/should/fail stdout sem echo should fail
Workaround: use another writable dir
OK
parallel: Error: Cannot write to /usr/this/should/fail/.parallel: No such file or directory