diff --git a/make_db b/make_db index bf549fea519418454b3d9e65bbf11e622a4fc2d4..47b8ced86c919746d06749aa0dcc3c5f4a5fd104 100755 --- a/make_db +++ b/make_db @@ -32,14 +32,14 @@ function fail() { UNITTEST_DATABASE=${UNITTEST_DATABASE-_caosdb_schema_unit_tests}; -# options: [--drop-after] [--rebuild] +# options: [--fresh] function runtests() { DATABASE_NAME=$UNITTEST_DATABASE; _setup_mytap - _install_unit_test_database + _install_unit_test_database $@ - _execute_tests + _execute_tests || ( echo "[FAILURE]" && exit 1 ) # drop test database #drop "$UNITTEST_DATABASE" @@ -47,27 +47,34 @@ function runtests() { function _execute_tests () { pushd tests - TESTS=$(find ./ -type f -iname "test*.sql"); + TESTS="./test*.sql" - echo $TESTS - for tfile in "$TESTS" ; do + rm -f .TEST_RESULTS + for tfile in $TESTS ; do echo "Running $tfile" - cat $tfile | $SQL --disable-pager --batch --raw --skip-column-names --unbuffered + echo "----- $tfile -----" >> .TEST_RESULTS + cat $tfile | $SQL --disable-pager --batch --raw --skip-column-names --unbuffered >> .TEST_RESULTS done; popd + cat tests/.TEST_RESULTS + grep -c -i "failed" tests/.TEST_RESULTS > /dev/null && return 1 + return 0 } # install/reset database for unit tests. +# options: [--fresh] function _install_unit_test_database () { if _db_exists "$SQL" "$DATABASE_NAME"; then - #drop "$DATABASE_NAME" ; - #sed "s/db_2_0/$UNITTEST_DATABASE/g" "$INSTALL_SQL_FILE" | $SQL - return 0 ; - else - sed "s/db_2_0/$UNITTEST_DATABASE/g" "$INSTALL_SQL_FILE" | $SQL + if [[ "$1" == "--fresh" ]] ; then + drop "$DATABASE_NAME" ; + else + return 0; + fi fi + sed "s/db_2_0/$UNITTEST_DATABASE/g" "$INSTALL_SQL_FILE" | $SQL + # crate test user grant @@ -214,7 +221,7 @@ SQL="$MYSQL_CMD $MYSQL_CONNECTION" case $1 in "drop") drop $2 ;; "grant") grant $2 ;; - "test") runtests ;; + "test") shift ; runtests $@ ;; "test-connection") test-connection ;; "install_db") install_db ;; "restore_db") restore_db $2 ;; diff --git a/makefile b/makefile index 2935b6eab3ea4708fb74188c35bad0f72816421f..f08e739d464c274f6c23138dc73a8383895d90ca 100644 --- a/makefile +++ b/makefile @@ -58,4 +58,4 @@ drop-%: .PHONY: test test: - ./make_db test + ./make_db test --fresh diff --git a/tests/test_failure.sql b/tests/test_failure.sql index 7f85202b7fed0a49074933735192bb70e63f2bfe..1e4ee6aaf83eaad9b7c0dcfc38030cf333d828a6 100644 --- a/tests/test_failure.sql +++ b/tests/test_failure.sql @@ -5,7 +5,7 @@ BEGIN; SELECT tap.plan(1); -- Run the tests. -SELECT tap.fail( 'Hello, world!' ); +SELECT tap.fail( 'Oh, no!' ); -- Finish the tests and clean up. CALL tap.finish();