netcdf-c/debug/dap4_test/Make0
Dennis Heimbigner 245961de00 re: github issues
https://github.com/Unidata/netcdf-c/issues/1168
    https://github.com/Unidata/netcdf-c/issues/1163
    https://github.com/Unidata/netcdf-c/issues/1162

This PR partially fixes memory leaks in the netcdf-c library,
in the ncdump utility, and in some test cases.

The netcdf-c library now runs memory clean with the assumption
that the --disable-utilities option is used. The primary remaining
problem is ncgen. Once that is fixed, I believe the netcdf-c library
will run memory clean with no limitations.

Notes
-----------
1. Memory checking was performed using gcc -fsanitize=address.
   Valgrind-based testing has yet to be performed.
2. The pnetcdf, hdf4, and examples code has not been tested.

Misc. Non-leak changes
1. Make tst_diskless2 only run when netcdf4 is enabled (issue 1162)
2. Fix CmakeLists.txt to turn off logging if ENABLE_NETCDF_4 is OFF
3. Isolated all my debug scripts into a single top-level directory
   called debug
4. Fix some USE_NETCDF4 dependencies in nc_test and nc_test4 Makefile.am
2018-10-30 20:48:12 -06:00

71 lines
1.8 KiB
Plaintext

# Test c output
T=test_parse
#ARGS=../dap4_test/testfiles/test_atomic_types.nc.dmr
#ARGS=./tat.nc.dmr
ARGS=./tat.dmr
#G=gdb --args
#c:/path/to/my/app args to my app
V=drmemory.exe --
#V=valgrind --leak-check=full
CFLAGS=-Wall -g -O0 -I.. -I../include -I../libdap4
SHELL=/bin/bash
CC=gcc
LDFLAGS=../liblib/.libs/libnetcdf.a -L/usr/local/lib -lhdf5_hl -lhdf5 -lz -ldl -lm -lcurl
LLP=/usr/local/lib:${LD_LIBRARY_PATH}
all:: t.exe
sh ./test_parse.sh
g::
export LD_LIBRARY_PATH=${LLP}; export CFLAGS; export LDFLAGS; \
${G} ./t ${ARGS}
v::
export LD_LIBRARY_PATH=${LLP}; export CFLAGS; export LDFLAGS; \
${V} ./t ${ARGS}
diff:: t.exe
rm -fr ./j
./t ${ARGS} >& ./j
t.exe: ${T}.c ../liblib/.libs/libnetcdf.a
${CC} -o t ${CFLAGS} ${T}.c ${SRC} ${LDFLAGS}
# export LD_LIBRARY_PATH=${LLP}; export CFLAGS; export LDFLAGS;
clean::
rm -fr t.exe ${T}.o
cpp::
${CC} -E ${CFLAGS} ${T}.c > ${T}.txt
tmp.sh::
rm -f tmp.sh
echo 'P=d:/git/thredds/dap4/d4tests/src/test/data/resources/TestCDMClient/testinput' >>tmp.sh
echo 'F="test_atomic_array.nc test_atomic_array.nc test_atomic_types.nc test_enum.nc test_enum_2.nc test_enum_array.nc test_fill.nc test_groups1.nc test_one_var.nc test_one_vararray.nc test_opaque.nc test_opaque_array.nc test_struct_type.nc test_utf8.nc"' >>tmp.sh
echo 'for f in $$F ; do' >>tmp.sh
echo 'R="$${P}/$$f" ; L="./testfiles/$$f"' >>tmp.sh
echo 'rm $${L}.dap ; cp $${R}.raw $${L}.dap' >>tmp.sh
echo 'done' >>tmp.sh
echo 'cp $${P}/test_sequence_1.syn.raw ./testfiles/test_sequence_1.nc.dap' >>tmp.sh
echo 'cp $${P}/test_sequence_2.syn.raw ./testfiles/test_sequence_2.nc.dap' >>tmp.sh
testfiles:: tmp.sh
sh -x ./tmp.sh
#U=test_ncuri.c ${LDFLAGS}
U=test_ncuri.c ../libdispatch/ncuri.c ../libdispatch/nclist.c ../libdispatch/ncbytes.c
x:
pushd .. ; ${MAKE} ; popd
uri::
${CC} -o test_ncuri ${CFLAGS} ${U}
gdb --args ./test_ncuri