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 \
+"