diff options
Diffstat (limited to 'test/test.sh')
-rwxr-xr-x | test/test.sh | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/test/test.sh b/test/test.sh new file mode 100755 index 0000000..d4fae6f --- /dev/null +++ b/test/test.sh @@ -0,0 +1,103 @@ +#!/usr/bin/env bash + + +echo "This is the old test script replaced by CMake's ctest" +echo "driven by scritps/test.sh" +echo "pausing 5 seconds - press ctrl+C to quit" + +sleep 5 + +set -e +cd `dirname $0`/.. +ROOT=`pwd` + +CC=${CC:-cc} +${ROOT}/scripts/build.sh + +TMP=${ROOT}/build/tmp/test +INC=${ROOT}/include + +echo "" 1>&2 + +mkdir -p ${TMP} +rm -rf ${TMP}/* + +echo "running generation of complex schema (cgen_test)" +${ROOT}/test/cgen_test/cgen_test.sh + +mkdir -p ${TMP}/monster_test + +mkdir -p ${TMP}/monster_test_smoke +mkdir -p ${TMP}/monster_test_solo +mkdir -p ${TMP}/monster_test_hello +mkdir -p ${TMP}/monster_test_main + +# +# These first tests are to ensure the generated code can compile, +# they don't actually run tests against the api. +# +echo "generating smoke test generated monster source" 1>&2 +${ROOT}/bin/flatcc -I ${ROOT}/test/monster_test -a \ + -o ${TMP}/monster_test_smoke ${ROOT}/test/monster_test/monster_test.fbs +echo "#include \"monster_test_builder.h\"" > ${TMP}/monster_test_smoke/smoke_monster.c +cd ${TMP}/monster_test_smoke && $CC -c -Wall -O3 -I ${INC} smoke_monster.c + +echo "generating smoke test generated monster source to single file" 1>&2 +${ROOT}/bin/flatcc -I ${ROOT}/test/monster_test -a --stdout \ + ${ROOT}/test/monster_test/monster_test.fbs > ${TMP}/monster_test_solo/solo_monster.c +cd ${TMP}/monster_test_solo && $CC -c -Wall -O3 -I ${INC} solo_monster.c + +echo "generating smoke test generated monster source with --prefix zzz --common-prefix hello" 1>&2 +${ROOT}/bin/flatcc -I ${ROOT}/test/monster_test -a \ + --common-prefix hello --prefix zzz \ + -o ${TMP}/monster_test_hello ${ROOT}/test/monster_test/monster_test.fbs +echo "#include \"monster_test_builder.h\"" > ${TMP}/monster_test_hello/hello_monster.c +cd ${TMP}/monster_test_hello && $CC -c -Wall -O3 -I ${INC} hello_monster.c + +# +# This test ensures the reader api understands a monster buffer generated +# by the external `flatc` tool by Google FPL. +# +echo "starting compat test" +${ROOT}/test/flatc_compat/flatc_compat.sh + +echo "starting emit_test for altenative emitter backend smoke test" +${ROOT}/test/emit_test/emit_test.sh + +# +# This is the main `monster_test.c` test that covers nearly all +# functionality of the reader and builder API for C. +# +echo "running main monster test" +cd ${ROOT}/test/monster_test +${ROOT}/bin/flatcc -I ${ROOT}/test/monster_test -a \ + -o ${TMP}/monster_test_main ${ROOT}/test/monster_test/monster_test.fbs +cd ${TMP}/monster_test_main +cp ${ROOT}/test/monster_test/monster_test.c . +$CC -g -I ${ROOT}/include monster_test.c \ + ${ROOT}/lib/libflatccrt_d.a -o monster_test_d +$CC -O3 -DNDEBUG -DFLATBUFFERS_BENCHMARK -I ${ROOT}/include monster_test.c \ + ${ROOT}/lib/libflatccrt.a -o monster_test +./monster_test_d + +echo "running optimized version of main monster test" +./monster_test + +# This may fail if reflection feature is disabled +echo "running reflection test" +${ROOT}/test/reflection_test/reflection_test.sh + +# This may fail if reflection feature is disabled +echo "running reflection sample" +${ROOT}/samples/reflection/build.sh + +echo "running monster sample" +${ROOT}/samples/monster/build.sh + +echo "running json test" +${ROOT}/test/json_test/json_test.sh + +echo "running load test with large buffer" +${ROOT}/test/load_test/load_test.sh + +echo "TEST PASSED" |