diff options
| author | 2024-07-10 10:47:55 -0400 | |
|---|---|---|
| committer | 2024-07-10 10:47:55 -0400 | |
| commit | b41e2100c214cc983889017009506a9d339b0341 (patch) | |
| tree | 7463758c0178984a71159b5a67785c467859ff36 /gen_tests.sh | |
| parent | fix clean (diff) | |
import flatrate lisp, rename to Universal Service LISP
Diffstat (limited to 'gen_tests.sh')
| -rwxr-xr-x | gen_tests.sh | 48 |
1 files changed, 38 insertions, 10 deletions
diff --git a/gen_tests.sh b/gen_tests.sh index bccad2c..16f1419 100755 --- a/gen_tests.sh +++ b/gen_tests.sh @@ -1,29 +1,35 @@ #!/bin/sh # The road to hell is paved with Makefile generators. +# +# Each test is compiled statically linked with a single collector. +# +# OBJDEPS: Dependencies for an object file. +# DEPS: Dependencies for an executable file. TEST_TARGETS="" GENERATED_OBJS="" -gen_test() { - local NAME COLLECTOR TEST_IMPL DEPS OBJDEPS +gen_test() { # test_name, collector_name, exec_deps, obj_file_deps + local NAME COLLECTOR TARGET TEST_IMPL DEPS OBJDEPS NAME=$1 COLLECTOR=$2 + TARGET="$NAME"_"$COLLECTOR".test TEST_IMPL="$NAME.c" DEPS="$1.o uns.o $3" OBJDEPS="include/uns.h $1.c $4" - printf '%s.o: %s\n' "$NAME" "$OBJDEPS" - printf '%s_%s.test: %s\n' "$NAME" "$COLLECTOR" "$DEPS" - printf '\t${CC} ${LDFLAGS} %s -o %s_%s.test\n' \ - "$DEPS" "$NAME" "$COLLECTOR" - printf '\tvalgrind ./%s_%s.test\n' "$NAME" "$COLLECTOR" + echo " +$TARGET: $DEPS + \${CC} \${LDFLAGS} $DEPS $TARGET + ./valgrind ./$TARGET +" - TEST_TARGETS=$(printf "%s %s_%s.test" "$TEST_TARGETS" "$NAME" "$COLLECTOR") + TEST_TARGETS="$TEST_TARGETS $TARGET" GENERATED_OBJS="$GENERATED_OBJS $NAME.o" } -gen_string_test() { +gen_string_test() { # collector_name, exec_deps local COLLECTOR DEPS OBJDEPS COLLECTOR=$1 @@ -40,7 +46,7 @@ gen_string_test() { "$DEPS" "$OBJDEPS" } -gen_hashtable_test() { +gen_hashtable_test() { # collector_name, exec_deps local COLLECTOR DEPS OBJDEPS COLLECTOR=$1 @@ -54,14 +60,36 @@ gen_hashtable_test() { "$DEPS" "$OBJDEPS" } +gen_lisp_test() { #collector_name, exec_deps + local COLLECTOR SHIM_OBJ TARGET DEPS OBJDEPS + COLLECTOR=$1 + TARGET="examples/lisp/uns_lisp_$COLLECTOR" + SHIM_OBJ="$TARGET.o" + OBJDEPS="examples/lisp/uns_lisp_$COLLECTOR.c include/uns.h include/$COLLECTOR.h" + DEPS="$2 $SHIM_OBJ uns.o "'${UNS_LISP_OBJS}' + + echo " +$SHIM_OBJ: $OBJDEPS + +$TARGET: $DEPS + \${CC} \${LDFLAGS} $DEPS -o $TARGET +" + + TEST_TARGETS="$TEST_TARGETS $TARGET" + GENERTATED_OBJS="$GENERATED_OBJS $SHIM_OBJ" +} + gen_tests() { echo "examples/test_$1.o: include/uns.h $2" GENERATED_OBJS="$GENERATED_OBJS examples/test_$1.o" + gen_string_test "$1" '${CHENEY_C89_OBJS}' gen_hashtable_test "$1" '${CHENEY_C89_OBJS}' + gen_lisp_test "$1" '${CHENEY_C89_OBJS}' } gen_tests cheney_c89 "include/cheney_c89.h" +echo printf "tests: %s\n" "$TEST_TARGETS" printf 'clean_tests:\n\t${RM} -f %s %s\n' "$TEST_TARGETS" "$GENERATED_OBJS" |
