aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/.gitignore1
-rw-r--r--tests/.gitignore2
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/atlocal.in2
-rw-r--r--tests/exact01.at5
-rw-r--r--tests/initdb.at23
-rw-r--r--tests/rewrite01.at5
-rw-r--r--tests/rewrite02.at5
-rw-r--r--tests/rewrite03.at5
-rw-r--r--tests/rewrite04.at5
-rw-r--r--tests/rewrite05.at5
-rw-r--r--tests/rewrite06.at5
-rw-r--r--tests/testsuite.at20
13 files changed, 61 insertions, 24 deletions
diff --git a/src/.gitignore b/src/.gitignore
index 7f6e438..63db32d 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -1,2 +1,3 @@
+*.rst
vcc_if.c
vcc_if.h
diff --git a/tests/.gitignore b/tests/.gitignore
index e36f81c..f9cbf3f 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -1,3 +1,5 @@
+.TESTINIT
+FAILURE
atconfig
atlocal
initdb
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 1d0094e..6d06b53 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -17,7 +17,7 @@
EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4
DISTCLEANFILES = atconfig $(check_SCRIPTS)
MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
-
+CLEANFILES = .TESTINIT FAILURE
## ------------ ##
## package.m4. ##
diff --git a/tests/atlocal.in b/tests/atlocal.in
index 424072d..057b132 100644
--- a/tests/atlocal.in
+++ b/tests/atlocal.in
@@ -3,6 +3,8 @@
# Copyright (C) 2013-2014 Sergey Poznyakoff
PATH=@abs_builddir@:@abs_top_builddir@/src:@abs_top_srcdir@/build-aux:$top_srcdir:$srcdir:$PATH
+INITFILE=@abs_builddir@/.TESTINIT
+FAILFILE=@abs_builddir@/FAILURE
VARNISHTEST="@VARNISHSRC@/bin/varnishtest/varnishtest -Dvarnishd=@VARNISHSRC@/bin/varnishd/varnishd"
VARNISHVERSION=@VARNISHVERSION@
: ${DBRW_TEST_DBTYPE=@DBRW_TEST_DBTYPE@}
diff --git a/tests/exact01.at b/tests/exact01.at
index a98d832..41d3807 100644
--- a/tests/exact01.at
+++ b/tests/exact01.at
@@ -16,8 +16,11 @@
AT_SETUP(Exact)
AT_KEYWORDS(exact exact01)
+
+AT_DBRW_INIT
+
AT_CHECK([
-AT_DBCRED_PREREQ
+AT_DBINIT_PREREQ
AT_VCL([SELECT dest FROM redirects WHERE host='$host' AND url='$url'],
[txreq -url /local -hdr "Host:en.example.net"
rxresp
diff --git a/tests/initdb.at b/tests/initdb.at
index 471942c..d158664 100644
--- a/tests/initdb.at
+++ b/tests/initdb.at
@@ -14,13 +14,11 @@
# You should have received a copy of the GNU General Public License
# along with vmod-dbrw. If not, see <http://www.gnu.org/licenses/>.
-AT_SETUP([Initialize database])
-AT_KEYWORDS([exact01 rewrite01 rewrite02 rewrite03 rewrite04 rewrite05
- rewrite06])
-
+m4_define([AT_DBRW_INITDB],[
AT_CHECK([
+rm -f $FAILFILE $INITFILE
AT_DBCRED_PREREQ
-initdb -c mysql "$DBRW_TEST_PARAMS" 2>err <<'EOT'
+initdb -c $DBRW_TEST_DBTYPE "$DBRW_TEST_PARAMS" 2>err <<'EOT'
DROP TABLE IF EXISTS redirects;
CREATE TABLE redirects (
host varchar(255) NOT NULL DEFAULT '',
@@ -46,15 +44,16 @@ CREATE TABLE rewrite (
INSERT INTO rewrite VALUES
('en.example.net','/local','http://uno.example.com/remote',NULL,NULL,NULL),
-('en.example.net','/local/%','http://dos.example.com/$1','$url','/local/(.*)',NULL),
-('en.example.net','/local2/%','http://to.example.net/$1$2','$url','/local2/([[^\\?]]*)(\\?.*)?',NULL),
-('to.example.net','/local/%','http://dos.example.net/$1','$url','/local/(.*)','QSA'),
-('tre.example.net','/local/%','http://dos.example.net/$1?i=10','$url','/local/(.*)','QSA,R=302');
+('en.example.net','/local/%','http://dos.example.com/$[]1','$url','/local/(.*)',NULL),
+('en.example.net','/local2/%','http://to.example.net/$[]1$[]2','$url','/local2/([[^\\?]]*)(\\?.*)?',NULL),
+('to.example.net','/local/%','http://dos.example.net/$[]1','$url','/local/(.*)','QSA'),
+('tre.example.net','/local/%','http://dos.example.net/$[]1?i=10','$url','/local/(.*)','QSA,R=302');
EOT
],
[0],
[],
-[ignore])
-
-AT_CLEANUP \ No newline at end of file
+[],
+[mv err $FAILFILE],
+[echo "OK" > $INITFILE])
+]) \ No newline at end of file
diff --git a/tests/rewrite01.at b/tests/rewrite01.at
index d6d3ca1..14232f3 100644
--- a/tests/rewrite01.at
+++ b/tests/rewrite01.at
@@ -16,8 +16,11 @@
AT_SETUP(Rewrite)
AT_KEYWORDS(rewrite rewrite01)
+
+AT_DBRW_INIT
+
AT_CHECK([
-AT_DBCRED_PREREQ
+AT_DBINIT_PREREQ
AT_VCL([SELECT dest,pattern,value
FROM rewrite
WHERE host='$host' AND '$url' LIKE url],
diff --git a/tests/rewrite02.at b/tests/rewrite02.at
index 1f5d0b6..1ea4173 100644
--- a/tests/rewrite02.at
+++ b/tests/rewrite02.at
@@ -16,8 +16,11 @@
AT_SETUP(Rewrite 2)
AT_KEYWORDS(rewrite rewrite02)
+
+AT_DBRW_INIT
+
AT_CHECK([
-AT_DBCRED_PREREQ
+AT_DBINIT_PREREQ
AT_VCL([SELECT dest,pattern,value
FROM rewrite
WHERE host='$host' AND '$url' LIKE url],
diff --git a/tests/rewrite03.at b/tests/rewrite03.at
index 2e1236d..6433f7d 100644
--- a/tests/rewrite03.at
+++ b/tests/rewrite03.at
@@ -16,8 +16,11 @@
AT_SETUP(Rewrite 3)
AT_KEYWORDS(rewrite rewrite03)
+
+AT_DBRW_INIT
+
AT_CHECK([
-AT_DBCRED_PREREQ
+AT_DBINIT_PREREQ
AT_VCL([SELECT dest,pattern,value
FROM rewrite
WHERE host='$host' AND '$url' LIKE url],
diff --git a/tests/rewrite04.at b/tests/rewrite04.at
index e8bbef8..4715c6f 100644
--- a/tests/rewrite04.at
+++ b/tests/rewrite04.at
@@ -16,8 +16,11 @@
AT_SETUP(Rewrite 4)
AT_KEYWORDS(rewrite rewrite04)
+
+AT_DBRW_INIT
+
AT_CHECK([
-AT_DBCRED_PREREQ
+AT_DBINIT_PREREQ
AT_VCL([SELECT dest,pattern,value
FROM rewrite
WHERE host='$host' AND '$url' LIKE url],
diff --git a/tests/rewrite05.at b/tests/rewrite05.at
index f33c27d..5927ba3 100644
--- a/tests/rewrite05.at
+++ b/tests/rewrite05.at
@@ -16,8 +16,11 @@
AT_SETUP(Rewrite 5)
AT_KEYWORDS(rewrite rewrite05)
+
+AT_DBRW_INIT
+
AT_CHECK([
-AT_DBCRED_PREREQ
+AT_DBINIT_PREREQ
AT_VCL([SELECT dest,pattern,value
FROM rewrite
WHERE host='$host' AND '$url' LIKE url],
diff --git a/tests/rewrite06.at b/tests/rewrite06.at
index 5bd0c8f..39666b7 100644
--- a/tests/rewrite06.at
+++ b/tests/rewrite06.at
@@ -16,8 +16,11 @@
AT_SETUP(Rewrite 6)
AT_KEYWORDS(rewrite rewrite06)
+
+AT_DBRW_INIT
+
AT_CHECK([
-AT_DBCRED_PREREQ
+AT_DBINIT_PREREQ
AT_VCL([SELECT dest,pattern,value,flags
FROM rewrite
WHERE host='$host' AND '$url' LIKE url],
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 2dd1bb3..aafef83 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -17,8 +17,22 @@
m4_version_prereq([2.52g])
m4_define([AT_SKIP_TEST],[exit 77])
-m4_define([AT_DBCRED_PREREQ],[test -z "$DBRW_TEST_DBTYPE" && AT_SKIP_TEST
-test -z "$DBRW_TEST_PARAMS" && AT_SKIP_TEST])
+m4_define([AT_DBCRED_PREREQ],[dnl
+AT_SKIP_IF(test -z "$DBRW_TEST_DBTYPE" \
+ -o -z "$DBRW_TEST_PARAMS")])
+
+m4_include([initdb.at])
+
+m4_define([AT_DBINIT_PREREQ],[dnl
+AT_DBCRED_PREREQ
+AT_SKIP_IF(test -f $FAILFILE)
+])
+
+m4_define([AT_DBRW_INIT],[
+if ! test -f $INITFILE; then
+ AT_DBRW_INITDB
+fi
+])
m4_define([AT_VCL],[
at_vcl_backend "m4_bpatsubst([$1],\$,\\$)" > test.vtc
@@ -37,8 +51,6 @@ m4_define([AT_VARNISHTEST],
AT_INIT
-m4_include([initdb.at])
-
m4_include([exact01.at])
m4_include([rewrite01.at])

Return to:

Send suggestions and report system problems to the System administrator.