diff options
author | Mike Frysinger <vapier@gentoo.org> | 2012-03-21 19:32:39 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2012-03-21 19:32:39 -0400 |
commit | bed527f2ff330bdf49e46bf351d069a310bff102 (patch) | |
tree | 3dcb8d4ccc83bd275c332495f095805ee8e229c0 /tests | |
parent | gcc-config: tweak usage() help and message (diff) | |
download | gcc-config-bed527f2ff330bdf49e46bf351d069a310bff102.tar.gz gcc-config-bed527f2ff330bdf49e46bf351d069a310bff102.tar.bz2 gcc-config-bed527f2ff330bdf49e46bf351d069a310bff102.zip |
tests: add some!
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'tests')
73 files changed, 339 insertions, 0 deletions
diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000..27ca7f7 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1 @@ +/*/log diff --git a/tests/args/test.bad b/tests/args/test.bad new file mode 100644 index 0000000..d8a9df2 --- /dev/null +++ b/tests/args/test.bad @@ -0,0 +1,12 @@ +#!/bin/bash +flags=( + -Q + "-E -B" + "-E -L" + "-B -L" +) +for f in "${flags[@]}" ; do + gcc-config ${f} && exit 1 +done + +exec gcc-config -h >/dev/null diff --git a/tests/args/test.bad.exp b/tests/args/test.bad.exp new file mode 100644 index 0000000..db51597 --- /dev/null +++ b/tests/args/test.bad.exp @@ -0,0 +1,4 @@ + * gcc-config: Invalid switch! Run gcc-config without parameters for help. + * gcc-config: too many actions selected! + * gcc-config: too many actions selected! + * gcc-config: too many actions selected! diff --git a/tests/args/test.split b/tests/args/test.split new file mode 100644 index 0000000..0e6b7b5 --- /dev/null +++ b/tests/args/test.split @@ -0,0 +1,6 @@ +#!/bin/bash +profiles=( + x86_64-pc-linux-gnu-4.6.0 +) +gcc-config -S ${profiles[@]} +[[ $? -eq 0 ]] diff --git a/tests/args/test.split.exp b/tests/args/test.split.exp new file mode 100644 index 0000000..9d2cc79 --- /dev/null +++ b/tests/args/test.split.exp @@ -0,0 +1 @@ +x86_64-pc-linux-gnu 4.6.0 diff --git a/tests/multi-configs/etc/env.d/gcc/arm-none-eabi-4.5.3 b/tests/multi-configs/etc/env.d/gcc/arm-none-eabi-4.5.3 new file mode 100644 index 0000000..89ec41c --- /dev/null +++ b/tests/multi-configs/etc/env.d/gcc/arm-none-eabi-4.5.3 @@ -0,0 +1,6 @@ +LDPATH="/usr/lib/gcc/arm-none-eabi/4.5.3" +MANPATH="/usr/share/gcc-data/arm-none-eabi/4.5.3/man" +INFOPATH="/usr/share/gcc-data/arm-none-eabi/4.5.3/info" +STDCXX_INCDIR="g++-v4" +CTARGET=arm-none-eabi +GCC_PATH="/usr/x86_64-pc-linux-gnu/arm-none-eabi/gcc-bin/4.5.3" diff --git a/tests/multi-configs/etc/env.d/gcc/arm-unknown-linux-gnu-4.5.3 b/tests/multi-configs/etc/env.d/gcc/arm-unknown-linux-gnu-4.5.3 new file mode 100644 index 0000000..b7a140e --- /dev/null +++ b/tests/multi-configs/etc/env.d/gcc/arm-unknown-linux-gnu-4.5.3 @@ -0,0 +1,6 @@ +LDPATH="/usr/lib/gcc/arm-unknown-linux-gnu/4.5.3" +MANPATH="/usr/share/gcc-data/arm-unknown-linux-gnu/4.5.3/man" +INFOPATH="/usr/share/gcc-data/arm-unknown-linux-gnu/4.5.3/info" +STDCXX_INCDIR="g++-v4" +CTARGET=arm-unknown-linux-gnu +GCC_PATH="/usr/x86_64-pc-linux-gnu/arm-unknown-linux-gnu/gcc-bin/4.5.3" diff --git a/tests/multi-configs/etc/env.d/gcc/arm-unknown-linux-gnueabi-4.5.3 b/tests/multi-configs/etc/env.d/gcc/arm-unknown-linux-gnueabi-4.5.3 new file mode 100644 index 0000000..e4eb06f --- /dev/null +++ b/tests/multi-configs/etc/env.d/gcc/arm-unknown-linux-gnueabi-4.5.3 @@ -0,0 +1,6 @@ +LDPATH="/usr/lib/gcc/arm-unknown-linux-gnueabi/4.5.3" +MANPATH="/usr/share/gcc-data/arm-unknown-linux-gnueabi/4.5.3/man" +INFOPATH="/usr/share/gcc-data/arm-unknown-linux-gnueabi/4.5.3/info" +STDCXX_INCDIR="g++-v4" +CTARGET=arm-unknown-linux-gnueabi +GCC_PATH="/usr/x86_64-pc-linux-gnu/arm-unknown-linux-gnueabi/gcc-bin/4.5.3" diff --git a/tests/multi-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu b/tests/multi-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu new file mode 100644 index 0000000..fc02d33 --- /dev/null +++ b/tests/multi-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu @@ -0,0 +1 @@ +CURRENT=x86_64-pc-linux-gnu-4.6.2 diff --git a/tests/multi-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 b/tests/multi-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 new file mode 100644 index 0000000..58188f6 --- /dev/null +++ b/tests/multi-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.0/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.0/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.0" diff --git a/tests/multi-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 b/tests/multi-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 new file mode 100644 index 0000000..d096389 --- /dev/null +++ b/tests/multi-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1:/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/32" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1" diff --git a/tests/multi-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 b/tests/multi-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 new file mode 100644 index 0000000..51657e5 --- /dev/null +++ b/tests/multi-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.2" diff --git a/tests/multi-configs/test.current b/tests/multi-configs/test.current new file mode 100644 index 0000000..0241a70 --- /dev/null +++ b/tests/multi-configs/test.current @@ -0,0 +1,5 @@ +#!/bin/bash +gcc-config -c || exit 1 +gcc-config -c x86_64-pc-linux-gnu || exit 1 +gcc-config -c arm-none-eabi +[[ $? -ne 0 ]] diff --git a/tests/multi-configs/test.current.exp b/tests/multi-configs/test.current.exp new file mode 100644 index 0000000..c801f27 --- /dev/null +++ b/tests/multi-configs/test.current.exp @@ -0,0 +1,3 @@ +x86_64-pc-linux-gnu-4.6.2 +x86_64-pc-linux-gnu-4.6.2 + * gcc-config: No gcc profile is active! diff --git a/tests/multi-configs/test.list b/tests/multi-configs/test.list new file mode 100644 index 0000000..8e2a891 --- /dev/null +++ b/tests/multi-configs/test.list @@ -0,0 +1,3 @@ +#!/bin/bash +gcc-config -C -l "$@" +[[ $? -eq 0 ]] diff --git a/tests/multi-configs/test.list.exp b/tests/multi-configs/test.list.exp new file mode 100644 index 0000000..18640e1 --- /dev/null +++ b/tests/multi-configs/test.list.exp @@ -0,0 +1,10 @@ +Using gcc-config info in @ROOT@/ + [1] arm-none-eabi-4.5.3 + + [2] arm-unknown-linux-gnu-4.5.3 + + [3] arm-unknown-linux-gnueabi-4.5.3 + + [4] x86_64-pc-linux-gnu-4.6.0 + [5] x86_64-pc-linux-gnu-4.6.1 + [6] x86_64-pc-linux-gnu-4.6.2 * diff --git a/tests/multi-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep b/tests/multi-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/multi-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep diff --git a/tests/multi-native-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu b/tests/multi-native-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu new file mode 100644 index 0000000..fc02d33 --- /dev/null +++ b/tests/multi-native-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu @@ -0,0 +1 @@ +CURRENT=x86_64-pc-linux-gnu-4.6.2 diff --git a/tests/multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 b/tests/multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 new file mode 100644 index 0000000..58188f6 --- /dev/null +++ b/tests/multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.0/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.0/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.0" diff --git a/tests/multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 b/tests/multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 new file mode 100644 index 0000000..d096389 --- /dev/null +++ b/tests/multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1:/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/32" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1" diff --git a/tests/multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 b/tests/multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 new file mode 100644 index 0000000..51657e5 --- /dev/null +++ b/tests/multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.2" diff --git a/tests/multi-native-configs/test.current b/tests/multi-native-configs/test.current new file mode 100644 index 0000000..f4ed2e9 --- /dev/null +++ b/tests/multi-native-configs/test.current @@ -0,0 +1,5 @@ +#!/bin/bash +gcc-config -c || exit 1 +gcc-config -c x86_64-pc-linux-gnu || exit 1 +gcc-config -c foooooooooooooooooo +[[ $? -ne 0 ]] diff --git a/tests/multi-native-configs/test.current.exp b/tests/multi-native-configs/test.current.exp new file mode 100644 index 0000000..09b744d --- /dev/null +++ b/tests/multi-native-configs/test.current.exp @@ -0,0 +1,3 @@ +x86_64-pc-linux-gnu-4.6.2 +x86_64-pc-linux-gnu-4.6.2 + * gcc-config: Could not locate 'foooooooooooooooooo' in '@ROOT@/etc/env.d/gcc/' ! diff --git a/tests/multi-native-configs/test.list b/tests/multi-native-configs/test.list new file mode 100644 index 0000000..8e2a891 --- /dev/null +++ b/tests/multi-native-configs/test.list @@ -0,0 +1,3 @@ +#!/bin/bash +gcc-config -C -l "$@" +[[ $? -eq 0 ]] diff --git a/tests/multi-native-configs/test.list.exp b/tests/multi-native-configs/test.list.exp new file mode 100644 index 0000000..35646d8 --- /dev/null +++ b/tests/multi-native-configs/test.list.exp @@ -0,0 +1,4 @@ +Using gcc-config info in @ROOT@/ + [1] x86_64-pc-linux-gnu-4.6.0 + [2] x86_64-pc-linux-gnu-4.6.1 + [3] x86_64-pc-linux-gnu-4.6.2 * diff --git a/tests/multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep b/tests/multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep diff --git a/tests/multi-native-selected-configs/etc/env.d/gcc/avr-4.5.3 b/tests/multi-native-selected-configs/etc/env.d/gcc/avr-4.5.3 new file mode 100644 index 0000000..3c149bc --- /dev/null +++ b/tests/multi-native-selected-configs/etc/env.d/gcc/avr-4.5.3 @@ -0,0 +1,6 @@ +LDPATH="/usr/lib/gcc/avr/4.5.3" +MANPATH="/usr/share/gcc-data/avr/4.5.3/man" +INFOPATH="/usr/share/gcc-data/avr/4.5.3/info" +STDCXX_INCDIR="g++-v4" +CTARGET=avr +GCC_PATH="/usr/x86_64-pc-linux-gnu/avr/gcc-bin/4.5.3" diff --git a/tests/multi-native-selected-configs/etc/env.d/gcc/config-avr b/tests/multi-native-selected-configs/etc/env.d/gcc/config-avr new file mode 100644 index 0000000..61bab80 --- /dev/null +++ b/tests/multi-native-selected-configs/etc/env.d/gcc/config-avr @@ -0,0 +1 @@ +CURRENT=avr-4.5.3 diff --git a/tests/multi-native-selected-configs/etc/env.d/gcc/config-powerpc64-unknown-linux-gnu b/tests/multi-native-selected-configs/etc/env.d/gcc/config-powerpc64-unknown-linux-gnu new file mode 100644 index 0000000..22af3a9 --- /dev/null +++ b/tests/multi-native-selected-configs/etc/env.d/gcc/config-powerpc64-unknown-linux-gnu @@ -0,0 +1 @@ +CURRENT=powerpc64-unknown-linux-gnu-4.5.3 diff --git a/tests/multi-native-selected-configs/etc/env.d/gcc/config-sh4-unknown-linux-gnu b/tests/multi-native-selected-configs/etc/env.d/gcc/config-sh4-unknown-linux-gnu new file mode 100644 index 0000000..51c5bb0 --- /dev/null +++ b/tests/multi-native-selected-configs/etc/env.d/gcc/config-sh4-unknown-linux-gnu @@ -0,0 +1 @@ +CURRENT=sh4-unknown-linux-gnu-4.5.3 diff --git a/tests/multi-native-selected-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu b/tests/multi-native-selected-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu new file mode 100644 index 0000000..496f06c --- /dev/null +++ b/tests/multi-native-selected-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu @@ -0,0 +1 @@ +CURRENT=x86_64-pc-linux-gnu-4.6.1 diff --git a/tests/multi-native-selected-configs/etc/env.d/gcc/powerpc64-unknown-linux-gnu-4.5.3 b/tests/multi-native-selected-configs/etc/env.d/gcc/powerpc64-unknown-linux-gnu-4.5.3 new file mode 100644 index 0000000..14cb291 --- /dev/null +++ b/tests/multi-native-selected-configs/etc/env.d/gcc/powerpc64-unknown-linux-gnu-4.5.3 @@ -0,0 +1,6 @@ +LDPATH="/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.5.3" +MANPATH="/usr/share/gcc-data/powerpc64-unknown-linux-gnu/4.5.3/man" +INFOPATH="/usr/share/gcc-data/powerpc64-unknown-linux-gnu/4.5.3/info" +STDCXX_INCDIR="g++-v4" +CTARGET=powerpc64-unknown-linux-gnu +GCC_PATH="/usr/x86_64-pc-linux-gnu/powerpc64-unknown-linux-gnu/gcc-bin/4.5.3" diff --git a/tests/multi-native-selected-configs/etc/env.d/gcc/sh4-unknown-linux-gnu-4.5.3 b/tests/multi-native-selected-configs/etc/env.d/gcc/sh4-unknown-linux-gnu-4.5.3 new file mode 100644 index 0000000..3cf4fed --- /dev/null +++ b/tests/multi-native-selected-configs/etc/env.d/gcc/sh4-unknown-linux-gnu-4.5.3 @@ -0,0 +1,6 @@ +LDPATH="/usr/lib/gcc/sh4-unknown-linux-gnu/4.5.3" +MANPATH="/usr/share/gcc-data/sh4-unknown-linux-gnu/4.5.3/man" +INFOPATH="/usr/share/gcc-data/sh4-unknown-linux-gnu/4.5.3/info" +STDCXX_INCDIR="g++-v4" +CTARGET=sh4-unknown-linux-gnu +GCC_PATH="/usr/x86_64-pc-linux-gnu/sh4-unknown-linux-gnu/gcc-bin/4.5.3" diff --git a/tests/multi-native-selected-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 b/tests/multi-native-selected-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 new file mode 100644 index 0000000..58188f6 --- /dev/null +++ b/tests/multi-native-selected-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.0/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.0/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.0" diff --git a/tests/multi-native-selected-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 b/tests/multi-native-selected-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 new file mode 100644 index 0000000..d096389 --- /dev/null +++ b/tests/multi-native-selected-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1:/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/32" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1" diff --git a/tests/multi-native-selected-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 b/tests/multi-native-selected-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 new file mode 100644 index 0000000..51657e5 --- /dev/null +++ b/tests/multi-native-selected-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.2" diff --git a/tests/multi-native-selected-configs/test.current b/tests/multi-native-selected-configs/test.current new file mode 100644 index 0000000..2db2238 --- /dev/null +++ b/tests/multi-native-selected-configs/test.current @@ -0,0 +1,11 @@ +#!/bin/bash +targs=( + "" + x86_64-pc-linux-gnu + avr + powerpc64-unknown-linux-gnu + sh4-unknown-linux-gnu +) +for t in "${targs[@]}" ; do + gcc-config -c ${t} || exit 1 +done diff --git a/tests/multi-native-selected-configs/test.current.exp b/tests/multi-native-selected-configs/test.current.exp new file mode 100644 index 0000000..d6a36b9 --- /dev/null +++ b/tests/multi-native-selected-configs/test.current.exp @@ -0,0 +1,5 @@ +x86_64-pc-linux-gnu-4.6.1 +x86_64-pc-linux-gnu-4.6.1 +avr-4.5.3 +powerpc64-unknown-linux-gnu-4.5.3 +sh4-unknown-linux-gnu-4.5.3 diff --git a/tests/multi-native-selected-configs/test.list b/tests/multi-native-selected-configs/test.list new file mode 100644 index 0000000..8e2a891 --- /dev/null +++ b/tests/multi-native-selected-configs/test.list @@ -0,0 +1,3 @@ +#!/bin/bash +gcc-config -C -l "$@" +[[ $? -eq 0 ]] diff --git a/tests/multi-native-selected-configs/test.list.exp b/tests/multi-native-selected-configs/test.list.exp new file mode 100644 index 0000000..2bd4005 --- /dev/null +++ b/tests/multi-native-selected-configs/test.list.exp @@ -0,0 +1,10 @@ +Using gcc-config info in @ROOT@/ + [1] avr-4.5.3 * + + [2] powerpc64-unknown-linux-gnu-4.5.3 * + + [3] sh4-unknown-linux-gnu-4.5.3 * + + [4] x86_64-pc-linux-gnu-4.6.0 + [5] x86_64-pc-linux-gnu-4.6.1 * + [6] x86_64-pc-linux-gnu-4.6.2 diff --git a/tests/multi-native-selected-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/32/.keep b/tests/multi-native-selected-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/32/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/multi-native-selected-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/32/.keep diff --git a/tests/no-config/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 b/tests/no-config/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 new file mode 100644 index 0000000..51657e5 --- /dev/null +++ b/tests/no-config/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.2" diff --git a/tests/no-config/test.list b/tests/no-config/test.list new file mode 100644 index 0000000..58cab33 --- /dev/null +++ b/tests/no-config/test.list @@ -0,0 +1,3 @@ +#!/bin/bash +gcc-config -C -l "$@" +[[ $? -ne 0 ]] diff --git a/tests/no-config/test.list.exp b/tests/no-config/test.list.exp new file mode 100644 index 0000000..0cb83fd --- /dev/null +++ b/tests/no-config/test.list.exp @@ -0,0 +1,5 @@ + * gcc-config: No gcc profile is active! + +Using gcc-config info in @ROOT@/ +@GCC_CONFIG@: @ROOT@/etc/env.d/gcc/config-x86_64-pc-linux-gnu: No such file or directory + [1] x86_64-pc-linux-gnu-4.6.2 diff --git a/tests/no-config/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep b/tests/no-config/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/no-config/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep diff --git a/tests/run_tests b/tests/run_tests new file mode 100755 index 0000000..1d35d9f --- /dev/null +++ b/tests/run_tests @@ -0,0 +1,104 @@ +#!/bin/bash + +# Avoid bash localization of error messages +export LC_ALL=C + +if ! . /etc/init.d/functions.sh 2>/dev/null ; then + ebegin() { printf '%s ... ' "$*" ; } + eend() { + local r=${1:-0} + shift + if [[ $r -eq 0 ]] ; then + echo "[ ok ]" + else + echo "$* [ !! ]" + fi + return $r + } + die() { echo "$*"; exit 1; } +fi + +vars=( CHOST GCC_CONFIG ROOT TROOT NOCOLOR ) +unset ${vars[@]} + +TROOT=${PWD} +GCC_CONFIG="${TROOT}/../gcc-config" +if ! "${GCC_CONFIG}" --help >/dev/null ; then + die "could not find gcc-config in ${TROOT}/../" +fi +PATH="${TROOT}/..:${PATH}" + +NOCOLOR="true" +# This CHOST value doesn't matter. It could be anything. +# As long as all the configs we test are based on this being +# the CHOST value. +CHOST="x86_64-pc-linux-gnu" + +cmp_log() { + local ret log=$1 exp=$2 + local v args=() + for v in ${vars[@]} ; do + args+=( -e "s:@${v}@:${!v}:g" ) + done + args+=( -e "s|: line [0-9]*: |: |g" ) + sed "${args[@]}" "${exp}" > "${exp}.tmp" + sed "${args[@]}" "${log}" > "${log}.tmp" + diff -u "${exp}.tmp" "${log}.tmp" > "${log}.diff" + ret=$? + rm "${exp}.tmp" + return ${ret} +} + +rm -f */*.log* +rm -rf TMP-*-rw-* + +if [[ $# -eq 0 ]] ; then + set -- */test* +else + set -- ${@/%//test*} + set -- ${@//\/\///} +fi + +tret=0 +for t in "$@" ; do + [[ ${t} == *.exp ]] && continue + + ebegin "Running ${t}" + + test=${t##*/} + tdir=${t%/*} + if [[ ${tdir} == rw-* ]] ; then + cp -pPR "${tdir}" "TMP-${test}-${tdir}" + tdir="TMP-${test}-${tdir}" + fi + + ROOT=${TROOT}/${tdir} + + r="${ROOT}/runit" + cat <<-EOF > "${r}" + #!/bin/bash + cd "${ROOT}" + $(for v in PATH ${vars[@]} ; do printf '%s="%s"\n' ${v} "${!v}" ; done) + export ${vars[@]} + . ./${test} + EOF + chmod a+rx "${r}" + + log=${ROOT}/${test}.log + "${r}" >& "${log}" + ret=$? + reason="exit failure" + + if [[ ${ret} -eq 0 ]] ; then + reason="log difference" + cmp_log "${log}" "${log%.log}.exp" + ret=$? + fi + if eend ${ret} "due to ${reason}; see ${log}" ; then + rm -f "${log}"* "${r}" + [[ ${tdir} == TMP-${test}-rw-* ]] && rm -rf "${tdir}" + else + : $(( tret += $? )) + fi +done +exit ${tret} diff --git a/tests/rw-multi-native-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu b/tests/rw-multi-native-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu new file mode 100644 index 0000000..fc02d33 --- /dev/null +++ b/tests/rw-multi-native-configs/etc/env.d/gcc/config-x86_64-pc-linux-gnu @@ -0,0 +1 @@ +CURRENT=x86_64-pc-linux-gnu-4.6.2 diff --git a/tests/rw-multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 b/tests/rw-multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 new file mode 100644 index 0000000..58188f6 --- /dev/null +++ b/tests/rw-multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.0 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.0/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.0/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.0" diff --git a/tests/rw-multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 b/tests/rw-multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 new file mode 100644 index 0000000..d096389 --- /dev/null +++ b/tests/rw-multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.1 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1:/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/32" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1" diff --git a/tests/rw-multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 b/tests/rw-multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 new file mode 100644 index 0000000..51657e5 --- /dev/null +++ b/tests/rw-multi-native-configs/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.2" diff --git a/tests/rw-multi-native-configs/lib/.keep b/tests/rw-multi-native-configs/lib/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/lib/.keep diff --git a/tests/rw-multi-native-configs/test.select b/tests/rw-multi-native-configs/test.select new file mode 100644 index 0000000..ffa6bbc --- /dev/null +++ b/tests/rw-multi-native-configs/test.select @@ -0,0 +1,7 @@ +#!/bin/bash +for (( i = 1; i < 4; ++i )) ; do + rm -f usr/bin/cpp + gcc-config -C ${i} "$@" || exit 1 + [[ -e usr/bin/cpp ]] || exit 1 + [[ -e etc/env.d/04gcc-${CHOST} ]] || exit 1 +done diff --git a/tests/rw-multi-native-configs/test.select.exp b/tests/rw-multi-native-configs/test.select.exp new file mode 100644 index 0000000..9467041 --- /dev/null +++ b/tests/rw-multi-native-configs/test.select.exp @@ -0,0 +1,3 @@ + * Switching native-compiler to x86_64-pc-linux-gnu-4.6.0 ... [ ok ] + * Switching native-compiler to x86_64-pc-linux-gnu-4.6.1 ... [ ok ] + * Switching native-compiler to x86_64-pc-linux-gnu-4.6.2 ... [ ok ] diff --git a/tests/rw-multi-native-configs/test.use-old b/tests/rw-multi-native-configs/test.use-old new file mode 100644 index 0000000..faf5605 --- /dev/null +++ b/tests/rw-multi-native-configs/test.use-old @@ -0,0 +1,3 @@ +#!/bin/bash +gcc-config -C -O "$@" +[[ $? -eq 0 ]] diff --git a/tests/rw-multi-native-configs/test.use-old.exp b/tests/rw-multi-native-configs/test.use-old.exp new file mode 100644 index 0000000..6d414a1 --- /dev/null +++ b/tests/rw-multi-native-configs/test.use-old.exp @@ -0,0 +1 @@ + * Switching native-compiler to x86_64-pc-linux-gnu-4.6.2 ... [ ok ] diff --git a/tests/rw-multi-native-configs/usr/bin/.keep b/tests/rw-multi-native-configs/usr/bin/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/bin/.keep diff --git a/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0/32/.keep b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0/32/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0/32/.keep diff --git a/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0/libgcc.a b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0/libgcc.a new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.0/libgcc.a diff --git a/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/32/.keep b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/32/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/32/.keep diff --git a/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/libgcc.a b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/libgcc.a new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/libgcc.a diff --git a/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep diff --git a/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/libgcc.a b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/libgcc.a new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/libgcc.a diff --git a/tests/rw-multi-native-configs/usr/lib/misc/gcc-config b/tests/rw-multi-native-configs/usr/lib/misc/gcc-config new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/lib/misc/gcc-config diff --git a/tests/rw-multi-native-configs/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.0/cpp b/tests/rw-multi-native-configs/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.0/cpp new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.0/cpp diff --git a/tests/rw-multi-native-configs/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1/cpp b/tests/rw-multi-native-configs/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1/cpp new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1/cpp diff --git a/tests/rw-multi-native-configs/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.2/cpp b/tests/rw-multi-native-configs/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.2/cpp new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/tests/rw-multi-native-configs/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.2/cpp diff --git a/tests/single-config/etc/env.d/gcc/config-x86_64-pc-linux-gnu b/tests/single-config/etc/env.d/gcc/config-x86_64-pc-linux-gnu new file mode 100644 index 0000000..fc02d33 --- /dev/null +++ b/tests/single-config/etc/env.d/gcc/config-x86_64-pc-linux-gnu @@ -0,0 +1 @@ +CURRENT=x86_64-pc-linux-gnu-4.6.2 diff --git a/tests/single-config/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 b/tests/single-config/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 new file mode 100644 index 0000000..51657e5 --- /dev/null +++ b/tests/single-config/etc/env.d/gcc/x86_64-pc-linux-gnu-4.6.2 @@ -0,0 +1,5 @@ +LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32" +MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/man" +INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.2/info" +STDCXX_INCDIR="g++-v4" +GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.2" diff --git a/tests/single-config/test.current b/tests/single-config/test.current new file mode 100644 index 0000000..5999ed6 --- /dev/null +++ b/tests/single-config/test.current @@ -0,0 +1,3 @@ +#!/bin/bash +gcc-config -c || exit 1 +gcc-config -c x86_64-pc-linux-gnu || exit 1 diff --git a/tests/single-config/test.current.exp b/tests/single-config/test.current.exp new file mode 100644 index 0000000..45640c3 --- /dev/null +++ b/tests/single-config/test.current.exp @@ -0,0 +1,2 @@ +x86_64-pc-linux-gnu-4.6.2 +x86_64-pc-linux-gnu-4.6.2 diff --git a/tests/single-config/test.list b/tests/single-config/test.list new file mode 100644 index 0000000..8e2a891 --- /dev/null +++ b/tests/single-config/test.list @@ -0,0 +1,3 @@ +#!/bin/bash +gcc-config -C -l "$@" +[[ $? -eq 0 ]] diff --git a/tests/single-config/test.list.exp b/tests/single-config/test.list.exp new file mode 100644 index 0000000..1c1b2c9 --- /dev/null +++ b/tests/single-config/test.list.exp @@ -0,0 +1,2 @@ +Using gcc-config info in @ROOT@/ + [1] x86_64-pc-linux-gnu-4.6.2 * diff --git a/tests/single-config/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep b/tests/single-config/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/single-config/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/32/.keep |