aboutsummaryrefslogtreecommitdiffstats
path: root/gen_tests.sh
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2024-07-10 10:47:55 -0400
committerGravatar Peter McGoron 2024-07-10 10:47:55 -0400
commitb41e2100c214cc983889017009506a9d339b0341 (patch)
tree7463758c0178984a71159b5a67785c467859ff36 /gen_tests.sh
parentfix clean (diff)
import flatrate lisp, rename to Universal Service LISP
Diffstat (limited to 'gen_tests.sh')
-rwxr-xr-xgen_tests.sh48
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"