2003-04-01 01:59:04 +08:00
|
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
2007-02-07 22:56:24 +08:00
|
|
|
|
* Copyright by The HDF Group. *
|
2003-04-01 01:59:04 +08:00
|
|
|
|
* Copyright by the Board of Trustees of the University of Illinois. *
|
|
|
|
|
* All rights reserved. *
|
|
|
|
|
* *
|
|
|
|
|
* This file is part of HDF5. The full HDF5 copyright notice, including *
|
|
|
|
|
* terms governing use, modification, and redistribution, is contained in *
|
|
|
|
|
* the files COPYING and Copyright.html. COPYING can be found at the root *
|
|
|
|
|
* of the source code distribution tree; Copyright.html can be found at the *
|
|
|
|
|
* root level of an installed copy of the electronic HDF5 document set and *
|
|
|
|
|
* is linked from the top-level documents page. It can also be found at *
|
2007-02-07 22:56:24 +08:00
|
|
|
|
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
|
|
|
|
|
* access to either file, you may request a copy from help@hdfgroup.org. *
|
2003-04-01 01:59:04 +08:00
|
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
|
|
1998-03-05 00:20:23 +08:00
|
|
|
|
/*
|
|
|
|
|
* Programmer: Robb Matzke <matzke@llnl.gov>
|
|
|
|
|
* Tuesday, March 3, 1998
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Tests datasets stored in external raw files.
|
|
|
|
|
*/
|
2001-04-04 02:09:16 +08:00
|
|
|
|
#include "h5test.h"
|
1998-05-29 07:02:29 +08:00
|
|
|
|
|
2007-11-07 23:17:38 +08:00
|
|
|
|
/* File for external link test. Created with gen_udlinks.c */
|
|
|
|
|
#define LINKED_FILE "be_extlink2.h5"
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
1998-11-21 11:36:51 +08:00
|
|
|
|
const char *FILENAME[] = {
|
|
|
|
|
"extern_1",
|
|
|
|
|
"extern_2",
|
|
|
|
|
"extern_3",
|
2007-11-06 06:13:43 +08:00
|
|
|
|
"extern_4",
|
1998-11-21 11:36:51 +08:00
|
|
|
|
NULL
|
|
|
|
|
};
|
1998-03-05 23:48:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: same_contents
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Determines whether two files are exactly the same.
|
|
|
|
|
*
|
|
|
|
|
* Return: Success: nonzero if same, zero if different.
|
|
|
|
|
*
|
|
|
|
|
* Failure: zero
|
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Wednesday, March 4, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
static int
|
|
|
|
|
same_contents (const char *name1, const char *name2)
|
|
|
|
|
{
|
|
|
|
|
int fd1, fd2;
|
|
|
|
|
ssize_t n1, n2;
|
|
|
|
|
char buf1[1024], buf2[1024];
|
|
|
|
|
|
[svn-r15150] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-06 02:52:19 +08:00
|
|
|
|
fd1 = HDopen(name1, O_RDONLY, 0666);
|
|
|
|
|
fd2 = HDopen(name2, O_RDONLY, 0666);
|
1998-03-05 23:48:16 +08:00
|
|
|
|
assert (fd1>=0 && fd2>=0);
|
|
|
|
|
|
|
|
|
|
while (1) {
|
[svn-r15150] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-06 02:52:19 +08:00
|
|
|
|
n1 = HDread(fd1, buf1, sizeof(buf1));
|
|
|
|
|
n2 = HDread(fd2, buf2, sizeof(buf2));
|
1998-04-07 23:34:16 +08:00
|
|
|
|
assert (n1>=0 && (size_t)n1<=sizeof(buf1));
|
|
|
|
|
assert (n2>=0 && (size_t)n2<=sizeof(buf2));
|
1998-03-05 23:48:16 +08:00
|
|
|
|
assert (n1==n2);
|
2005-08-14 04:53:35 +08:00
|
|
|
|
|
1998-03-05 23:48:16 +08:00
|
|
|
|
if (n1<=0 && n2<=0) break;
|
1998-04-07 23:34:16 +08:00
|
|
|
|
if (memcmp (buf1, buf2, (size_t)n1)) {
|
[svn-r15150] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-06 02:52:19 +08:00
|
|
|
|
HDclose(fd1);
|
|
|
|
|
HDclose(fd2);
|
1998-03-05 23:48:16 +08:00
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
[svn-r15150] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-06 02:52:19 +08:00
|
|
|
|
HDclose(fd1);
|
|
|
|
|
HDclose(fd2);
|
1998-03-05 23:48:16 +08:00
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
1998-11-24 04:40:35 +08:00
|
|
|
|
* Function: test_1a
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Tests a non-extendible dataset with a single external file.
|
1998-03-05 00:20:23 +08:00
|
|
|
|
*
|
1998-11-24 04:40:35 +08:00
|
|
|
|
* Return: Success: 0
|
1998-03-05 00:20:23 +08:00
|
|
|
|
*
|
1998-11-24 04:40:35 +08:00
|
|
|
|
* Failure: number of errors
|
1998-03-05 00:20:23 +08:00
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
1998-11-24 04:40:35 +08:00
|
|
|
|
* Monday, November 23, 1998
|
1998-03-05 00:20:23 +08:00
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
1998-11-24 04:40:35 +08:00
|
|
|
|
static int
|
|
|
|
|
test_1a(hid_t file)
|
1998-03-05 00:20:23 +08:00
|
|
|
|
{
|
1998-11-24 04:40:35 +08:00
|
|
|
|
hid_t dcpl=-1; /*dataset creation properties */
|
|
|
|
|
hid_t space=-1; /*data space */
|
|
|
|
|
hid_t dset=-1; /*dataset */
|
|
|
|
|
hsize_t cur_size[1]; /*data space current size */
|
|
|
|
|
hsize_t max_size[1]; /*data space maximum size */
|
|
|
|
|
int n; /*number of external files */
|
|
|
|
|
char name[256]; /*external file name */
|
|
|
|
|
off_t file_offset; /*external file offset */
|
|
|
|
|
hsize_t file_size; /*sizeof external file segment */
|
2005-08-14 04:53:35 +08:00
|
|
|
|
|
1998-11-21 11:36:51 +08:00
|
|
|
|
TESTING("fixed-size data space, exact storage");
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
/* Create the dataset */
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
cur_size[0] = max_size[0] = 100;
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if(H5Pset_external(dcpl, "ext1.data", (off_t)0,
|
|
|
|
|
(hsize_t)(max_size[0] * sizeof(int))) < 0) goto error;
|
|
|
|
|
if((space = H5Screate_simple(1, cur_size, max_size)) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if((dset = H5Dcreate2(file, "dset1", H5T_NATIVE_INT, space, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0)
|
1998-11-21 11:36:51 +08:00
|
|
|
|
goto error;
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if(H5Dclose(dset) < 0) goto error;
|
|
|
|
|
if(H5Sclose(space) < 0) goto error;
|
|
|
|
|
if(H5Pclose(dcpl) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
|
|
|
|
|
/* Read dataset creation information */
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if((dset = H5Dopen2(file, "dset1", H5P_DEFAULT)) < 0) goto error;
|
2002-11-07 23:57:53 +08:00
|
|
|
|
|
|
|
|
|
/* Test dataset address. Should be undefined. */
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if(H5Dget_offset(dset) != HADDR_UNDEF) goto error;
|
2005-08-14 04:53:35 +08:00
|
|
|
|
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if((dcpl = H5Dget_create_plist(dset)) < 0) goto error;
|
|
|
|
|
if((n = H5Pget_external_count(dcpl)) < 0) goto error;
|
|
|
|
|
if(1 != n) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Returned external count is wrong.");
|
|
|
|
|
printf(" got: %d\n ans: 1\n", n);
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
HDstrcpy(name + sizeof(name) - 4, "...");
|
|
|
|
|
if(H5Pget_external(dcpl, 0, sizeof(name) - 4, name, &file_offset,
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
&file_size) < 0) goto error;
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if(file_offset != 0) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Wrong file offset.");
|
|
|
|
|
printf(" got: %lu\n ans: 0\n", (unsigned long)file_offset);
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if(file_size != (max_size[0] * sizeof(int))) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Wrong file size.");
|
1999-03-10 07:13:22 +08:00
|
|
|
|
printf(" got: %lu\n ans: %lu\n", (unsigned long)file_size,
|
|
|
|
|
(unsigned long)max_size[0]*sizeof(int));
|
1998-11-24 04:40:35 +08:00
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if (H5Pclose (dcpl) < 0) goto error;
|
|
|
|
|
if (H5Dclose (dset) < 0) goto error;
|
1998-11-21 11:36:51 +08:00
|
|
|
|
PASSED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
return 0;
|
|
|
|
|
error:
|
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Pclose(dcpl);
|
|
|
|
|
H5Sclose(space);
|
|
|
|
|
H5Dclose(dset);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: test_1b
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Test a single external file which is too small to represent
|
|
|
|
|
* all the data.
|
|
|
|
|
*
|
|
|
|
|
* Return: Success: 0
|
|
|
|
|
*
|
|
|
|
|
* Failure: number of errors
|
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Monday, November 23, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
static int
|
|
|
|
|
test_1b(hid_t file)
|
|
|
|
|
{
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
hid_t dcpl = -1; /*dataset creation properties */
|
|
|
|
|
hid_t space = -1; /*data space */
|
|
|
|
|
hid_t dset = -1; /*dataset */
|
1998-11-24 04:40:35 +08:00
|
|
|
|
hsize_t cur_size[1]; /*current data space size */
|
|
|
|
|
hsize_t max_size[1]; /*maximum data space size */
|
|
|
|
|
|
|
|
|
|
TESTING("external storage is too small");
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
cur_size[0] = max_size[0] = 100;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Pset_external(dcpl, "ext1.data", (off_t)0,
|
|
|
|
|
(hsize_t)(max_size[0] * sizeof(int) - 1)) < 0) goto error;
|
|
|
|
|
if((space = H5Screate_simple(1, cur_size, max_size)) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
H5E_BEGIN_TRY {
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
dset = H5Dcreate2(file, "dset2", H5T_NATIVE_INT, space, H5P_DEFAULT, dcpl, H5P_DEFAULT);
|
1998-11-24 04:40:35 +08:00
|
|
|
|
} H5E_END_TRY;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(dset >= 0) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Small external file succeeded instead of failing.");
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Sclose(space) < 0) goto error;
|
|
|
|
|
if(H5Pclose(dcpl) < 0) goto error;
|
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
PASSED();
|
|
|
|
|
return 0;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
error:
|
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Sclose(space);
|
|
|
|
|
H5Pclose(dcpl);
|
|
|
|
|
H5Dclose(dset);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: test_1c
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Test a single external file which is large enough to
|
|
|
|
|
* represent the current data and large enough to represent the
|
|
|
|
|
* eventual size of the data.
|
|
|
|
|
*
|
|
|
|
|
* Return: Success: 0
|
|
|
|
|
*
|
|
|
|
|
* Failure: number of errors
|
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Monday, November 23, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
static int
|
|
|
|
|
test_1c(hid_t file)
|
|
|
|
|
{
|
|
|
|
|
hid_t dcpl=-1; /*dataset creation properties */
|
|
|
|
|
hid_t space=-1; /*data space */
|
|
|
|
|
hid_t dset=-1; /*dataset */
|
|
|
|
|
hsize_t cur_size[1]; /*current data space size */
|
|
|
|
|
hsize_t max_size[1]; /*maximum data space size */
|
|
|
|
|
|
|
|
|
|
TESTING("extendible dataspace, exact external size");
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
|
|
|
|
|
if((dcpl = H5Pcreate (H5P_DATASET_CREATE)) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
cur_size[0] = 100;
|
|
|
|
|
max_size[0] = 200;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Pset_external(dcpl, "ext1.data", (off_t)0,
|
|
|
|
|
(hsize_t)(max_size[0] * sizeof(int))) < 0) goto error;
|
|
|
|
|
if((space = H5Screate_simple(1, cur_size, max_size)) < 0) goto error;
|
|
|
|
|
if((dset = H5Dcreate2(file, "dset3", H5T_NATIVE_INT, space, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0)
|
1998-11-24 04:40:35 +08:00
|
|
|
|
goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Dclose(dset) < 0) goto error;
|
|
|
|
|
if(H5Sclose(space) < 0) goto error;
|
|
|
|
|
if(H5Pclose(dcpl) < 0) goto error;
|
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
PASSED();
|
|
|
|
|
return 0;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
error:
|
1998-11-24 04:40:35 +08:00
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Dclose(dset);
|
|
|
|
|
H5Pclose(dcpl);
|
|
|
|
|
H5Sclose(space);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: test_1d
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Test a single external file which is large enough for the
|
|
|
|
|
* current data size but not large enough for the eventual size.
|
|
|
|
|
*
|
|
|
|
|
* Return: Success: 0
|
|
|
|
|
*
|
|
|
|
|
* Failure: number of errors
|
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Monday, November 23, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
static int
|
|
|
|
|
test_1d(hid_t file)
|
|
|
|
|
{
|
|
|
|
|
hid_t dcpl=-1; /*dataset creation properties */
|
|
|
|
|
hid_t space=-1; /*data space */
|
|
|
|
|
hid_t dset=-1; /*dataset */
|
|
|
|
|
hsize_t cur_size[1]; /*current data space size */
|
|
|
|
|
hsize_t max_size[1]; /*maximum data space size */
|
|
|
|
|
|
|
|
|
|
TESTING("extendible dataspace, external storage is too small");
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
|
|
|
|
|
if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
cur_size[0] = 100;
|
|
|
|
|
max_size[0] = 200;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Pset_external(dcpl, "ext1.data", (off_t)0,
|
|
|
|
|
(hsize_t)(max_size[0] * sizeof(int) - 1)) < 0) goto error;
|
|
|
|
|
if((space = H5Screate_simple(1, cur_size, max_size)) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
H5E_BEGIN_TRY {
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
dset = H5Dcreate2(file, "dset4", H5T_NATIVE_INT, space, H5P_DEFAULT, dcpl, H5P_DEFAULT);
|
1998-11-24 04:40:35 +08:00
|
|
|
|
} H5E_END_TRY;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(dset >= 0) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Small external file succeeded instead of failing.");
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Sclose(space) < 0) goto error;
|
|
|
|
|
if(H5Pclose(dcpl) < 0) goto error;
|
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
PASSED();
|
|
|
|
|
return 0;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
error:
|
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Dclose(dset);
|
|
|
|
|
H5Pclose(dcpl);
|
|
|
|
|
H5Sclose(space);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: test_1e
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Test a single external file of unlimited size and an
|
|
|
|
|
* unlimited data space.
|
|
|
|
|
*
|
|
|
|
|
* Return: Success: 0
|
|
|
|
|
*
|
|
|
|
|
* Failure: number of errors
|
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Monday, November 23, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
static int
|
|
|
|
|
test_1e(hid_t file)
|
|
|
|
|
{
|
|
|
|
|
hid_t dcpl=-1; /*dataset creation properties */
|
|
|
|
|
hid_t space=-1; /*data space */
|
|
|
|
|
hid_t dset=-1; /*dataset */
|
|
|
|
|
hsize_t cur_size[1]; /*data space current size */
|
|
|
|
|
hsize_t max_size[1]; /*data space maximum size */
|
|
|
|
|
int n; /*number of external files */
|
|
|
|
|
char name[256]; /*external file name */
|
|
|
|
|
off_t file_offset; /*external file offset */
|
|
|
|
|
hsize_t file_size; /*sizeof external file segment */
|
|
|
|
|
|
|
|
|
|
TESTING("unlimited dataspace, unlimited external storage");
|
|
|
|
|
|
|
|
|
|
/* Create dataset */
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
|
|
|
|
|
if(H5Pset_external(dcpl, "ext1.data", (off_t)0, H5F_UNLIMITED) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
cur_size[0] = 100;
|
|
|
|
|
max_size[0] = H5S_UNLIMITED;
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if((space = H5Screate_simple(1, cur_size, max_size)) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if((dset = H5Dcreate2(file, "dset5", H5T_NATIVE_INT, space, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0)
|
1998-11-24 04:40:35 +08:00
|
|
|
|
goto error;
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if(H5Dclose(dset) < 0) goto error;
|
|
|
|
|
if(H5Sclose(space) < 0) goto error;
|
|
|
|
|
if(H5Pclose(dcpl) < 0) goto error;
|
2005-08-14 04:53:35 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
/* Read dataset creation information */
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if((dset = H5Dopen2(file, "dset5", H5P_DEFAULT)) < 0) goto error;
|
|
|
|
|
if((dcpl = H5Dget_create_plist(dset)) < 0) goto error;
|
|
|
|
|
if((n = H5Pget_external_count(dcpl)) < 0) goto error;
|
|
|
|
|
if(1 != n) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Returned external count is wrong.");
|
|
|
|
|
printf(" got: %d\n ans: 1\n", n);
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
HDstrcpy(name + sizeof(name) - 4, "...");
|
|
|
|
|
if(H5Pget_external(dcpl, 0, sizeof(name) - 4, name, &file_offset,
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
&file_size) < 0) goto error;
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if(file_offset != 0) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Wrong file offset.");
|
|
|
|
|
printf(" got: %lu\n ans: 0\n", (unsigned long)file_offset);
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if(H5F_UNLIMITED != file_size) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Wrong file size.");
|
|
|
|
|
printf(" got: %lu\n ans: INF\n", (unsigned long)file_size);
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14193] Description:
Make H5Dopen versioned and change all internal usage to use H5Dopen2
Add simple regression test for H5Dopen1
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-09 03:59:36 +08:00
|
|
|
|
if(H5Pclose(dcpl) < 0) goto error;
|
|
|
|
|
if(H5Dclose(dset) < 0) goto error;
|
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
PASSED();
|
|
|
|
|
return 0;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
error:
|
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Dclose(dset);
|
|
|
|
|
H5Pclose(dcpl);
|
|
|
|
|
H5Sclose(space);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: test_1f
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Test multiple external files for a dataset.
|
|
|
|
|
*
|
|
|
|
|
* Return: Success: 0
|
|
|
|
|
*
|
|
|
|
|
* Failure: number of errors
|
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Monday, November 23, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
static int
|
|
|
|
|
test_1f(hid_t file)
|
|
|
|
|
{
|
|
|
|
|
hid_t dcpl=-1; /*dataset creation properties */
|
|
|
|
|
hid_t space=-1; /*data space */
|
|
|
|
|
hid_t dset=-1; /*dataset */
|
|
|
|
|
hsize_t cur_size[1]; /*data space current size */
|
|
|
|
|
hsize_t max_size[1]; /*data space maximum size */
|
|
|
|
|
|
|
|
|
|
TESTING("multiple external files");
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
|
|
|
|
|
if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
cur_size[0] = max_size[0] = 100;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Pset_external(dcpl, "ext1.data", (off_t)0,
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
(hsize_t)(max_size[0]*sizeof(int)/4)) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Pset_external(dcpl, "ext2.data", (off_t)0,
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
(hsize_t)(max_size[0]*sizeof(int)/4)) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Pset_external(dcpl, "ext3.data", (off_t)0,
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
(hsize_t)(max_size[0]*sizeof(int)/4)) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Pset_external(dcpl, "ext4.data", (off_t)0,
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
(hsize_t)(max_size[0]*sizeof(int)/4)) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if((space = H5Screate_simple(1, cur_size, max_size)) < 0) goto error;
|
|
|
|
|
if((dset = H5Dcreate2(file, "dset6", H5T_NATIVE_INT, space, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0)
|
1998-11-24 04:40:35 +08:00
|
|
|
|
goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Dclose(dset) < 0) goto error;
|
|
|
|
|
if(H5Sclose(space) < 0) goto error;
|
|
|
|
|
if(H5Pclose(dcpl) < 0) goto error;
|
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
PASSED();
|
|
|
|
|
return 0;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
error:
|
1998-11-24 04:40:35 +08:00
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Dclose(dset);
|
|
|
|
|
H5Pclose(dcpl);
|
|
|
|
|
H5Sclose(space);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: test_1g
|
|
|
|
|
*
|
|
|
|
|
* Purpose: It should be impossible to define an unlimited external file
|
|
|
|
|
* and then follow it with another external file.
|
|
|
|
|
*
|
|
|
|
|
* Return: Success: 0
|
|
|
|
|
*
|
|
|
|
|
* Failure: number of errors
|
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Monday, November 23, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
static int
|
|
|
|
|
test_1g(void)
|
|
|
|
|
{
|
|
|
|
|
hid_t dcpl=-1; /*dataset creation properties */
|
|
|
|
|
herr_t status; /*function return status */
|
|
|
|
|
int n; /*number of external files */
|
|
|
|
|
|
|
|
|
|
TESTING("external file following unlimited file");
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if ((dcpl=H5Pcreate (H5P_DATASET_CREATE)) < 0) goto error;
|
|
|
|
|
if (H5Pset_external(dcpl, "ext1.data", (off_t)0, H5F_UNLIMITED) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
H5E_BEGIN_TRY {
|
2001-01-10 05:22:30 +08:00
|
|
|
|
status = H5Pset_external(dcpl, "ext2.data", (off_t)0, (hsize_t)100);
|
1998-11-24 04:40:35 +08:00
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
if (status>=0) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts (" H5Pset_external() succeeded when it should have failed.");
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if ((n = H5Pget_external_count(dcpl)) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
if (1!=n) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Wrong external file count returned.");
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if (H5Pclose(dcpl) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
PASSED();
|
|
|
|
|
return 0;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
error:
|
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Pclose(dcpl);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: test_1h
|
|
|
|
|
*
|
|
|
|
|
* Purpose: It should be impossible to create a set of external files
|
|
|
|
|
* whose total size overflows a size_t integer.
|
|
|
|
|
*
|
|
|
|
|
* Return: Success: 0
|
|
|
|
|
*
|
|
|
|
|
* Failure: number of errors
|
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Monday, November 23, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
static int
|
|
|
|
|
test_1h(void)
|
|
|
|
|
{
|
|
|
|
|
hid_t dcpl=-1; /*dataset creation properties */
|
|
|
|
|
herr_t status; /*return status */
|
2005-08-14 04:53:35 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
TESTING("address overflow in external files");
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if((dcpl=H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
|
|
|
|
|
if (H5Pset_external(dcpl, "ext1.data", (off_t)0, H5F_UNLIMITED-1) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
H5E_BEGIN_TRY {
|
2001-01-10 05:22:30 +08:00
|
|
|
|
status = H5Pset_external(dcpl, "ext2.data", (off_t)0, (hsize_t)100);
|
1998-11-24 04:40:35 +08:00
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
if (status>=0) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" H5Pset_external() succeeded when it should have failed.");
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if (H5Pclose(dcpl) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
PASSED();
|
|
|
|
|
return 0;
|
1998-11-21 11:36:51 +08:00
|
|
|
|
|
|
|
|
|
error:
|
1998-11-24 04:40:35 +08:00
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Pclose(dcpl);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: test_2
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Tests reading from an external file set.
|
|
|
|
|
*
|
1998-11-24 04:40:35 +08:00
|
|
|
|
* Return: Success: 0
|
|
|
|
|
*
|
|
|
|
|
* Failure: number of errors
|
1998-03-05 00:20:23 +08:00
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Wednesday, March 4, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
1998-11-24 04:40:35 +08:00
|
|
|
|
static int
|
|
|
|
|
test_2 (hid_t fapl)
|
1998-03-05 00:20:23 +08:00
|
|
|
|
{
|
1998-11-24 04:40:35 +08:00
|
|
|
|
hid_t file=-1; /*file to write to */
|
|
|
|
|
hid_t dcpl=-1; /*dataset creation properties */
|
|
|
|
|
hid_t space=-1; /*data space */
|
|
|
|
|
hid_t dset=-1; /*dataset */
|
|
|
|
|
hid_t grp=-1; /*group to emit diagnostics */
|
|
|
|
|
int fd; /*external file descriptors */
|
2007-03-27 11:06:48 +08:00
|
|
|
|
size_t i, j; /*miscellaneous counters */
|
1998-11-24 04:40:35 +08:00
|
|
|
|
hssize_t n; /*bytes of I/O */
|
|
|
|
|
char filename[1024]; /*file names */
|
|
|
|
|
int part[25], whole[100]; /*raw data buffers */
|
|
|
|
|
hsize_t cur_size; /*current data space size */
|
|
|
|
|
hid_t hs_space; /*hyperslab data space */
|
2004-12-29 22:26:20 +08:00
|
|
|
|
hsize_t hs_start = 30; /*hyperslab starting offset */
|
1998-11-24 04:40:35 +08:00
|
|
|
|
hsize_t hs_count = 25; /*hyperslab size */
|
1999-10-13 23:41:02 +08:00
|
|
|
|
int temparray[10] = {0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f};
|
1998-11-24 04:40:35 +08:00
|
|
|
|
|
|
|
|
|
TESTING("read external dataset");
|
2006-08-01 03:46:16 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
/* Write the data to external files directly */
|
1998-03-05 00:20:23 +08:00
|
|
|
|
for (i=0; i<4; i++) {
|
|
|
|
|
for (j=0; j<25; j++) {
|
1998-04-09 05:43:02 +08:00
|
|
|
|
part[j] = (int)(i*25+j);
|
1998-03-05 00:20:23 +08:00
|
|
|
|
}
|
1998-11-24 04:40:35 +08:00
|
|
|
|
sprintf (filename, "extern_%lua.raw", (unsigned long)i+1);
|
[svn-r15150] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-06 02:52:19 +08:00
|
|
|
|
fd = HDopen(filename, O_RDWR|O_CREAT|O_TRUNC, 0666);
|
1998-03-05 00:20:23 +08:00
|
|
|
|
assert (fd>=0);
|
1999-10-13 23:41:02 +08:00
|
|
|
|
/* n = lseek (fd, (off_t)(i*10), SEEK_SET);
|
|
|
|
|
*/
|
[svn-r15150] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-06 02:52:19 +08:00
|
|
|
|
n = HDwrite(fd,temparray,(size_t)i*10);
|
1998-04-07 23:34:16 +08:00
|
|
|
|
assert (n>=0 && (size_t)n==i*10);
|
[svn-r15150] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-06 02:52:19 +08:00
|
|
|
|
n = HDwrite(fd, part, sizeof(part));
|
1998-03-05 00:20:23 +08:00
|
|
|
|
assert (n==sizeof(part));
|
[svn-r15150] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-06 02:52:19 +08:00
|
|
|
|
HDclose(fd);
|
1998-03-05 00:20:23 +08:00
|
|
|
|
}
|
2005-08-14 04:53:35 +08:00
|
|
|
|
|
1998-03-05 00:20:23 +08:00
|
|
|
|
/*
|
|
|
|
|
* Create the file and an initial group. This causes messages about
|
|
|
|
|
* debugging to be emitted before we start playing games with what the
|
|
|
|
|
* output looks like.
|
|
|
|
|
*/
|
1998-11-24 04:40:35 +08:00
|
|
|
|
h5_fixname(FILENAME[1], fapl, filename, sizeof filename);
|
2007-08-24 04:25:25 +08:00
|
|
|
|
if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) FAIL_STACK_ERROR
|
|
|
|
|
if((grp = H5Gcreate2(file, "emit-diagnostics", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
|
|
|
|
|
if(H5Gclose(grp) < 0) FAIL_STACK_ERROR
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
|
|
|
|
/* Create the dataset */
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
|
2007-08-24 04:25:25 +08:00
|
|
|
|
if(H5Pset_external(dcpl, "extern_1a.raw", (off_t)0, (hsize_t)sizeof part) < 0 ||
|
|
|
|
|
H5Pset_external(dcpl, "extern_2a.raw", (off_t)10, (hsize_t)sizeof part) < 0 ||
|
|
|
|
|
H5Pset_external(dcpl, "extern_3a.raw", (off_t)20, (hsize_t)sizeof part) < 0 ||
|
|
|
|
|
H5Pset_external(dcpl, "extern_4a.raw", (off_t)30, (hsize_t)sizeof part) < 0)
|
1998-11-24 04:40:35 +08:00
|
|
|
|
goto error;
|
|
|
|
|
cur_size = 100;
|
2007-08-24 04:25:25 +08:00
|
|
|
|
if((space = H5Screate_simple(1, &cur_size, NULL)) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if((dset = H5Dcreate2(file, "dset1", H5T_NATIVE_INT, space, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0) goto error;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Read the entire dataset and compare with the original
|
|
|
|
|
*/
|
2007-08-24 04:25:25 +08:00
|
|
|
|
memset(whole, 0, sizeof(whole));
|
|
|
|
|
if(H5Dread(dset, H5T_NATIVE_INT, space, space, H5P_DEFAULT, whole) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
for(i = 0; i < 100; i++)
|
|
|
|
|
if(whole[i] != (signed)i) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Incorrect value(s) read.");
|
|
|
|
|
goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
} /* end if */
|
1998-03-05 23:48:16 +08:00
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Read the middle of the dataset
|
|
|
|
|
*/
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if((hs_space = H5Scopy(space)) < 0) goto error;
|
|
|
|
|
if(H5Sselect_hyperslab(hs_space, H5S_SELECT_SET, &hs_start, NULL,
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
&hs_count, NULL) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
HDmemset(whole, 0, sizeof(whole));
|
|
|
|
|
if(H5Dread(dset, H5T_NATIVE_INT, hs_space, hs_space, H5P_DEFAULT,
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
whole) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if(H5Sclose(hs_space) < 0) goto error;
|
|
|
|
|
for(i = hs_start; i<hs_start+hs_count; i++) {
|
|
|
|
|
if(whole[i] != (signed)i) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts(" Incorrect value(s) read.");
|
|
|
|
|
goto error;
|
1998-03-05 23:48:16 +08:00
|
|
|
|
}
|
1998-11-24 04:40:35 +08:00
|
|
|
|
}
|
2005-08-14 04:53:35 +08:00
|
|
|
|
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if (H5Dclose(dset) < 0) goto error;
|
|
|
|
|
if (H5Pclose(dcpl) < 0) goto error;
|
|
|
|
|
if (H5Sclose(space) < 0) goto error;
|
|
|
|
|
if (H5Fclose(file) < 0) goto error;
|
1998-11-24 04:40:35 +08:00
|
|
|
|
PASSED();
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
error:
|
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Dclose(dset);
|
|
|
|
|
H5Pclose(dcpl);
|
|
|
|
|
H5Sclose(space);
|
|
|
|
|
H5Fclose(file);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
}
|
|
|
|
|
|
1998-03-05 23:48:16 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: test_3
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Tests writing to an external file set.
|
|
|
|
|
*
|
1998-11-24 04:40:35 +08:00
|
|
|
|
* Return: Success: 0
|
|
|
|
|
*
|
|
|
|
|
* Failure: number of errors
|
1998-03-05 23:48:16 +08:00
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Wednesday, March 4, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
1998-11-24 04:40:35 +08:00
|
|
|
|
static int
|
|
|
|
|
test_3 (hid_t fapl)
|
1998-03-05 23:48:16 +08:00
|
|
|
|
{
|
1998-11-24 04:40:35 +08:00
|
|
|
|
hid_t file=-1; /*file to which to write */
|
|
|
|
|
hid_t dcpl=-1; /*dataset creation properties */
|
|
|
|
|
hid_t mem_space=-1; /*memory data space */
|
|
|
|
|
hid_t file_space=-1; /*file data space */
|
|
|
|
|
hid_t dset=-1; /*dataset */
|
|
|
|
|
unsigned i; /*miscellaneous counters */
|
|
|
|
|
int fd; /*external file descriptor */
|
2001-11-28 00:29:13 +08:00
|
|
|
|
int part[25],whole[100]; /*raw data buffers */
|
1998-11-24 04:40:35 +08:00
|
|
|
|
hsize_t cur_size=100; /*current data space size */
|
|
|
|
|
hsize_t max_size=200; /*maximum data space size */
|
2004-12-29 22:26:20 +08:00
|
|
|
|
hsize_t hs_start=100; /*hyperslab starting offset */
|
1998-11-24 04:40:35 +08:00
|
|
|
|
hsize_t hs_count=100; /*hyperslab size */
|
|
|
|
|
char filename[1024]; /*file name */
|
1999-10-13 23:41:02 +08:00
|
|
|
|
int temparray[10] = {0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f,0x0f0f0f0f};
|
1998-11-24 04:40:35 +08:00
|
|
|
|
|
|
|
|
|
TESTING("write external dataset");
|
|
|
|
|
|
|
|
|
|
/* Create another file */
|
|
|
|
|
h5_fixname(FILENAME[2], fapl, filename, sizeof filename);
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if ((file=H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) {
|
1999-08-18 03:12:59 +08:00
|
|
|
|
goto error;
|
|
|
|
|
}
|
1998-03-05 23:48:16 +08:00
|
|
|
|
|
|
|
|
|
/* Create the external file list */
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if((dcpl=H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
|
|
|
|
|
if (H5Pset_external(dcpl, "extern_1b.raw", (off_t)0, (hsize_t)sizeof part) < 0 ||
|
|
|
|
|
H5Pset_external(dcpl, "extern_2b.raw", (off_t)10, (hsize_t)sizeof part) < 0 ||
|
|
|
|
|
H5Pset_external(dcpl, "extern_3b.raw", (off_t)20, (hsize_t)sizeof part) < 0 ||
|
|
|
|
|
H5Pset_external(dcpl, "extern_4b.raw", (off_t)30, H5F_UNLIMITED) < 0)
|
1998-11-24 04:40:35 +08:00
|
|
|
|
goto error;
|
1998-03-05 23:48:16 +08:00
|
|
|
|
|
1998-03-06 05:27:38 +08:00
|
|
|
|
/* Make sure the output files are fresh*/
|
1998-11-24 04:40:35 +08:00
|
|
|
|
for (i=1; i<=4; i++) {
|
|
|
|
|
sprintf(filename, "extern_%db.raw", i);
|
[svn-r15150] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-06 02:52:19 +08:00
|
|
|
|
if ((fd= HDopen(filename, O_RDWR|O_CREAT|O_TRUNC, 0666)) < 0) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
printf(" cannot open %s: %s\n", filename, strerror(errno));
|
|
|
|
|
goto error;
|
|
|
|
|
}
|
2005-08-14 04:53:35 +08:00
|
|
|
|
|
[svn-r15150] Purpose: Separate Windows function macro definitions to win32defs.h
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
2008-06-06 02:52:19 +08:00
|
|
|
|
HDwrite(fd, temparray, (i-1)*10);
|
|
|
|
|
HDclose(fd);
|
1998-11-24 04:40:35 +08:00
|
|
|
|
}
|
1998-03-05 23:48:16 +08:00
|
|
|
|
|
|
|
|
|
/* Create the dataset */
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if((mem_space = H5Screate_simple(1, &cur_size, &max_size)) < 0) goto error;
|
|
|
|
|
if((file_space = H5Scopy(mem_space)) < 0) goto error;
|
[svn-r14199] Description:
Add H5Dcreate to API versioned routines, replacing internal usage with
H5Dcreate2
Fix thread-safe error stack initialization for API versioned error
stack printing routines.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-12 00:24:11 +08:00
|
|
|
|
if((dset = H5Dcreate2(file, "dset1", H5T_NATIVE_INT, file_space, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0)
|
1998-11-24 04:40:35 +08:00
|
|
|
|
goto error;
|
1998-03-05 23:48:16 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
/* Write the entire dataset and compare with the original */
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
for(i = 0; i < cur_size; i++)
|
|
|
|
|
whole[i] = i;
|
|
|
|
|
if(H5Dwrite(dset, H5T_NATIVE_INT, mem_space, file_space, H5P_DEFAULT, whole) < 0) goto error;
|
|
|
|
|
for(i = 0; i < 4; i++) {
|
1998-11-24 04:40:35 +08:00
|
|
|
|
char name1[64], name2[64];
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
|
|
|
|
|
sprintf(name1, "extern_%da.raw", i + 1);
|
|
|
|
|
sprintf(name2, "extern_%db.raw", i + 1);
|
|
|
|
|
if(!same_contents(name1, name2)) {
|
2001-01-26 01:03:29 +08:00
|
|
|
|
H5_FAILED();
|
1998-11-24 04:40:35 +08:00
|
|
|
|
puts (" Output differs from expected value.");
|
|
|
|
|
goto error;
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
} /* end if */
|
|
|
|
|
} /* end for */
|
1998-03-06 05:27:38 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
/* Extend the dataset by another 100 elements */
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if(H5Dset_extent(dset, &max_size) < 0) goto error;
|
|
|
|
|
if(H5Sclose(file_space) < 0) goto error;
|
|
|
|
|
if((file_space = H5Dget_space(dset)) < 0) goto error;
|
1998-03-06 05:27:38 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
/* Write second half of dataset */
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
for(i = 0; i < hs_count; i++)
|
|
|
|
|
whole[i] = 100 + i;
|
|
|
|
|
if(H5Sselect_hyperslab(file_space, H5S_SELECT_SET, &hs_start, NULL, &hs_count, NULL) < 0) goto error;
|
|
|
|
|
if(H5Dwrite(dset, H5T_NATIVE_INT, mem_space, file_space, H5P_DEFAULT, whole) < 0) goto error;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(H5Dclose(dset) < 0) goto error;
|
|
|
|
|
if(H5Pclose(dcpl) < 0) goto error;
|
|
|
|
|
if(H5Sclose(mem_space) < 0) goto error;
|
|
|
|
|
if(H5Sclose(file_space) < 0) goto error;
|
|
|
|
|
if(H5Fclose(file) < 0) goto error;
|
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
PASSED();
|
|
|
|
|
return 0;
|
1998-03-05 23:48:16 +08:00
|
|
|
|
|
1998-11-24 04:40:35 +08:00
|
|
|
|
error:
|
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Dclose(dset);
|
|
|
|
|
H5Pclose(dcpl);
|
|
|
|
|
H5Sclose(mem_space);
|
|
|
|
|
H5Sclose(file_space);
|
|
|
|
|
H5Fclose(file);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
1998-05-29 07:02:29 +08:00
|
|
|
|
}
|
1998-06-06 05:03:49 +08:00
|
|
|
|
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: test_4
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Tests opening an external link twice. It exposed a bug
|
2007-11-10 03:57:00 +08:00
|
|
|
|
* in the library. This function tests the fix. This test
|
|
|
|
|
* doesn't work with MULTI driver.
|
2007-11-06 06:13:43 +08:00
|
|
|
|
*
|
|
|
|
|
* Return: Success: 0
|
|
|
|
|
*
|
|
|
|
|
* Failure: number of errors
|
|
|
|
|
*
|
|
|
|
|
* Programmer: Raymond Lu
|
|
|
|
|
* 5 November 2007
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
static int
|
|
|
|
|
test_4 (hid_t fapl)
|
|
|
|
|
{
|
|
|
|
|
hid_t fid, gid, xid, xid2;
|
|
|
|
|
char filename[1024]; /*file name */
|
|
|
|
|
char pathname[1024];
|
|
|
|
|
char *srcdir = getenv("srcdir"); /*where the src code is located*/
|
2007-11-10 03:57:00 +08:00
|
|
|
|
const char *envval = NULL;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
|
|
|
|
TESTING("opening external link twice");
|
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
/* Don't run this test using the multi file driver */
|
|
|
|
|
envval = HDgetenv("HDF5_DRIVER");
|
|
|
|
|
if (envval == NULL)
|
|
|
|
|
envval = "nomatch";
|
2007-11-12 22:48:48 +08:00
|
|
|
|
if (HDstrcmp(envval, "multi") && HDstrcmp(envval, "family")) {
|
2007-11-10 03:57:00 +08:00
|
|
|
|
h5_fixname(FILENAME[3], fapl, filename, sizeof filename);
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
if((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
|
|
|
|
goto error;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
if((gid = H5Gopen2(fid, "/", H5P_DEFAULT)) < 0)
|
|
|
|
|
goto error;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
pathname[0] = '\0';
|
|
|
|
|
/* Generate correct name for test file by prepending the source path */
|
|
|
|
|
if(srcdir && ((HDstrlen(srcdir) + HDstrlen(LINKED_FILE) + 1) < sizeof(pathname))) {
|
|
|
|
|
HDstrcpy(pathname, srcdir);
|
|
|
|
|
HDstrcat(pathname, "/");
|
|
|
|
|
}
|
|
|
|
|
HDstrcat(pathname, LINKED_FILE);
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
/* Create an external link to an existing file*/
|
|
|
|
|
if(H5Lcreate_external(pathname, "/group", gid, " link", H5P_DEFAULT, H5P_DEFAULT) < 0)
|
|
|
|
|
goto error;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
if(H5Gclose(gid) < 0)
|
|
|
|
|
goto error;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
if(H5Fclose(fid) < 0)
|
|
|
|
|
goto error;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
/* Reopen the file */
|
2007-11-25 00:36:01 +08:00
|
|
|
|
if((fid = H5Fopen(filename, H5F_ACC_RDONLY, fapl)) < 0)
|
2007-11-10 03:57:00 +08:00
|
|
|
|
goto error;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
/* Open the external link */
|
|
|
|
|
if((xid = H5Gopen2(fid, "/ link", H5P_DEFAULT)) < 0)
|
|
|
|
|
goto error;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
/* Open the external link twice */
|
|
|
|
|
if((xid2 = H5Gopen2(xid, ".", H5P_DEFAULT)) < 0)
|
|
|
|
|
goto error;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
if(H5Gclose(xid2) < 0)
|
|
|
|
|
goto error;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
if(H5Gclose(xid) < 0)
|
|
|
|
|
goto error;
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
2007-11-10 03:57:00 +08:00
|
|
|
|
if(H5Fclose(fid) < 0)
|
|
|
|
|
goto error;
|
|
|
|
|
|
|
|
|
|
PASSED();
|
|
|
|
|
} else
|
|
|
|
|
SKIPPED();
|
2007-11-06 06:13:43 +08:00
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
error:
|
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Gclose(gid);
|
|
|
|
|
H5Gclose(xid);
|
|
|
|
|
H5Gclose(xid2);
|
|
|
|
|
H5Fclose(fid);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
* Function: main
|
|
|
|
|
*
|
|
|
|
|
* Purpose: Runs external dataset tests.
|
|
|
|
|
*
|
|
|
|
|
* Return: Success: exit(0)
|
|
|
|
|
*
|
|
|
|
|
* Failure: exit(non-zero)
|
|
|
|
|
*
|
|
|
|
|
* Programmer: Robb Matzke
|
|
|
|
|
* Tuesday, March 3, 1998
|
|
|
|
|
*
|
|
|
|
|
* Modifications:
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
int
|
|
|
|
|
main (void)
|
|
|
|
|
{
|
1998-11-24 04:40:35 +08:00
|
|
|
|
hid_t fapl=-1; /*file access properties */
|
|
|
|
|
hid_t file=-1; /*file for test_1* functions */
|
|
|
|
|
char filename[1024]; /*file name for test_1* funcs */
|
|
|
|
|
hid_t grp=-1; /*group to emit diagnostics */
|
|
|
|
|
int nerrors=0; /*number of errors */
|
2006-08-01 03:46:16 +08:00
|
|
|
|
const char *envval = NULL;
|
|
|
|
|
|
|
|
|
|
/* Don't run this test using the split file driver */
|
|
|
|
|
envval = HDgetenv("HDF5_DRIVER");
|
|
|
|
|
if (envval == NULL)
|
|
|
|
|
envval = "nomatch";
|
|
|
|
|
if (HDstrcmp(envval, "split")) {
|
|
|
|
|
h5_reset();
|
|
|
|
|
fapl = h5_fileaccess();
|
|
|
|
|
h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
|
2007-08-24 04:25:25 +08:00
|
|
|
|
if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) FAIL_STACK_ERROR
|
|
|
|
|
if((grp = H5Gcreate2(file, "emit-diagnostics", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
|
|
|
|
|
if(H5Gclose(grp) < 0) goto error;
|
2006-08-01 03:46:16 +08:00
|
|
|
|
|
|
|
|
|
nerrors += test_1a(file);
|
|
|
|
|
nerrors += test_1b(file);
|
|
|
|
|
nerrors += test_1c(file);
|
|
|
|
|
nerrors += test_1d(file);
|
|
|
|
|
nerrors += test_1e(file);
|
|
|
|
|
nerrors += test_1f(file);
|
|
|
|
|
nerrors += test_1g();
|
|
|
|
|
nerrors += test_1h();
|
|
|
|
|
nerrors += test_2(fapl);
|
|
|
|
|
nerrors += test_3(fapl);
|
2007-11-06 06:13:43 +08:00
|
|
|
|
nerrors += test_4(fapl);
|
2006-08-01 03:46:16 +08:00
|
|
|
|
if (nerrors>0) goto error;
|
|
|
|
|
|
[svn-r14192] Description:
Deprecate H5Dextend in favor of H5Dset_extent (without using API
versioning, due to changed behavior) and switch internal usage to H5Dset_extent
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-08 23:26:02 +08:00
|
|
|
|
if (H5Fclose(file) < 0) goto error;
|
2006-08-01 03:46:16 +08:00
|
|
|
|
puts("All external storage tests passed.");
|
|
|
|
|
if (h5_cleanup(FILENAME, fapl)) {
|
|
|
|
|
remove("extern_1a.raw");
|
|
|
|
|
remove("extern_1b.raw");
|
|
|
|
|
remove("extern_2a.raw");
|
|
|
|
|
remove("extern_2b.raw");
|
|
|
|
|
remove("extern_3a.raw");
|
|
|
|
|
remove("extern_3b.raw");
|
|
|
|
|
remove("extern_4a.raw");
|
|
|
|
|
remove("extern_4b.raw");
|
|
|
|
|
}
|
1999-08-18 03:12:59 +08:00
|
|
|
|
}
|
2006-08-01 03:46:16 +08:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
puts("All external storage tests skipped - Incompatible with current Virtual File Driver");
|
1998-03-05 00:20:23 +08:00
|
|
|
|
}
|
1998-11-24 04:40:35 +08:00
|
|
|
|
return 0;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
|
2006-08-01 03:46:16 +08:00
|
|
|
|
error:
|
|
|
|
|
H5E_BEGIN_TRY {
|
|
|
|
|
H5Fclose(file);
|
|
|
|
|
H5Pclose(fapl);
|
|
|
|
|
} H5E_END_TRY;
|
|
|
|
|
nerrors = MAX(1, nerrors);
|
|
|
|
|
printf ("%d TEST%s FAILED.\n", nerrors, 1==nerrors?"":"s");
|
|
|
|
|
return 1;
|
1998-03-05 00:20:23 +08:00
|
|
|
|
}
|