Update.
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
CC ?= gcc
|
||||
CFLAGS ?= -Wall -Wextra -pedantic -std=c11 -O2
|
||||
CFLAGS += -I../src/libtikker/include -I../src/third_party -Iunit
|
||||
LDFLAGS := -L../build/lib -ltikker -lsqlite3 -lm
|
||||
|
||||
UNIT_TESTS := $(wildcard unit/test_*.c)
|
||||
UNIT_TARGETS := $(UNIT_TESTS:unit/test_%.c=unit/test_%)
|
||||
INTEGRATION_TESTS := $(wildcard integration/test_*.c)
|
||||
INTEGRATION_TARGETS := $(INTEGRATION_TESTS:integration/test_%.c=integration/test_%)
|
||||
|
||||
.PHONY: test unit integration clean help
|
||||
|
||||
test: unit integration
|
||||
@echo "✓ All tests completed"
|
||||
|
||||
unit: $(UNIT_TARGETS)
|
||||
@echo "Running unit tests..."
|
||||
@for test in $(UNIT_TARGETS); do \
|
||||
if [ -f $$test ]; then \
|
||||
$$test || exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@echo "✓ Unit tests passed"
|
||||
|
||||
integration: $(INTEGRATION_TARGETS)
|
||||
@echo "Running integration tests..."
|
||||
@for test in $(INTEGRATION_TARGETS); do \
|
||||
if [ -f $$test ]; then \
|
||||
$$test || exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@echo "✓ Integration tests passed"
|
||||
|
||||
unit/test_%: unit/test_%.c
|
||||
@echo "Building test: $@"
|
||||
@$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
|
||||
|
||||
integration/test_%: integration/test_%.c
|
||||
@echo "Building integration test: $@"
|
||||
@$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
|
||||
|
||||
clean:
|
||||
@rm -f unit/test_*
|
||||
@rm -f integration/test_*
|
||||
@find . -name "*.o" -delete
|
||||
@echo "✓ Tests cleaned"
|
||||
|
||||
help:
|
||||
@echo "Test suite targets:"
|
||||
@echo " make test - Run all tests"
|
||||
@echo " make unit - Run unit tests"
|
||||
@echo " make integration - Run integration tests"
|
||||
@echo " make clean - Remove test artifacts"
|
||||
Reference in New Issue
Block a user