From e58b96e6b886ee42425d54e4bdd845aeb5359b68 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Mon, 3 Feb 2020 20:56:32 +0100 Subject: [PATCH] WIP: example unit tests --- make_db | 33 ++++++++++++++++++++------------- makefile | 2 +- tests/test_failure.sql | 2 +- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/make_db b/make_db index bf549fe..47b8ced 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 2935b6e..f08e739 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 7f85202..1e4ee6a 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(); -- GitLab