parallel/testsuite/tests-to-run/parallel-manual.sh
2024-01-24 02:25:03 +01:00

83 lines
3.5 KiB
Bash
Executable file

#!/bin/bash
# SPDX-FileCopyrightText: 2021-2024 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'