2026-06-14 22:38:59 -05:00
|
|
|
#!/usr/bin/env sh
|
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
|
|
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
|
|
|
|
ROOT_DIR=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)
|
|
|
|
|
OUT_DIR="$SCRIPT_DIR/build"
|
|
|
|
|
DEMO_EXE="$OUT_DIR/ikv_demo"
|
|
|
|
|
TEST_EXE="$OUT_DIR/ikv_tests"
|
|
|
|
|
COV_DIR="$ROOT_DIR/coverage"
|
|
|
|
|
COV_EXE="$COV_DIR/ikv_tests_cov"
|
|
|
|
|
|
|
|
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
|
|
|
|
|
|
cc -std=c11 -Wall -Wextra -pedantic \
|
|
|
|
|
-I"$ROOT_DIR/include" \
|
|
|
|
|
"$SCRIPT_DIR/main.c" \
|
|
|
|
|
"$ROOT_DIR/src/ikv.c" \
|
|
|
|
|
"$ROOT_DIR/src/loaders/ikv1.c" \
|
|
|
|
|
"$ROOT_DIR/src/loaders/ikv2.c" \
|
|
|
|
|
-o "$DEMO_EXE"
|
|
|
|
|
|
|
|
|
|
cc -std=c11 -Wall -Wextra -pedantic \
|
|
|
|
|
-DIKV_TESTING \
|
|
|
|
|
-I"$ROOT_DIR/include" \
|
|
|
|
|
"$SCRIPT_DIR/unit_test.c" \
|
|
|
|
|
"$ROOT_DIR/src/ikv.c" \
|
|
|
|
|
"$ROOT_DIR/src/loaders/ikv1.c" \
|
|
|
|
|
"$ROOT_DIR/src/loaders/ikv2.c" \
|
2026-06-17 12:18:25 -05:00
|
|
|
-lm \
|
2026-06-14 22:38:59 -05:00
|
|
|
-o "$TEST_EXE"
|
|
|
|
|
|
|
|
|
|
printf 'built "%s"\n' "$DEMO_EXE"
|
|
|
|
|
printf 'built "%s"\n' "$TEST_EXE"
|
|
|
|
|
|
|
|
|
|
if [ "${1-}" = "test" ]; then
|
|
|
|
|
exec "$TEST_EXE"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ "${1-}" = "coverage" ]; then
|
|
|
|
|
rm -rf "$COV_DIR"
|
|
|
|
|
mkdir -p "$COV_DIR"
|
|
|
|
|
|
|
|
|
|
cc -std=c11 -Wall -Wextra -pedantic --coverage \
|
|
|
|
|
-DIKV_TESTING \
|
|
|
|
|
-I"$ROOT_DIR/include" \
|
|
|
|
|
"$SCRIPT_DIR/unit_test.c" \
|
|
|
|
|
"$ROOT_DIR/src/ikv.c" \
|
|
|
|
|
"$ROOT_DIR/src/loaders/ikv1.c" \
|
|
|
|
|
"$ROOT_DIR/src/loaders/ikv2.c" \
|
2026-06-17 12:18:25 -05:00
|
|
|
-lm \
|
2026-06-14 22:38:59 -05:00
|
|
|
-o "$COV_EXE"
|
|
|
|
|
|
|
|
|
|
(
|
|
|
|
|
cd "$COV_DIR"
|
|
|
|
|
./ikv_tests_cov
|
|
|
|
|
gcov -b -c ikv_tests_cov-ikv.gcno ikv_tests_cov-ikv1.gcno ikv_tests_cov-ikv2.gcno > gcov_report.txt
|
|
|
|
|
cat gcov_report.txt
|
|
|
|
|
)
|
|
|
|
|
fi
|