mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-11-21 03:13:42 +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
61 lines
1.3 KiB
Plaintext
61 lines
1.3 KiB
Plaintext
# Test c output
|
|
T=t
|
|
K=4
|
|
L=-L5
|
|
#VG=valgrind --leak-check=full
|
|
|
|
STDLIB=/usr/local
|
|
#STDLIB=/share/ed/local/${HOST}
|
|
|
|
CFLAGS=-I../include -I${STDLIB}/include
|
|
LDFLAGS=../liblib/.libs/libnetcdf.a -L${STDLIB}/lib -lhdf5_hl -lhdf5 -lz -lm -lcurl
|
|
# -lcurl -lm -llber -lldap -lrt -lssl -lcrypto -ldl
|
|
|
|
CLASSPATH=".:ncCore-4.2.jar"
|
|
|
|
btest::
|
|
./ncgen ${L} -$K -lb -o ${T}.nc ${T}.cdl
|
|
../ncdump/ncdump -L2 ./${T}.nc >${T}.dmp
|
|
diff -wBb ${T}.cdl ${T}.dmp
|
|
rm -f ./junk.nc
|
|
../ncdump/nccopy ./${T}.nc ./junk.nc
|
|
|
|
ctest::
|
|
./ncgen ${L} -$K -lc ${T}.cdl >${T}.c
|
|
gcc -o ${T} ${CFLAGS} ${T}.c ${LDFLAGS}
|
|
./${T}
|
|
../ncdump/ncdump ${L} ./${T}.nc >${T}.dmp
|
|
diff -wBb ${T}.cdl ${T}.dmp
|
|
rm -f ./junk.nc
|
|
../ncdump/nccopy ./${T}.nc ./junk.nc
|
|
|
|
gtest::
|
|
./ncgen -$K -lc ${T}.cdl >${T}.c
|
|
gcc -g -O0 -o ${T} ${CFLAGS} ${T}.c ${LDFLAGS}
|
|
gdb --args ./${T}
|
|
|
|
vctest::
|
|
gcc -c ${CFLAGS} ${T}.c
|
|
gcc -o ./vt ${T}.o ${LDFLAGS}
|
|
${VG} ./vt
|
|
|
|
ftest::
|
|
./ncgen -$K -lf77 ${T}.cdl >${T}.f77
|
|
gfortran -c ${CFLAGS} ${T}.f77
|
|
|
|
jtest::
|
|
./ncgen -$K -lj ${T}.cdl >Main.java
|
|
javac -d . -classpath "${CLASSPATH}" Main.java
|
|
|
|
# java -cp ${CPATH} ./${T}
|
|
# ../ncdump/ncdump ./${T}.nc >${T}.dmp
|
|
# diff -wBb ${T}.cdl ${T}.dmp
|
|
|
|
xtest::
|
|
gcc -c ${CFLAGS} ${T}.c
|
|
gcc -o ./vt ${T}.o ${LDFLAGS}
|
|
rm -f ctest0.nc junk.cdl
|
|
./vt
|
|
../ncdump/ncdump ctest0.nc >junk.cdl
|
|
# gdb --args ./vt
|