mirror of
git://git.savannah.gnu.org/config.git
synced 2025-05-26 00:56:36 +12:00

* config.guess: Update copyright years. * config.sub: Likewise. * testsuite/config-guess.sh: Likewise. * testsuite/config-sub.sh: Likewise. * doc/config.guess.1: Regenerate. * doc/config.sub.1: Likewise.
120 lines
2.5 KiB
Bash
120 lines
2.5 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Copyright 2004-2024 Free Software Foundation, Inc.
|
|
# Contributed by Ben Elliston <bje@gnu.org>.
|
|
#
|
|
# This test reads pairs from config-sub.data: an alias and its
|
|
# canonical triplet. config.sub is invoked and the test checks that
|
|
# the alias expands to the expected canonical triplet.
|
|
|
|
set -eu
|
|
shopt -s lastpipe
|
|
verbose=false
|
|
maxprocs=16
|
|
|
|
# Run a single config.sub invocation.
|
|
run_one_config_sub()
|
|
{
|
|
alias=$1
|
|
canonical=$2
|
|
output=$(sh -eu ../config.sub "$alias")
|
|
if test "$output" != "$canonical" ; then
|
|
echo "FAIL: $alias -> $output, but expected $canonical"
|
|
return 1
|
|
else
|
|
$verbose && echo "PASS: $alias -> $canonical"
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
run_config_sub()
|
|
{
|
|
local -i rc=0 jobs=0
|
|
numtests=0
|
|
name="checks"
|
|
while read -r alias canonical ; do
|
|
run_one_config_sub "$alias" "$canonical" &
|
|
numtests+=1 jobs+=1
|
|
if test $jobs -eq $maxprocs ; then
|
|
for pid in $(jobs -p) ; do
|
|
wait "$pid"
|
|
rc=$((rc || $?))
|
|
done
|
|
jobs=0
|
|
fi
|
|
done < config-sub.data
|
|
for pid in $(jobs -p) ; do
|
|
wait "$pid"
|
|
rc=$((rc || $?))
|
|
done
|
|
return $rc
|
|
}
|
|
|
|
# Run a single config.sub invocation for idempotency checks.
|
|
run_one_config_sub_idempotent()
|
|
{
|
|
canonical=$1
|
|
output=$(sh -eu ../config.sub "$canonical")
|
|
if test "$output" != "$canonical" ; then
|
|
echo "FAIL: $canonical -> $output, but $canonical should map to itself"
|
|
return 1
|
|
else
|
|
$verbose && echo "PASS: $canonical -> $canonical"
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
run_config_sub_idempotent()
|
|
{
|
|
local -i rc=0 jobs=0
|
|
numtests=0
|
|
name="idempotency checks"
|
|
sed -r 's/\t+/\t/g' < config-sub.data | cut -f 2 | uniq | while read -r canonical ; do
|
|
run_one_config_sub_idempotent "$canonical" &
|
|
numtests+=1 jobs+=1
|
|
if test $jobs -eq $maxprocs ; then
|
|
for pid in $(jobs -p) ; do
|
|
wait "$pid"
|
|
rc=$((rc || $?))
|
|
done
|
|
jobs=0
|
|
fi
|
|
done
|
|
for pid in $(jobs -p) ; do
|
|
wait "$pid"
|
|
rc=$((rc || $?))
|
|
done
|
|
return $rc
|
|
}
|
|
|
|
run_config_sub_with_guess_triplets()
|
|
{
|
|
local -i rc=0
|
|
numtests=0
|
|
name="canonicalise each config.guess testcase"
|
|
|
|
awk -F '|' '{ print $6 }' < config-guess.data | while read -r triplet ; do
|
|
output=$(sh -eu ../config.sub "$triplet")
|
|
if test "$triplet" != "$output" ; then
|
|
echo "FAIL: $triplet -> $output, but $triplet should map to itself"
|
|
rc=1
|
|
fi
|
|
numtests+=1
|
|
done
|
|
return $rc
|
|
}
|
|
|
|
|
|
declare -i rc=0 numtests
|
|
declare name
|
|
|
|
for testsuite in run_config_sub run_config_sub_idempotent run_config_sub_with_guess_triplets ; do
|
|
if $testsuite; then
|
|
$verbose || echo "PASS: config.sub $name ($numtests tests)"
|
|
else
|
|
rc=1
|
|
fi
|
|
done
|
|
|
|
exit $rc
|