netcdf-c/debug/ncgen/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

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