diff options
author | Stef Walter <stef@memberwebs.com> | 2009-06-18 17:12:25 +0000 |
---|---|---|
committer | Stef Walter <stef@memberwebs.com> | 2009-06-18 17:12:25 +0000 |
commit | 543b45ab3ed3f4d1a9852ead27becf0f2dee8f6d (patch) | |
tree | 00a56400bbed9e01b569e09f87eb679c5dbc8d86 /tests/prep-tests.sh | |
parent | 4bf87cb9f4f6b9812c06a8d2c500869c48ebc2dc (diff) |
Make tests for storage, and fix problems
Diffstat (limited to 'tests/prep-tests.sh')
-rwxr-xr-x | tests/prep-tests.sh | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/tests/prep-tests.sh b/tests/prep-tests.sh new file mode 100755 index 0000000..bdceb11 --- /dev/null +++ b/tests/prep-tests.sh @@ -0,0 +1,114 @@ +#!/bin/sh -e + +set -e + +# -------------------------------------------------------------------- +# FUNCTIONS + +usage() +{ + echo "usage: prep-tests.sh -b base-name files.c ..." >&2 + exit 2 +} + +# -------------------------------------------------------------------- +# ARGUMENT PARSING + +BASE=unit-test + +while [ $# -gt 0 ]; do + case "$1" in + -b) + BASE="$2" + shift + ;; + --) + shift + break + ;; + -*) + usage + ;; + *) + break + ;; + esac + shift +done + +FILES=$* + +# -------------------------------------------------------------------- +# HEADER FILE + +( + +# HEADER TOP +cat << END +/* This is auto-generated code. Edit at your own peril. */ +#include "tests/cu-test/CuTest.h" +#include "tests/test-helpers.h" +#include <stdio.h> + +END + +# DECLARATIONS + + if [ -n "$FILES" ]; then + cat $FILES | grep '^void unit_setup_' | sed -e 's/$/;/' + cat $FILES | grep '^void unit_test_' | sed -e 's/$/;/' + cat $FILES | grep '^void unit_teardown_' | sed -e 's/$/;/' + fi + +) > $BASE.h + +# -------------------------------------------------------------------- +# SOURCE FILE + +( +# START RUNNER FUNCTION +cat << END +/* This is auto-generated code. Edit at your own peril. */ +#include "$BASE.h" + +static int RunAllTests(void) +{ + CuString *output = CuStringNew(); + CuSuite* suite = CuSuiteNew(); + +END + + if [ -n "$FILES" ]; then + cat $FILES | grep '^void unit_setup_' | \ + sed -e 's/^void //' -e 's/(.*$//' -e 's/$/();/' + cat $FILES | grep '^void unit_test_' | \ + sed -e 's/^void //' -e 's/(.*$//' \ + -e 's/^/SUITE_ADD_TEST(suite, /' -e 's/$/);/' + fi + +# MIDDLE RUNNER FUNCTION +cat << END + CuSuiteRun(suite); + CuSuiteSummary(suite, output); + CuSuiteDetails(suite, output); + printf("%s\\n", output->buffer); +END + + if [ -n "$FILES" ]; then + + cat $FILES | grep '^void unit_teardown_' | \ + sed -e 's/^void //' -e 's/(.*$//' -e 's/$/();/' + + fi + +# END RUNNER FUNCTION +cat << END + + return suite->failCount; +} + +#include "tests/test-helpers.c" +#include "tests/cu-test/CuTest.c" +END +) > $BASE.c + |