mirror of
https://github.com/openssh/libopenssh
synced 2026-04-26 06:39:01 +00:00
make into a proper regress test
This commit is contained in:
57
regress/Makefile
Normal file
57
regress/Makefile
Normal file
@@ -0,0 +1,57 @@
|
||||
# $OpenBSD$
|
||||
|
||||
.include <bsd.own.mk>
|
||||
.include <bsd.obj.mk>
|
||||
|
||||
CDIAGFLAGS= -Wall
|
||||
CDIAGFLAGS+= -Werror
|
||||
CDIAGFLAGS+= -Wpointer-arith
|
||||
CDIAGFLAGS+= -Wstrict-prototypes
|
||||
CDIAGFLAGS+= -Wmissing-prototypes
|
||||
CDIAGFLAGS+= -Wunused
|
||||
CDIAGFLAGS+= -Wsign-compare
|
||||
CDIAGFLAGS+= -Wshadow
|
||||
CDIAGFLAGS+= -Wformat
|
||||
.if (${CC:L} == "gcc" || ${CC:L} == "cc")
|
||||
CDIAGFLAGS+= -Wbounded
|
||||
.endif
|
||||
DEBUG=-g
|
||||
COPTS=-O0
|
||||
|
||||
CPPFLAGS+=-I${.CURDIR}/../leakmalloc
|
||||
|
||||
.if exists(${.CURDIR}/../leakmalloc/${__objdir})
|
||||
LDADD+=-L${.CURDIR}/../leakmalloc/${__objdir} -lleakmalloc
|
||||
DPADD+=${.CURDIR}/../leakmalloc/${__objdir}/libleakmalloc.a
|
||||
.else
|
||||
LDADD+=-L${.CURDIR}/../leakmalloc -lleakmalloc
|
||||
DPADD+=${.CURDIR}/../leakmalloc/libleakmalloc.a
|
||||
.endif
|
||||
|
||||
LDFLAGS+=-L/usr/local/lib
|
||||
LDADD+=-lexecinfo
|
||||
|
||||
PROG=leaky
|
||||
SRCS=leaky.c
|
||||
REGRESS_TARGETS=does-leak outfile exit-leak summary
|
||||
|
||||
does-leak: ${PROG}
|
||||
./${PROG} | grep -q "^LEAK "
|
||||
|
||||
outfile: ${PROG}
|
||||
rm -f leakmalloc.out
|
||||
env LEAKMALLOC_OPTIONS=D ./${PROG}
|
||||
grep -q "^LEAK " leakmalloc.out
|
||||
|
||||
exit-leak: ${PROG}
|
||||
sh -c 'export LEAKMALLOC_OPTIONS=XQ ; ./${PROG} ; test $$? -eq 99'
|
||||
|
||||
summary: ${PROG}
|
||||
test `./${PROG} | ${.CURDIR}/../leakresolve.py -p ${PROG} | \
|
||||
grep "^Total:" | cut -d' ' -f 2` -eq 22
|
||||
|
||||
clean:
|
||||
rm ${PROG} *.o *.core leakmalloc.out
|
||||
|
||||
.include <bsd.regress.mk>
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
Here's how you do it:
|
||||
|
||||
gcc -Wall -O0 -ggdb3 -I.. -c leaky.c && gcc -ggdb3 -Wall -I.. -c leaky.c && gcc -L ../obj -L /usr/local/lib leaky.o -lleakmalloc -lexecinfo
|
||||
./a.out | ../leakresolve.py -p a.out
|
||||
@@ -5,21 +5,21 @@
|
||||
|
||||
static void *a, *b, *c, *d, *e, *f;
|
||||
|
||||
void
|
||||
static void
|
||||
f6(void)
|
||||
{
|
||||
d = strdup("hello");
|
||||
e = malloc(789);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
f5(void)
|
||||
{
|
||||
c = calloc(1, 678);
|
||||
f6();
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
f4(void)
|
||||
{
|
||||
b = malloc(456);
|
||||
@@ -27,21 +27,21 @@ f4(void)
|
||||
free(e);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
f3(void)
|
||||
{
|
||||
a = malloc(123);
|
||||
f = realloc(NULL, 321);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
f2(void)
|
||||
{
|
||||
f4();
|
||||
b = realloc(b, 567);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
f1(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
Reference in New Issue
Block a user