From fe18bff194f561c9fa552dba32e753e80fff58ed Mon Sep 17 00:00:00 2001 From: trevor_hansen Date: Tue, 3 Nov 2009 14:41:00 +0000 Subject: [PATCH] * Add the leak.c test which is currently failing. * Set the virtual memory limit low when checking for leaks. git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@375 e59a4935-1847-0410-ae03-e826735625c1 --- tests/c-api-tests/Makefile | 12 +++- tests/c-api-tests/leak.c | 118 +++++++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 tests/c-api-tests/leak.c diff --git a/tests/c-api-tests/Makefile b/tests/c-api-tests/Makefile index e6fed84..68a5ddb 100644 --- a/tests/c-api-tests/Makefile +++ b/tests/c-api-tests/Makefile @@ -1,7 +1,9 @@ +# Some of these tests look for leaks, so place a limit on virtual memory. +# Big enough leaks will thus cause a segfault. + include ../../scripts/Makefile.common CXXFLAGS=-DEXT_HASH_MAP $(CFLAGS) -I../../src/c_interface -L../../lib - all: 0 1 2 3 4 5 6 7 8 9 10 11 11 12 13 14 15 16 17 18 19 rm -rf *.out @@ -41,7 +43,7 @@ all: 0 1 2 3 4 5 6 7 8 9 10 11 11 12 13 14 15 16 17 18 19 ./a10.out 11: g++ $(CXXFLAGS) squares-leak.c -lstp -o a11.out -# ./a11.out + ulimit -v 30000 && ./a11.out 12: g++ $(CXXFLAGS) stp-counterex.c -lstp -o a12.out ./a12.out @@ -68,6 +70,10 @@ all: 0 1 2 3 4 5 6 7 8 9 10 11 11 12 13 14 15 16 17 18 19 g++ -g $(CXXFLAGS) biosat-rna.cpp -lstp -o biosat.out ./biosat.out AUUGGUAUGUAAGCUACUUCUUCCAAGACCA 800 +20: + g++ -g $(CXXFLAGS) leak.c -lstp -o a20.out + ulimit -v 13000 && ./a20.out + clean: - rm -rf *~ *.out \ No newline at end of file + rm -rf *~ *.out diff --git a/tests/c-api-tests/leak.c b/tests/c-api-tests/leak.c new file mode 100644 index 0000000..b49fa48 --- /dev/null +++ b/tests/c-api-tests/leak.c @@ -0,0 +1,118 @@ +#include "c_interface.h" +#include +int main(){ + for (int i=0; i < 100000;i++){ + + + VC vc; + vc = vc_createValidityChecker(); + vc_setFlags(vc,'n'); + vc_setFlags(vc,'d'); + vc_setFlags(vc,'p'); + + // create 50 expression + Expr a1 = vc_varExpr(vc, "a1", vc_bv32Type(vc)); + Expr a2 = vc_varExpr(vc, "a2", vc_bv32Type(vc)); + Expr a3 = vc_varExpr(vc, "a3", vc_bv32Type(vc)); + Expr a4 = vc_varExpr(vc, "a4", vc_bv32Type(vc)); + Expr a5 = vc_varExpr(vc, "a5", vc_bv32Type(vc)); + Expr a6 = vc_varExpr(vc, "a6", vc_bv32Type(vc)); + Expr a7 = vc_varExpr(vc, "a7", vc_bv32Type(vc)); + Expr a8 = vc_varExpr(vc, "a8", vc_bv32Type(vc)); + Expr a9 = vc_varExpr(vc, "a9", vc_bv32Type(vc)); + Expr a10 = vc_varExpr(vc, "a10", vc_bv32Type(vc)); + Expr a11 = vc_varExpr(vc, "a11", vc_bv32Type(vc)); + Expr a12 = vc_varExpr(vc, "a12", vc_bv32Type(vc)); + Expr a13 = vc_varExpr(vc, "a13", vc_bv32Type(vc)); + Expr a14 = vc_varExpr(vc, "a14", vc_bv32Type(vc)); + Expr a15 = vc_varExpr(vc, "a15", vc_bv32Type(vc)); + Expr a16 = vc_varExpr(vc, "a16", vc_bv32Type(vc)); + Expr a17 = vc_varExpr(vc, "a17", vc_bv32Type(vc)); + Expr a18 = vc_varExpr(vc, "a18", vc_bv32Type(vc)); + Expr a19 = vc_varExpr(vc, "a19", vc_bv32Type(vc)); + Expr a20 = vc_varExpr(vc, "a20", vc_bv32Type(vc)); + Expr a21 = vc_varExpr(vc, "a21", vc_bv32Type(vc)); + Expr a22 = vc_varExpr(vc, "a22", vc_bv32Type(vc)); + Expr a23 = vc_varExpr(vc, "a23", vc_bv32Type(vc)); + Expr a24 = vc_varExpr(vc, "a24", vc_bv32Type(vc)); + Expr a25 = vc_varExpr(vc, "a25", vc_bv32Type(vc)); + Expr a26 = vc_varExpr(vc, "a26", vc_bv32Type(vc)); + Expr a27 = vc_varExpr(vc, "a27", vc_bv32Type(vc)); + Expr a28 = vc_varExpr(vc, "a28", vc_bv32Type(vc)); + Expr a29 = vc_varExpr(vc, "a29", vc_bv32Type(vc)); + Expr a30 = vc_varExpr(vc, "a30", vc_bv32Type(vc)); + Expr a31 = vc_varExpr(vc, "a31", vc_bv32Type(vc)); + Expr a32 = vc_varExpr(vc, "a32", vc_bv32Type(vc)); + Expr a33 = vc_varExpr(vc, "a33", vc_bv32Type(vc)); + Expr a34 = vc_varExpr(vc, "a34", vc_bv32Type(vc)); + Expr a35 = vc_varExpr(vc, "a35", vc_bv32Type(vc)); + Expr a36 = vc_varExpr(vc, "a36", vc_bv32Type(vc)); + Expr a37 = vc_varExpr(vc, "a37", vc_bv32Type(vc)); + Expr a38 = vc_varExpr(vc, "a38", vc_bv32Type(vc)); + Expr a39 = vc_varExpr(vc, "a39", vc_bv32Type(vc)); + Expr a40 = vc_varExpr(vc, "a40", vc_bv32Type(vc)); + Expr a41 = vc_varExpr(vc, "a41", vc_bv32Type(vc)); + Expr a42 = vc_varExpr(vc, "a42", vc_bv32Type(vc)); + Expr a43 = vc_varExpr(vc, "a43", vc_bv32Type(vc)); + Expr a44 = vc_varExpr(vc, "a44", vc_bv32Type(vc)); + Expr a45 = vc_varExpr(vc, "a45", vc_bv32Type(vc)); + Expr a46 = vc_varExpr(vc, "a46", vc_bv32Type(vc)); + Expr a47 = vc_varExpr(vc, "a47", vc_bv32Type(vc)); + Expr a48 = vc_varExpr(vc, "a48", vc_bv32Type(vc)); + Expr a49 = vc_varExpr(vc, "a49", vc_bv32Type(vc)); + Expr a50 = vc_varExpr(vc, "a50", vc_bv32Type(vc)); + + vc_DeleteExpr(a1); + vc_DeleteExpr(a2); + vc_DeleteExpr(a3); + vc_DeleteExpr(a4); + vc_DeleteExpr(a5); + vc_DeleteExpr(a6); + vc_DeleteExpr(a7); + vc_DeleteExpr(a8); + vc_DeleteExpr(a9); + vc_DeleteExpr(a10); + vc_DeleteExpr(a11); + vc_DeleteExpr(a12); + vc_DeleteExpr(a13); + vc_DeleteExpr(a14); + vc_DeleteExpr(a15); + vc_DeleteExpr(a16); + vc_DeleteExpr(a17); + vc_DeleteExpr(a18); + vc_DeleteExpr(a19); + vc_DeleteExpr(a20); + vc_DeleteExpr(a21); + vc_DeleteExpr(a22); + vc_DeleteExpr(a23); + vc_DeleteExpr(a24); + vc_DeleteExpr(a25); + vc_DeleteExpr(a26); + vc_DeleteExpr(a27); + vc_DeleteExpr(a28); + vc_DeleteExpr(a29); + vc_DeleteExpr(a30); + vc_DeleteExpr(a31); + vc_DeleteExpr(a32); + vc_DeleteExpr(a33); + vc_DeleteExpr(a34); + vc_DeleteExpr(a35); + vc_DeleteExpr(a36); + vc_DeleteExpr(a37); + vc_DeleteExpr(a38); + vc_DeleteExpr(a39); + vc_DeleteExpr(a40); + vc_DeleteExpr(a41); + vc_DeleteExpr(a42); + vc_DeleteExpr(a43); + vc_DeleteExpr(a44); + vc_DeleteExpr(a45); + vc_DeleteExpr(a46); + vc_DeleteExpr(a47); + vc_DeleteExpr(a48); + vc_DeleteExpr(a49); + vc_DeleteExpr(a50); + + vc_Destroy(vc); + } +} -- 2.47.3