Hash :
15bffce9
Author :
Date :
2008-11-01T18:14:22
Create a basic test suite for the library and test oid functions This is a horribly simple test suite that makes it fairly easy to put together some basic function level unit tests on the library. Its patterned somewhat after the test suite in git.git, but also after the "Check" test library. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
all::
DOXYGEN = doxygen
CFLAGS = -g -O2
OS = unix
BASIC_CFLAGS := -Iinclude
BASIC_CFLAGS += -DGIT__PRIVATE
BASIC_CFLAGS += -fvisibility=hidden
OBJS = $(patsubst %.c,%.o,$(wildcard src/*.c))
HDRS = $(wildcard include/git/*.h)
OBJS += src/os/$(OS).o
HDRS += include/git/config.h
HDRS += include/git/os/$(OS).h
GIT_LIB = libgit2.a
TEST_OBJ = $(patsubst %.c,%.o,\
$(wildcard tests/t[0-9][0-9][0-9][0-9]-*.c))
TEST_EXE = $(patsubst %.o,%.exe,$(TEST_OBJ))
TEST_RUN = $(patsubst %.exe,%.run,$(TEST_EXE))
all:: $(GIT_LIB)
clean:
rm -f $(GIT_LIB)
rm -f src/*.o
rm -f tests/*.o tests/*.exe
rm -f include/git/config.h
rm -rf apidocs
apidocs:
$(DOXYGEN) api.doxygen
cp CONVENTIONS apidocs/
test: $(TEST_RUN)
.c.o:
$(CC) $(BASIC_CFLAGS) $(CFLAGS) -c $< -o $@
include/git/config.h: include/git/config.h.in
sed 's/@@OS@@/$(OS)/g' $< >$@+
mv $@+ $@
$(OBJS): $(HDRS)
$(GIT_LIB): $(OBJS)
rm -f $(LIB)
$(AR) cr $(GIT_LIB) $(OBJS)
T_HDR = tests/test_lib.h
T_LIB = tests/test_lib.o
T_MAIN_C = tests/test_main.c
T_MAIN_O = tests/test_main.o
$(T_LIB): tests/test_lib.h $(HDRS)
$(TEST_EXE): $(T_LIB) $(T_HDR) $(T_MAIN_C) $(HDRS) $(GIT_LIB)
tests/%.exe: tests/%.o
grep BEGIN_TEST $(patsubst %.o,%.c,$<) >tests/test_contents
$(CC) $(CFLAGS) -Iinclude -c $(T_MAIN_C) -o $(T_MAIN_O)
$(CC) -o $@ $(T_MAIN_O) $< $(T_LIB) -L. -lgit2
rm -f $(T_MAIN_O) tests/test_contents
$(TEST_RUN): $(TEST_EXE)
$<
.PHONY: all
.PHONY: clean
.PHONY: test $(TEST_RUN)
.PHONY: apidocs