Commit Graph

197 Commits

Author SHA1 Message Date
Dennis Heimbigner
aa3a9f033a Add tests 2019-10-31 16:08:57 -06:00
Greg Sjaardema
56c0d5cf8a Spelling fixes 2019-09-18 08:03:01 -06:00
Ward Fisher
95f6314743 Merge branch 'master' into ncvalidator.dmh 2019-05-15 15:55:08 -06:00
Ward Fisher
c776039eba Updated call to NC4_read_provenance. 2019-04-18 10:53:16 -06:00
Dennis Heimbigner
403947e7f2 Add Wei-King Liao's ncvalidator program
Add Wei-King Liao's ncvalidator program (with his permission) as
an uninstalled (for now) tool in the ncdump directory. It has in
the past been useful for debugging netcdf-3 files.
2019-03-23 14:02:39 -06:00
Ed Hartnett
af84c8d023
Merge branch 'master' into ejh_non_contoversial 2019-03-16 18:08:49 -06:00
Dennis Heimbigner
2420b69a83 Fix nccopy to use NC_PERSIST so that -w actually persists the output.
re: Issue https://github.com/Unidata/netcdf-c/issues/1365

At some point (4.6.1) we changed the diskless handling of flags
and added a new NC_PERSIST flag. Looks like we did not fix all
occurrences of the old flag set, specifically for 'nccopy -w' command.
Also added some tests (tst_nccopy_w{3,4}.sh) for this situation.
2019-03-15 12:05:27 -06:00
Ed Hartnett
c88253677a clean up 2019-03-12 09:54:16 -06:00
Dennis Heimbigner
88a7a1753c Simplify libhdf5/nc5info.c to move to lazy parsing
re: https://github.com/Unidata/netcdf-c/issues/1352

When nc4info.c encounters an _NCProperties attribute
with a version number it does not recognize, it does not
show it correctly.

Solution chosen is to arrange so that accessing the attribute
returns the raw value of the Attribute from the file. This way,
even if the version is unrecognized, it will return something
usable.

The changes were primarily to never attempt to parse the value
of _NCProperties until actually required. Which since they
are currently not used means that parsing never occurs.

Also modified ncdump/tst_fileinfo.sh to include some extra testing

I tested the original failure by changing the value of NCPROPS to 3.
However, there is no way to test this at build time.

Misc. Changes
* Inlined the provenance info in the NC_FILE_INFO_T structure
* Centralized stuff from elsewhere into include/nc_provenance.h

Misc. Unrelated Changes
* Removed/turned off some misc debug output left on by accident
* Fix CPPFLAGS name error in libhdf5/Makefile.am
2019-03-09 20:35:57 -07:00
Dennis Heimbigner
98caf87116 Fix ncgen handling of octal constants (with leading 0).
re: https://github.com/Unidata/netcdf-c/issues/1330

The ncgen utility is documented to accept octal integer constants
if the leading digit is zero. This was not implemented. Fix ncgen.l
to properly handle such constants. Also add a test to c0.cdl.
2019-02-25 20:57:23 -07:00
Ward Fisher
30ea33435c Merge remote-tracking branch 'origin/license_update.wif' into pr-aggregation.wif 2018-12-11 17:08:21 -05:00
Ward Fisher
02937d2d0e ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
Ed Hartnett
bbfbd98f6e test and util changes to split libsrc4 and libhdf5 2018-12-01 08:24:56 -07:00
Ed Hartnett
fe62f61509 fixed makefile typo 2018-11-18 14:59:05 -07:00
Ed Hartnett
6c9ccd97d8 move cleanup to makefile 2018-11-18 13:43:49 -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
Dennis Heimbigner
2ea1cf5f1b There was a request to extend the provenance information
stored in the _NCProperties attribute to allow two things:
1. capture of additional library dependencies (over and above
   hdf5)
2. Recognition of non-netcdf libraries that create netcdf-4 format
   files.

To this end, the _NCProperties format has been extended to be
and arbitrary set of key=value pairs separated by commas.
This new format has version = 2, and uses commas as the pair separator.
Thus the general form is:
    _NCProperties = "version=2,key1=value,key2=value2..." ;

This new version is accompanied by a new ./configure option of the form
    --with-ncproperties="key1=value1,key2=value2..."
that specifies pairs to add to the _NCProperties attribute for all
files created with that netcdf library.

At this point, what is missing is some programmatic way to
specify either all the pairs or additional pairs
to the _NCProperties attribute. Not sure of the best way
to do this.

Builders using non-netcdf libraries can specify
whatever they want in the key value pairs (as long
as the version=2 is specified first).

By convention, the primary library is expected to be the
the first pair after the leading version=2 pair, but this
is convention only and is neither required nor enforced.

Related changes:
1. Fixed the tests that check _NCProperties to properly operate with version=2.
2. When reading a version 1 _NCProperties attribute, convert it to look
   like a version 2 attribute.
2. Added some version 2 tests to ncdump/tst_fileinfo.c and
   ncdump/tst_fileinfo.sh

Misc Changes:
1. Fix minor problem in ncdap_test/testurl.sh where a parameter to
   buildurl needed to be quoted.
2. Minor fix to ncgen to swap switches -H and -h to be consistent
   with other utilities.
3. Document the -M flag in nccopy usage() and the nccopy man page.
4. Modify a test case to use the nccopy -M flag.
2018-08-25 21:44:41 -06:00
Ward Fisher
16bc7d63f6 Modified ocprint to not install. 2018-08-01 14:27:09 -06:00
Ward Fisher
ed1b7089db Modified ocprint to not be installed 2018-08-01 14:19:50 -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
b8ad15b6ae tests for ncdump issue with irish rover 2018-05-15 08:09:52 -06:00
Dennis Heimbigner
3c7ffcc6d1 Fix https://github.com/Unidata/netcdf-c/issues/963
Fix https://github.com/Unidata/netcdf-c/issues/962

1. remove the --disable-diskless option since it is no
   longer needed. Similarly for CMakeLists.txt.
2. Fixed nc4files.c where BAIL and return were mixed
   leading to situation where cleanup code was not
   being invoked. This probably occurs elsewhere,
   but I did not find any specifically.
2018-05-11 15:30:19 -06: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
Ed Hartnett
f33897e248 fixed some warnings, added some files to makefile.am to be cleaned 2017-11-26 08:50:16 -07:00
Ed Hartnett
0157c5660c readded some cleanfiles to ncdump makefile 2017-11-26 07:15:17 -07:00
Ed Hartnett
6ebe58998f clean up 2017-11-26 07:13:10 -07:00
Ed Hartnett
bebe7e1e9d merged master 2017-11-26 07:06:02 -07:00
Ed Hartnett
f779345b23 eliminating test dependencies in ncdap_test 2017-11-26 07:00:17 -07:00
Ward Fisher
5163189f0c Merge branch 'cmake-parallel-testing' 2017-11-25 11:57:01 -07:00
Ed Hartnett
38b53c08ff cleaned up comments 2017-11-25 07:30:17 -07:00
Ed Hartnett
8d9e7b366d removed many dependencies in ncdump testing 2017-11-25 07:28:07 -07:00
Ed Hartnett
e064855a10 removed ncdump test dependencies for tst_netcdf4.sh 2017-11-25 04:31:58 -07:00
Ward Fisher
1ccdf0219f Work towards parallel testing via cmake. 2017-11-22 12:10:58 -07:00
Ed Hartnett
b04cf4f83b fixed dist list to include ref_null_byte_padding_test.nc 2017-11-21 17:19:42 -07:00
Ward Fisher
7d8f58a752
Merge branch 'master' into ejh_ncdump_3 2017-11-21 15:54:29 -07:00
Ward Fisher
cd3d5f8e0e Updated for expected failure. 2017-11-20 17:26:06 -07:00
Ward Fisher
a07eddd0e4 More wiring in of test. [ci skip] 2017-11-20 15:58:39 -07:00
Ward Fisher
01bfdbf767 Wired in test to autotools. 2017-11-20 15:06:10 -07:00
Ward Fisher
e8af76c2f4 Wiring in a quick test. 2017-11-20 13:52:06 -07:00
Ed Hartnett
87d59b80fb Makefile.am cleanup 2017-11-18 14:20:04 -07:00
Ed Hartnett
39916a105b added dependency 2017-11-18 09:28:25 -07:00
Ed Hartnett
9618937e69 cleanup of ncdump Makefile.am 2017-11-17 12:29:12 -07:00
Ed Hartnett
577ff47eff fixed dependency 2017-11-17 11:07:24 -07:00
Ed Hartnett
812c2fd4d1 got make -j check working in ncdump and examples directories 2017-11-17 10:16:17 -07:00
Ed Hartnett
4a4a4fb7a0 make -j working for classic only in ncdump 2017-11-17 08:22:49 -07:00
Ed Hartnett
693a47ad04 move C program invokations to scripts to clean up dependencies in build 2017-11-16 13:03:35 -07:00
Ed Hartnett
3b0c301d76 moved tst_bug324 in Cmake build from ncdump to nc_test4 2017-11-16 11:57:39 -07:00
Ed Hartnett
4f43b80320 moved test from ncdump to nc_test4 2017-11-16 11:30:35 -07:00
Ed Hartnett
8d583f94a0 removed last use of EXTRA_TESTS, also unneeded setting for tst_h_rdc0.c 2017-11-12 06:57:37 -07:00
Ed Hartnett
e9df3fad55 working on cmake build 2017-11-12 05:42:24 -07:00
Ed Hartnett
05d251bfb5 different attempt to deal with ncdump dependencies 2017-11-11 17:33:51 -07:00
Ed Hartnett
8df5c84f31 fixed makefile.am 2017-11-11 16:51:10 -07:00
Ed Hartnett
b17059e750 fixed makefile.am 2017-11-11 16:49:52 -07:00
Ed Hartnett
f709a7b107 another attempt at reducing ncdump dependencies 2017-11-11 16:45:03 -07:00
Dennis Heimbigner
9983b9d911 re e-support UBS-599337
re pull request https://github.com/Unidata/netcdf-c/pull/405
re pull request https://github.com/Unidata/netcdf-c/pull/446

Notes:
1. This branch is a cleanup of the magic.dmh branch.
2. magic.dmh was originally merged, but caused problems with parallel IO.
   It was re-issued as pull request https://github.com/Unidata/netcdf-c/pull/446.
3. This branch + pull request replace any previous pull requests and magic.dmh branch.

Given an otherwise valid netCDF file that has a corrupted header,
the netcdf library currently crashes. Instead, it should return
NC_ENOTNC.

Additionally, the NC_check_file_type code does not do the
forward search required by hdf5 files. It currently only looks
at file position 0 instead of 512, 1024, 2048,... Also, it turns
out that the HDF4 magic number is assumed to always be at the
beginning of the file (unlike HDF5).
The change is localized to libdispatch/dfile.c See
https://support.hdfgroup.org/release4/doc/DSpec_html/DS.pdf

Also, it turns out that the code in NC_check_file_type is duplicated
(mostly) in the function libsrc4/nc4file.c#nc_check_for_hdf.

This branch does the following.
1. Make NC_check_file_type return NC_ENOTNC instead of crashing.
2. Remove nc_check_for_hdf and centralize all file format checking
   NC_check_file_type.
3. Add proper forward search for HDF5 files (but not HDF4 files)
   to look for the magic number at offsets of 0, 512, 1024...
4. Add test tst_hdf5_offset.sh. This tests that hdf5 files with
   an offset are properly recognized. It does so by prefixing
   a legal file with some number of zero bytes: 512, 1024, etc.
5. Off-topic: Added -N flag to ncdump to force a specific output dataset name.
2017-10-24 16:25:09 -06:00
Ward Fisher
1ca5f8c993 Updated SO version, other little issue with ncdump Makefile.am. 2017-10-17 14:56:22 -06:00
Ward Fisher
e8cd6958a9 Merge branch 'v4.5.0-release-branch' into cal366.dmh 2017-10-09 14:08:21 -06:00
Ward Fisher
ef372357a0 Merge branch 'master' into cal366.dmh 2017-09-29 15:51:06 -06:00
Ward Fisher
37f89515b2 Updatec cleanfiles in makefile.am 2017-09-21 09:58:33 -06:00
Ward Fisher
11f235f86e Fixing more make distcheck errors. 2017-09-20 16:28:28 -06:00
Ward Fisher
10a9d6c4f8 Corrected another error. 2017-09-20 16:03:16 -06:00
Ward Fisher
05ddb3a953 Cleaning up 'make distcheck' 2017-09-20 15:59:24 -06:00
Ward Fisher
2151dbbd44 Giving test output netcdf files unique names. 2017-09-20 11:17:33 -06:00
Ward Fisher
e70fcc9865 Revert a previous change. 2017-09-15 16:29:11 -06:00
Ward Fisher
d048ccf583 Moved tst_inttags4.sh to only run if CDF5 is enabled. 2017-09-15 11:18:42 -06:00
Ward Fisher
eeeef6f2a6 Tweaking makefile.am 2017-09-05 13:05:01 -06:00
Ward Fisher
62511cc634 Removed a stray line in makefile.am 2017-09-01 13:03:49 -06:00
Ward Fisher
812a7b223d Wiring new test into autotools. 2017-09-01 11:57:28 -06:00
Dennis Heimbigner
0ccece70e8 Solve issue https://github.com/Unidata/netcdf-c/issues/359
from e-support OYW-455599.

Problem was that in nctime.c#CDMonthDay, it was setting up
the month -> #days table correctly, but it did not use it
because it forgot to check for Cd366, it only checked for Cd365.
2017-07-25 11:58:34 -06:00
Ward Fisher
02a6585eae Corrected some typos. 2017-05-24 15:49:18 -06:00
Ward Fisher
59ded4a82c Moving some tests around so that 'make check' works properly, in support of https://github.com/Unidata/netcdf-c/issues/339 2017-05-24 14:25:22 -06:00
Ward Fisher
8dddd222a3 Merged master, DAP4 support into branch. 2017-04-19 09:29:35 -06:00
Dennis Heimbigner
3db4f013bf Primary change: add dap4 support
Specific changes:
1. Add dap4 code: libdap4 and dap4_test.
   Note that until the d4ts server problem is solved, dap4 is turned off.
2. Modify various files to support dap4 flags:
	configure.ac, Makefile.am, CMakeLists.txt, etc.
3. Add nc_test/test_common.sh. This centralizes
   the handling of the locations of various
   things in the build tree: e.g. where is
   ncgen.exe located. See nc_test/test_common.sh
   for details.
4. Modify .sh files to use test_common.sh
5. Obsolete separate oc2 by moving it to be part of
   netcdf-c. This means replacing code with netcdf-c
   equivalents.
5. Add --with-testserver to configure.ac to allow
   override of the servers to be used for --enable-dap-remote-tests.
6. There were multiple versions of nctypealignment code. Try to
   centralize in libdispatch/doffset.c and include/ncoffsets.h
7. Add a unit test for the ncuri code because of its complexity.
8. Move the findserver code out of libdispatch and into
   a separate, self contained program in ncdap_test and dap4_test.
9. Move the dispatch header files (nc{3,4}dispatch.h) to
   .../include because they are now shared by modules.
10. Revamp the handling of TOPSRCDIR and TOPBUILDDIR for shell scripts.
11. Make use of MREMAP if available
12. Misc. minor changes e.g.
	- #include <config.h> -> #include "config.h"
	- Add some no-install headers to /include
	- extern -> EXTERNL and vice versa as needed
	- misc header cleanup
	- clean up checking for misc. unix vs microsoft functions
13. Change copyright decls in some files to point to LICENSE file.
14. Add notes to RELEASENOTES.md
2017-03-08 17:01:10 -07:00
Wei-keng Liao
06c1f744e8 silence gcc compile warnings when using -Wconversion 2016-10-30 00:44:28 -05:00
Wei-keng Liao
4b911c1435 add a rule to delete folder results 2016-10-06 00:44:50 -05:00
Dennis Heimbigner
0cf1e2c49f re: Github issue netcdf-c 300
Modified provenance code to allocate the minimal space
needed for _NCProperties attribute in file.  Basically
required using malloc in the provenance code and in ncdump.
Otherwise should cause no externally visible effects.
Also removed the ENABLE_FILEINFO from configure.ac since
the provenance code is no longer optional.
2016-08-08 09:24:19 -06:00
Dennis Heimbigner
11a259ad86 Add provenance info for netcdf-4 files.
This consists of a persistent attribute named
_NCProperties plus two computed attributes
_IsNetcdf4 and _SuperblockVersion.
See the 'Provenance Attributes' section
of docs/attribute_conventions.md for details.
2016-05-07 14:32:07 -06:00
Dennis Heimbigner
39e9cd0ffe Fix issues with Github pull request 187
(https://github.com/Unidata/netcdf-c/pull/187)
Primary problem was cmake build errors.
2016-01-08 12:55:11 -07:00
Dennis Heimbigner
d15f277252 The max dimension sizes do not take CDF-5 format into account.
NetCDF-c Github issue #185

The code in libsrc/dim.c has not been upgraded to support
CDF-5 format.

Rule we are implementing sets the max dimension sizes as follows:

Classic:	CDF-1	NC_MAX_INT - 3    = 2147483647 - 3
64 bit Offset:	CDF-2	NC_MAX_UINT - 3	  =  4294967295 - 3
64 bit Data:	CDF-5	NC_MAX_UINT64 - 3 = 18446744073709551615 - 3

The -3 is to handle rounding.
2016-01-05 21:26:25 -07:00
dmh
47e10591b4 ckp 2015-11-19 13:44:55 -07:00
Ward Fisher
c1210f4020 Merge branch 'master' into cdf5-sync-master 2015-11-09 13:45:11 -07:00
Ward Fisher
996ef87cd1 More refactoring to fix an issue where an nc4 test was being run when nc4 was disabled. 2015-11-06 13:20:10 -07:00
Ward Fisher
612b35a84c Merge branch 'master' into cdf-5, in preparation for merging the CDF-5 functionality into the master branch. This will be the key new feature for netcdf 4.4.0. 2015-11-05 13:40:35 -07:00
dmh
7480d7d97d - clean up the dfile.c confusion about NC_64_BIT_OFFSET
- sync oc2 with  master for https://DennisHeimbigner@github.com/Unidata/oc.git
- Cleanup auth.html documentation.
- Cleanup obsolete documentation.
2015-10-24 21:45:13 -06:00
Ward Fisher
c825d612c2 Tweaked some tests so that everything would pass when netcdf4 was disabled. 2015-10-22 14:09:19 -06:00
Dennis Heimbigner
cd7a06b193 pull request 2015-10-12 17:09:37 -06:00
dmh
49597a64af merge-squash 2015-10-09 10:12:11 -06:00
dmh
0a7ff043a2 re: Jira NCF-320
Partially resolve by making
string variables and attributes use
UTF-8 encoding.
Normalization is not necessarily fixed,
however.
2015-08-20 15:53:48 -06:00
Russ Rew
495fea71b9 Fix builddir vs srdir problem for ncdump/ctest.c and ctest64.c 2015-08-18 16:10:18 -06:00
dmh
859f105005 merge-squash 2015-08-15 16:26:35 -06:00
dmh
3dd807a155 The original mem branch somehow got
hosed, so I rebuilt it as a new mem2 branch.
2015-05-28 15:10:10 -06:00
Ward Fisher
ae4d54bcc6 Added stray .nc file to CLEANFILES 2015-02-12 13:34:39 -07:00
Quincey Koziol
4f8898719a NCF-324: Make similar change to get_vara code, and add in test to Makefile.am 2015-02-02 08:51:00 -06:00
Russ Rew
f16790b718 Add test CDL file and tst_nccopy4.sh test for fix of NCF-321 2015-01-03 17:18:14 -07:00
dmh
7e582ad3f2 re: Jira NCF-309
The code for handling character constants
in datalists in ncgen has some problems.
1. It failed on large constants
2. It did not handle e.g. var = 'a', 'b', ...
   in the same way that ncgen3 did.
3. The code for generate.c and genchar.c needed
   some refactoring to make it a little simpler
   (but not simple).
2014-09-18 18:26:06 -06:00
Ward Fisher
3af9240acb More cleaning up for release. 2014-08-25 16:39:45 -06:00
Ward Fisher
df8caaf1d5 Corrected an error with a missing reference file. 2014-08-25 14:32:05 -06:00
Ward Fisher
8d5d592a18 Added tst_bom.sh to EXTRA_DIST, fixing a failure in 'make dist'. 2014-03-13 10:33:03 -06:00
dmh
baade3e4fc [NCF-293]
Allow .cdl files to have a leading utf-8 BOM.
Also add test.
2014-03-07 22:52:40 -07:00
dmh
582410a407 [NCF-273]/HZY-708311
Add a new function called nc_inq_format_extended that
returns more detailed format information (vis-a-vis
nc_inq_format) about an open dataset.

Note that the netcdf API will present the file as if it had
the format specified by nc_inq_format.  The true file
format, however, may not even be a netcdf file; it might be
DAP, HDF4, or PNETCDF, for example. This function returns
that true file type.  It also returns the effective mode for
the file.

signature: nc_inq_format_extended(int ncid, int* formatp, int* modep)
where
* ncid is the NetCDF ID from a previous call to nc_open() or
  nc_create().
* formatp is a pointer to a location for returned true format.
* modep is a pointer to a location for returned mode flags.

Refer to the actual list in the file netcdf.h to see the
currently defined set.

Also added test cases (tst_formatx*).
2013-12-22 12:53:20 -07:00