btrfs-progs: tests: add script to help build coverage
authorDavid Sterba <dsterba@suse.com>
Thu, 6 Oct 2016 15:35:33 +0000 (17:35 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 10 Oct 2016 07:46:51 +0000 (09:46 +0200)
Signed-off-by: David Sterba <dsterba@suse.com>
tests/build-tests.sh [new file with mode: 0755]

diff --git a/tests/build-tests.sh b/tests/build-tests.sh
new file mode 100755 (executable)
index 0000000..04e3fd1
--- /dev/null
@@ -0,0 +1,88 @@
+#!/bin/sh
+# test various compilation options
+# - 32bit, 64bit
+# - dynamic, static
+# - various configure options
+#
+# Arguments: anything will be passed to 'make', eg. define CC, D, V
+#
+# Requirements for full coverage:
+# - static version of all libs
+# - 32bit/64bit libraries, also the static variants
+
+make=make
+opts="-j16 $@"
+
+conf=
+target=
+
+function die() {
+       echo "ERROR: $@"
+       exit 1
+}
+
+function check_result() {
+       local ret
+       local str
+
+       ret=$1
+
+       str="RESULT of target($target) conf($conf): "
+       case $ret in
+               0) str="$str OK";;
+               *) str="$str FAIL";;
+       esac
+       echo "$str"
+       verdict="$verdict
+$str"
+}
+
+function buildme() {
+       make clean-all
+
+       ./autogen.sh && configure "$conf" || die "configure not working with: $@"
+       $make clean
+       $make $opts $target
+       check_result "$?"
+       echo "VERDICT: $verdict"
+}
+
+function build_make_targets() {
+       # defaults
+       target=
+       buildme
+       # defaults, static
+       target=static
+       buildme
+       # defaults, 32bit
+       target="EXTRA_CFLAGS=-m32"
+       buildme
+       # defaults, 64bit
+       target="EXTRA_CFLAGS=-m64"
+       buildme
+       # defaults, library
+       target="library-test"
+       buildme
+}
+
+# main()
+if ! [ -f configure.ac ]; then
+       echo "Please run me from the top directory"
+       exit 1
+fi
+
+verdict=
+conf=
+build_make_targets
+
+conf='--disable-documentation'
+build_make_targets
+
+conf='--disable-backtrace'
+build_make_targets
+
+conf='--disable-convert'
+build_make_targets
+
+echo "---------------------------------------------------"
+echo "$verdict"