Commit Graph

113 Commits

Author SHA1 Message Date
Dennis Heimbigner
44d0dcaad2 Add support for multiple filters per variable.
re: https://github.com/Unidata/netcdf-c/issues/1584

Support has been added for multiple filters per variable.  This
affects a number of components in netcdf. The new APIs are
documented in NUG/filters.md.

The primary changes are:
* A set of new functions are provided (see __include/netcdf_filter.h__).
    - Obtain a list of the filters associated with a variable
    - Obtain the parameters for a specific filter.
* The existing __nc_inq_var_filter__ function now returns info
  about the first defined filter.
* The utilities (ncgen, ncdump, and nccopy) now support
  an extended format for specifying a sequence of filters.
  The general form is __<filter>|<filter>..._.
* The ncdump **_Filter** attribute now dumps a list of all the
  filters associated with a variable using the above new format.
* Filter specifications can now use a filter name instead of number
  for filters known to the netcdf library, which in turn is taken
  from the HDF5 filter registration page.
* New errors are defined: NC_EFILTER and NC_ENOFILTER. The latter
  is returned if an attempt is made to access an unknown filter.
* Internally, the dispatch table has been extended to add a function
  to handle all of the filter functions.
* New, filter-related, tests were added to nc_test4.
* A new plugin was added to the plugins directory to help with testing.

Notes:
1. The shuffle and fletcher32 filters are not part of the multifilter system.

Misc. changes:
1. A debug module was added to libhdf5 to help catch error locations.
2020-02-16 12:59:33 -07:00
Edward Hartnett
cf74f49fdb moved tst_parallel_zlib2 to tst_parallel_compress 2020-02-05 17:40:31 -07:00
Edward Hartnett
6d2d92ddec added new tests to cmake, also additional test development 2019-12-20 06:30:23 -07:00
Edward Hartnett
cde58d23c1 allowing parallel write of gzipped data, plus added test 2019-12-19 09:20:20 -07:00
edwardhartnett
cebe84157b adding test for anonymous dims in HDF5 file 2019-11-13 12:51:34 -07:00
Ward Fisher
9a92201c94 Wiring unit test directory into cmake-based builds. 2019-08-21 14:50:09 -06:00
Even Rouault
0c7be1d278
Add test case for bugfix of #1442 2019-07-18 02:23:43 +02:00
Ward Fisher
44fce0904e
Merge pull request #1387 from Unidata/fixffilter.dmh
Minor config.h changes to support filters in Fortran
2019-05-01 14:44:53 -06:00
Ward Fisher
5410967b00 Merge branch 'master' into addfilter.dmh 2019-04-30 14:51:25 -06:00
Dennis Heimbigner
62feacee00 missing cmake file 2019-04-29 20:55:28 -06:00
Dennis Heimbigner
8d0bced60d Allow in-line definition of filters
Priority: Low

re: issue https://github.com/Unidata/netcdf-c/issues/1329

HDF5 has the ability to programmatically define new filters,
as opposed to using HDF5_PLUGIN_PATH env variable.
This PR adds support for that feature.
Not clear how useful this is, though.
See docs/filters.md for details.
2019-03-21 11:33:27 -06:00
Ed Hartnett
94d9cd7c8f don't allow benchmarks for classic only builds 2019-03-18 08:40:18 -06:00
Ed Hartnett
51b8ba10b4 attempting to get cmake build working with new nc_perf directory 2019-03-18 08:09:46 -06:00
Ward Fisher
404f87b8c2 Turned of filterparser test when building static library. 2019-02-20 15:11:06 -07:00
Ed Hartnett
1dd76c996e added tst_rename3.c for more rename testing 2019-02-02 05:53:45 -07:00
Ward Fisher
462ec93913 Whew! Updated copyright stanza in nc_test4. 2018-12-06 15:27:32 -07: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
77d3a6db22 removed tst_ar5 from Makefile.am and cmake build 2018-08-24 07:11:51 -06:00
Ed Hartnett
1b318a01fb getting automake build working 2018-08-16 10:55:11 -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
Ed Hartnett
5112ef8c72 merged master 2018-06-07 07:27:47 -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
Ward Fisher
65f7dd0397
Merge branch 'master' into ejh_move_tests 2018-04-23 13:36:53 -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
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
Ed Hartnett
4e646e03f6 fixed cmake build file 2018-03-05 05:03:46 -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
dbbd5094cb added rename test to CMakeLists.txt 2018-02-12 10:12:49 -07:00
Ward Fisher
d0339c8902 Merge branch 'pr-catchup' into v4.6.0-release-branch 2018-01-24 15:51:24 -06:00
Ward Fisher
ca814c17f0 Added fenceposts for filter testing. 2018-01-23 18:18:58 -06:00
Ed Hartnett
001483505f rehabilitated tst_types.c 2018-01-18 05:34:52 -07:00
Ward Fisher
62abc6af09 Updated CMakeLists.txt to correct an issue seen on OSX when using cmake and running 'make test' directly from nc_test4 2018-01-17 14:00:52 -07:00
Dennis Heimbigner
99fccab359 1. Keep up to date by merging master
2. Fixed plugin building (nc_test4/hdf5plugins)
   to be done properly by cmake and automake.
4. Duplicated part of the nc_test4 filter test code
   in examples/C

An incomplete and untested set of hooks exist
for OS-X in nc_test4/findplugins.in. They need testing.
2018-01-16 11:00:09 -07:00
Ward Fisher
0ef6f3415a Making tst_hdf4_read_var.sh dependent on tst_interops2. 2017-12-06 15:07:54 -07:00
Ed Hartnett
ce97137318 removed properties from tst_interops3 which is no longer a test in CMake build 2017-11-26 09:07:34 -07:00
Ed Hartnett
bebe7e1e9d merged master 2017-11-26 07:06:02 -07:00
Ed Hartnett
fa7f17a8c8 got cmake working with HDF4 format test 2017-11-24 06:05:55 -07:00
Ed Hartnett
b4bccb60b3 fixing test order problem 2017-11-23 07:18:12 -07:00
Ed Hartnett
60d1d6271d fixing order in CMake 2017-11-23 04:52:19 -07:00
Ward Fisher
394ee6a1e0 Corrected typo, more enhancements in CMakeLists.txt 2017-11-22 13:34:56 -07:00
Ed Hartnett
c8a2d53d34 fixes HDF4 build with cmake 2017-11-20 08:25:47 -07:00
Ed Hartnett
3b0c301d76 moved tst_bug324 in Cmake build from ncdump to nc_test4 2017-11-16 11:57:39 -07:00
Ward Fisher
16d6f94f30 Merge branch 'master' into filters.dmh 2017-11-13 11:15:02 -07:00
Ed Hartnett
30ef103a95 moved tests from tst_h_atts2 into tst_xplatform2 2017-10-26 04:49:57 -06:00
Dennis Heimbigner
733da154c5 1. Keep up to date by merging master
2. Factored out the parameter string parsing for ncgen and nccopy
   int libdispatch/dfilter.c + include/ncfilter.h
3. Allow a parameter string to use constant types other than
   unsigned int. See docs/filters.md for details.
4. Moved the old content of  include/netcdf_filter.h into include/netcdf.h
   and removed include/netcdf_filter.h as no longer needed.
5. Force the test filter (bzip2) in nc_test4/filter_test to
   be built using BUILT_SOURCES.
2017-10-08 15:56:45 -06:00
Dennis Heimbigner
3cc3b6a4a1 add known szip file against which to test 2017-09-04 18:37:13 -06:00