X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=invoke;h=1f0540277b8d324368fc8968d5202e0266d471b0;hb=refs%2Fheads%2Fmaster;hp=1f928f99c10dc64f308f6a8322c66a7bb41998e0;hpb=7a9af94d0683a6b38112ef4e0b387cad27f33782;p=version-charset-test.git diff --git a/invoke b/invoke index 1f928f9..1f05402 100755 --- a/invoke +++ b/invoke @@ -1,9 +1,50 @@ #!/bin/bash set -o pipefail -set -ex +set -e -./generate 4 | ../dpkg/src/dpkg --filter-valid-versions | ./escape | ./check +cpus=$( + perl -we ' + use strict; + require Sys::CPU; + my $ncpus = Sys::CPU::cpu_count(); + $ncpus *= 1.5; + print $ncpus, " " or die $!; + print join " ", (0 .. $ncpus-1) or die $!; + print "\n" or die $!; + ' || + echo 3 0 1 2 +) -echo ok +ncpus=${cpus%% *} +cpus=${cpus#* } + +echo >&2 "ncpus=$ncpus cpus=($cpus)" + +pids=() + +for cpu in $cpus; do + ( + ./generate $cpu/$ncpus "$@" | \ + ../dpkg/src/dpkg --filter-valid-versions | \ + ./escape | \ + perl -pe 's#^#refs/tags/#' | \ + ../git/git-check-ref-format --report-errors --stdin + echo >&2 "cpu $cpu ok" + ) & + pids+=( $! ) +done + +set +e +ok=true +for pid in ${pids[*]}; do + wait $pid || ok=false +done +set -e + +$ok || echo >&2 'BAD' + +$ok + +echo '*** OK EVERYTHING IS FINE ***'