diff mbox

Kconfig test scripts

Message ID 20130725202112.GA17599@merkur.ravnborg.org (mailing list archive)
State New, archived
Headers show

Commit Message

Sam Ravnborg July 25, 2013, 8:21 p.m. UTC
> 
> 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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