1#------------------------------------------------------------------------------- 2# SLIP_LU/Tcov/Makefile: compile and run SLIP_LU test coverage 3#------------------------------------------------------------------------------- 4 5# SLIP_LU: (c) 2019-2020, Chris Lourenco, Jinhao Chen, Erick Moreno-Centeno, 6# Timothy A. Davis, Texas A&M University. All Rights Reserved. See 7# SLIP_LU/License for the license. 8 9#------------------------------------------------------------------------------- 10 11default: run 12 13include ../../SuiteSparse_config/SuiteSparse_config.mk 14 15# Linux test coverage 16CC = gcc 17CFLAGS = -g -fprofile-arcs -ftest-coverage \ 18 -Wall -W -Wshadow -Wmissing-prototypes -Wstrict-prototypes \ 19 -Wredundant-decls -Wnested-externs -Wdisabled-optimization -std=c99 \ 20 -Wno-unused-parameter -I../Include -I../Source -I../Demo \ 21 -I../../SuiteSparse_config -I../../COLAMD/Include -I../../AMD/Include \ 22 -DSLIP_GMP_LIST_INIT=2 -DSLIP_LU_TCOV 23 24LDLIBS += -lm -lgmp -lmpfr -lcolamd -lamd -lsuitesparseconfig 25 26# run all statement coverage tests, and then check for 100% coverage 27run: runtests 28 ./covall 29 30all: test SLIPLU 31 32CS = \ 33 slip_matrix_div.o slip_matrix_mul.o slip_back_sub.o \ 34 SLIP_backslash.o \ 35 slip_cast_array.o \ 36 slip_cast_matrix.o \ 37 slip_check_solution.o \ 38 SLIP_create_default_options.o \ 39 slip_create_mpfr_array.o \ 40 slip_create_mpq_array.o \ 41 slip_create_mpz_array.o \ 42 slip_cumsum.o \ 43 slip_dfs.o \ 44 slip_expand_double_array.o \ 45 slip_expand_mpfr_array.o \ 46 slip_expand_mpq_array.o \ 47 SLIP_finalize.o \ 48 slip_forward_sub.o \ 49 SLIP_malloc.o \ 50 SLIP_calloc.o \ 51 SLIP_realloc.o \ 52 SLIP_free.o \ 53 slip_get_largest_pivot.o \ 54 slip_get_nonzero_pivot.o \ 55 slip_get_pivot.o \ 56 slip_get_smallest_pivot.o \ 57 SLIP_gmp.o \ 58 SLIP_initialize.o \ 59 SLIP_initialize_expert.o \ 60 SLIP_LU_analysis_free.o \ 61 SLIP_LU_analyze.o \ 62 SLIP_LU_factorize.o \ 63 SLIP_LU_solve.o \ 64 SLIP_matrix_allocate.o \ 65 SLIP_matrix_check.o \ 66 SLIP_matrix_copy.o \ 67 SLIP_matrix_free.o \ 68 SLIP_matrix_nnz.o \ 69 slip_permute_b.o \ 70 slip_permute_x.o \ 71 slip_reach.o \ 72 slip_ref_triangular_solve.o \ 73 slip_sparse_collapse.o \ 74 slip_sparse_realloc.o \ 75 tcov_malloc_test.o 76 77$(CS): ../Include/SLIP_LU.h ../Source/slip_internal.h tcov_malloc_test.h ../Demo/demos.h 78 79.PRECIOUS: SLIP_%.c slip_%.c SLIPLU.c demos.c 80 81SLIP_%.c: 82 - ln -s ../Source/$@ 83 84slip_%.c: 85 - ln -s ../Source/$@ 86 87SLIPLU.c: 88 - ln -s ../Demo/$@ 89 90demos.c: 91 - ln -s ../Demo/$@ 92 93test: $(CS) tcov_test.c demos.c 94 $(CC) $(LDFLAGS) tcov_test.c demos.c $(CFLAGS) -o tcov_test $(CS) $(LDLIBS) 95 96SLIPLU: $(CS) SLIPLU.c demos.c 97 $(CC) $(LDFLAGS) SLIPLU.c demos.c $(CFLAGS) -o SLIPLU $(CS) $(LDLIBS) 98 99# run all statement coverage tests 100runtests: all 101 - ./SLIPLU p 2 q 0 102 - ./SLIPLU p 3 q 1 o 1 103 - ./SLIPLU p 4 q 2 o 1 f ../ExampleMats/test_mat.txt ../ExampleMats/test_rhs.txt 104 - ./SLIPLU p 5 105 - ./tcov_test 106 - ./tcov_test 0 1 1 107 108# To run with valgrind: 109V = valgrind #--leak-check=full 110 111# run all statement coverage tests but with valgrind 112vtests: all 113 - $(V) ./SLIPLU p 2 q 0 114 - $(V) ./SLIPLU p 3 q 1 o 1 115 - $(V) ./SLIPLU p 4 q 2 o 1 f ../ExampleMats/test_mat.txt ../ExampleMats/test_rhs.txt 116 - $(V) ./SLIPLU p 5 117 - $(V) ./tcov_test 118 - $(V) ./tcov_test 0 1 1 119 120# remove all files not in the original distribution, including symbolic links 121clean: 122 - $(RM) *.o *.bbg *.da *.gcov *.gcda *gcno 123 - $(RM) tcov_test SLIPLU *.out *.a cov.sort out 124 - $(RM) -r SLIP_*.c slip_*.c *.dSYM SLIPLU.c demos.c 125 126purge: distclean 127 128distclean: clean 129 130