From 8c1f8f57eeec84a7f24e23de72bfd3b0c6125d0d Mon Sep 17 00:00:00 2001 From: Dennis Heimbigner Date: Tue, 24 May 2016 18:52:24 -0600 Subject: [PATCH] re: https://github.com/Unidata/netcdf-c/issues/269 The hash field for phony dimensions was not being set (in nc4hdf.c). Also added test case (nc_test4/?). Note that I searched for other similar failures and did not find any, but I may have missed them. --- cf | 4 ++-- configure.ac | 5 ++--- libsrc4/nc4hdf.c | 1 + nc_test4/CMakeLists.txt | 1 + nc_test4/Makefile.am | 4 ++-- nc_test4/tdset.h5 | Bin 0 -> 7648 bytes nc_test4/tst_misc.sh | 26 ++++++++++++++++++++++++++ 7 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 nc_test4/tdset.h5 create mode 100644 nc_test4/tst_misc.sh diff --git a/cf b/cf index 2bf3fe7a6..5223e0f41 100644 --- a/cf +++ b/cf @@ -1,11 +1,11 @@ #!/bin/bash #NB=1 -DB=1 +#DB=1 #X=-x #FAST=1 HDF5=1 -#DAP=1 +DAP=1 #PNETCDF=1 #PAR4=1 diff --git a/configure.ac b/configure.ac index f995e9724..e6845bb40 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# -*- Autoconf -*- +M# -*- Autoconf -*- ## Process this file with autoconf to produce a configure script. # This is part of Unidata's netCDF package. Copyright 2005-2012, see @@ -799,8 +799,7 @@ test "x$enable_diskless" = xno || enable_diskless=yes AC_MSG_RESULT($enable_diskless) # Check for enable DAP -if test "x$enable_dap" = "xyes"; then -enable_diskless=yes +if test "x$enable_dap" = "xyes" -a "xenable_diskless" = xno ; then AC_MSG_NOTICE([--enable-dap requires --enable-diskless]) AC_MSG_NOTICE([dap support disabled]) fi diff --git a/libsrc4/nc4hdf.c b/libsrc4/nc4hdf.c index 86424f0df..02df6691a 100644 --- a/libsrc4/nc4hdf.c +++ b/libsrc4/nc4hdf.c @@ -3710,6 +3710,7 @@ nc4_rec_match_dimscales(NC_GRP_INFO_T *grp) return NC_ENOMEM; } dim->len = h5dimlen[d]; + dim->hash = hash_fast(phony_dim_name, strlen(phony_dim_name)); if (h5dimlenmax[d] == H5S_UNLIMITED) dim->unlimited = NC_TRUE; } diff --git a/nc_test4/CMakeLists.txt b/nc_test4/CMakeLists.txt index cff120fe9..a174e1fc1 100644 --- a/nc_test4/CMakeLists.txt +++ b/nc_test4/CMakeLists.txt @@ -22,6 +22,7 @@ add_sh_test(nc_test4 run_grp_rename) BUILD_BIN_TEST(tst_empty_vlen_unlim) ADD_SH_TEST(nc_test4 run_empty_vlen_test) +ADD_SH_TEST(nc_test4 tst_misc.sh) IF(NOT MSVC) SET(NC4_TESTS ${NC4_TESTS} tst_interops5 tst_camrun) diff --git a/nc_test4/Makefile.am b/nc_test4/Makefile.am index e1fbceb9d..f509ec694 100644 --- a/nc_test4/Makefile.am +++ b/nc_test4/Makefile.am @@ -33,7 +33,7 @@ endif TESTS = $(NC4_TESTS) -TESTS += run_grp_rename.sh run_empty_vlen_test.sh +TESTS += run_grp_rename.sh run_empty_vlen_test.sh tst_misc.sh # If the v2 API was built, add its test program. if BUILD_V2 @@ -125,7 +125,7 @@ run_grp_rename.sh tst_formatx_hdf4.sh \ run_chunk_hdf4.sh contiguous.hdf4 chunked.hdf4 \ tst_h5_endians.c tst_h4_lendian.c tst_atts_string_rewrite.c \ tst_put_vars_two_unlim_dim.c tst_empty_vlen_unlim.c run_empty_vlen_test.sh \ -ref_hdf5_compat1.nc ref_hdf5_compat2.nc ref_hdf5_compat3.nc +ref_hdf5_compat1.nc ref_hdf5_compat2.nc ref_hdf5_compat3.nc tst_misc.sh tdset.h5 CLEANFILES = tst_mpi_parallel.bin cdm_sea_soundings.nc bm_chunking.nc \ bm_radar.nc bm_radar1.nc radar_3d_compression_test.txt \ diff --git a/nc_test4/tdset.h5 b/nc_test4/tdset.h5 new file mode 100644 index 0000000000000000000000000000000000000000..3cb9a698eae47a4763ddc0113a19d4b023327ea1 GIT binary patch literal 7648 zcmeI$ZLAzs8Nl(gx9#oFQrVV;PTNtp>o86x+hKR!XLdKcr0q>97E50YkK+$N3_5&ogVgtsg#AJO*BPi5o=KR;RR3*?R zCc-4M&pb1;&;HJtbIzUIJJ+n5Suk(uJXLOnp=PVPnpGwG<22jJ*PoqFZn>A6Yn<52 z!8Y*?YrN7OIMOI1`;RremA+{|1@seuzGdb+DSi8;-tAJXX~T- z(lfI*Ri#QV2ud|{Dpky?&a9doR$KGTWkN0DbonFs3y+UPSl#u%{@8f!TUV8R z2wMI8EcLm%$vktX&%O3)KJ(J!N{^3)%ZK#!NJaBiboyU^AI=_MZ=f^J9be7)`qD#- z&g}1V$Jd9>y!_hn`Sn0KZOfToKCNHQtNW5cfS2~X063i?|l0H#kI;w_e!7RzpJ%G z>b;UN@t9oTW@a3l9`e#@7(PM`Y1 z@NInW`u(>&_`cho8@`?I-|)-pmOM6h+i(kYwk}`s!R|ee49ED!>ZaqL{>CoJe{p#6 z^-m4Qwc>LJ=4_OBV2A(hhlk^-i?4p*9kIkcSIo@&y2K~TJBQ<0GbgsZ>kf(EI{f=f zo*j;7o8>P{{Mb%)(+P=xSiA4Cb;I$Tjn3jDKai;1<7xX>S1!GGsJROzp8EXE?%Rjs zxm$N0d*fdu{`i_LKifXiJS8!@`H{zSiIr30SFgVA_CpdY??~0kg3BaUZi({q$M;FB z{1Try{?|`EKT^6K5=V#kMmr={?U8tJ|NN7`mRPlGq-HJJ@x{B=ORU-_@xyE1lpm2; zwNv76uK4C}gAp$V61C63XW%pN8Tbr*20jCyfzQBa;4|$Ock`Q&(~DLZ5GVz)COnfFj6Q7CC z#Ao6&@tOEcd?r2V>d9kw zJoW*}^*C;-XD@pH_x6oi_*(c{_*(c{_*(c{_*(c{_*(c{_*(c{_*(c{_*(c{_*(c{ z_*(dEd^SECpN-GPXXCT++4yXHHa;7ljnBqs%dzpNG%G=i&44dH6hh9zGABhtI?3;q&l$_}ci| z_}ci|_}ci|_}ci|_}ci|_}ci|_}ci|_}ci|_}ci|_}ci|_xlspaM_pRJxk;|q!;Wf}3zp=1UF@iG zdD|tqULQNE`1@_2Rg&v-DpvcD{Gj zdos!OI@(dUe&RbPj*iNIn#v|o`?~nL_`3MI_`3MI_`3MI_`3MI_`3MI_`3MI_`3MI z_`3MI_{x9gmc9UAfG@xo;0y2t_yT+Zz5rif+z7$`I zFU6PQOYx=nQhX`C6km!j#h2ns@um1ud>OtBUxqKkm*LCsW%x3D8NLi(hA+dH;mh!4 z_%eJMz6@W6FT<<;4API_zHXlz5-u?ufSK}EASQg3Va2=0$+izz}Lgq!`H*t!`H*t!`H*t!`H*t z!`H*t!`H*t!`H*t!`H*t!`H*t!`H{x$JfW#$JfW#$JfW#$JfW#$JfW#$JfW#$JfW# z$JfW#$JfW#$2Y(?z&F4*z&F4*z&F4*z&F4*z&F4*z&F4*z&F4*z&F4*z&F4*(7t~H D+;Gn} literal 0 HcmV?d00001 diff --git a/nc_test4/tst_misc.sh b/nc_test4/tst_misc.sh new file mode 100644 index 000000000..3d76d6f2b --- /dev/null +++ b/nc_test4/tst_misc.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +if test "x$builddir" = "x"; then builddir=`pwd`; fi +if test "x$srcdir" = "x"; then srcdir=`dirname $0`; fi + +# Make buildir absolute +cd $builddir +builddir=`pwd` + +set -e + +echo "*** Testing phony dimension creation on pure h5 file" +rm -f ./tmp +if ../ncdump/ncdump -K ${srcdir}/tdset.h5 >./tmp ; then +echo "*** Pass: phony dimension creation" +ECODE=0 +else +echo "*** Fail: phony dimension creation" +ECODE=1 +fi + +rm -f tmp + +exit $ECODE + +