mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-18 20:37:56 +00:00
Start a testsuite for upgrade script
Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
parent
3b86d2d0e6
commit
523534c9db
@ -132,7 +132,7 @@ upgrade_v0()
|
||||
CT_LIBC_avr_libc|CT_LIBC_glibc|CT_LIBC_musl|CT_LIBC_newlib|CT_LIBC_none|\
|
||||
CT_LIBC_uClibc)
|
||||
# Renamed to upper-case
|
||||
opt=${opt^^}
|
||||
replace ${opt^^}
|
||||
;;
|
||||
CT_ARCH_XTENSA_CUSTOM_NAME)
|
||||
replace CT_OVERLAY_NAME
|
||||
|
2
testing/upgrade/.gitignore
vendored
Normal file
2
testing/upgrade/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
.config*
|
||||
logs
|
116
testing/upgrade/run.sh
Executable file
116
testing/upgrade/run.sh
Executable file
@ -0,0 +1,116 @@
|
||||
#!/bin/bash
|
||||
|
||||
CTNG=${CTNG-../../ct-ng}
|
||||
|
||||
current_tc=unknown
|
||||
fails_tc=0
|
||||
fails_total=0
|
||||
|
||||
fail()
|
||||
{
|
||||
fails_tc=$[fails_tc + 1]
|
||||
fails_total=$[fails_total + 1]
|
||||
}
|
||||
|
||||
finish()
|
||||
{
|
||||
if [ "${fails_tc}" != 0 ]; then
|
||||
echo ">>>>> $current_tc: FAIL" >&2
|
||||
else
|
||||
echo ">>>>> $current_tc: PASS" >&2
|
||||
fi
|
||||
fails_tc=0
|
||||
}
|
||||
|
||||
run_sample()
|
||||
{
|
||||
local -A expect_set expect_unset
|
||||
local o v ln
|
||||
|
||||
# Basename for logging
|
||||
exec {LOG}>"logs/${current_tc}.log"
|
||||
|
||||
# Determine expected values
|
||||
while read ln; do
|
||||
case "${ln}" in
|
||||
"## "*"="*)
|
||||
ln=${ln#* }
|
||||
o=${ln%%=*}
|
||||
v=${ln#*=}
|
||||
expect_set[${o}]=${v}
|
||||
;;
|
||||
"## "*" is not set")
|
||||
ln=${ln#* }
|
||||
o=${ln%% *}
|
||||
expect_unset[${o}]=1
|
||||
;;
|
||||
esac
|
||||
done < "samples/${current_tc}.config"
|
||||
|
||||
# Now run the upgrade
|
||||
echo ">>>> Running the config through an upgrade" >&${LOG}
|
||||
cp "samples/${current_tc}.config" .config
|
||||
${CTNG} upgradeconfig >&${LOG} 2>&${LOG}
|
||||
echo >&${LOG}
|
||||
echo ">>>> Checking the config after the upgrade" >&${LOG}
|
||||
while read ln; do
|
||||
case "${ln}" in
|
||||
*"="*)
|
||||
o=${ln%%=*}
|
||||
v=${ln#*=}
|
||||
if [ "${expect_unset[${o}]+set}" = "set" ]; then
|
||||
echo "Expect ${o} to be unset" >&${LOG}
|
||||
echo "Actual value of ${o}: ${v}" >&${LOG}
|
||||
fail
|
||||
elif [ "${expect_set[${o}]+set}" = "set" ]; then
|
||||
if [ "${expect_set[${o}]}" != "${v}" ]; then
|
||||
echo "Expect value of ${o}: ${expect_set[${o}]}" >&${LOG}
|
||||
echo "Actual value of ${o}: ${v}" >&${LOG}
|
||||
fail
|
||||
else
|
||||
echo "Matched value of ${o}: ${v}" >&${LOG}
|
||||
fi
|
||||
fi
|
||||
unset expect_set[${o}]
|
||||
unset expect_unset[${o}]
|
||||
;;
|
||||
"# "*" is not set")
|
||||
ln=${ln#* }
|
||||
o=${ln%% *}
|
||||
if [ "${expect_set[${o}]+set}" = "set" ]; then
|
||||
echo "Expect value of ${o}: ${expect_set[${o}]}" >&${LOG}
|
||||
echo "Actual ${o} is unset" >&${LOG}
|
||||
fail
|
||||
elif [ "${expect_unset[${o}]+set}" = "set" ]; then
|
||||
echo "Matched unset ${o}" >&${LOG}
|
||||
fi
|
||||
unset expect_set[${o}]
|
||||
unset expect_unset[${o}]
|
||||
;;
|
||||
esac
|
||||
done < .config
|
||||
for o in "${!expect_set[@]}"; do
|
||||
echo "Expect value of ${o}: ${expect_set[${o}]}" >&${LOG}
|
||||
echo "Variable ${o} not present" >&${LOG}
|
||||
fail
|
||||
done
|
||||
for o in "${!expect_unset[@]}"; do
|
||||
echo "Expect ${o} being unset" >&${LOG}
|
||||
echo "Variable ${o} not present" >&${LOG}
|
||||
fail
|
||||
done
|
||||
exec {LOG}>&-
|
||||
finish
|
||||
}
|
||||
|
||||
mkdir -p logs
|
||||
for i in samples/*.config; do
|
||||
current_tc=${i#samples/}
|
||||
current_tc=${current_tc%.config}
|
||||
run_sample
|
||||
done
|
||||
|
||||
if [ "${fails_total}" != 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user