Any objections to adding the updated build-test scripts to bzr?

The current round have been broken out into a master test script and a set of control files for configured builds specific to certain OS environments (for testing packages builds)
with a layered design for independently testing components build.
This last layered control files still have to be determined, but that can be done incrementally.

The entire set is loosely modeled along the same lines as some binary packaging environments. But geared towards full compile testing instead of package generation.

I've broken off the shell script prefixes to make it somewhat portable
and added a top-level test-builds.sh for manually kicking the process off in one easy step.

Amos
--
Please use Squid 2.7.STABLE3 or 3.0.STABLE7
=== added file 'test-builds.sh'
--- test-builds.sh	1970-01-01 00:00:00 +0000
+++ test-builds.sh	2008-07-11 11:20:56 +0000
@@ -0,0 +1,22 @@
+# #!/bin/bash
+#
+#  Run specific build tests for a given OS environment.
+#
+
+if test -f "./test-suite/buildtests/os-${1}.opts" ; then
+	echo "TESTING: ${1}"
+	./test-suite/buildtest.sh ./test-suite/buildtests/os-${1}
+fi
+
+#
+#  Run specific tests for each combination of configure-time
+#  Options.
+#
+#  These layers are constructed from detailed knowledge of
+#  component dependencies.
+#
+
+for f in `ls -1 ./test-suite/buildtests/layer*.opts` ; do
+	echo "TESTING: ${f/.opts}"
+	./test-suite/buildtest.sh ${f/.opts}
+done

=== added file 'test-suite/buildtest.sh'
--- test-suite/buildtest.sh	1970-01-01 00:00:00 +0000
+++ test-suite/buildtest.sh	2008-07-11 11:21:26 +0000
@@ -0,0 +1,43 @@
+# #!/bin/bash
+#
+# Configure and run a test build against any given set of configure options
+# or compile-time flags.
+#
+# Should be run from the source package root directory with paths relative to there.
+#
+
+dist="${1}"
+if test -f ${dist/.opts}.opts ; then
+	echo "BUILD: ${dist/.opts}.opts"
+	. ./${dist/.opts}.opts
+else
+	echo "BUILD: DEFAULT"
+	OPTS=""
+fi
+
+if test -f ${dist/.opts/}.flags ; then
+#	echo "DEBUG: ${dist/.opts}.flags"
+	FLAGS=`cat ./${dist}.flags`
+# else nothing set for flags.
+fi
+
+#
+# empty all the existing code, reconfigure and builds test code
+
+#TODO make -k distclean
+
+# Figure out where to log the test output
+log=`echo "${dist}" | sed -r s/..test-suite.buildtests.//g `
+
+#
+# above command currently encounters dependancy problems on cleanup.
+#
+rm -f -r src/fs/aufs/.deps src/fs/diskd/.deps &&
+(
+	./bootstrap.sh &&
+	./configure ${OPTS} &&
+	make check &&
+	make
+) 2>&1 > ./buildtest_${log}.log
+
+# do not build any of the install's ...

=== added directory 'test-suite/buildtests'
=== added file 'test-suite/buildtests/layer-00-default.opts'
--- test-suite/buildtests/layer-00-default.opts	1970-01-01 00:00:00 +0000
+++ test-suite/buildtests/layer-00-default.opts	2008-07-11 11:07:03 +0000
@@ -0,0 +1,5 @@
+#
+# Default configuration options.
+#  - Nothing special configured. Just whatever is found by "./configure"
+#
+OPTS=""

=== added file 'test-suite/buildtests/os-debian.flags'
--- test-suite/buildtests/os-debian.flags	1970-01-01 00:00:00 +0000
+++ test-suite/buildtests/os-debian.flags	2008-07-11 11:07:03 +0000
@@ -0,0 +1,11 @@
+# #!//bin/bash
+
+# Debian for some reason builds using explicit 'cc' instead of 'gcc' or automatic
+export build_alias="i486-linux-gnu"
+export CC="cc"
+export CFLAGS="-g -O2 -g -Wall -O2"
+export LDFLAGS=""
+export CPPFLAGS=""
+export CXX="g++"
+export CXXFLAGS="-g -O2 -g -Wall -O2"
+export FFLAGS="-g -O2"

=== added file 'test-suite/buildtests/os-debian.opts'
--- test-suite/buildtests/os-debian.opts	1970-01-01 00:00:00 +0000
+++ test-suite/buildtests/os-debian.opts	2008-07-11 11:07:03 +0000
@@ -0,0 +1,46 @@
+# #!/bin/bash
+#
+# Configure options currently used by Debian Packaged Release
+#
+# This is to test any release build against what the package maintainers are seeing
+#
+OPTS=" \
+	--build=i486-linux-gnu \
+	--prefix=/usr \
+	--includedir="\${prefix}/include" \
+	--mandir="\${prefix}/share/man" \
+	--infodir="\${prefix}/share/info" \
+	--sysconfdir=/etc \
+	--localstatedir=/var \
+	--libexecdir="\${prefix}/lib/squid3" \
+	--disable-maintainer-mode \
+	--disable-dependency-tracking \
+	--srcdir=. \
+	--datadir=/usr/share/squid3 \
+	--sysconfdir=/etc/squid3 \
+	--mandir=/usr/share/man \
+	--with-cppunit-basedir=/usr \
+	--enable-inline \
+	--enable-async-io=8 \
+	--enable-storeio="ufs,aufs,coss,diskd,null" \
+	--enable-removal-policies="lru,heap" \
+	--enable-poll \
+	--enable-delay-pools \
+	--enable-cache-digests \
+	--enable-snmp \
+	--enable-htcp \
+	--enable-select \
+	--enable-carp \
+	--with-large-files \
+	--enable-underscores \
+	--enable-icap-client \
+	--enable-auth="basic,digest,ntlm" \
+	--enable-basic-auth-helpers="LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,getpwnam,multi-domain-NTLM" \
+	--enable-ntlm-auth-helpers="SMB" \
+	--enable-digest-auth-helpers="ldap,password" \
+	--enable-external-acl-helpers="ip_user,ldap_group,session,unix_group,wbinfo_group" \
+	--with-filedescriptors=65536 \
+	--with-default-user=proxy \
+	--enable-epoll \
+	--enable-linux-netfilter \
+"

=== added file 'test-suite/buildtests/os-ubuntu.flags'
--- test-suite/buildtests/os-ubuntu.flags	1970-01-01 00:00:00 +0000
+++ test-suite/buildtests/os-ubuntu.flags	2008-07-11 11:07:03 +0000
@@ -0,0 +1,9 @@
+# #!/bin/bash
+
+# Ubuntu for some reason built using 'cc' instead of gcc
+export CC="/usr/bin/cc"
+export CXX="g++"
+export CFLAGS="-g -O2 -g -Wall -O2"
+export CXXFLAGS="-g -O2 -g -Wall -O2"
+export CPPFLAGS=""
+export LDFLAGS="-Wl,-Bsymbolic-functions"

=== added file 'test-suite/buildtests/os-ubuntu.opts'
--- test-suite/buildtests/os-ubuntu.opts	1970-01-01 00:00:00 +0000
+++ test-suite/buildtests/os-ubuntu.opts	2008-07-11 11:07:03 +0000
@@ -0,0 +1,46 @@
+# #!/bin/bash
+#
+# Configure options currently used by Ubuntu Packaged Release
+#
+# This is to test any release build against what the package maintainers are seeing
+#
+OPTS=" \
+	--build=i486-linux-gnu \
+	--prefix=/usr \
+	--includedir="\${prefix}/include" \
+	--mandir="\${prefix}/share/man" \
+	--infodir="\${prefix}/share/info" \
+	--sysconfdir=/etc \
+	--localstatedir=/var \
+	--libexecdir="\${prefix}/lib/squid3" \
+	--disable-maintainer-mode \
+	--disable-dependency-tracking \
+	--srcdir=. \
+	--datadir=/usr/share/squid3 \
+	--sysconfdir=/etc/squid3 \
+	--mandir=/usr/share/man \
+	--with-cppunit-basedir=/usr \
+	--enable-inline \
+	--enable-async-io=8 \
+	--enable-storeio="ufs,aufs,coss,diskd,null" \
+	--enable-removal-policies="lru,heap" \
+	--enable-poll \
+	--enable-delay-pools \
+	--enable-cache-digests \
+	--enable-snmp \
+	--enable-htcp \
+	--enable-select \
+	--enable-carp \
+	--with-large-files \
+	--enable-underscores \
+	--enable-icap-client \
+	--enable-auth="basic,digest,ntlm" \
+	--enable-basic-auth-helpers="LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,getpwnam,multi-domain-NTLM" \
+	--enable-ntlm-auth-helpers="SMB" \
+	--enable-digest-auth-helpers="ldap,password" \
+	--enable-external-acl-helpers="ip_user,ldap_group,session,unix_group,wbinfo_group" \
+	--with-filedescriptors=65536 \
+	--with-default-user=proxy \
+	--enable-epoll \
+	--enable-linux-netfilter \
+"

Reply via email to