diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2014-12-17 15:24:31 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2014-12-17 15:24:31 +0200 |
commit | 475a01f652eccea04fb8992f0c2ccb027970539d (patch) | |
tree | 22c1011a8c4172d7e72680ddfd1a9249fe1fe663 | |
parent | 32f09571e564c42c04acdba2cf139a507aa4b0da (diff) |
Add support for database-specific output in tests
Use that for the bulk test.
-rw-r--r-- | build/bootstrap.make | 10 | ||||
-rw-r--r-- | common/bulk/makefile | 4 | ||||
-rw-r--r-- | common/bulk/test-mssql.std (renamed from common/bulk/test.std) | 0 | ||||
-rw-r--r-- | common/bulk/test-mysql.std | 0 | ||||
-rw-r--r-- | common/bulk/test-oracle.std | 226 | ||||
-rw-r--r-- | common/bulk/test-pgsql.std | 0 | ||||
-rw-r--r-- | common/bulk/test-sqlite.std | 0 | ||||
-rw-r--r-- | common/makefile | 2 | ||||
-rw-r--r-- | tester.bat | 24 | ||||
-rwxr-xr-x | tester.in | 13 |
10 files changed, 264 insertions, 15 deletions
diff --git a/build/bootstrap.make b/build/bootstrap.make index 7b97d74..9f749e3 100644 --- a/build/bootstrap.make +++ b/build/bootstrap.make @@ -114,25 +114,27 @@ endif # # $1 database name in the multi-database mode and empty otherwise +# $2 optional test.std file suffix (e.g., '-mysql' for test-mysql.std) # define test-schemaless-rule -$$(test$(if $1,_$1)): $$(driver) $$(src_base)/test.std +$$(test$(if $1,_$1)): $$(driver) $$(src_base)/test$2.std $$(call message,test$(if $1, [$1]) $$<,$$< $1 --options-file \ $$(dcf_root)/$(if $1,$1,$(db_id)).options >$$(out_base)/test.out) - $$(call message,,diff -u $$(src_base)/test.std $$(out_base)/test.out) + $$(call message,,diff -u $$(src_base)/test$2.std $$(out_base)/test.out) $$(call message,,rm -f $$(out_base)/test.out) endef # $1 database name in the multi-database mode and empty otherwise # $2 optional list of schema files, by default test.sql +# $3 optional test.std file suffix (e.g., '-mysql' for test-mysql.std) # define test-rule -$$(test$(if $1,_$1)): $$(driver) $$(src_base)/test.std +$$(test$(if $1,_$1)): $$(driver) $$(src_base)/test$3.std $$(call schema$(if $1,-$1),$2) $$(call message,test$(if $1, [$1]) $$<,$$< $1 --options-file \ $$(dcf_root)/$(if $1,$1,$(db_id)).options >$$(out_base)/test.out) - $$(call message,,diff -u $$(src_base)/test.std $$(out_base)/test.out) + $$(call message,,diff -u $$(src_base)/test$3.std $$(out_base)/test.out) $$(call message,,rm -f $$(out_base)/test.out) endef diff --git a/common/bulk/makefile b/common/bulk/makefile index 2107cd2..481fef3 100644 --- a/common/bulk/makefile +++ b/common/bulk/makefile @@ -68,9 +68,9 @@ $(dist): # Test. # ifneq ($(db_id),common) -$(eval $(call test-rule)) +$(eval $(call test-rule,,,-$(db_id))) else -$(foreach d,$(databases),$(eval $(call test-rule,$d))) +$(foreach d,$(databases),$(eval $(call test-rule,$d,,-sqlite))) endif # Clean. diff --git a/common/bulk/test.std b/common/bulk/test-mssql.std index e72869d..e72869d 100644 --- a/common/bulk/test.std +++ b/common/bulk/test-mssql.std diff --git a/common/bulk/test-mysql.std b/common/bulk/test-mysql.std new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/common/bulk/test-mysql.std diff --git a/common/bulk/test-oracle.std b/common/bulk/test-oracle.std new file mode 100644 index 0000000..e72869d --- /dev/null +++ b/common/bulk/test-oracle.std @@ -0,0 +1,226 @@ +multiple exceptions, 1 element attempted, 1 failed: +[0] object already persistent + +multiple exceptions, 2 elements attempted, 2 failed: +[0] object already persistent +[1] object already persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0] object already persistent +[1] object already persistent +[2] object already persistent + +multiple exceptions, 4 elements attempted, 4 failed: +[0] object already persistent +[1] object already persistent +[2] object already persistent +[3] object already persistent + +multiple exceptions, 5 elements attempted, 5 failed: +[0] object already persistent +[1] object already persistent +[2] object already persistent +[3] object already persistent +[4] object already persistent + +multiple exceptions, 6 elements attempted, 6 failed: +[0] object already persistent +[1] object already persistent +[2] object already persistent +[3] object already persistent +[4] object already persistent +[5] object already persistent + +multiple exceptions, 2 elements attempted, 1 failed: +[1] object already persistent + +multiple exceptions, 2 elements attempted, 1 failed: +[0] object already persistent + +multiple exceptions, 3 elements attempted, 2 failed: +[1] object already persistent +[2] object already persistent + +multiple exceptions, 3 elements attempted, 2 failed: +[0] object already persistent +[2] object already persistent + +multiple exceptions, 3 elements attempted, 2 failed: +[0] object already persistent +[1] object already persistent + +multiple exceptions, 4 elements attempted, 3 failed: +[0] object already persistent +[1] object already persistent +[3] object already persistent + +multiple exceptions, 4 elements attempted, 3 failed: +[0] object already persistent +[1] object already persistent +[2] object already persistent + +multiple exceptions, 7 elements attempted, 3 failed: +[1] object already persistent +[3] object already persistent +[5] object already persistent + +multiple exceptions, 3 elements attempted, 1 failed: +[2] object already persistent + +multiple exceptions, 1 element attempted, 1 failed: +[0] object not persistent + +multiple exceptions, 2 elements attempted, 2 failed: +[0] object not persistent +[1] object not persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent + +multiple exceptions, 4 elements attempted, 4 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent +[3] object not persistent + +multiple exceptions, 5 elements attempted, 5 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent +[3] object not persistent +[4] object not persistent + +multiple exceptions, 6 elements attempted, 6 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent +[3] object not persistent +[4] object not persistent +[5] object not persistent + +multiple exceptions, 2 elements attempted, 2 failed: +[0-1] (some) object not persistent + +multiple exceptions, 2 elements attempted, 2 failed: +[0-1] (some) object not persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0-2] (some) object not persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0-2] (some) object not persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0-2] (some) object not persistent + +multiple exceptions, 4 elements attempted, 4 failed: +[0-2] (some) object not persistent +[3] object not persistent + +multiple exceptions, 4 elements attempted, 3 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent + +multiple exceptions, 7 elements attempted, 7 failed: +[0-5] (some) object not persistent +[6] object not persistent + +multiple exceptions, 7 elements attempted, 4 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent +[6] object not persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0-2] (some) object not persistent + +multiple exceptions, 1 element attempted, 1 failed: +[0] object not persistent + +multiple exceptions, 2 elements attempted, 2 failed: +[0] object not persistent +[1] object not persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent + +multiple exceptions, 4 elements attempted, 4 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent +[3] object not persistent + +multiple exceptions, 5 elements attempted, 5 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent +[3] object not persistent +[4] object not persistent + +multiple exceptions, 6 elements attempted, 6 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent +[3] object not persistent +[4] object not persistent +[5] object not persistent + +multiple exceptions, 2 elements attempted, 2 failed: +[0-1] (some) object not persistent + +multiple exceptions, 2 elements attempted, 2 failed: +[0-1] (some) object not persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0-2] (some) object not persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0-2] (some) object not persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0-2] (some) object not persistent + +multiple exceptions, 4 elements attempted, 4 failed: +[0-2] (some) object not persistent +[3] object not persistent + +multiple exceptions, 4 elements attempted, 4 failed: +[0-2] (some) object not persistent +[3] object not persistent + +multiple exceptions, 4 elements attempted, 4 failed: +[0-2] (some) object not persistent +[3] object not persistent + +multiple exceptions, 4 elements attempted, 3 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent + +multiple exceptions, 8 elements attempted, 8 failed: +[0-7] (some) object not persistent + +multiple exceptions, 10 elements attempted, 6 failed: +[0] object not persistent +[1] object not persistent +[2] object not persistent +[6] object not persistent +[7] object not persistent +[8] object not persistent + +multiple exceptions, 3 elements attempted, 3 failed: +[0-2] (some) object not persistent + +multiple exceptions, 4 elements attempted, 4 failed: +[0-2] (some) object changed concurrently +[3] object changed concurrently + +multiple exceptions, 4 elements attempted, 4 failed: +[0-2] (some) object changed concurrently +[3] object changed concurrently + diff --git a/common/bulk/test-pgsql.std b/common/bulk/test-pgsql.std new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/common/bulk/test-pgsql.std diff --git a/common/bulk/test-sqlite.std b/common/bulk/test-sqlite.std new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/common/bulk/test-sqlite.std diff --git a/common/makefile b/common/makefile index 04e3efa..7f99cf4 100644 --- a/common/makefile +++ b/common/makefile @@ -64,7 +64,7 @@ cxx11_tests := session/custom no_dist_tests := changelog include -no_multi_tests := bulk changelog include +no_multi_tests := changelog include $(default): $(call include,$(bld_root)/cxx/standard.make) # cxx_standard @@ -33,10 +33,26 @@ if exist test*.sql ( ) ) -if exist test.std ( +if exist test-%1.std ( + set "std=test-%1.std" +) else ( + if exist test.std ( + set "std=test.std" + ) else ( + set "std=" + ) +) + +if "_%std%" == "__" ( + + %dir%\driver.exe --options-file %topdir%\%1.options + if errorlevel 1 goto error + +) else ( + %dir%\driver.exe --options-file %topdir%\%1.options >test.out if errorlevel 1 goto error - %DIFF% test.std test.out + %DIFF% %std% test.out if errorlevel 1 ( del /f test.out @@ -46,10 +62,6 @@ if exist test.std ( del /f test.out goto end -) else ( - - %dir%\driver.exe --options-file %topdir%\%1.options - if errorlevel 1 goto error ) goto end @@ -26,7 +26,16 @@ done echo ./driver --options-file "$db_options" -if test -f "$srcdir/test.std"; then +std= +if test -f "$srcdir/test-@database@.std"; then + std="$srcdir/test-@database@.std" +elif test -f "$srcdir/test.std"; then + std="$srcdir/test.std" +else + std= +fi + +if test -n "$std"; then ./driver --options-file "$db_options" >test.out if test $? -ne 0; then @@ -34,7 +43,7 @@ if test -f "$srcdir/test.std"; then exit 1 fi - @DIFF@ @DIFFFLAGS@ "$srcdir/test.std" test.out + @DIFF@ @DIFFFLAGS@ "$std" test.out r=$? rm -f test.out exit $r |