mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-09 08:11:38 +08:00
245961de00
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
71 lines
1.8 KiB
Plaintext
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
|