Commit Graph

920 Commits

Author SHA1 Message Date
Dennis Heimbigner
4c1ed0144b Fix nc_test4/tst_filter.sh for big endian
re: issue https://github.com/Unidata/netcdf-c/issues/1338

Changes:

1. nc_test4/tst_filter.sh + nc_test4/ref_filteredvv.cdl --
   properly suppress _Endianness attribute
2. fix some warnings
2019-02-24 22:20:01 -07:00
Dennis Heimbigner
0c59e13bf7 Master merge, conflict resolution, cleanup 2019-02-24 16:54:13 -07:00
Dennis Heimbigner
45a8a265b8 master merge 2019-02-23 17:14:12 -07:00
Ward Fisher
404f87b8c2 Turned of filterparser test when building static library. 2019-02-20 15:11:06 -07:00
Ward Fisher
53ba2ff316
Merge pull request #1311 from Unidata/filterexpr.dmh
Extend nccopy -F option syntax.
2019-02-15 15:16:25 -07:00
Dennis Heimbigner
a1f080db19
Merge branch 'master' into byterange.dmh 2019-02-13 14:45:53 -07:00
Ward Fisher
e32e0b1eb2
Merge branch 'master' into filterexpr.dmh 2019-02-12 09:48:03 -07:00
Ed Hartnett
909402ccd6
Merge branch 'master' into ejh_more_rename_woes_3 2019-02-12 05:49:04 -07:00
Dennis Heimbigner
5f0fdd7e5d Update Makefile.am to use ref_ filter files 2019-02-11 16:07:03 -07:00
Dennis Heimbigner
e932655888 Renamed the baseline files for tst_filter.sh 2019-02-09 15:14:13 -07:00
Dennis Heimbigner
a6b04c0c66 Extend nccopy -F option syntax.
A user suggested that the nccopy -F option
syntax should be extended to support specification
of multiple (or all) variables in a single -F option.

The new syntax allows:

1. '*' as the name of the variable; this means apply the
   filter to all variables in the data set.
2. *var1|var2|...* as the variable name to indicate that the filter
   should be applied to the multiple specified variables.
2019-02-08 18:48:17 -07:00
Ward Fisher
4c6d56abc0
Merge branch 'master' into ejh_more_rename_woes_3 2019-02-07 14:28:46 -07:00
Ward Fisher
3a14251dd9
Merge branch 'master' into bigend.dmh 2019-02-07 14:28:39 -07:00
Ward Fisher
1fde39c8d7
Merge branch 'master' into byterange.dmh 2019-02-07 14:28:23 -07:00
Ward Fisher
6511599a6d Corrected issue in support of https://github.com/Unidata/netcdf-c/issues/1310 2019-02-07 12:43:07 -07:00
Ed Hartnett
5d908a0bbb now preserve order of varids after a var rename 2019-02-03 06:56:03 -07:00
Ed Hartnett
275e116f49 added test to demonstrate out of order varids after rename 2019-02-03 06:28:04 -07:00
Ed Hartnett
6728fceab6 uncommented a bunch of rename tests 2019-02-02 05:55:18 -07:00
Ed Hartnett
1dd76c996e added tst_rename3.c for more rename testing 2019-02-02 05:53:45 -07:00
Ed Hartnett
c8cbff4728 added test (commented out) in tst_rename2.c which fails 2019-02-02 04:00:34 -07:00
Dennis Heimbigner
6723a38d90 remove some debug statements 2019-02-01 14:39:30 -07:00
Dennis Heimbigner
65e9a46d84 ckp 2019-02-01 12:00:12 -07:00
Dennis Heimbigner
8714066b18 Fix errors when building on big-endian machine
re: issue https://github.com/Unidata/netcdf-c/issues/1278
re: issue https://github.com/Unidata/netcdf-c/issues/876
re: issue https://github.com/Unidata/netcdf-c/issues/806

* Major change to the handling of 8-byte parameters for nc_def_var_filter.
  The old code was not well thought out.
  * The new algorithm is documented in docs/filters.md.
  * Added new utility file plugins/H5Zutil.c to support
  * Modified plugins/H5Zmisc.c to use new algorithm
  the new algorithm.
  * Renamed include/ncfilter.h to include/netcdf_filter.h
    and made it an installed header so clients can access the
    new algorithm utility.
  * Fixed nc_test4/tst_filterparser.c and nc_test4/test_filter_misc.c
    to use the new algorithm
* libdap4/ fixes:
  * d4swap.c has an error in the endian pre-processing such
    that record counts were not being swapped correctly.
  * d4data.c had an error in that checksums were being computed
    after endian swapping rather than before.
* ocinitialize() was never being called, so xxdr bigendian handling
  was never set correctly.
  * Required adding debug statements to occompile
* Found and fixed memory leak in ncdump.c

Not tested:
* HDF4
* Pnetcdf
* parallel HDF5
2019-01-31 21:13:06 -07:00
Ed Hartnett
fcae21bb9e more testing 2019-01-27 11:48:28 -07:00
Ed Hartnett
b3796633e7 more testing 2019-01-27 11:40:18 -07:00
Ed Hartnett
e859be9a1d more testing 2019-01-27 11:38:39 -07:00
Ed Hartnett
42c64598dc created function create_dim_wo_var() 2019-01-27 10:51:25 -07:00
Ward Fisher
b27c7d899d Merge branch 'master' into byterange.dmh 2019-01-25 14:50:23 -07:00
Ed Hartnett
713804ea03 added rename test to tst_rename2.c which fails :-( 2019-01-24 10:01:46 -07:00
Ed Hartnett
59ee728b93 fixed parallel build problem with tst_files2.c when --enable-benchmarks is used 2019-01-20 10:07:13 -07:00
Ward Fisher
2285e1dfa1 Merge branch 'ejh_test_null_vars_stride' of https://github.com/NetCDF-World-Domination-Council/netcdf-c into pr-aggregation.wif 2019-01-15 15:10:40 -07:00
Ward Fisher
c6ca9dfa1e Merge branch 'ejh_coords_3' of https://github.com/NetCDF-World-Domination-Council/netcdf-c into pr-aggregation.wif 2019-01-15 15:03:36 -07:00
Ward Fisher
9a365be6d0 Merge branch 'ansifix.dmh' into pr-aggregation.wif 2019-01-15 14:58:54 -07:00
Ed Hartnett
ee1680bb80
Merge branch 'master' into ejh_relax 2019-01-03 05:18:57 -07:00
Ed Hartnett
e1785cd324
Merge branch 'master' into ejh_coords_3 2019-01-03 05:18:41 -07:00
Ed Hartnett
c278109c9f
Merge branch 'master' into ejh_test_null_vars_stride 2019-01-03 05:18:25 -07:00
Ward Fisher
c21820a1ae Merge branch 'master' into ansifix.dmh 2019-01-02 22:26:59 -08:00
Ward Fisher
94af1d49c6
Merge branch 'master' into ansicomment.dmh 2019-01-02 20:51:28 -08:00
Dennis Heimbigner
84c2bc0d78 Merge branch 'master' into byterange.dmh 2019-01-02 13:18:45 -07:00
Ed Hartnett
5e66c086a2 took config include out of h5testszip 2019-01-02 06:46:56 -07:00
Ed Hartnett
35017d9549 fixed mistake in Makefile.am 2019-01-02 06:21:11 -07:00
Ed Hartnett
140967e174 more config.h includes for tests 2019-01-02 05:37:54 -07:00
Ed Hartnett
c15c3fa8d5 cleaned up makefile.am, added config.h to some tests 2019-01-02 05:31:15 -07:00
Ed Hartnett
bdf7eef7c6 merged master 2019-01-02 03:52:51 -07:00
Ed Hartnett
35495eb734
Merge branch 'master' into ejh_test_null_vars_stride 2019-01-02 03:49:22 -07:00
Dennis Heimbigner
bf2746b8ea Provide byte-range reading of remote datasets
re: issue https://github.com/Unidata/netcdf-c/issues/1251

Assume that you have the URL to a remote dataset
which is a normal netcdf-3 or netcdf-4 file.

This PR allows the netcdf-c to read that dataset's
contents as a netcdf file using HTTP byte ranges
if the remote server supports byte-range access.

Originally, this PR was set up to access Amazon S3 objects,
but it can also access other remote datasets such as those
provided by a Thredds server via the HTTPServer access protocol.
It may also work for other kinds of servers.

Note that this is not intended as a true production
capability because, as is known, this kind of access to
can be quite slow. In addition, the byte-range IO drivers
do not currently do any sort of optimization or caching.

An additional goal here is to gain some experience with
the Amazon S3 REST protocol.

This architecture and its use documented in
the file docs/byterange.dox.

There are currently two test cases:

1. nc_test/tst_s3raw.c - this does a simple open, check format, close cycle
   for a remote netcdf-3 file and a remote netcdf-4 file.
2. nc_test/test_s3raw.sh - this uses ncdump to investigate some remote
   datasets.

This PR also incorporates significantly changed model inference code
(see the superceded PR https://github.com/Unidata/netcdf-c/pull/1259).

1. It centralizes the code that infers the dispatcher.
2. It adds support for byte-range URLs

Other changes:

1. NC_HDF5_finalize was not being properly called by nc_finalize().
2. Fix minor bug in ncgen3.l
3. fix memory leak in nc4info.c
4. add code to walk the .daprc triples and to replace protocol=
   fragment tag with a more general mode= tag.

Final Note:
Th inference code is still way too complicated. We need to move
to the validfile() model used by netcdf Java, where each
dispatcher is asked if it can process the file. This decentralizes
the inference code. This will be done after all the major new
dispatchers (PIO, Zarr, etc) have been implemented.
2019-01-01 18:27:36 -07:00
Ed Hartnett
091880fd4d fixed null stride problem for vars calls 2018-12-31 07:36:39 -07:00
Ed Hartnett
322840e4cf benchmarking test work 2018-12-31 07:02:18 -07:00
Ed Hartnett
563f9088f2 cleaned up, added wrf checm file test 2018-12-23 06:29:59 -07:00
Ed Hartnett
029aa5f626 now using hidden coordinates att to speed file opens 2018-12-20 05:59:31 -07:00
Ed Hartnett
1b38d9aef8 lazy read of some var metadata 2018-12-18 07:48:22 -07:00
Ed Hartnett
b2fbc71bd4 added test, uncommented some test code 2018-12-17 09:24:47 -07:00
Ed Hartnett
dc982efb3d moved tst_attsperf to be with rest of benchmarks 2018-12-17 08:44:36 -07:00
Dennis Heimbigner
75759ca957 Separate out the --ansi comment fixes.
re: pull request https://github.com/Unidata/netcdf-c/pull/1242

This pr should be applied before https://github.com/Unidata/netcdf-c/pull/1242.
It fixes only the -ansi '//' comment problems. There may be some
slight conflicts with that other pr when it is applied, since in some
cases I converted #if 0...#endif to /*...*/
2018-12-12 13:23:09 -07:00
Dennis Heimbigner
735ae80928 merge master and fix conflicts 2018-12-12 11:47:54 -07:00
Ed Hartnett
8ca5a1ac17
Merge branch 'master' into ejh_fast_var_prep 2018-12-12 07:05:45 -07:00
Ed Hartnett
f724fe6385 uncommented test in tst_interops.c 2018-12-11 06:34:44 -07:00
Ed Hartnett
89b2c48d4c added benchmark program tst_wrf_reads.c 2018-12-11 06:32:25 -07:00
Ward Fisher
d135fb4200 Removed confounding text from a reference file, turned on filter testing by default in Cmake-based builds. 2018-12-07 14:44:47 -07:00
Ward Fisher
462ec93913 Whew! Updated copyright stanza in nc_test4. 2018-12-06 15:27:32 -07:00
Dennis Heimbigner
1a7531392f Make the netcdf-c library compile with gcc -ansi.
Primary fixes to get -ansi to work.
1. Convert all '//' C++ style comments to /*...*/ or to use #if 0...#endif
2. It turns out that when -ansi is specified, then a number of
   functions no longer are defined in the header -- but they are still
   in the .so file.<br>
   The big example is strdup(). So, added code to include/ncconfig.h to define
   externs for those missing functions that occur in more than one place.
   These are enabled if !_WIN32 && __STDC__ == 1 (__STDC__ is supposed to
   be the equivalent compile time flag to -ansi). Note that this requires
   config.h (which references ncconfig.h) to be included in files where it is
   currently not included. Single uses will be only in the file that uses them.
3. Added mmap test for the MAP_ANONYMOUS flag to configure.ac. Apparently
   this is not always defined with -ansi.
4. fix some large integer constants in nc_test4/tst_atts3.c and nc_test4/tst_filterparser.c
   to avoid compiler complaints.
5. fix a double constant in nc_test4/tst_filterparser.c to avoid compiler complaints.

[Note I suspect #4 and #5 will be a problem on big-endian machines, but we have no way to test]

Misc. Changes:
1. convert more instances of _MSC_VER to _WIN32.
2. added some debugging code to include/nctestserver.h
3. added comment about libdispatch/drc.c always being compiled.
4. modify parser generation in ncgen to remove unneeded files.
2018-12-05 19:20:43 -07:00
Ed Hartnett
846153b3fd makefile.am cleanup 2018-12-03 07:42:34 -07:00
Ed Hartnett
262763c254 clean up 2018-11-16 10:01:31 -07:00
Ward Fisher
53dc9022be Merge remote-tracking branch 'origin/ncgenmem.dmh' into tmptmp 2018-11-15 10:20:08 -07:00
Dennis Heimbigner
751300ec59 Fix more memory leaks in netcdf-c library
This is a follow up to PR https://github.com/Unidata/netcdf-c/pull/1173

Sorry that it is so big, but leak suppression can be complex.

This PR fixes all remaining memory leaks -- as determined by
-fsanitize=address, and with the exceptions noted below.

Unfortunately. there remains a significant leak that I cannot
solve. It involves vlens, and it is unclear if the leak is
occurring in the netcdf-c library or the HDF5 library.

I have added a check_PROGRAM to the ncdump directory to show the
problem.  The program is called tst_vlen_demo.c To exercise it,
build the netcdf library with -fsanitize=address enabled. Then
go into ncdump and do a "make clean check".  This should build
tst_vlen_demo without actually executing it.  Then do the
command "./tst_vlen_demo" to see the output of the memory
checker.  Note the the lost malloc is deep in the HDF5 library
(in H5Tvlen.c).

I am temporarily working around this error in the following way.
1. I modified several test scripts to not execute known vlen tests
   that fail as described above.
2. Added an environment variable called NC_VLEN_NOTEST.
   If set, then those specific tests are suppressed.

This should mean that the --disable-utilities option to
./configure should not need to be set to get a memory leak clean
build.  This should allow for detection of any new leaks.

Note: I used an environment variable rather than a ./configure
option to control the vlen tests. This is because it is
temporary (I hope) and because it is a bit tricky for shell
scripts to access ./configure options.

Finally, as before, this only been tested with netcdf-4 and hdf5 support.
2018-11-15 10:00:38 -07:00
Ward Fisher
619f0f1bdf
Merge branch 'master' into patch-28 2018-11-14 13:16:24 -07:00
Greg Sjaardema
a519c12f52
Remove extra argument
Removes extra argument to match function prototype in `NC_Dispatch` as described in #1196
2018-11-14 10:35:58 -07:00
Ed Hartnett
c62804f1f2 whitespace issues 2018-11-09 05:48:30 -07:00
Ed Hartnett
c3d5c43662 fixed test output 2018-11-09 05:45:29 -07:00
Ed Hartnett
1a858e847b fixed test output 2018-11-09 05:41:35 -07:00
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
Dennis Heimbigner
a5a34f6aba
Merge branch 'master' into nc_mpiio_nc_mpiposix 2018-10-06 13:33:55 -06:00
Dennis Heimbigner
d07c05b58f Fix memory problems when using HDF5 version 1.10.x and later.
re: issue https://github.com/Unidata/netcdf-c/issues/1156

Starting with HDF5 version 1.10.x, the plugin code MUST be
careful when using the standard *malloc()*, *realloc()*, and
*free()* function.

In the event that the code is allocating, reallocating, or
free'ing memory that either came from -- or will be exported to --
the calling HDF5 library, then one MUST use the corresponding
HDF5 functions *H5allocate_memory()*, *H5resize_memory()*,
*H5free_memory()* [5] to avoid memory failures.

Additionally, if your filter code leaks memory, then the HDF5 library
generates a failure something like this.
````
H5MM.c:232: H5MM_final_sanity_check: Assertion `0 == H5MM_curr_alloc_bytes_s' failed.
````

This PR modifies the code in the plugins directory to
conform to these new requirements.

This raises a question about the libhdf5 code where this
same problem may occur. We need to scan especially nc4hdf.c
to look for this problem.
2018-10-04 11:37:21 -06:00
Dennis Heimbigner
dd654a272e Remove debug from tst_filter.sh 2018-10-01 15:54:25 -06:00
Dennis Heimbigner
8072d1f6bb Modify DAP2 and DAP4 to optionally allow Fillvalue/Variable mismatch
re: issue https://github.com/Unidata/netcdf-c/issues/1151

Modify DAP2 and DAP4 code to handle case when _FillValue type is not
same as the parent variable type.

Specifically:
1. Define a parameter [fillmismatch] to allow this mismatch;
   default is to disallow.
2. If allowed, forcibly change the type of the _FillValue to match
   the parent variable.
3. If allowed Convert the values to match new type
4. Generate a log message
5. if not allowed, then fail

Implementing this required some changes to ncdap_test/dapcvt.c
Also added test cases.

Minor Unrelated Changes:
1. There were a number of warnings about e.g.
   assigning a const char* to a char*. Fix these
2. In nccopy.1, replace .NP with .IP "n"
   (re PR https://github.com/Unidata/netcdf-c/pull/1144)
3. fix minor error in ncdump/ocprint
2018-10-01 15:51:43 -06:00
Wei-keng Liao
0ed70756cc Ignore flags NC_MPIIO and NC_MPIPOSIX. 2018-09-22 20:22:34 -05:00
Ward Fisher
5259b4b1e8
Merge branch 'master' into ejh_hdf5_sep_next_2 2018-09-17 14:53:55 -06:00
Dennis Heimbigner
108dc0f01d Fix szip filter handling code and correspondingtests
re: https://github.com/Unidata/netcdf-c/issues/972

The current szip plugin code in the HDF5 library has some
unexpected behaviors that require some changes to how
nc_inq_var_szip is implemented and to the corresponding tests:
nc_test4/{test_szip,tst_vars3}.

Specifically, the following can happen:

1. The number of parameters provided by the user will be two,
   but the number of parameters returned by nc_inq_var_filter
   will be four because the HDF5 code (H5Zszip) will add two
   extra parameters for internal use. It turns out that the two
   parameters provided when calling nc_def_var_filter correspond
   to the first two parameters of the four parameters returned
   by nc_inq_var_filter.

2. The nc_inq_var_szip values corresponding to the ones provided
   by the caller may be different than those provided by
   nc_def_var_filter.  The value of the options_mask argument is
   known to add additional flag bits, and the pixels_per_block
   parameter may be modified.
2018-09-15 15:21:51 -06:00
Ed Hartnett
86e002d794 merged master 2018-09-06 14:01:59 -06:00
Ed Hartnett
80dc5bc0f7 merged master 2018-09-06 12:24:29 -06:00
Ward Fisher
fbe0a18b1c
Merge branch 'master' into ejh_loop_cleanup_2 2018-09-05 11:22:55 -06:00
Ward Fisher
ecffb53f40
Merge branch 'master' into NC_ENOTINDEFINE 2018-09-04 11:23:19 -06:00
Ed Hartnett
9fd74d2c83 uncommented test code 2018-08-28 10:09:39 -06:00
Wei-keng Liao
116f303182 correct error code for operation not allowed in data mode is NC_ENOTINDEFINE 2018-08-24 21:26:25 -05:00
Ed Hartnett
8847c843fb further cleanup for benchmark builds 2018-08-24 12:48:42 -06:00
Ed Hartnett
e1bd6f2c20 fixing cmake benchmarks, also removing unneeded run_bm.sh 2018-08-24 09:04:01 -06:00
Ed Hartnett
1310066494 getting parallel benchmarks to work, cleanup of benchmark scripts 2018-08-24 08:59:58 -06:00
Ed Hartnett
77d3a6db22 removed tst_ar5 from Makefile.am and cmake build 2018-08-24 07:11:51 -06:00
Ed Hartnett
933d91a556 fixed many benchmark warnings 2018-08-23 08:21:55 -06:00
Ed Hartnett
c665a23e86 fixed warnings in tst_chunks3.c 2018-08-23 07:05:33 -06:00
Ed Hartnett
077a96471e got tst_chunks3 benchmark working 2018-08-23 07:02:44 -06:00
Ed Hartnett
c2b6d36779 comments 2018-08-23 06:34:10 -06:00
Ed Hartnett
a102f1c55d got knmi benchmark test working with parallel builds 2018-08-23 06:32:04 -06:00
Ed Hartnett
cb51061861 got tst_files2 2018-08-22 10:09:32 -06:00
Ed Hartnett
d8c1a6209a removed unneeded lookup function 2018-08-21 11:54:06 -06:00
Ed Hartnett
30f03bc155 removed unneeded test data file 2018-08-21 07:09:49 -06:00
Ed Hartnett
563052d4b8 removed unneeded enum test 2018-08-21 06:42:10 -06:00
Ed Hartnett
b57b87c971 uncommented test code 2018-08-21 06:36:40 -06:00
Ed Hartnett
c02f976d84 more tests 2018-08-20 17:05:29 -06:00
Ed Hartnett
fda87a8d5f now check for max of 32 dims for a var in HDF5 file 2018-08-20 09:53:08 -06:00
Ed Hartnett
f77350c66d testing error for HDF5 file with circular groups 2018-08-20 09:26:50 -06:00
Ed Hartnett
72805a5eed tracking enum issue 2018-08-20 05:45:30 -06:00
Ed Hartnett
5b2f6ecebc changed literal in netcdf.h 2018-08-18 05:22:07 -06:00
Ed Hartnett
9cf272f24e merged ejh_vars_null_count_issue_2 2018-08-18 04:21:21 -06:00
Ed Hartnett
99c758c649 cleaned up configure.ac, fixed parallel test warning 2018-08-16 11:43:01 -06:00
Ed Hartnett
1b318a01fb getting automake build working 2018-08-16 10:55:11 -06:00
Ed Hartnett
59a25093d9 added setting of mpiexec command to CMake build 2018-08-16 07:33:04 -06:00
Ed Hartnett
afb7e5ab43 set mpiexec from configure 2018-08-16 07:23:41 -06:00
Ed Hartnett
b3842197e0 merged master 2018-08-16 05:49:41 -06:00
Ed Hartnett
d59446ccd5
Merge branch 'master' into ejh_func_cleanup3 2018-08-15 18:08:34 -06:00
Ed Hartnett
a0bea92919 fixed problem of not calling NC_ versions of vars and varm functions for extra error checking 2018-08-14 05:04:09 -06:00
Ed Hartnett
5c39fa115a return error for NULL start for varm functions 2018-08-14 04:35:38 -06:00
Ed Hartnett
a271ebb5f2 testing NULL starts 2018-08-14 04:17:34 -06:00
Ed Hartnett
97c2541a37 put_vars checking for NULL start for non-scalar vars and test 2018-08-13 13:05:32 -06:00
Ward Fisher
a996ed554e Swapped /bin/bash for /bin/sh to test on osx. 2018-08-12 23:01:08 -06:00
Ed Hartnett
ad25807bd1
Merge branch 'master' into ejh_global_att_read 2018-08-06 16:30:26 -06:00
Ward Fisher
5f89204bdb
Merge branch 'master' into ejh_func_cleanup3 2018-08-06 11:32:45 -06:00
Ed Hartnett
56a57a57f0 bring in changes from lazy vars branch 2018-08-06 10:57:19 -06:00
Dennis Heimbigner
4ec592648a Force chunking when testing filter 2018-08-04 18:57:02 -06:00
Ed Hartnett
b9afdee6cd merged master 2018-07-31 19:44:28 -06:00
Ed Hartnett
7ab6d7bdda
Merge branch 'master' into ejh_global_att_read 2018-07-31 19:32:36 -06:00
Dennis Heimbigner
b02703aa24 This PR primarily addresses Issue https://github.com/Unidata/netcdf-c/issues/725.
After a long discussion, I implemented the rules at the end of that issue.
They are documented in nccopy.1.

Additionally, I added a new, per-variable, -c flag that allows
for the direct setting of the chunking parameters for a variable.
The form is
    -c var:c1,c2,...ck
where var is the name of the variable (possibly a fully qualified name)
and the ci are the chunksizes for that variable. It must be the case
that the rank of the variable is k. If the new form is used as well
as the old form, then the new form overrides the old form for the
specified variable. Note that multiple occurrences of the new form
-c flag may be specified.

Misc. Other fixes
1. Added -M <size> option to nccopy to specify the minimum
   allowable chunksize.
2. Removed the unused variables from bigmeta.c
   (Issue https://github.com/Unidata/netcdf-c/issues/1079)
3. Fixed failure of nc_test4/tst_filter.sh by using the new -M
   flag (#1) to allow filter test on a small chunk size.
2018-07-26 20:16:02 -06:00
Ed Hartnett
5631fa512a merged master 2018-07-24 01:51:51 -06:00
Ed Hartnett
b56a8edcc9 code cleanup 2018-07-21 09:09:12 -06:00
Ed Hartnett
7aed50a902 performance test for fast global att reads 2018-07-21 07:29:12 -06:00
Ed Hartnett
8fdea13227 merged ejh_change_attsperf 2018-07-20 12:27:19 -06:00
Ed Hartnett
cafd2eaaf9 more changes to hande different scales 2018-07-20 12:19:20 -06:00
Ed Hartnett
4dbcd03f02 fixed num_vars bug 2018-07-20 09:43:53 -06:00
Ed Hartnett
0f21e3495e changed tst_attsperf 2018-07-20 06:26:42 -06:00
Ward Fisher
b1078c13f0 Merge branch 'ejh_hdf5internal' of https://github.com/NetCDF-World-Domination-Council/netcdf-c into pr-aggregation.wif 2018-07-18 14:12:26 -06:00
Ward Fisher
35d1d73e53
Merge branch 'master' into patch-24 2018-07-17 10:58:58 -06:00
Ed Hartnett
396124c0ca merged ejh_hdf5internal 2018-07-17 07:56:09 -06:00
Ed Hartnett
d801425b78
Merge branch 'master' into ejh_hdf5internal 2018-07-14 13:01:14 -06:00
Ed Hartnett
3a08d85e13 clean up 2018-07-12 07:08:27 -06:00
Ed Hartnett
786c5a8f2e moved hdf5 specific header stuff to hdf5internal.h 2018-07-12 07:05:21 -06:00
Greg Sjaardema
c3f63b6ffe Enable metadata_perf test in CMake build
Currently defaults to enabled, can change top-level
CMakeLists.txt file to change default to disabled
2018-07-11 13:40:31 -04:00
Greg Sjaardema
1eb2504043
Fix missing ERR in tst_parallel5.c
Missing the ERR macro for a few tests in tst_parallel5.c
2018-07-10 08:12:04 -04:00
Ed Hartnett
0fed77be82 fixed warning 2018-07-06 06:32:09 -06:00
Dennis Heimbigner
30a4dea21c Disable tst_varsperf; should only be run manually 2018-06-26 15:14:31 -06:00
Ed Hartnett
97faffe072 fixed test issue 2018-06-21 06:51:45 -06:00
Ed Hartnett
d5baca7f97 fixed test issue 2018-06-21 06:36:12 -06:00
Ed Hartnett
eafe151f13 added test 2018-06-19 14:59:07 -06:00
Ed Hartnett
2dc6676bd8 now checking for classic model 2018-06-19 07:30:08 -06:00
Ed Hartnett
828fa3e0a5 changes to tst_varsperf to remove asserts 2018-06-12 07:30:49 -06:00
Ed Hartnett
fb570522bc merged in ejh_fix_user_type 2018-06-12 06:49:40 -06:00
Ed Hartnett
752030f59a merged ejh_test_exten_unlim_no_coord 2018-06-12 06:22:26 -06:00
Ed Hartnett
9e5924ebb4
Merge branch 'master' into ejh_more_testing 2018-06-11 15:58:36 -06:00
Ed Hartnett
12db5e22f3 added test of extending unlimited dim with no coord var 2018-06-11 06:17:52 -06:00
Ward Fisher
5fe7d0ffad
Merge branch 'master' into ejh_udf 2018-06-08 16:52:20 -06:00
Ward Fisher
df4942d280 Merge branch 'master' into vars.dmh 2018-06-08 15:50:28 -06:00
Ed Hartnett
c1106c5f18 szip may not be present 2018-06-08 04:46:33 -06:00
Ed Hartnett
a721f91d45 merged master 2018-06-08 04:44:44 -06:00
Ed Hartnett
367d7c2a57 merged master 2018-06-07 18:36:25 -06:00
Ed Hartnett
5112ef8c72 merged master 2018-06-07 07:27:47 -06:00
Ed Hartnett
7aa073eb5d magic numbers working with user-defined formats 2018-06-07 06:49:16 -06:00
Ed Hartnett
5521e062a4 more udf test 2018-06-06 13:17:32 -06:00
Ed Hartnett
d8f7ca3e6e adding udf test 2018-06-06 13:15:48 -06:00
Ed Hartnett
9a2782b56c got long working with master 2018-06-05 14:40:49 -06:00
Ed Hartnett
17da700a5c adding support for magic numbers 2018-06-05 12:22:38 -06:00
Ed Hartnett
3a8987967e improving testing of user-defined formats 2018-06-05 11:53:59 -06:00
Ed Hartnett
2e831e9bbe initialization of user-defined formats 2018-06-02 08:43:34 -06:00
Ed Hartnett
926ce56775 fixing NC4_show_metadata for windows 2018-06-01 08:10:16 -06:00
Ed Hartnett
d7badd18d9 messing with NC4_show_metadata 2018-06-01 07:09:44 -06:00
Ed Hartnett
011e85cea4 merge ejh_par_tests 2018-05-30 05:06:25 -06:00
Ed Hartnett
3949bd61bc merge ejh_par_leak 2018-05-30 05:03:42 -06:00
Ed Hartnett
5ac7df7ae1 merge ejh_more_tests 2018-05-30 05:01:19 -06:00
Ed Hartnett
fcc6091600 merged ejh_test_def_var_extra 2018-05-30 04:59:10 -06:00
Ed Hartnett
6992295ef7 getting windows build working 2018-05-30 04:31:15 -06:00
Dennis Heimbigner
ee509ff4f3 Re-Implement the nc_get/put_vars operations for netcdf-4 using the
corresponding HDF5 operations.

re: github issue https://github.com/Unidata/netcdf-c/issues/908
also in reference to https://github.com/pydata/xarray/issues/2004

The netcdf-c library has implemented the nc_get_vars and nc_put_vars
operations as element at a time. This has resulted in very slow
operation.

This pr attempts to improve the situation for netcdf-4/hdf5 files
by using the slab operations provided by the hdf5 library. The new
implementation passes the get/put vars stride information down to
the hdf5 slab operations.

The result appears to improve performance significantly. Some simple
tests on large 2-D arrays shows speedups in excess of 150.

Misc. other changes:
1. fix bug in ncgen/semantics.c; using a list's allocated length
   instead of actual length.
2. Added a temporary hook in the netcdf library plus a performance
   test case (tst_varsperf.c) to estimate the speedup. After users
   have had some experience with this, I will remove it, probably
   after the 4.7 release.
2018-05-22 16:50:52 -06:00
Ed Hartnett
7a18d361fb
Merge branch 'master' into ejh_udf 2018-05-22 07:19:10 -06:00
Dennis Heimbigner
02bd33f250 Merge branch 'dapparams.dmh' of https://github.com/Unidata/netcdf-c into dapparams.dmh 2018-05-19 16:11:24 -06:00
Dennis Heimbigner
5fc6be9472 Code duplicated; merge failure? 2018-05-18 20:28:51 -06:00
Ed Hartnett
bab5ef7549 fixed printf statement 2018-05-17 05:53:10 -06:00
Ed Hartnett
df60e5917a added test 2018-05-17 05:50:30 -06:00
Ed Hartnett
6c6c86ef96 added tests, cleaned up test 2018-05-17 05:45:51 -06:00
Ed Hartnett
33bf6147ce cleaned up comments 2018-05-16 03:29:08 -06:00
Ed Hartnett
40c552bd43 cleaned up nc4hdf5.c 2018-05-16 03:18:50 -06:00
Ed Hartnett
d8947c81ee cleaned up whitespace 2018-05-16 02:44:46 -06:00
Ed Hartnett
c0b4e96428 added parallel testing for string type 2018-05-16 02:27:07 -06:00
Ed Hartnett
37cae16b38 added parallel testing for string type 2018-05-16 02:26:13 -06:00
Ed Hartnett
3e79501c3e added parallel compound type test 2018-05-15 08:54:51 -06:00
Ed Hartnett
95e2d10347 fixed comment 2018-05-15 08:15:25 -06:00
Ed Hartnett
b8ad15b6ae tests for ncdump issue with irish rover 2018-05-15 08:09:52 -06:00
Ed Hartnett
942bc48181 test development 2018-05-14 14:25:56 -06:00
Ed Hartnett
984f112580 test development 2018-05-14 10:06:35 -06:00
Ed Hartnett
271abc6bcb added file 2018-05-14 08:49:13 -06:00
Ed Hartnett
fd23cb3cf2 cleanup makefile, develop test 2018-05-14 08:11:32 -06:00
Ed Hartnett
350946b1e0 user defined formats only if netcdf-4 is built 2018-05-13 16:03:04 -06:00
Ed Hartnett
2d0ef80cc4 added tests 2018-05-13 07:31:46 -06:00
Ed Hartnett
bc759bba58 added tests to confirm correct default chunksizes when fletcher32/shuffle are turned on 2018-05-12 09:48:13 -06:00
Ed Hartnett
03ea1056f4 now reject user-defined types for CLASSIC_MODEL netcdf-4 files 2018-05-12 08:26:48 -06:00
Ward Fisher
9f716a228f
Merge branch 'master' into inmemory.dmh 2018-05-04 16:15:22 -06:00
Dennis Heimbigner
9aa1e9a14e master merge 2018-05-03 21:02:12 -06:00
Ed Hartnett
6e25c75947
Merge branch 'master' into ejh_move_tests 2018-04-30 17:53:39 -06:00
luz.paz
74fbacdb82 Misc. source comment typos
Some are user-facing. Found via `codespell` and through the downstream FreeCAD.
2018-04-26 23:04:01 -04:00
Ed Hartnett
507717e803
Merge branch 'master' into ejh_move_tests 2018-04-26 18:47:48 -06:00
Dennis Heimbigner
ff212442f1 merge master and conflict resolve 2018-04-26 14:22:01 -06:00
Greg Sjaardema
09b0a76a01
Add missing ERR Macro
The ERR macro was  missing from a couple tests.
2018-04-25 09:54:31 -06:00
Ward Fisher
65f7dd0397
Merge branch 'master' into ejh_move_tests 2018-04-23 13:36:53 -06:00
Dennis Heimbigner
0a44d9ae3a Merge branch 'master' into inmemory.dmh 2018-04-23 11:30:14 -06:00
Ed Hartnett
1f9a78c6eb fixed distcheck problem 2018-04-23 03:29:37 -06:00
Ed Hartnett
b5e282996c moved tests 2018-04-23 03:19:11 -06:00
Dennis Heimbigner
d3b309722e re: gh issue https://github.com/Unidata/netcdf-c/issues/911
I took Ed's advice and moved the plugin stuff to its own
top-level directory. This is an attempt to solve the problem of
copying files that we have experienced. In any case, it will
serve as a place to stick additional plugins.
2018-04-21 20:10:47 -06:00
Ed Hartnett
f36ae96ee4
Merge branch 'master' into ejh_fill_test 2018-04-19 15:41:38 -06:00
Ward Fisher
9a1172fbb0 Replace quotes when including system includes, in support of https://github.com/Unidata/netcdf-c/issues/928 2018-04-18 10:51:03 -06:00
Ed Hartnett
48c92cbdc3
Merge branch 'master' into ejh_fill_test 2018-04-16 16:35:09 -06:00
Dennis Heimbigner
c66f1d53bb missing file 2018-04-14 12:01:52 -06:00
Ward Fisher
e2e2c2117f
Merge branch 'master' into index.dmh 2018-04-02 18:13:34 -06:00
Ed Hartnett
168340a8b6 added test for utf8 normalization for variable rename 2018-03-30 11:26:47 -06:00
Ed Hartnett
0e454a75c2 added fill mode test 2018-03-30 10:20:33 -06:00
Ed Hartnett
af79dfa14d new method of using valgrind 2018-03-28 13:54:05 -06:00
Dennis Heimbigner
1246dd189b merge master 2018-03-20 21:50:58 -06:00
Ward Fisher
36c4b7947d Merge branch 'master' into newhash1.dmh 2018-03-20 11:20:14 -06:00
Dennis Heimbigner
dc8c08f939 forgot to add files to repo 2018-03-17 19:09:49 -06:00
Dennis Heimbigner
cc136cad08 Add a configurable "test case" that will create
and then open a file with a lot of metadata.
The test is configurable to determine the parameters
for the created metadata.
2018-03-17 16:25:13 -06:00
Dennis Heimbigner
25f062528b This completes (for now) the refactoring of libsrc4.
The file docs/indexing.dox tries to provide design
information for the refactoring.

The primary change is to replace all walking of linked
lists with the use of the NCindex data structure.
Ncindex is a combination of a hash table (for name-based
lookup) and a vector (for walking the elements in the index).
Additionally, global vectors are added to NC_HDF5_FILE_INFO_T
to support direct mapping of an e.g. dimid to the NC_DIM_INFO_T
object. These global vectors exist for dimensions, types, and groups
because they have globally unique id numbers.

WARNING:
1. since libsrc4 and libsrchdf4 share code, there are also
   changes in libsrchdf4.
2. Any outstanding pull requests that change libsrc4 or libhdf4
   are likely to cause conflicts with this code.
3. The original reason for doing this was for performance improvements,
   but as noted elsewhere, this may not be significant because
   the meta-data read performance apparently is being dominated
   by the hdf5 library because we do bulk meta-data reading rather
   than lazy reading.
2018-03-16 11:46:18 -06:00
Ward Fisher
1e0cf1136c
Merge branch 'master' into ncpyfilter.dmh 2018-03-08 15:48:40 -07:00
Ed Hartnett
4e646e03f6 fixed cmake build file 2018-03-05 05:03:46 -07:00
Ed Hartnett
17f7a76356 moved HDF4 tests 2018-03-05 03:45:18 -07:00
Ward Fisher
c359a0e96a
Merge branch 'master' into newhash1.dmh 2018-03-04 22:40:51 -07:00
Dennis Heimbigner
7b324657d4
Merge branch 'master' into ncpyfilter.dmh 2018-03-02 19:49:43 -07:00
Dennis Heimbigner
dd4e71c150 1. Solve issue raised on netcdfgroup mailing list:
https://www.unidata.ucar.edu/mailing_lists/archives/netcdfgroup/2018/msg00020.html
See docs/filters.md for a detailed description of the solution.
Basically we add nccopy flags "-F none" and "-F <varname>:none"
to suppress output compression as desired.

2. Add tests to nc_test4/tst_filter.sh to test out the solution.
2018-03-02 16:55:58 -07:00
Ward Fisher
faad52041f Merge branch 'ejh_valgrind_removal_unidata_again' of https://github.com/NetCDF-World-Domination-Council/netcdf-c into pr-aggregation2.wif 2018-03-02 14:22:42 -07:00
Ed Hartnett
49ebcc0e57 fixed problem of test file 2018-02-27 11:10:04 -07:00
Ed Hartnett
64e5742d88 added tst_bug324 to cmake build 2018-02-27 08:53:58 -07:00
Ed Hartnett
45329862a8 removed valgrind stuff 2018-02-27 08:36:12 -07:00
Dennis Heimbigner
8cb1fc4cfe This is the second step in refactoring the libsrc4 code.
The first was branch newhash0.dmh.

As with newhash0.dmh, these changes should be transparent.
2018-02-24 20:36:24 -07:00
Ward Fisher
a8faac9292
Merge branch 'master' into classic_ext_ncid 2018-02-22 17:15:34 -07:00
Ward Fisher
8e169175e4
Merge branch 'master' into newhash0.dmh 2018-02-22 14:55:31 -07:00
Ward Fisher
f9f27c5ab7
Merge branch 'master' into newhash0.dmh 2018-02-21 14:19:43 -07:00
Ed Hartnett
9de58cad99
Merge branch 'master' into ejh_extra_tests 2018-02-19 18:52:50 -07:00
Ed Hartnett
ca5f314fc0 minor test cleanup 2018-02-16 09:00:15 -07:00
Ed Hartnett
13fcc67d90
Merge branch 'master' into ejh_hdf4_dispatch_unidata2 2018-02-15 13:25:11 -07:00
Ed Hartnett
b0a8d4ee30 fixed merge issue 2018-02-14 07:58:50 -07:00
Ed Hartnett
41eb0f26c1
Merge branch 'master' into ejh_extra_tests 2018-02-13 15:48:35 -07:00
Ed Hartnett
e5cbf259ba fixed string memory leak 2018-02-13 14:17:15 -07:00
Ed Hartnett
cb4722a0cf fix for memory problem in tst_vars2.c 2018-02-13 13:49:29 -07:00
Ward Fisher
878b107d36 Corrected overflow error in support of https://github.com/Unidata/netcdf-c/issues/861 2018-02-13 12:18:06 -07:00
Ed Hartnett
dd41680f90 added rename test 2018-02-12 10:13:31 -07:00
Ed Hartnett
dbbd5094cb added rename test to CMakeLists.txt 2018-02-12 10:12:49 -07:00
Ed Hartnett
32e2798dde added rename test 2018-02-12 10:08:59 -07:00
Ed Hartnett
70d815b6c8 pulled in some attribute testing that got missed in recent merges 2018-02-12 08:33:20 -07:00
Dennis Heimbigner
727b613459 This is the initial step in moving to the new higher performance
(I hope) metadata mechanism. This mostly just adds new pieces of
code (e.g. nclistmap) and does some minor fixes.

It should be transparent to everything else.
The next set of changes will be the big step.
2018-02-08 19:53:40 -07:00
Ed Hartnett
bd77f8865b fixed tst_filter.sh for parallel builds 2018-02-08 07:20:40 -07:00
Ed Hartnett
2358d4a910 moved HDF4 to its own dispatch layer 2018-02-08 06:20:58 -07:00
Ward Fisher
5107655682 Accomodate Visual Studio 2018-02-06 13:32:30 -06:00
Ward Fisher
a640c034f2 Merge branch 'ejh_atts_unidata' of https://github.com/NetCDF-World-Domination-Council/netcdf-c into ejh_batch 2018-02-05 11:47:48 -07:00
Ward Fisher
e0577cb251 Merge branch 'ejh_fill_value_string_unidata' of https://github.com/NetCDF-World-Domination-Council/netcdf-c into ejh_batch 2018-02-05 11:47:34 -07:00
Ward Fisher
b268f268bd Merge branch 'ejh_dims_unidata' of https://github.com/NetCDF-World-Domination-Council/netcdf-c into ejh_batch 2018-02-05 11:43:41 -07:00
Ed Hartnett
0d96ead703
Merge branch 'master' into ejh_dims_unidata 2018-02-05 06:34:04 -07:00