Commit Graph

597 Commits

Author SHA1 Message Date
Dennis Heimbigner
30d63bbaa5 Fix failings of nc_test/run_inmemory.sh
re: issue https://github.com/Unidata/netcdf-c/issues/1233

Changes:

1. remove exit that was there for testing.
2. the program tst_open_mem must be netcdf-4 only.
3. fix some diff problems
   - Change dataset name for tst_inmemory4_create to tst_inmemory4
   - Modify tst_inmemory.c to reorder the variables (somewhat major rewrite)

Minor Unrelated Fixes:
1. fix comment problem in nc_provenance.h
2. Fix memory leak in tst_open_mem.c
3. fix ncdump/bindata.c to properly compile if netcdf4 is disabled.
4. minor changes to ncgen.l
2018-12-04 19:22:02 -07:00
Ed Hartnett
846153b3fd makefile.am cleanup 2018-12-03 07:42:34 -07:00
Ed Hartnett
88029414c8 fix memory leak 2018-12-03 06:33:16 -07:00
Ed Hartnett
693271c278 now always relax coord bounds checking, also fix parallel builds for --enable-pnetcdf 2018-12-03 06:17:23 -07:00
Ed Hartnett
bbfbd98f6e test and util changes to split libsrc4 and libhdf5 2018-12-01 08:24:56 -07:00
Ed Hartnett
db83d0b4bf got disable-hdf5 builds working without utils 2018-12-01 07:29:58 -07:00
Ward Fisher
6ca12e3194 Merge branch 'patch-29' of https://github.com/gsjaardema/netcdf-c into pr-aggregation.wif 2018-11-28 13:30:40 -07:00
Dennis Heimbigner
82e46ef594 Update nc_test/tst_inmemory to cover more cases
re: pull request https://github.com/Unidata/netcdf-c/pull/1219

This pr should go in after or at the same time as 1219.
It updates nc_test/tst_inmemory to add a test to cover
the case fixed in 1219. It also disables a couple of tests
that no longer are relevant.
2018-11-27 19:20:19 -07:00
Greg Sjaardema
e33506030d Modify test to increase code coverage
By increasing the DIM1 size, the created in-memory file will be
larger than the default memory allocation size (4096), so the code
will have to reallocate the memory which results in more code coverage.
2018-11-27 14:00:43 -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
571cf6b933 Fix test run_diskless2.sh with LARGE_FILE_TESTS
ret: https://github.com/Unidata/netcdf-c/issues/1162

The test nc_test/run_diskless2.sh fails
when LARGE_FILE_TESTS is enabled.
Since the goal of the test was to test out
diskless+persist on a reasonably large file,
I fixed by just limiting the file size to
1000000000L bytes.
2018-11-03 11:51:10 -06: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
Ed Hartnett
37a36395d7 more tests for late fill 2018-10-17 11:14:53 -06:00
Ed Hartnett
91ec0109f3 more testing for late fill setting 2018-10-17 09:44:18 -06:00
Ed Hartnett
d959512a2e adding tests for ELATEFILL in all available formats 2018-10-17 07:29:30 -06:00
Ed Hartnett
4f75d0873b cleanup of Makefile.am 2018-10-17 07:16:00 -06:00
Dennis Heimbigner
553de966d6 Add some visual studio bug fixes 2018-10-11 12:09:42 -06:00
Dennis Heimbigner
4636584d5b Revert/Improve nc_create + NC_DISKLESS behavior
re: https://github.com/Unidata/netcdf-c/issues/1154

Inadvertently, the behavior of NC_DISKLESS with nc_create() was
changed in release 4.6.1. Previously, the NC_WRITE flag needed
to be explicitly used with NC_DISKLESS in order to cause the
created file to be persisted to disk.

Additional analyis indicated that the current NC_DISKLESS
implementation was seriously flawed.

This PR attempts to clean up and regularize the situation with
respect to NC_DISKLESS control. One important aspect of diskless
operation is that there are two different notions of write.

1. The file is read-write vs read-only when using the netcdf API.
2. The file is persisted or not to disk at nc_close().

Previously, these two were conflated. The rules now are
as follows.

1. NC_DISKLESS + NC_WRITE means that the file is read/write using the netcdf API
2. NC_DISKLESS + NC_PERSIST means that the file is persisted to a disk file at nc_close.
3. NC_DISKLESS + NC_PERSIST + NC_WRITE means both 1 and 2.

The NC_PERSIST flag is new and takes over the obsolete NC_MPIPOSIX flag.
NC_MPIPOSIX is still defined, but is now an alias for the NC_MPIIO flag.

It is also now the case that for netcdf-4, NC_DISKLESS is independent
of NC_INMEMORY and in fact it is an error to specify both flags
simultaneously.

Finally, the MMAP code was fixed to use NC_PERSIST as well.
Also marked MMAP as deprecated.

Also added a test case to test various combinations of NC_DISKLESS,
NC_PERSIST, and NC_WRITE.

This PR affects a number of files and especially test cases
that used NC_DISKLESS.

Misc. Unrelated fixes
1. fixed some warnings in ncdump/dumplib.c
2018-10-10 13:32:17 -06:00
Ward Fisher
ea66842bea
Merge branch 'master' into nc_mpiio_nc_mpiposix 2018-10-09 15:21:50 -06:00
Dennis Heimbigner
534364b069 This Pre removed #include <netcdf.h> from netcdf_mem.h.
In turn that caused some problems elsewhere because some files
did not include netcdf.h preceding netcdf_mem.h. Specifically,
building under visual studio fails.
So fix those cases that I can find. May need to
add more later.
2018-10-07 12:05:26 -06:00
Wei-keng Liao
0ed70756cc Ignore flags NC_MPIIO and NC_MPIPOSIX. 2018-09-22 20:22:34 -05:00
Wei-keng Liao
50e5b4fe8b remove unused files, test_get_p5.m4 is covered by test_get.m4 2018-09-22 18:21:55 -05:00
Wei-keng Liao
28512f77f0 remove unused variables 2018-09-18 01:27:57 -05:00
Wei-keng Liao
5d297238d5 fix nc_test/tst_addvar.c. This program reads output file
tst_pnetcdf.nc generated from tst_pnetcdf.c.
2018-09-17 17:18:48 -05:00
Wei-keng Liao
48da78e133 Use PnetCDF instead of parallel-netcdf to avoid confusion with
parallel netcdf4. Also, update PnetCDF web page.
2018-09-17 17:18:48 -05:00
Wei-keng Liao
64e2982d0f adjust test logics for NC_ENOTBUILT 2018-09-17 17:18:48 -05:00
Wei-keng Liao
d24f292077 return NC_ENOTBUILT when CDF5 is not enabled but NC_64BIT_DATA is used 2018-09-17 17:18:48 -05:00
Wei-keng Liao
668e3021a8 Check if NC_ENOTBUILT is returend when PnetCDF feature is not
enabled but NC_PNETCDF is used in cmode or omode.
2018-09-17 17:18:48 -05:00
Ward Fisher
784d777bff Merge branch 'master' into provenance.dmh 2018-09-06 15:13:09 -06:00
Dennis Heimbigner
d62a9e623c Fix the NC_INMEMORY code to work in all cases with HDF5 1.10.
re: github issue https://github.com/Unidata/netcdf-c/issues/1111

One of the less common use cases for the in-memory feature is
apparently failing with HDF5-1.10.x.  The fix is complicated and
requires significant changes to libhdf5/nc4memcb.c. The current
setup is detailed in the file docs/inmeminternal.dox.

Additionally, it was discovered that the program
nc_test/tst_inmemory.c, which is invoked by
nc_test/run_inmemory.sh, actually was failing because of the
above problem. But the failure is not detected since the script
does not return non-zero value.

Other Changes:
1. Fix nc_test_tst_inmemory to return errors correctly.
2. Make ncdap_tests/findtestserver.c and dap4_tests/findtestserver4.c
   be generated from ncdap_test/findtestserver.c.in.
3. Make LOG() print output to stderr instead of stdout to
   avoid contaminating e.g. ncdump output.
4. Modify the handling of NC_INMEMORY and NC_DISKLESS flags
   to properly handle that NC_DISKLESS => NC_INMEMORY. This
   affects a number of code pieces, especially memio.c.
2018-09-04 11:27:47 -06:00
Ward Fisher
ede7c5da60
Merge branch 'master' into provenance.dmh 2018-09-04 11:22:36 -06:00
Ward Fisher
5e33522f52
Merge branch 'master' into default_format 2018-08-28 15:02:17 -06:00
Wei-keng Liao
0ebf73e26f Merge branch 'default_format' of github.com:wkliao/netcdf-c into default_format 2018-08-27 17:01:41 -05:00
Wei-keng Liao
a9b8d58cf4 CDF-5 format is not supported on 32-bit platforms 2018-08-27 17:00:26 -05: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
373d0365a1
Merge branch 'master' into default_format 2018-08-24 11:27:07 -06:00
Ed Hartnett
b3842197e0 merged master 2018-08-16 05:49:41 -06:00
Ed Hartnett
97a442cdb7 minor cleanup 2018-08-16 05:42:51 -06:00
Ed Hartnett
8b26c83379 undid unneeded nc_test changes 2018-08-13 09:15:50 -06:00
Ed Hartnett
df371b2b99 reject NULL start for put_vars 2018-08-13 08:25:54 -06:00
Ward Fisher
a996ed554e Swapped /bin/bash for /bin/sh to test on osx. 2018-08-12 23:01:08 -06:00
Ward Fisher
59e98ef087
Merge branch 'master' into default_format 2018-08-03 10:59:41 -06:00
Ward Fisher
3b10efa26f
Merge branch 'master' into var_par_access 2018-07-31 11:30:43 -06:00
Wei-keng Liao
025c7d1bb2 introduce error code NC_EPNETCDF for errors at PnetCDF level 2018-07-29 15:33:08 -05:00
Wei-keng Liao
0ee68a3263 This commit fixes the logical problem of using the default file formats.
The fix includes the following changes.
1. Checking and using the default file format at file create time is now
   done only when the create mode (argument cmode) does not include any
   format related flags, i.e. NC_64BIT_OFFSET, NC_64BIT_DATA,
   NC_CLASSIC_MODEL, and NC_NETCDF4.
2. Adjustment of cmode based on the default format is now done in
   NC_create() only. The idea is to adjust cmode before entering the
   dispatcher's file create subroutine.
3. Any adjustment of cmode is removed from all I/O dispatchers, i.e.
   NC4_create(), NC3_create(), and NCP_create().
4. Checking for illegal cmode has been done in check_create_mode() called
   in NC_create(). This commit removes the redundant checking from
   NCP_create().
5. Remove PnetCDF tests in nc_test/tst_names.c, so it can focus on testing
   all classic formats and netCDF4 formats.

Two new test programs are added. They can be used to test netCDF with and
without this commit.
1. nc_test/tst_default_format.c
2. nc_test/tst_default_format_pnetcdf.c (use when PnetCDF is enabled).
2018-07-28 11:18:28 -05:00
Wei-keng Liao
ab7ce457c0
Merge branch 'master' into var_par_access 2018-07-26 01:35:39 -05:00
Ed Hartnett
ef7b525ce4 merged master 2018-07-23 09:45:39 -06:00
Ed Hartnett
a8faab2f93 nc_set_log_level only available for netcdf-4 builds 2018-07-16 15:38:45 -06:00
Wei-keng Liao
739dfa2aa2 PnetCDF does not support per-variable collective/independent data mode change; modify nc_var_par_access to ignore varid 2018-07-15 16:19:21 -05:00
Wei-keng Liao
f95d3e3325 replace USE_CDF5 with ENABLE_CDF5 2018-06-29 21:17:07 -05:00
Ward Fisher
aeb0e90b0b When large file tests are enabled, this test fails in Docker. Fixed by switching from sh to bash. 2018-06-14 12:46:39 -06:00
Ward Fisher
df4942d280 Merge branch 'master' into vars.dmh 2018-06-08 15:50:28 -06:00
Dennis Heimbigner
4b936ee26a Fix use of 'int' to represent 'hid_t' that caused HDF5 1.10 to fail.
re: github issue https://github.com/Unidata/netcdf-fortran/issues/82

This was originally discovered in the Fortran tests, but is
a problem in the C library.

The problem only occurred when using HDF5-1.10.x.  The reason it
failed is that starting with 1.10, the hid_t type was changed
from 32 bits to 64 bits.
The function libsrc4/nc4memcb.c#NC4_image_init was using type int (doh!)
to return the hdf fileid instead of hid_t type.  This, of course,
caused the id to be truncated and in turn later use of the id
caused hdf5 to fail.

Fix is trivial: replace int with hid_t. This also requires a related
change in nc4mem.c.

Also added the test case derived from the original Fortran code.

You would think I would learn...
2018-05-30 14:47:37 -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
Ward Fisher
9c13f3ff8b Merge branch 'ejh_fix_memtest' of https://github.com/NetCDF-World-Domination-Council/netcdf-c into small-pr-aggregate.wif 2018-05-16 14:27:45 -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
Ed Hartnett
51353ddc5e moved hdf5.h include 2018-05-08 13:57:03 -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
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
Ward Fisher
ee9537b6ab Adjusted enddef test to work on 32 bit platforms as well. 2018-04-18 13:20:50 -06:00
Ward Fisher
46e39c3647 Merge branch 'err_endef_close' of https://github.com/wkliao/netcdf-c into gh479-conflict-resolution 2018-04-18 10:22:53 -06:00
Dennis Heimbigner
30860ce48f fix makefile/cmakelist extra-dist problems 2018-04-13 13:27:43 -06:00
Dennis Heimbigner
4739cd3225 Master merge and conflict resolution 2018-04-12 21:51:17 -06:00
Ward Fisher
e2e2c2117f
Merge branch 'master' into index.dmh 2018-04-02 18:13:34 -06:00
Ed Hartnett
af79dfa14d new method of using valgrind 2018-03-28 13:54:05 -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
c359a0e96a
Merge branch 'master' into newhash1.dmh 2018-03-04 22:40:51 -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
Ward Fisher
8280586c16 Merge branch 'tst_names' of https://github.com/wkliao/netcdf-c into pr-aggregation2.wif 2018-03-02 14:22:02 -07:00
Ed Hartnett
45329862a8 removed valgrind stuff 2018-02-27 08:36:12 -07:00
Dennis Heimbigner
ccc70d640b re: esupport MQO-415619
and https://github.com/Unidata/netcdf-c/issues/708

Expand the NC_INMEMORY capabilities to support writing and accessing
the final modified memory.

Three new functions have been added:
nc_open_memio, nc_create_mem, and nc_close_memio.

The following new capabilities were added.
1. nc_open_memio() allows the NC_WRITE mode flag
   so a chunk of memory can be passed in and be modified
2. nc_create_mem() allows the NC_INMEMORY flag to be set
   to cause the created file to be kept in memory.
3. nc_close_mem() allows the final in-memory contents to be
   retrieved at the time the file is closed.
4. A special flag, NC_MEMIO_LOCK, is provided to ensure that
   the provided memory will not be freed or reallocated.

Note the following.
1. If nc_open_memio() is called with NC_WRITE, and NC_MEMIO_LOCK is not set,
   then the netcdf-c library will take control of the incoming memory.
   This means that the original memory block should not be freed
   but the block returned by nc_close_mem() must be freed.
2. If nc_open_memio() is called with NC_WRITE, and NC_MEMIO_LOCK is set,
   then modifications to the original memory may fail if the space available
   is insufficient.

Documentation is provided in the file docs/inmemory.md.
A test case is provided: nc_test/tst_inmemory.c driven by
nc_test/run_inmemory.sh

WARNING: changes were made to the dispatch table for
the close entry. From int (*close)(int) to int (*close)(int,void*).
2018-02-25 21:45:31 -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
Ben Boeckel
b432a527c4 c: remove __CHAR_UNSIGNED__
In C, `char`, `signed char`, and `unsigned char` are three separate,
distinct types, so just because `char` happens to be signed does not
mean it is interchangeable with `signed char`.
2018-02-14 17:24:49 -05:00
Ward Fisher
39465fed12 Added include to config.h 2018-02-06 13:14:15 -06: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
Ward Fisher
c1d54b0213 Added check for genlib.h 2018-02-02 20:57:55 -06:00
Ward Fisher
0d420fcfbb
Merge branch 'master' into cdf5_var_len 2018-02-02 10:31:46 -07:00
Ward Fisher
27693ba4a3
Merge branch 'master' into nc3-per-var-fill-v2 2018-02-01 11:45:40 -07:00
Ward Fisher
fcd99a9cdf
Merge branch 'master' into cdf5_var_len 2018-01-30 15:16:13 -07:00
Ward Fisher
973aa0a34b Corrected second instance of macro. 2018-01-29 11:27:15 -07:00
Ward Fisher
ac1ad05b20 Corrected macro for netcdf_meta.h to bring it in line with what had been removed previously. 2018-01-25 22:21:51 -07:00
Ward Fisher
8487a0a954
Merge branch 'master' into cdf5_var_len 2018-01-25 16:30:58 -07:00
Greg Sjaardema
2b1eb4dfc7
Ensure NC_HAS_META_H is defined
Modify test to also verify that NC_HAS_META_H is defined
2018-01-25 14:32:38 -07:00
Wei-keng Liao
ba9402750f test all available file formats in tst_def_var_fill.c 2017-12-23 13:39:54 -06:00
Wei-keng Liao
3278c63776 using NC_GLOBAL in nc_def_var_fill returns error NC_EGLOBAL 2017-12-23 11:33:41 -06:00
Wei-keng Liao
68b99ac764 remove nc files after make test 2017-12-21 00:01:53 -06:00
Wei-keng Liao
0f4a85b9f2 a clean commit for #383 2017-12-20 20:53:30 -06:00
Ward Fisher
ac2d6f61a3 Corrected number of formats, oops. 2017-12-20 14:36:04 -07:00
Ward Fisher
d8608768ee Corrected a basic mistake for 32 bit platforms. 2017-12-20 12:58:56 -07:00
Ward Fisher
735ad98a8f updated comments since we're tracking this closely now 2017-12-20 12:20:08 -07:00
Ward Fisher
faeb1be44a Adjusted test to use dynamically allocated memory instead of the stack. 2017-12-20 12:00:48 -07:00
Ward Fisher
2d05d2e3bb Corrected typo. 2017-12-19 15:53:31 -07:00
Ward Fisher
9920cbe073 Fixed issue https://github.com/Unidata/netcdf-c/issues/723 2017-12-19 13:56:08 -07:00
Ward Fisher
24e358c8ce Adjusted a test in support for Visual Studio 14 2017-12-11 15:30:05 -06:00
Ward Fisher
77cca75977
Merge branch 'master' into ejh_more_tests 2017-12-07 20:24:43 -07:00
Ward Fisher
9d826f90ed Added dependency on diskless tests to mmap test. 2017-12-07 16:20:40 -07:00
Ward Fisher
d927f6f384 Updated test file stuff for nc_test 2017-12-07 15:55:32 -07:00
Ward Fisher
24c6b27dfe Configuring a test so that it won't fail during parallel testing. 2017-12-06 15:00:21 -07:00
Ward Fisher
e8471c9eeb
Merge branch 'master' into ejh_more_tests 2017-12-06 13:21:32 -07:00
Ed Hartnett
e6785c719c moved declaration out of for loop 2017-12-04 14:11:06 -07:00
Ed Hartnett
ea49cc1d3f merged ejh_notbuilt_errors 2017-12-04 13:23:31 -07:00
Ward Fisher
1b4ab683b5 Added mmap to tests that run serially 2017-12-01 15:23:26 -07:00
Ed Hartnett
ec3bb22d03 fixed warning 2017-11-30 05:14:19 -07:00
Ed Hartnett
34c9248e6f
Merge branch 'master' into ejh_notbuilt_errors 2017-11-28 17:16:56 +00:00
Ed Hartnett
3c5404ccf7
Merge branch 'master' into ejh_ncfunc_testing 2017-11-28 00:04:38 +00:00
Ed Hartnett
f33897e248 fixed some warnings, added some files to makefile.am to be cleaned 2017-11-26 08:50:16 -07:00
Nehal J Wani
1b91bd89d4
Fix build on pre-C99 compilers
- Make sure that the variables are declared at the top of the block.
 - Add fix to enable inline for various compilers
2017-11-26 01:47:54 +05:30
Ed Hartnett
8011fab382 now run tst_large2, also cleaned up some more warnings 2017-11-24 10:50:07 -07:00
Ed Hartnett
843db9798f finally got my distcheck act together by moving hdf4 file test to nc_test4 2017-11-23 04:41:03 -07:00
Ed Hartnett
0c7684b1ac removed tst_filters from CMake build 2017-11-22 12:42:59 -07:00
Ed Hartnett
2b3e1b1c86 trying to get cmake build to work 2017-11-22 10:21:51 -07:00
Ed Hartnett
d64550d3f0
Merge branch 'master' into ejh_notbuilt_errors 2017-11-22 17:14:24 +00:00
Ed Hartnett
74a895a394 fixed copy of HDF4 file in CMake build with nc_test/tst_formats.c 2017-11-22 09:52:40 -07:00
Ed Hartnett
365bd0cef2 added new test to CMake build 2017-11-22 08:26:53 -07:00
Ed Hartnett
845355e91b added hdf4 test for inq_format calls 2017-11-22 08:21:24 -07:00
Ed Hartnett
d4495e8e86 more testing 2017-11-22 07:46:03 -07:00
Ed Hartnett
b5ed095f36 makefile cleanup 2017-11-22 07:05:10 -07:00
Ed Hartnett
70c739858b fixed SEGFAULT for NULL parameter for nc_inq_format(), added testing, improved documentation 2017-11-22 06:53:23 -07:00
Ward Fisher
2ab3e56747 Added error message for new error NC_ENULLPAD. [skip ci] 2017-11-20 17:31:08 -07:00
Ed Hartnett
eecade6af9
Merge branch 'master' into ejh_notbuilt_errors 2017-11-18 21:24:11 +00:00
Ed Hartnett
03753c0344 now return NC_ENOTBUILT for not built library features 2017-11-13 08:09:15 -07:00
Ed Hartnett
ca49633a64
Merge branch 'master' into ejh_fix_test 2017-11-10 02:43:32 -07:00
Ed Hartnett
4f7fb907f6 removed unused files 2017-11-08 04:13:03 -07:00
Ed Hartnett
d4c1fd5d80
Merge branch 'master' into ejh_delete_ncx 2017-11-07 18:35:05 -07:00
Ward Fisher
b92ae0cdbc Merge branch 'ejh_fix_use_cdf' of https://github.com/NetCDF-World-Domination-Council/netcdf-c into more_ejh_pulls 2017-11-07 14:14:10 -07:00
Ed Hartnett
59217fe8ac cleaned up, fixed comments 2017-11-06 06:19:34 -07:00
Ed Hartnett
f8c77f0692 refurbished tst_cdf5format.c 2017-11-06 05:35:34 -07:00
Ed Hartnett
b40e5d32f0
Merge branch 'master' into ejh_delete_ncx 2017-11-05 10:08:26 -07:00
Ed Hartnett
c920f48c49 fixed ENABLE_CDF5 issue in some tests 2017-11-05 09:08:39 -07:00
Ed Hartnett
6ce15853d6 fixed ENABLE_CDF5 issue in some tests 2017-11-05 09:06:48 -07:00
Ward Fisher
1bd71f0375 Merge remote-tracking branch 'origin/testp2.dmh' into dmh_multi_merge 2017-11-03 12:42:12 -06:00
Ward Fisher
f98635be1b Merge remote-tracking branch 'origin/h5offset.dmh' into dmh_multi_merge 2017-11-03 12:40:52 -06:00
Ward Fisher
91865a3cbc Merge branch 'NC_MAX_VAR_DIMS' of https://github.com/wkliao/netcdf-c into multi-merge 2017-11-02 11:20:54 -06:00
Ed Hartnett
c71e4dde09 removed historic file no longer used: nc_test/ncx.c 2017-11-01 05:09:29 -06:00
Ward Fisher
d7f0919c12
Merge branch 'master' into NC_MAX_VAR_DIMS 2017-10-31 14:06:41 -06:00
Ward Fisher
2987fb0bed
Merge branch 'master' into master 2017-10-31 14:01:08 -06:00
Ward Fisher
1acafdc668 Updated in support of https://github.com/Unidata/netcdf-c/issues/556 2017-10-31 11:13:05 -06:00
Ed Hartnett
78a44214aa
Merge branch 'master' into ejh_file_mem 2017-10-30 07:35:39 -06:00
Dennis Heimbigner
261ed4c99d Merge branch 'master' into h5offset.dmh 2017-10-27 12:33:17 -06:00
Dennis Heimbigner
682ad6a463
Merge branch 'master' into testp2.dmh 2017-10-27 11:17:39 -06:00
Ed Hartnett
433a2a6e36 fixed leaks in tests 2017-10-26 14:50:21 -06:00
Ward Fisher
bacdef88fe Merge branch 'master' into NC_MAX_VAR_DIMS 2017-10-26 14:31:22 -06:00
Ed Hartnett
5fba557bdf fixed leak in tst_utf8_validate.c 2017-10-26 14:28:41 -06:00
Ward Fisher
3247b637b7 Merge remote-tracking branch 'origin/testp2.dmh' into ejh_more_merges 2017-10-26 14:26:32 -06:00
Dennis Heimbigner
d9b60fef03 change to use Wei-kings' solution 2017-10-25 13:07:17 -06:00
Ward Fisher
5d4b81af8f Merge branch 'ejh_nc_test_warning_fix_2' of https://github.com/NetCDF-World-Domination-Council/netcdf-c into merge_small_pulls 2017-10-25 11:13:38 -06:00
Ed Hartnett
50408acec0 fixed more warnings 2017-10-25 06:22:58 -06:00
Ed Hartnett
fb4437e584 fixed warnings 2017-10-25 06:12:59 -06:00
Dennis Heimbigner
ea9d685a7b Modify nc_test/tst_parallel2.c to remove a failure.
The failure comes at the end when each processor tries to
remove() the created file. The second one appears to fail
-- possibly because of a race condition. In any case, if I
move the remove() call past MPI_Finalize(), the error goes away.

It is not clear of the exact circumstances that cause the
failure, but I encountered it with the following env.
- automake on centos7 64-bit.
- compiling with -O1 for gcc.
- The pnetcdf version is 1.8.1
- The command "mpiexec --version" gives:
  Version: 3.0.4
  Release Date: Wed Apr 24 10:08:10CDT2013
2017-10-24 19:12:07 -06: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
Dennis Heimbigner
c8b2184409 Fix dap4 related warnings in https://github.com/Unidata/netcdf-c/issues/501.
The nc_test/util.c error is a typo. The libdap4/d4meta.c error only is shown
when using a 64 bit machine because then |size_t| == 64 bits
and |int| = 32bits.
2017-10-20 21:17:12 -06:00
Wei-keng Liao
fa77d51c30 change ENABLE_CDF5 to USE_CDF5 2017-10-20 10:16:19 -05:00
Wei-keng Liao
faa01cf1af add condition check for CDF5 2017-10-19 16:42:22 -05:00
Wei-keng Liao
8dc83d4e48 utr8proc has legalized two code positions 2017-10-19 12:37:00 -05:00
Ward Fisher
9e240e6c9a Modified t_nc.c to only test cdf5 if it has been enabled. 2017-10-16 11:19:24 -06:00
Ward Fisher
61f628b988 reverted test. 2017-10-06 12:58:49 -06:00
Greg Sjaardema
9964cee7cd Merge branch 'master' into master 2017-09-26 11:06:04 -06:00
Wei-keng Liao
2cc30c16be check against NC_MAX_VAR_DIMS (but using NC_EMAXDIMS, maybe a new error code NC_EMAXVARDIMS is needed) 2017-09-21 12:37:33 -05:00
Ward Fisher
223b1f968a Updated tst_small 2017-09-18 15:08:49 -06:00
Ward Fisher
399a43ae89 Updated nc_test to respect USE_CDF5 2017-09-18 13:24:11 -06:00
Wei-keng Liao
85c3222de0 run tst_large_cdf5 and tst_cdf5_begin only when LARGE_FILE_TESTS is enabled 2017-09-16 19:15:09 -05:00
Wei-keng Liao
f7ee463119 disable CDF5 tests when size_t is less than 8 bytes 2017-09-16 17:35:52 -05:00
Wei-keng Liao
e67cbed81c forgot to add run_cdf5.sh to EXTRA_DIST 2017-09-16 15:22:59 -05:00
Wei-keng Liao
e397001bfe add another test program to check if a CDF-5 file has a corrupted header 2017-09-16 14:30:09 -05:00
Wei-keng Liao
f00c43fc04 add a test program to read a CDF-5 file with a corrupted header 2017-09-16 14:04:39 -05:00
Ward Fisher
d2cdc4cb5a Working on getting cdf5 tests running. 2017-09-15 18:00:28 -06:00
Ward Fisher
c740f47895 Corrected for no CDF5 support. 2017-09-15 17:29:10 -06:00
Wei-keng Liao
b47180c5be fix error reporting 2017-09-08 02:41:06 -05:00
Wei-keng Liao
2f239d34df add test program, tst_err_enddef.c 2017-09-07 20:29:40 -05:00
Ward Fisher
e006ea5e07 Fixed a simple mistake in test organization. 2017-08-11 18:36:44 -06:00
Ward Fisher
85e9aaf368 Wiring in a large test to check against a regression for the issue described in https://github.com/Unidata/netcdf-c/pull/457 2017-08-11 18:18:11 -06:00
Wei-keng Liao
7992242a39 Call nc_close, which calls MPI_File_close, to avoid MPI wraning messages on MPI objects are still allocated. 2017-08-08 16:54:38 -05:00
Greg Sjaardema
1503013e33 Eliminate NC_MAX_VARS|DIMS|ATTRS limits 2017-07-20 09:32:29 -06:00
Ward Fisher
e4f81a1611 Fixed issue on 32-bit systems. 2017-07-05 14:57:12 -06:00
Ward Fisher
12d224eeef Corrected an issue in support of https://github.com/Unidata/netcdf-c/issues/420 2017-06-09 12:46:37 -06:00
Ward Fisher
b73c81697c Removed a line in configure.ac that is potentially redundant and throws an error on some systems. In support of https://github.com/Unidata/netcdf-c/issues/413 2017-06-08 12:38:43 -06:00
Ward Fisher
4097dd9826 Change to address issue reported in https://github.com/Unidata/netcdf-c/issues/413 2017-06-08 11:55:00 -06:00
Ward Fisher
f8c7df70b3 Corrected an issue where run_diskless2.sh was not properly configured. 2017-05-10 16:55:47 -06:00
Ward Fisher
051bd3b81a Merge branch 'master' into open_check_vlens 2017-05-05 17:02:36 -06:00
Ward Fisher
ce20f3bf53 Corrected a build issue on windows for tst_diskless5, and updated release notes. 2017-05-04 10:58:18 -06:00
Dennis Heimbigner
455f3b9976 typo 2017-05-03 10:19:35 -06:00
Dennis Heimbigner
5a0c7abb8f Add testcase 2017-05-03 09:58:49 -06:00
Ward Fisher
8dddd222a3 Merged master, DAP4 support into branch. 2017-04-19 09:29:35 -06:00
Ward Fisher
b5b99cbebb Merge branch 'master' into ghpull-375 2017-04-05 16:24:55 -06:00
Dennis Heimbigner
6d8809100f Fix pull request https://github.com/Unidata/netcdf-c/pull/374 (dap4.dmh)
1. When running under windows (as opposed to cygwin)
   we need to make sure to not user /cygdrive/ file paths.
   This was ocurring in libdap4/d4read.c, but may occur
   elsewhere.
2. Shell scripts in the git repo are not being checked-out
   with the executable mode set. Had core.filemode set to false.
   Was a major hassle to fix.
2017-04-03 21:39:44 -06:00
Wei-keng Liao
1af2643fb8 rename macro ERR to ERR_CHK, as ERR is already defined in err_macros.h 2017-04-03 22:17:36 -05:00
Dennis Heimbigner
5f15c9e777 1) master merge 2)fix uname -o problem 2017-03-30 16:21:31 -06:00
Ward Fisher
45e30475f6 Updated release notes to reflect new return, modified test to check for proper expected return value. 2017-03-29 15:47:48 -06:00
Ward Fisher
92ef49d4ed Updated release notes. 2017-03-29 15:43:45 -06:00
Ward Fisher
16169a27af Wiring in test in support of https://github.com/Unidata/netcdf-c/issues/388 2017-03-29 15:25:38 -06:00
Ward Fisher
e5fb53f996 Restored line that was accidentally removed. 2017-03-29 11:38:59 -06:00
Ward Fisher
6b036cfc28 Adding test in support of https://github.com/Unidata/netcdf-c/issues/384 2017-03-29 11:23:47 -06:00
Ward Fisher
2bf5f09bcc Corrected an issue on *nix systems 2017-03-16 15:13:38 -06:00
Ward Fisher
80d2b914a1 Updates for Visual-Studio-based builds. 2017-03-16 14:34:33 -06:00
Ward Fisher
53c018a3f6 Attempting to fix visual studio errors in support of https://github.com/Unidata/netcdf-c/pull/375 2017-03-13 15:12:47 -06:00