> > How would one express a test for 'choice'? Test randconfig? I made a minimal test for choice - see below. Each test is an independent shell script - so we can in each shell script do whatever we which to do. This is still WIP - I will let you know when I have something that I assume is ready. I am away for a week - so do not expect prompt replies. Sam diff --git a/scripts/kconfig/tests/rand_two_symbols.sh b/scripts/kconfig/tests/rand_two_symbols.sh new file mode 100644 index 0000000..ce5c482 --- /dev/null +++ b/scripts/kconfig/tests/rand_two_symbols.sh @@ -0,0 +1,30 @@ +#!/bin/sh +#Randconfig with two symbols + +cat << EOF > Kconfig.test +config A + bool "A" + +config B + bool "A" +EOF + +rm -f dot_config_y.all + +for i in $(seq 1 10); do + KCONFIG_SEED=$i + export KCONFIG_SEED + ../conf Kconfig.test --randconfig > /dev/null + grep "=y" .config >> dot_config_y.all +done + +acount=$(grep A=y dot_config_y.all | wc -l) +bcount=$(grep B=y dot_config_y.all | wc -l) + +if [ "${acount}" != "" -a ${bcount} != "" ]; then + if [ ${acount} -gt 0 -a ${bcount} -gt 0 ]; then + exit 0 + fi +fi + +exit 1 diff --git a/scripts/kconfig/tests/run.sh b/scripts/kconfig/tests/run.sh new file mode 100644 index 0000000..5f3a6ff --- /dev/null +++ b/scripts/kconfig/tests/run.sh @@ -0,0 +1,40 @@ +#!/bin/sh +# set up test environment +mkdir -p include/config +mkdir -p include/generated + +tests="single_symbol.sh two_symbols.sh rand_two_symbols.sh" +failed=0 +passed=0 + +for t in ${tests}; do + + rm -f dot_config.expect + + echo Testing: $(head -n 1 $t | cut -d '#' -f 2-) + + /bin/sh $t + + fail=$? + + if [ -f dot_config.expect ]; then + grep -v ^# .config > dot_config.actual + if ! cmp -s dot_config.actual dot_config.expect ; then + fail=1 + echo FAILED: + diff -u dot_config.expect dot_config.actual + fi + fi + + if [ ${fail} -gt 0 ]; then + failed=$(expr ${failed} + 1); + else + passed=$(expr ${passed} + 1); + fi +done + +if [ ${failed} -gt 0 ]; then + echo Test cases failed: ${failed} +fi + +echo Test cases passed: ${passed} out of $(expr ${passed} + ${failed}) diff --git a/scripts/kconfig/tests/single_symbol.sh b/scripts/kconfig/tests/single_symbol.sh new file mode 100644 index 0000000..dc03a8c --- /dev/null +++ b/scripts/kconfig/tests/single_symbol.sh @@ -0,0 +1,13 @@ +#Single symbol with default value equal y + +cat << EOF > Kconfig.test +config SINGLE + def_bool y + +EOF + +cat << EOF > dot_config.expect +CONFIG_SINGLE=y +EOF + +../conf Kconfig.test > /dev/null diff --git a/scripts/kconfig/tests/two_symbols.sh b/scripts/kconfig/tests/two_symbols.sh new file mode 100644 index 0000000..7081c1d --- /dev/null +++ b/scripts/kconfig/tests/two_symbols.sh @@ -0,0 +1,16 @@ +# Two symbols with default values equal y + +cat << EOF > Kconfig.test +config FIRST + def_bool y + +config SECOND + def_bool y +EOF + +cat << EOF > dot_config.expect +CONFIG_FIRST=y +CONFIG_SECOND=y +EOF + +../conf Kconfig.test > /dev/null -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html