Feat: valgrind
This commit is contained in:
parent
06992f0421
commit
79712efa7f
1 changed files with 31 additions and 7 deletions
|
@ -7,6 +7,10 @@ CFLAGS = -Ilib -ggdb -std=c11 -g -Wall -Wextra -no-pie -O3
|
||||||
LDFLAGS = -pthread
|
LDFLAGS = -pthread
|
||||||
TESTFILES = t/1 t/2 t/5 t/10 t/20 t/50 t/100 t/1000 t/2000 t/5000 t/10000
|
TESTFILES = t/1 t/2 t/5 t/10 t/20 t/50 t/100 t/1000 t/2000 t/5000 t/10000
|
||||||
TESTFILES_SIZES = ${subst t/,,${TESTFILES}}
|
TESTFILES_SIZES = ${subst t/,,${TESTFILES}}
|
||||||
|
BLUE=\033[1;36m
|
||||||
|
RED=\033[1;31m
|
||||||
|
GREEN=\033[1;32m
|
||||||
|
NC=\033[0m
|
||||||
|
|
||||||
all: md2
|
all: md2
|
||||||
|
|
||||||
|
@ -32,9 +36,9 @@ md2: ${OBJ}
|
||||||
t/%:
|
t/%:
|
||||||
@mkdir -p t
|
@mkdir -p t
|
||||||
@echo
|
@echo
|
||||||
@echo "=== Generating ${subst t/,,$@}MB of random data... ==="
|
@echo -e "${BLUE}=== Generating ${subst t/,,$@}MB of random data... ===${NC}"
|
||||||
dd if=/dev/random of=$@ bs=1M count=${subst t/,,$@} status=progress
|
dd if=/dev/random of=$@ bs=1M count=${subst t/,,$@} status=progress
|
||||||
@echo "=== done ==="
|
@echo "${BLUE}=== done ===${NC}"
|
||||||
@echo
|
@echo
|
||||||
|
|
||||||
benchmarks.csv: md2 ${TESTFILES}
|
benchmarks.csv: md2 ${TESTFILES}
|
||||||
|
@ -47,13 +51,13 @@ benchmarks.csv: md2 ${TESTFILES}
|
||||||
|
|
||||||
@for i in 0 1 2 3 4; do \
|
@for i in 0 1 2 3 4; do \
|
||||||
echo ;\
|
echo ;\
|
||||||
echo "=== Testing implementation $$i ===";\
|
echo -e "${BLUE}=== Testing implementation $$i ===${NC}";\
|
||||||
echo -n "Implementierung-$$i" >> $@; \
|
echo -n "Implementierung-$$i" >> $@; \
|
||||||
for t in $(TESTFILES_SIZES); do \
|
for t in $(TESTFILES_SIZES); do \
|
||||||
echo -n "- with $${t}MB ... "; \
|
echo -n "- with $${t}MB ... "; \
|
||||||
if ! rr=$$(./md2 t/$${t} -B1 -V$${i}); then \
|
if ! rr=$$(./md2 t/$${t} -B1 -V$${i}); then \
|
||||||
echo; \
|
echo; \
|
||||||
echo "SKIPPED!"; \
|
echo -e "${RED}ERROR -> SKIPPED!${NC}"; \
|
||||||
echo -n ";0" >> $@; \
|
echo -n ";0" >> $@; \
|
||||||
else \
|
else \
|
||||||
r=$$(echo $$rr | xargs | sed -e 's/.*took \(.*\) seconds.*/\1/'); \
|
r=$$(echo $$rr | xargs | sed -e 's/.*took \(.*\) seconds.*/\1/'); \
|
||||||
|
@ -62,10 +66,30 @@ benchmarks.csv: md2 ${TESTFILES}
|
||||||
fi; \
|
fi; \
|
||||||
done; \
|
done; \
|
||||||
echo "" >> $@; \
|
echo "" >> $@; \
|
||||||
echo "=== done ===";\
|
echo -e "${BLUE}=== done ===${NC}";\
|
||||||
echo;\
|
echo;\
|
||||||
done
|
done
|
||||||
|
|
||||||
benchmarks: benchmarks.csv
|
benchmarks: benchmarks.csv
|
||||||
|
|
||||||
.PHONY: all clean help benchmarks
|
lint: md2 t/3
|
||||||
|
|
||||||
|
@for i in 0 1 2 3 4; do \
|
||||||
|
echo; \
|
||||||
|
echo -e "${BLUE}=== Testing implementation $$i ===${NC}";\
|
||||||
|
if ! valgrind --error-exitcode=1 --leak-check=full --tool=memcheck -s ./md2 t/3 -V$$i -B1; then \
|
||||||
|
echo -e "${RED}ERROR found! (see above)${NC}"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo -e "${BLUE}=== done ===${NC}";\
|
||||||
|
echo; \
|
||||||
|
done
|
||||||
|
|
||||||
|
@if ! valgrind -s ./md2 -T; then \
|
||||||
|
echo -e "${RED}ERROR found! (see above)${NC}"; \
|
||||||
|
exit 1;\
|
||||||
|
fi
|
||||||
|
|
||||||
|
@echo -e "${GREEN}=== all implementations PASSED valgrind ===${NC}"
|
||||||
|
|
||||||
|
.PHONY: all clean help benchmarks lint
|
||||||
|
|
Loading…
Reference in a new issue