X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=version-charset-test.git;a=blobdiff_plain;f=invoke;h=1f0540277b8d324368fc8968d5202e0266d471b0;hp=fc67da9063f752764a623bbf7aed84d0d7735228;hb=HEAD;hpb=f8fa1b1b198dca224e0322e8702d4741b849f90a diff --git a/invoke b/invoke index fc67da9..1f05402 100755 --- a/invoke +++ b/invoke @@ -1,8 +1,49 @@ #!/bin/bash set -o pipefail -set -ex +set -e -./generate "$@" | ../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 +) + +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 ***'