Sorry Ben. I forgot to hoist up the `$verbose ||` when I got rid of
`msgs` to make the "PASS: ..." independent, so those were printing
unconditionally. Fixed now.
John
On 07/30/18 02:04, John Ericson wrote:
Oh OK. Here is another version of the 3rd patch.
Firstly, I realized my own other mistake: I had improperly limited
the *-* patterns in a few case when fixing shellcheck errors. Existing
globs shouldn't be restricted. [I had been narrowly extending the
"special case" rules below to just additionally match normalized
things and nothing more, and then "solved" some shellcheck errors the
wrong way.]
The intent with the 3rd patch is: if "food" is accepted then "foo-*"
should also be. If we allow skipping the vendor we should also allow
it to be provided, even if this isn't excised by the new
canonicalization tests.
Secondly, fixed the testsuite to match that. That seems simpler,
actually.
John
On 07/30/18 01:57, Ben Elliston wrote:
There are now two separate tests for config.sub. I would like the
test results tracked separately.
Perhaps it is time to switch to a Dejagnu test harness. 😆
Ben
_______________________________________________
config-patches mailing list
config-patches@gnu.org
https://lists.gnu.org/mailman/listinfo/config-patches
From a079080fab1a13fbadf840c5ab241f9b56864fc9 Mon Sep 17 00:00:00 2001
Message-Id:
<a079080fab1a13fbadf840c5ab241f9b56864fc9.1532970985.git.John.Ericson@Obsidian.Systems>
In-Reply-To:
<9051a145bff67a2a8da7b666a95106c78fb4bc5c.1532970985.git.John.Ericson@Obsidian.Systems>
References:
<5a1abdc6448184ae853dec84bb22f97237588e21.1532970985.git.John.Ericson@Obsidian.Systems>
<9051a145bff67a2a8da7b666a95106c78fb4bc5c.1532970985.git.John.Ericson@Obsidian.Systems>
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Sun, 29 Jul 2018 22:18:29 -0400
Subject: [PATCH 3/3] * config.sub: Make idemopotent *
testsuite/config-sub.sh: Add ideompotency tests
To: config-patches@gnu.org
---
ChangeLog | 5 ++++
config.sub | 57 +++++++++++++++++++++++++++--------------
testsuite/config-sub.sh | 44 ++++++++++++++++++++++++++-----
3 files changed, 80 insertions(+), 26 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 1db8ff9..c239b50 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-07-30 John Ericson <john.ericson@obsidian.systems>
+
+ * config.sub: Make idemopotent
+ * testsuite/config-sub.sh: Add ideompotency tests
+
2018-07-30 John Ericson <john.ericson@obsidian.systems>
* testsuite/config-*.sh: Use `local rc` for better scoping
diff --git a/config.sub b/config.sub
index 52eb02e..893b60b 100755
--- a/config.sub
+++ b/config.sub
@@ -569,12 +569,14 @@ case $basic_machine in
1750a | 580 \
| a29k \
| aarch64 | aarch64_be \
+ | abacus \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] |
alpha64pca5[67] \
| am33_2.0 \
| arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m |
armv[78][arm] \
| avr | avr32 \
+ | asmjs \
| ba \
| be32 | be64 \
| bfin \
@@ -654,6 +656,9 @@ case $basic_machine in
leon|leon[3-9])
basic_machine=sparc-$basic_machine
;;
+ m6811-* | m68hc11-* | m6812-* | m68hc12-* | m68hcs12x-* | nvptx-* |
picochip-*)
+ os=${os:-none}
+ ;;
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=${os:-none}
@@ -664,6 +669,10 @@ case $basic_machine in
basic_machine=s12z-unknown
os=${os:-none}
;;
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ basic_machine=s12z-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+ os=${os:-none}
+ ;;
ms1)
basic_machine=mt-unknown
;;
@@ -674,6 +683,9 @@ case $basic_machine in
basic_machine=$basic_machine-unknown
os=${os:-none}
;;
+ xgate-*)
+ os=${os:-none}
+ ;;
xscaleeb)
basic_machine=armeb-unknown
;;
@@ -689,22 +701,26 @@ case $basic_machine in
basic_machine=$basic_machine-pc
;;
# Recognize the basic CPU types with company name.
- 580-* \
+ 1750a-* | 580-* \
| a29k-* \
| aarch64-* | aarch64_be-* \
+ | abacus-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* \
+ | am33_2.0-* \
+ | arc-* | arceb-* \
+ | arm-* | arm[lb]e-* | arme[lb]-* | armv*-* \
| avr-* | avr32-* \
+ | asmjs-* \
| ba-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | e2k-* | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | d10v-* | d30v-* | dlx-* | dsp16xx-* \
+ | e2k-* | elxsi-* | epiphany-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | ft32-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| hexagon-* \
@@ -714,8 +730,8 @@ case $basic_machine in
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | m5200-* | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* |
v70-* | w65-* \
+ | m88110-* | m88k-* | maxq-* | mb-* | mcore-* | mep-* | metag-* \
| microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
@@ -739,6 +755,7 @@ case $basic_machine in
| mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
+ | mn10200-* | mn10300-* \
| moxie-* \
| mt-* \
| msp430-* \
@@ -748,6 +765,7 @@ case $basic_machine in
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
| or1k*-* \
+ | or32-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -755,14 +773,15 @@ case $basic_machine in
| pyramid-* \
| riscv-* | riscv32-* | riscv64-* \
| rl78-* | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-*
| sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | score-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]ae[lb]-* | sh[23]e-* |
she[lb]-* | sh[lb]e-* \
+ | sh[1234]e[lb]-* | sh[12345][lb]e-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* |
sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
+ | spu-* \
| tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile*-* \
| tron-* \
| ubicom32-* \
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
@@ -787,9 +806,6 @@ case $basic_machine in
3b*)
basic_machine=we32k-att
;;
- abacus)
- basic_machine=abacus-unknown
- ;;
alliant | fx80)
basic_machine=fx80-alliant
;;
@@ -805,9 +821,6 @@ case $basic_machine in
amiga | amiga-*)
basic_machine=m68k-unknown
;;
- asmjs)
- basic_machine=asmjs-unknown
- ;;
blackfin-*)
basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
os=linux
@@ -1154,6 +1167,9 @@ case $basic_machine in
sh5el)
basic_machine=sh5le-unknown
;;
+ sh5el-*)
+ basic_machine=sh5le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+ ;;
simso-wrs)
basic_machine=sparclite-wrs
os=vxworks
@@ -1179,9 +1195,12 @@ case $basic_machine in
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
+ tile*-*)
+ os=${os:-linux-gnu}
+ ;;
tile*)
basic_machine=$basic_machine-unknown
- os=linux-gnu
+ os=${os:-linux-gnu}
;;
tx39)
basic_machine=mipstx39-unknown
@@ -1354,7 +1373,7 @@ case $os in
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
| aos* | aros* | cloudabi* | sortix* \
| nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
- | clix* | riscos* | uniplus* | iris* | rtu* | xenix* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
| knetbsd* | mirbsd* | netbsd* \
| bitrig* | openbsd* | solidbsd* | libertybsd* \
| ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
diff --git a/testsuite/config-sub.sh b/testsuite/config-sub.sh
index 4d01ee0..85b112a 100644
--- a/testsuite/config-sub.sh
+++ b/testsuite/config-sub.sh
@@ -9,28 +9,58 @@
# the alias expands to the expected canonical triplet.
set -eu
+shopt -s lastpipe
verbose=false
run_config_sub()
{
local -i rc=0
+ numtests=0
+ name="checks"
while read -r alias canonical ; do
output=$(sh -eu ../config.sub "$alias")
if test "$output" != "$canonical" ; then
echo "FAIL: $alias -> $output, but expected $canonical"
rc=1
else
- $verbose && echo "PASS: $alias"
+ $verbose && echo "PASS: $alias -> $canonical"
fi
+ numtests+=1
done < config-sub.data
return $rc
}
-if run_config_sub ; then
- numtests=$(wc -l config-sub.data | cut -d' ' -f1)
- $verbose || echo "PASS: config.sub checks ($numtests tests)"
-else
- exit 1
+run_config_sub_idempotent()
+{
+ local -i rc=0
+ numtests=0
+ name="idempotency checks"
+ sed -r 's/\t+/\t/g' < config-sub.data | cut -f 2 | uniq | while read -r
canonical ; do
+ output=$(sh -eu ../config.sub "$canonical")
+ if test "$output" != "$canonical" ; then
+ echo "FAIL: $canonical -> $output, but $canonical
should map to itself"
+ rc=1
+ else
+ $verbose && echo "PASS: $canonical -> $canonical"
+ fi
+ numtests+=1
+ done
+ return $rc
+}
+
+declare -i rc=0 numtests=0
+declare -a msgs=()
+
+for testsuite in run_config_sub run_config_sub_idempotent ; do
+ if $testsuite; then
+ echo "PASS: config.sub $name ($numtests tests)"
+ else
+ rc=1
+ fi
+done
+
+if (( rc == 0 )); then
+ $verbose || printf '%s\n' "${msgs[@]}"
fi
-exit 0
+exit $rc
--
2.17.1
_______________________________________________
config-patches mailing list
config-patches@gnu.org
https://lists.gnu.org/mailman/listinfo/config-patches