mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-12 17:31:09 +08:00
[svn-r27572] Removed VMS-specific code from the library.
The only remaining code consists of a few floating-point tests that rely on pre-generated and checked-in VMS files. These have been left alone, even though they will not be possible to recreate, since testing VMS float behavior is still important. Tested on: h5committest
This commit is contained in:
parent
76d7d3cb97
commit
2e6100fb23
1
MANIFEST
1
MANIFEST
@ -422,7 +422,6 @@
|
||||
./release_docs/INSTALL_CMake.txt
|
||||
./release_docs/INSTALL_Cygwin.txt
|
||||
./release_docs/INSTALL_parallel
|
||||
./release_docs/INSTALL_VMS.txt
|
||||
./release_docs/INSTALL_Windows.txt
|
||||
./release_docs/RELEASE.txt
|
||||
./release_docs/USING_HDF5_CMake.txt
|
||||
|
@ -8,7 +8,7 @@ specific to this release of the library. Several INSTALL* files can also be
|
||||
found in the release_docs/ directory: INSTALL contains instructions for
|
||||
compiling and installing the library; INSTALL_parallel contains instructions
|
||||
for installing the parallel version of the library; similarly-named files
|
||||
contain instructions for VMS and several environments on MS Windows systems.
|
||||
contain instructions for several environments on MS Windows systems.
|
||||
|
||||
Documentation for this release can be found at the following URL:
|
||||
http://www.hdfgroup.org/HDF5/doc/.
|
||||
|
@ -56,7 +56,6 @@ HTM_COPYRIGHT=/tmp/h5chkright_HTM.$$ # HTML style copyright
|
||||
SH_COPYRIGHT=/tmp/h5chkright_SH.$$ # SHELL style copyright
|
||||
SH_COPYRIGHT2=/tmp/h5chkright_SH2.$$ # SHELL style copyright, 2nd style.
|
||||
WINBAT_COPYRIGHT=/tmp/h5chkright_WINBAT.$$ # Windows Batch file Copyright notice
|
||||
VMSCMD_COPYRIGHT=/tmp/h5chkright_VMSCMD.$$ # VMS command file Copyright notice
|
||||
CONFIGURE_AC_COPYRIGHT=/tmp/h5chkright_CONFIGURE_AC.$$ # configure.ac file Copyright notice
|
||||
|
||||
tmpfixfile=/tmp/h5chkright_fix.$$ # Temporary fixed copy of file
|
||||
@ -221,22 +220,6 @@ dnl root level of an installed copy of the electronic HDF5 document set and
|
||||
dnl is linked from the top-level documents page. It can also be found at
|
||||
dnl http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
|
||||
dnl access to either file, you may request a copy from help@hdfgroup.org.
|
||||
EOF
|
||||
|
||||
# VMS command file Copyright notice
|
||||
cat > ${VMSCMD_COPYRIGHT} << \EOF
|
||||
$!# Copyright by The HDF Group.
|
||||
$!# 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
|
||||
$!# 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.
|
||||
EOF
|
||||
|
||||
}
|
||||
@ -611,28 +594,6 @@ BATCH_FILE()
|
||||
}
|
||||
|
||||
|
||||
# Check Windows Batch files
|
||||
#
|
||||
VMSCMD_FILE()
|
||||
{
|
||||
f=$1
|
||||
case `MATCH_COPYRIGHT $VMSCMD_COPYRIGHT $f` in
|
||||
PASSED)
|
||||
PASSED $f
|
||||
return
|
||||
;;
|
||||
FAILED)
|
||||
# show the difference
|
||||
FAILED $f
|
||||
$DIFF ${EXTRACTEDFILE} ${VMSCMD_COPYRIGHT}
|
||||
if [ -n "$FIXIT" ]; then
|
||||
FIX_COPYRIGHT $VMSCMD_COPYRIGHT $f
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
# Check Configure.in type files
|
||||
#
|
||||
CONFIGURE_AC_FILE()
|
||||
@ -834,10 +795,6 @@ while read file; do
|
||||
# Windows Batch files
|
||||
BATCH_FILE ${file}
|
||||
;;
|
||||
*.com )
|
||||
# VMS Command files
|
||||
VMSCMD_FILE ${file}
|
||||
;;
|
||||
*.h5 | *.hdf5 )
|
||||
# Ignore HDF5 data files
|
||||
continue
|
||||
|
@ -285,15 +285,9 @@ IdComponent::~IdComponent() {}
|
||||
//--------------------------------------------------------------------------
|
||||
H5std_string IdComponent::inMemFunc(const char* func_name) const
|
||||
{
|
||||
#ifdef H5_VMS
|
||||
H5std_string full_name = fromClass();
|
||||
full_name.append("::");
|
||||
full_name.append(func_name);
|
||||
#else
|
||||
H5std_string full_name = func_name;
|
||||
full_name.insert(0, "::");
|
||||
full_name.insert(0, fromClass());
|
||||
#endif /*H5_VMS*/
|
||||
return (full_name);
|
||||
}
|
||||
|
||||
|
@ -109,9 +109,7 @@ static void test_file_create()
|
||||
file1 = new H5File (FILE1, H5F_ACC_EXCL);
|
||||
|
||||
// Try to create the same file with H5F_ACC_TRUNC. This should fail
|
||||
// because file1 is the same file and is currently open. Skip it on
|
||||
// OpenVMS because it creates another version of the file.
|
||||
#ifndef H5_HAVE_FILE_VERSIONS
|
||||
// because file1 is the same file and is currently open.
|
||||
try {
|
||||
H5File file2 (FILE1, H5F_ACC_TRUNC); // should throw E
|
||||
|
||||
@ -120,7 +118,6 @@ static void test_file_create()
|
||||
}
|
||||
catch( FileIException E ) // catch truncating existing file
|
||||
{} // do nothing, FAIL expected
|
||||
#endif // H5_HAVE_FILE_VERSIONS
|
||||
|
||||
// Close file1
|
||||
delete file1;
|
||||
@ -141,9 +138,7 @@ static void test_file_create()
|
||||
file1 = new H5File (FILE1, H5F_ACC_TRUNC);
|
||||
|
||||
// Try to create first file again. This should fail because file1
|
||||
// is the same file and is currently open. Skip it on OpenVMS because
|
||||
// it creates another version of the file.
|
||||
#ifndef H5_HAVE_FILE_VERSIONS
|
||||
// is the same file and is currently open.
|
||||
try {
|
||||
H5File file2 (FILE1, H5F_ACC_TRUNC); // should throw E
|
||||
|
||||
@ -154,7 +149,7 @@ static void test_file_create()
|
||||
{} // do nothing, FAIL expected
|
||||
|
||||
// Try with H5F_ACC_EXCL. This should fail too because the file already
|
||||
// exists. Skip it on OpenVMS because it creates another version of the file.
|
||||
// exists.
|
||||
try {
|
||||
H5File file3 (FILE1, H5F_ACC_EXCL); // should throw E
|
||||
|
||||
@ -163,7 +158,6 @@ static void test_file_create()
|
||||
}
|
||||
catch( FileIException E ) // catching H5F_ACC_EXCL on existing file
|
||||
{} // do nothing, FAIL expected
|
||||
#endif /*H5_HAVE_FILE_VERSIONS*/
|
||||
|
||||
// Get the file-creation template
|
||||
FileCreatPropList tmpl1 = file1->getCreatePlist();
|
||||
|
@ -58,60 +58,6 @@
|
||||
/* File for external link test. Created with gen_udlinks.c */
|
||||
#define LINKED_FILE "be_extlink2.h5"
|
||||
|
||||
#ifdef H5_VMS
|
||||
#if 0
|
||||
const char *FILENAME[] = {
|
||||
"links0",
|
||||
"links1",
|
||||
"links2",
|
||||
"links3",
|
||||
"links4a", /* 4 */
|
||||
"links4b", /* 5 */
|
||||
"links4c", /* 6 */
|
||||
"links4d", /* 7 */
|
||||
"links5", /* 8 */
|
||||
"links6", /* 9 */
|
||||
"links7", /* 10 */
|
||||
"links8", /* 11 */
|
||||
"extlinks0", /* 12: main files */
|
||||
"[.tmp]extlinks0", /* 13: */
|
||||
"extlinks1", /* 14: target files */
|
||||
"[.tmp]extlinks1", /* 15: */
|
||||
"extlinks2", /* 16: */
|
||||
"[.tmp]extlinks2", /* 17: */
|
||||
"extlinks3", /* 18: */
|
||||
"[.tmp]extlinks3", /* 19: */
|
||||
"extlinks4", /* 20: */
|
||||
"[.tmp]extlinks4", /* 21: */
|
||||
"extlinks5", /* 22: */
|
||||
"[.tmp]extlinks6", /* 23: */
|
||||
"extlinks7", /* 24: */
|
||||
"[.tmp]extlinks7", /* 25: */
|
||||
"[.tmp]extlinks8", /* 26: */
|
||||
"extlinks9", /* 27: */
|
||||
"[.tmp]extlinks9", /* 28: */
|
||||
"extlinks10", /* 29: */ /* TESTS for windows */
|
||||
"[.tmp]extlinks10", /* 30: */
|
||||
"[.tmp]extlinks11", /* 31: */
|
||||
"[.tmp]extlinks12", /* 32: */
|
||||
"extlinks13", /* 33: */
|
||||
"[.tmp]extlinks13", /* 34: */
|
||||
"[.tmp]extlinks14", /* 35: */
|
||||
"[.tmp]extlinks15", /* 36: */
|
||||
"extlinks16A", /* 37: */ /* TESTS for H5P_set_elink_fapl */
|
||||
"extlinks16B", /* 38: */
|
||||
"extlinks17", /* 39: */
|
||||
"extlinks18A", /* 40: */
|
||||
"extlinks18B", /* 41: */
|
||||
"extlinks19A", /* 42: */
|
||||
"extlinks19B", /* 43: */
|
||||
"extlinks20", /* 44: */
|
||||
NULL
|
||||
};
|
||||
#endif // 0
|
||||
|
||||
#define TMPDIR "[.tmp]"
|
||||
#else
|
||||
#if 0
|
||||
const char *FILENAME[] = {
|
||||
"links0",
|
||||
@ -165,7 +111,6 @@ const char *FILENAME[] = {
|
||||
#endif // 0
|
||||
|
||||
#define TMPDIR "tmp"
|
||||
#endif
|
||||
|
||||
#define FAMILY_SIZE 1024
|
||||
#define CORE_INCREMENT 1024
|
||||
@ -574,16 +519,12 @@ void test_links()
|
||||
#ifndef H5_NO_DEPRECATED_SYMBOLS
|
||||
nerrors += test_deprec(my_fapl, new_format);
|
||||
#endif /* H5_NO_DEPRECATED_SYMBOLS */
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += external_link_root(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
nerrors += external_link_path(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_mult(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += external_link_self(envval, my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_pingpong(envval, my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_toomany(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
nerrors += external_link_dangling(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_recursive(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_query(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
@ -591,9 +532,7 @@ void test_links()
|
||||
nerrors += external_link_unlink_dense(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_move(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_ride(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += external_link_closing(envval, my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
nerrors += external_link_endian(new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_strong(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
|
||||
|
@ -23,9 +23,6 @@
|
||||
H5_FCDLL char * HD5f2cstring (_fcd fdesc, size_t len);
|
||||
H5_FCDLL void HD5packFstring(char *src, char *dest, size_t len);
|
||||
|
||||
#ifdef H5_VMS
|
||||
#define H5_FC_FUNC_(name, NAME) NAME
|
||||
#endif /*H5_VMS*/
|
||||
|
||||
/*
|
||||
* Storage info struct used by H5O_info_t and H5F_info_t
|
||||
|
@ -1,77 +0,0 @@
|
||||
Building and installation instructions for Alpha Open VMS
|
||||
HDF5 1.8.6 release
|
||||
18 February 2011
|
||||
|
||||
|
||||
|
||||
CONTENTS
|
||||
--------
|
||||
|
||||
1. Obtaining HDF5
|
||||
2. Building and testing HDF5 C, Fortran and C++ libraries,
|
||||
and utilities
|
||||
3. Installing HDF5 libraries
|
||||
4. Known problems
|
||||
|
||||
|
||||
1.Obtaining HDF5
|
||||
|
||||
Please see INSTALL file in this directory for downloading instructions.
|
||||
|
||||
2. Building and testing HDF5 C, Fortran and C++ libraries and utilities.
|
||||
|
||||
IMPORTANT: This version REQUIRES GNU ZLIB library to be installed
|
||||
on a system. You may download the source code from
|
||||
http://www.zlib.net/
|
||||
|
||||
- Use tar command to untar HDF5 source ball
|
||||
|
||||
tar -xvf <source>.tar
|
||||
|
||||
- Change default directory to [.<source>.vms]
|
||||
- Specify top HDF5 source directory in the build.com file
|
||||
- Edit make.com:
|
||||
specify path to ZLIB library
|
||||
if necessary, modify compilation flags
|
||||
Do NOT REMOVE /define=H5_VMS and /standard=strict_ansi qualifiers.
|
||||
- Run build.com command file
|
||||
@build
|
||||
We recommend using batch queue to build and test this distribution.
|
||||
The command file runs make.com and builds
|
||||
C library, tests, and utilities
|
||||
Fortran library and tests
|
||||
C++ library and tests
|
||||
It also runs test scripts to test C, Fortran and C++ libraries, and
|
||||
h5dump, h5diff, h5ls, h5repack and h5import utilities.
|
||||
|
||||
3. Installing HDF5 libraries
|
||||
|
||||
Modify install.com file to specify installation directory and run
|
||||
@install
|
||||
to install HDF5 C, Fortran, and C++ libraries, and utilities.
|
||||
The script will create the directories shown below in the
|
||||
installation directory:
|
||||
|
||||
[.HDF5]...
|
||||
[.HDF5.INCLUDE]
|
||||
[.HDF5.LIB]
|
||||
[.HDF5.BIN]
|
||||
[.HDF5.EXAMPLES]
|
||||
[.HDF5.EXAMPLES.C]
|
||||
[.HDF5.EXAMPLES.F90]
|
||||
[.HDF5.EXAMPLES.CXX]
|
||||
|
||||
[.HDF5.EXAMPLES.*] directories contain make.com and check.com files
|
||||
to build examples against the installed libraries and to verify
|
||||
the installation.
|
||||
|
||||
3. Known problems
|
||||
|
||||
- dsets test fails for test_scleoffset_double and
|
||||
test_scleoffset_double_2 tests when G_FLOAT double is used
|
||||
- There is no support for szip compression filter.
|
||||
- Fortran multifile driver test fails; similar C test passes.
|
||||
|
||||
|
||||
For help contact help@hdfgroup.org
|
||||
|
@ -65,11 +65,7 @@ typedef struct H5FD_core_t {
|
||||
* identify a file.
|
||||
*/
|
||||
dev_t device; /*file device number */
|
||||
#ifdef H5_VMS
|
||||
ino_t inode[3]; /*file i-node number */
|
||||
#else
|
||||
ino_t inode; /*file i-node number */
|
||||
#endif /*H5_VMS*/
|
||||
#else
|
||||
/* Files in windows are uniquely identified by the volume serial
|
||||
* number and the file index (both low and high parts).
|
||||
@ -741,14 +737,7 @@ H5FD_core_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
|
||||
file->dwVolumeSerialNumber = fileinfo.dwVolumeSerialNumber;
|
||||
#else /* H5_HAVE_WIN32_API */
|
||||
file->device = sb.st_dev;
|
||||
#ifdef H5_VMS
|
||||
file->inode[0] = sb.st_ino[0];
|
||||
file->inode[1] = sb.st_ino[1];
|
||||
file->inode[2] = sb.st_ino[2];
|
||||
#else
|
||||
file->inode = sb.st_ino;
|
||||
#endif /* H5_VMS */
|
||||
|
||||
#endif /* H5_HAVE_WIN32_API */
|
||||
} /* end if */
|
||||
|
||||
@ -981,13 +970,8 @@ H5FD_core_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
|
||||
if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t))>0) HGOTO_DONE(1)
|
||||
#endif /* H5_DEV_T_IS_SCALAR */
|
||||
|
||||
#ifndef H5_VMS
|
||||
if (f1->inode < f2->inode) HGOTO_DONE(-1)
|
||||
if (f1->inode > f2->inode) HGOTO_DONE(1)
|
||||
#else
|
||||
if(HDmemcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))<0) HGOTO_DONE(-1)
|
||||
if(HDmemcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))>0) HGOTO_DONE(1)
|
||||
#endif /* H5_VMS */
|
||||
|
||||
#endif /*H5_HAVE_WIN32_API*/
|
||||
} /* end if */
|
||||
@ -1523,12 +1507,6 @@ H5FD_core_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t closing)
|
||||
if(0 == bError)
|
||||
HGOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
|
||||
#else /* H5_HAVE_WIN32_API */
|
||||
#ifdef H5_VMS
|
||||
/* Reset seek offset to the beginning of the file, so that the file isn't
|
||||
* re-extended later. This may happen on Open VMS. */
|
||||
if(-1 == HDlseek(file->fd, (HDoff_t)0, SEEK_SET))
|
||||
HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position")
|
||||
#endif /* H5_VMS */
|
||||
if(-1 == HDftruncate(file->fd, (HDoff_t)new_eof))
|
||||
HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
|
||||
#endif /* H5_HAVE_WIN32_API */
|
||||
|
@ -83,11 +83,7 @@ typedef struct H5FD_direct_t {
|
||||
* identify a file.
|
||||
*/
|
||||
dev_t device; /*file device number */
|
||||
#ifdef H5_VMS
|
||||
ino_t inode[3]; /*file i-node number */
|
||||
#else
|
||||
ino_t inode; /*file i-node number */
|
||||
#endif /*H5_VMS*/
|
||||
#else
|
||||
/*
|
||||
* On H5_HAVE_WIN32_API the low-order word of a unique identifier associated with the
|
||||
@ -525,13 +521,7 @@ H5FD_direct_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxadd
|
||||
file->fileindexlo = fileinfo.nFileIndexLow;
|
||||
#else
|
||||
file->device = sb.st_dev;
|
||||
#ifdef H5_VMS
|
||||
file->inode[0] = sb.st_ino[0];
|
||||
file->inode[1] = sb.st_ino[1];
|
||||
file->inode[2] = sb.st_ino[2];
|
||||
#else
|
||||
file->inode = sb.st_ino;
|
||||
#endif /*H5_VMS*/
|
||||
#endif /*H5_HAVE_WIN32_API*/
|
||||
file->fa.mboundary = fa->mboundary;
|
||||
file->fa.fbsize = fa->fbsize;
|
||||
@ -673,13 +663,8 @@ H5FD_direct_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
|
||||
if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t))>0) HGOTO_DONE(1)
|
||||
#endif /* H5_DEV_T_IS_SCALAR */
|
||||
|
||||
#ifndef H5_VMS
|
||||
if (f1->inode < f2->inode) HGOTO_DONE(-1)
|
||||
if (f1->inode > f2->inode) HGOTO_DONE(1)
|
||||
#else
|
||||
if(HDmemcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))<0) HGOTO_DONE(-1)
|
||||
if(HDmemcmp(&(f1->inode),&(f2->inode),3*sizeof(ino_t))>0) HGOTO_DONE(1)
|
||||
#endif /*H5_VMS*/
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -92,11 +92,7 @@ typedef struct H5FD_log_t {
|
||||
* Windows code further below.
|
||||
*/
|
||||
dev_t device; /* file device number */
|
||||
#ifdef H5_VMS
|
||||
ino_t inode[3]; /* file i-node number */
|
||||
#else
|
||||
ino_t inode; /* file i-node number */
|
||||
#endif /*H5_VMS*/
|
||||
#else
|
||||
/* Files in windows are uniquely identified by the volume serial
|
||||
* number and the file index (both low and high parts).
|
||||
@ -587,14 +583,7 @@ H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
|
||||
file->dwVolumeSerialNumber = fileinfo.dwVolumeSerialNumber;
|
||||
#else /* H5_HAVE_WIN32_API */
|
||||
file->device = sb.st_dev;
|
||||
#ifdef H5_VMS
|
||||
file->inode[0] = sb.st_ino[0];
|
||||
file->inode[1] = sb.st_ino[1];
|
||||
file->inode[2] = sb.st_ino[2];
|
||||
#else
|
||||
file->inode = sb.st_ino;
|
||||
#endif /*H5_VMS*/
|
||||
|
||||
#endif /* H5_HAVE_WIN32_API */
|
||||
|
||||
/* Retain a copy of the name used to open the file, for possible error reporting */
|
||||
@ -867,13 +856,8 @@ H5FD_log_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
|
||||
if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t)) > 0) HGOTO_DONE(1)
|
||||
#endif /* H5_DEV_T_IS_SCALAR */
|
||||
|
||||
#ifndef H5_VMS
|
||||
if(f1->inode < f2->inode) HGOTO_DONE(-1)
|
||||
if(f1->inode > f2->inode) HGOTO_DONE(1)
|
||||
#else
|
||||
if(HDmemcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) < 0) HGOTO_DONE(-1)
|
||||
if(HDmemcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) > 0) HGOTO_DONE(1)
|
||||
#endif /*H5_VMS*/
|
||||
|
||||
#endif
|
||||
|
||||
@ -1553,13 +1537,6 @@ H5FD_log_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t H5_ATTR_U
|
||||
if(0 == bError)
|
||||
HGOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
|
||||
#else /* H5_HAVE_WIN32_API */
|
||||
#ifdef H5_VMS
|
||||
/* Reset seek offset to the beginning of the file, so that the file isn't
|
||||
* re-extended later. This may happen on Open VMS. */
|
||||
if(-1 == HDlseek(file->fd, (HDoff_t)0, SEEK_SET))
|
||||
HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position")
|
||||
#endif
|
||||
|
||||
if(-1 == HDftruncate(file->fd, (HDoff_t)file->eoa))
|
||||
HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
|
||||
#endif /* H5_HAVE_WIN32_API */
|
||||
@ -1579,3 +1556,4 @@ H5FD_log_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t H5_ATTR_U
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD_log_truncate() */
|
||||
|
||||
|
@ -69,11 +69,7 @@ typedef struct H5FD_sec2_t {
|
||||
* Windows code further below.
|
||||
*/
|
||||
dev_t device; /* file device number */
|
||||
#ifdef H5_VMS
|
||||
ino_t inode[3]; /* file i-node number */
|
||||
#else
|
||||
ino_t inode; /* file i-node number */
|
||||
#endif /* H5_VMS */
|
||||
#else
|
||||
/* Files in windows are uniquely identified by the volume serial
|
||||
* number and the file index (both low and high parts).
|
||||
@ -374,13 +370,7 @@ H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
|
||||
file->dwVolumeSerialNumber = fileinfo.dwVolumeSerialNumber;
|
||||
#else /* H5_HAVE_WIN32_API */
|
||||
file->device = sb.st_dev;
|
||||
#ifdef H5_VMS
|
||||
file->inode[0] = sb.st_ino[0];
|
||||
file->inode[1] = sb.st_ino[1];
|
||||
file->inode[2] = sb.st_ino[2];
|
||||
#else /* H5_VMS */
|
||||
file->inode = sb.st_ino;
|
||||
#endif /* H5_VMS */
|
||||
#endif /* H5_HAVE_WIN32_API */
|
||||
|
||||
/* Retain a copy of the name used to open the file, for possible error reporting */
|
||||
@ -501,13 +491,8 @@ H5FD_sec2_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
|
||||
if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t)) < 0) HGOTO_DONE(-1)
|
||||
if(HDmemcmp(&(f1->device),&(f2->device),sizeof(dev_t)) > 0) HGOTO_DONE(1)
|
||||
#endif /* H5_DEV_T_IS_SCALAR */
|
||||
#ifdef H5_VMS
|
||||
if(HDmemcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) < 0) HGOTO_DONE(-1)
|
||||
if(HDmemcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) > 0) HGOTO_DONE(1)
|
||||
#else /* H5_VMS */
|
||||
if(f1->inode < f2->inode) HGOTO_DONE(-1)
|
||||
if(f1->inode > f2->inode) HGOTO_DONE(1)
|
||||
#endif /* H5_VMS */
|
||||
#endif /* H5_HAVE_WIN32_API */
|
||||
|
||||
done:
|
||||
@ -901,12 +886,6 @@ H5FD_sec2_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t H5_ATTR_
|
||||
if(0 == bError)
|
||||
HGOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
|
||||
#else /* H5_HAVE_WIN32_API */
|
||||
#ifdef H5_VMS
|
||||
/* Reset seek offset to the beginning of the file, so that the file isn't
|
||||
* re-extended later. This may happen on Open VMS. */
|
||||
if(-1 == HDlseek(file->fd, (HDoff_t)0, SEEK_SET))
|
||||
HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position")
|
||||
#endif
|
||||
if(-1 == HDftruncate(file->fd, (HDoff_t)file->eoa))
|
||||
HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly")
|
||||
#endif /* H5_HAVE_WIN32_API */
|
||||
@ -922,3 +901,4 @@ H5FD_sec2_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t H5_ATTR_
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD_sec2_truncate() */
|
||||
|
||||
|
@ -97,11 +97,7 @@ typedef struct H5FD_stdio_t {
|
||||
* Windows code further below.
|
||||
*/
|
||||
dev_t device; /* file device number */
|
||||
#ifdef H5_VMS
|
||||
ino_t inode[3]; /* file i-node number */
|
||||
#else
|
||||
ino_t inode; /* file i-node number */
|
||||
#endif /* H5_VMS */
|
||||
#else
|
||||
/* Files in windows are uniquely identified by the volume serial
|
||||
* number and the file index (both low and high parts).
|
||||
@ -450,13 +446,7 @@ H5FD_stdio_open( const char *name, unsigned flags, hid_t fapl_id,
|
||||
H5Epush_ret(func, H5E_ERR_CLS, H5E_FILE, H5E_BADFILE, "unable to fstat file", NULL)
|
||||
} /* end if */
|
||||
file->device = sb.st_dev;
|
||||
#ifdef H5_VMS
|
||||
file->inode[0] = sb.st_ino[0];
|
||||
file->inode[1] = sb.st_ino[1];
|
||||
file->inode[2] = sb.st_ino[2];
|
||||
#else /* H5_VMS */
|
||||
file->inode = sb.st_ino;
|
||||
#endif /* H5_VMS */
|
||||
#endif /* H5_HAVE_WIN32_API */
|
||||
|
||||
return (H5FD_t*)file;
|
||||
@ -542,13 +532,8 @@ H5FD_stdio_cmp(const H5FD_t *_f1, const H5FD_t *_f2)
|
||||
if(memcmp(&(f1->device),&(f2->device),sizeof(dev_t)) < 0) return -1;
|
||||
if(memcmp(&(f1->device),&(f2->device),sizeof(dev_t)) > 0) return 1;
|
||||
#endif /* H5_DEV_T_IS_SCALAR */
|
||||
#ifdef H5_VMS
|
||||
if(memcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) < 0) return -1;
|
||||
if(memcmp(&(f1->inode), &(f2->inode), 3 * sizeof(ino_t)) > 0) return 1;
|
||||
#else /* H5_VMS */
|
||||
if(f1->inode < f2->inode) return -1;
|
||||
if(f1->inode > f2->inode) return 1;
|
||||
#endif /* H5_VMS */
|
||||
#endif /* H5_HAVE_WIN32_API */
|
||||
|
||||
return 0;
|
||||
|
@ -125,8 +125,6 @@ H5L_getenv_prefix_name(char **env_prefix/*in,out*/)
|
||||
*
|
||||
* Programmer: Vailin Choi, April 2, 2008
|
||||
*
|
||||
* Modification: Raymond Lu, 14 Jan. 2009
|
||||
* Added support for OpenVMS pathname
|
||||
--------------------------------------------------------------------------*/
|
||||
static herr_t
|
||||
H5L_build_name(char *prefix, char *file_name, char **full_name/*out*/)
|
||||
|
@ -4255,7 +4255,11 @@ H5T__conv_f_f(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
|
||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTCONVERT, FAIL, "can't handle conversion exception")
|
||||
|
||||
goto padding;
|
||||
#ifndef H5_VMS /*Temporary solution to handle VAX special values*/
|
||||
/* Temporary solution to handle VAX special values.
|
||||
* Note that even though we don't support VAX anymore, we
|
||||
* still need to handle legacy VAX files so this code must
|
||||
* remain in place.
|
||||
*/
|
||||
} else if (H5T__bit_find (s, src.u.f.epos, src.u.f.esize,
|
||||
H5T_BIT_LSB, FALSE)<0) {
|
||||
/* NaN */
|
||||
@ -4280,7 +4284,6 @@ H5T__conv_f_f(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
|
||||
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTCONVERT, FAIL, "can't handle conversion exception")
|
||||
|
||||
goto padding;
|
||||
#endif /*H5_VMS*/
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1130,22 +1130,9 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...);
|
||||
#ifndef HDrealpath
|
||||
#define HDrealpath(F1,F2) realpath(F1,F2)
|
||||
#endif /* HDrealloc */
|
||||
#ifdef H5_VMS
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
int HDremove_all(const char * fname);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
#ifndef HDremove
|
||||
#define HDremove(S) HDremove_all(S)
|
||||
#endif /* HDremove */
|
||||
#else /* H5_VMS */
|
||||
#ifndef HDremove
|
||||
#define HDremove(S) remove(S)
|
||||
#endif /* HDremove */
|
||||
#endif /*H5_VMS*/
|
||||
#ifndef HDremove
|
||||
#define HDremove(S) remove(S)
|
||||
#endif /* HDremove */
|
||||
#ifndef HDrename
|
||||
#define HDrename(OLD,NEW) rename(OLD,NEW)
|
||||
#endif /* HDrename */
|
||||
@ -1562,19 +1549,7 @@ extern char *strdup(const char *s);
|
||||
(ptr = slash); \
|
||||
}
|
||||
|
||||
#elif defined(H5_HAVE_VMS_PATH)
|
||||
|
||||
/* OpenVMS pathname: <disk name>$<partition>:[path]<file name>
|
||||
* i.g. SYS$SYSUSERS:[LU.HDF5.SRC]H5system.c */
|
||||
#define H5_DIR_SEPC ']'
|
||||
#define H5_DIR_SEPS "]"
|
||||
#define H5_CHECK_DELIMITER(SS) (SS == H5_DIR_SEPC)
|
||||
#define H5_CHECK_ABSOLUTE(NAME) (HDstrrchr(NAME, ':') && HDstrrchr(NAME, '['))
|
||||
#define H5_CHECK_ABS_DRIVE(NAME) (0)
|
||||
#define H5_CHECK_ABS_PATH(NAME) (0)
|
||||
#define H5_GET_LAST_DELIMITER(NAME, ptr) ptr = HDstrrchr(NAME, H5_DIR_SEPC);
|
||||
|
||||
#else
|
||||
#else /* H5_HAVE_WINDOW_PATH */
|
||||
|
||||
#define H5_DIR_SEPC '/'
|
||||
#define H5_DIR_SEPS "/"
|
||||
@ -1584,7 +1559,7 @@ extern char *strdup(const char *s);
|
||||
#define H5_CHECK_ABS_PATH(NAME) (0)
|
||||
#define H5_GET_LAST_DELIMITER(NAME, ptr) ptr = HDstrrchr(NAME, H5_DIR_SEPC);
|
||||
|
||||
#endif
|
||||
#endif /* H5_HAVE_WINDOW_PATH */
|
||||
|
||||
#define H5_COLON_SEPC ':'
|
||||
|
||||
|
@ -582,45 +582,8 @@ void HDsrand(unsigned int seed)
|
||||
{
|
||||
g_seed = seed;
|
||||
}
|
||||
#endif
|
||||
#endif /* H5_HAVE_RAND_R */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: HDremove_all
|
||||
*
|
||||
* Purpose: Wrapper function for remove on VMS systems
|
||||
*
|
||||
* This function deletes all versions of a file
|
||||
*
|
||||
* Return: Success: 0;
|
||||
*
|
||||
* Failure: -1
|
||||
*
|
||||
* Programmer: Elena Pourmal
|
||||
* March 22, 2006
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifdef H5_VMS
|
||||
int
|
||||
HDremove_all(const char *fname)
|
||||
{
|
||||
int ret_value = -1;
|
||||
size_t fname_len;
|
||||
char *_fname;
|
||||
|
||||
fname_len = HDstrlen(fname) + 3; /* to accomodate ";*" and null terminator */
|
||||
_fname = (char *)H5MM_malloc(fname_len);
|
||||
if(_fname) {
|
||||
HDsnprintf(_fname, fname_len, "%s;*", fname);
|
||||
/* Do not use HDremove; function becomes recursive (see H5private.h file)*/
|
||||
remove(_fname);
|
||||
H5MM_xfree(_fname);
|
||||
ret_value = 0;
|
||||
}
|
||||
return ret_value;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: Wgettimeofday
|
||||
@ -764,8 +727,6 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
|
||||
/*
|
||||
* Unix: name[0] is a "/"
|
||||
* Windows: name[0-2] is "<drive letter>:\" or "<drive-letter>:/"
|
||||
* OpenVMS: <disk name>$<partition>:[path]<file name>
|
||||
* i.g. SYS$SYSUSERS:[LU.HDF5.SRC]H5system.c
|
||||
*/
|
||||
if(H5_CHECK_ABSOLUTE(name)) {
|
||||
if(NULL == (full_path = (char *)H5MM_strdup(name)))
|
||||
@ -786,7 +747,6 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
|
||||
* Windows: name[0-1] is "<drive-letter>:"
|
||||
* Get current working directory on the drive specified in NAME
|
||||
* Unix: does not apply
|
||||
* OpenVMS: does not apply
|
||||
*/
|
||||
if(H5_CHECK_ABS_DRIVE(name)) {
|
||||
drive = name[0] - 'A' + 1;
|
||||
@ -797,14 +757,13 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
|
||||
* Windows: name[0] is a '/' or '\'
|
||||
* Get current drive
|
||||
* Unix: does not apply
|
||||
* OpenVMS: does not apply
|
||||
*/
|
||||
else if(H5_CHECK_ABS_PATH(name) && (0 != (drive = HDgetdrive()))) {
|
||||
HDsnprintf(cwdpath, MAX_PATH_LEN, "%c:%c", (drive + 'A' - 1), name[0]);
|
||||
retcwd = cwdpath;
|
||||
HDstrncpy(new_name, &name[1], name_len);
|
||||
}
|
||||
/* totally relative for Unix, Windows, and OpenVMS: get current working directory */
|
||||
/* totally relative for Unix and Windows: get current working directory */
|
||||
else {
|
||||
retcwd = HDgetcwd(cwdpath, MAX_PATH_LEN);
|
||||
HDstrncpy(new_name, name, name_len);
|
||||
@ -823,26 +782,9 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
|
||||
HGOTO_ERROR(H5E_INTERNAL, H5E_NOSPACE, FAIL, "memory allocation failed")
|
||||
|
||||
HDstrncpy(full_path, cwdpath, cwdlen + 1);
|
||||
#ifdef H5_VMS
|
||||
/* If the file name contains relative path, cut off the beginning bracket. Also cut off the
|
||||
* ending bracket of CWDPATH to combine the full path name. i.g.
|
||||
* cwdpath = SYS$SYSUSERS:[LU.HDF5.TEST]
|
||||
* new_name = [.tmp]extlinks.h5
|
||||
* full_path = SYS$SYSUSERS:[LU.HDF5.TEST.tmp]extlinks.h5
|
||||
*/
|
||||
if(new_name[0] == '[') {
|
||||
char *tmp = new_name;
|
||||
|
||||
full_path[cwdlen - 1] = '\0';
|
||||
HDstrncat(full_path, ++tmp, HDstrlen(tmp));
|
||||
} /* end if */
|
||||
else
|
||||
HDstrncat(full_path, new_name, HDstrlen(new_name));
|
||||
#else
|
||||
if(!H5_CHECK_DELIMITER(cwdpath[cwdlen - 1]))
|
||||
HDstrncat(full_path, H5_DIR_SEPS, HDstrlen(H5_DIR_SEPS));
|
||||
HDstrncat(full_path, new_name, HDstrlen(new_name));
|
||||
#endif
|
||||
} /* end if */
|
||||
} /* end else */
|
||||
|
||||
|
@ -32,11 +32,7 @@ static char srcdir_path[1024] = "";
|
||||
static char srcdir_testpath[1024] = "";
|
||||
|
||||
/* Append the test file name to the srcdir path and return the whole string */
|
||||
#ifdef H5_VMS
|
||||
static const char *H5_get_srcdir_filename(char *filename)
|
||||
#else
|
||||
static const char *H5_get_srcdir_filename(const char *filename)
|
||||
#endif
|
||||
{
|
||||
const char *srcdir = HDgetenv("srcdir");
|
||||
|
||||
@ -46,19 +42,7 @@ static const char *H5_get_srcdir_filename(const char *filename)
|
||||
|
||||
/* Build path to test file */
|
||||
if((HDstrlen(srcdir) + HDstrlen(filename) + 2) < sizeof(srcdir_testpath)) {
|
||||
#ifdef H5_VMS
|
||||
HDstrcpy(srcdir_testpath, srcdir);
|
||||
if(filename[0] == '[') {
|
||||
char *tmp = filename;
|
||||
|
||||
srcdir_testpath[HDstrlen(srcdir) - 1] = '\0';
|
||||
HDstrcat(srcdir_testpath, ++tmp);
|
||||
} /* end if */
|
||||
else
|
||||
HDstrcat(srcdir_testpath, filename);
|
||||
#else
|
||||
HDsnprintf(srcdir_testpath, sizeof(srcdir_testpath), "%s/%s", srcdir, filename);
|
||||
#endif
|
||||
return(srcdir_testpath);
|
||||
} /* end if */
|
||||
else
|
||||
|
118
test/dt_arith.c
118
test/dt_arith.c
@ -58,10 +58,9 @@ const char *FILENAME[] = {
|
||||
};
|
||||
|
||||
/*
|
||||
* Count up or down depending on whether the machine is big endian, little
|
||||
* endian, or VAX (OpenVMS). If local variable `endian' is H5T_ORDER_BE then
|
||||
* the result will be I, otherwise the result will be Z-(I+1). VAX is printed
|
||||
* as little endian.
|
||||
* Count up or down depending on whether the machine is big endian or little
|
||||
* endian. If local variable `endian' is H5T_ORDER_BE then the result will
|
||||
* be I, otherwise the result will be Z-(I+1).
|
||||
*/
|
||||
#define ENDIAN(Z,I,E) (H5T_ORDER_BE==E?(I):(Z)-((I)+1))
|
||||
|
||||
@ -88,11 +87,6 @@ static int skip_overflow_tests_g = 0;
|
||||
#define HANDLE_SIGFPE
|
||||
#endif
|
||||
|
||||
/* OpenVMS doesn't have this feature. Make sure to disable it*/
|
||||
#ifdef H5_VMS
|
||||
#undef HANDLE_SIGFPE
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Decide what values of floating-point number we want to test. They are
|
||||
* 1 - normalized; 2 - denormalized; 3 - special.
|
||||
@ -2740,24 +2734,6 @@ my_isnan(dtype_t type, void *val)
|
||||
retval = 1;
|
||||
}
|
||||
|
||||
#ifdef H5_VMS
|
||||
/* For "float" and "double" on OpenVMS/Alpha, NaN is
|
||||
* actually a valid value of maximal value.*/
|
||||
if(!retval) {
|
||||
if (FLT_FLOAT==type) {
|
||||
float x;
|
||||
HDmemcpy(&x, val, sizeof(float));
|
||||
retval = (x==FLT_MAX || x==-FLT_MAX);
|
||||
} else if (FLT_DOUBLE==type) {
|
||||
double x;
|
||||
HDmemcpy(&x, val, sizeof(double));
|
||||
retval = (x==DBL_MAX || x==-DBL_MAX);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#endif /*H5_VMS*/
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
@ -2786,23 +2762,8 @@ my_isinf(int endian, unsigned char *val, size_t size,
|
||||
|
||||
bits = (unsigned char*)HDcalloc((size_t)1, size);
|
||||
|
||||
#ifdef H5_VMS
|
||||
if(H5T_ORDER_VAX==endian) {
|
||||
for (i = 0; i < size; i += 4) {
|
||||
bits[i] = val[(size-2)-i];
|
||||
bits[i+1] = val[(size-1)-i];
|
||||
|
||||
bits[(size-2)-i] = val[i];
|
||||
bits[(size-1)-i] = val[i+1];
|
||||
}
|
||||
} else {
|
||||
for (i=0; i<size; i++)
|
||||
bits[size-(i+1)] = *(val + ENDIAN(size,i,endian));
|
||||
}
|
||||
#else /*H5_VMS*/
|
||||
for (i=0; i<size; i++)
|
||||
bits[size-(i+1)] = *(val + ENDIAN(size, i, endian));
|
||||
#endif /*H5_VMS*/
|
||||
|
||||
if(H5T__bit_find(bits, mpos, msize, H5T_BIT_LSB, 1) < 0 &&
|
||||
H5T__bit_find(bits, epos, esize, H5T_BIT_LSB, 0) < 0)
|
||||
@ -2860,9 +2821,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
|
||||
unsigned char *hw=NULL; /*ptr to hardware-conv'd*/
|
||||
int underflow; /*underflow occurred */
|
||||
int overflow; /*overflow occurred */
|
||||
#ifdef H5_VMS
|
||||
int maximal; /*maximal value occurred, for VMS only. */
|
||||
#endif /* H5_VMS */
|
||||
int uflow=0; /*underflow debug counters*/
|
||||
size_t j, k; /*counters */
|
||||
int sendian; /* source type endianess */
|
||||
@ -2913,9 +2871,7 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
|
||||
* The remainder of this function is executed only by the child if
|
||||
* HANDLE_SIGFPE is defined.
|
||||
*/
|
||||
#ifndef H5_VMS
|
||||
HDsignal(SIGFPE,fpe_handler);
|
||||
#endif
|
||||
|
||||
/* What are the names of the source and destination types */
|
||||
if (H5Tequal(src, H5T_NATIVE_FLOAT)) {
|
||||
@ -3013,33 +2969,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
|
||||
switch (run_test) {
|
||||
case TEST_NOOP:
|
||||
case TEST_NORMAL:
|
||||
#ifdef H5_VMS
|
||||
if(src_type == FLT_FLOAT) {
|
||||
INIT_FP_NORM(float, FLT_MAX, FLT_MIN, FLT_MAX_10_EXP, FLT_MIN_10_EXP,
|
||||
src_size, dst_size, buf, saved, nelmts);
|
||||
} else if(src_type == FLT_DOUBLE && dst_type == FLT_FLOAT) {
|
||||
/*Temporary solution for VMS. Cap double values between maximal and minimal
|
||||
*destination values because VMS return exception when overflows or underflows.
|
||||
*Same below.*/
|
||||
INIT_FP_NORM(double, FLT_MAX, FLT_MIN, FLT_MAX_10_EXP, FLT_MIN_10_EXP,
|
||||
src_size, dst_size, buf, saved, nelmts);
|
||||
} else if(src_type == FLT_DOUBLE) {
|
||||
INIT_FP_NORM(double, DBL_MAX, DBL_MIN, DBL_MAX_10_EXP, DBL_MIN_10_EXP,
|
||||
src_size, dst_size, buf, saved, nelmts);
|
||||
#if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE && H5_SIZEOF_LONG_DOUBLE!=0
|
||||
} else if(src_type == FLT_LDOUBLE && dst_type == FLT_FLOAT) {
|
||||
INIT_FP_NORM(long double, FLT_MAX, FLT_MIN, FLT_MAX_10_EXP, FLT_MIN_10_EXP,
|
||||
src_size, dst_size, buf, saved, nelmts);
|
||||
} else if(src_type == FLT_LDOUBLE && dst_type == FLT_DOUBLE) {
|
||||
INIT_FP_NORM(long double, DBL_MAX, DBL_MIN, DBL_MAX_10_EXP, DBL_MIN_10_EXP,
|
||||
src_size, dst_size, buf, saved, nelmts);
|
||||
} else if(src_type == FLT_LDOUBLE) {
|
||||
INIT_FP_NORM(long double, LDBL_MAX, LDBL_MIN, LDBL_MAX_10_EXP, LDBL_MIN_10_EXP,
|
||||
src_size, dst_size, buf, saved, nelmts);
|
||||
#endif
|
||||
} else
|
||||
goto error;
|
||||
#else /*H5_VMS*/
|
||||
if(src_type == FLT_FLOAT) {
|
||||
INIT_FP_NORM(float, FLT_MAX, FLT_MIN, FLT_MAX_10_EXP, FLT_MIN_10_EXP,
|
||||
src_size, dst_size, buf, saved, nelmts);
|
||||
@ -3053,7 +2982,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
|
||||
#endif
|
||||
} else
|
||||
goto error;
|
||||
#endif /*H5_VMS*/
|
||||
|
||||
break;
|
||||
case TEST_DENORM:
|
||||
@ -3129,9 +3057,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
|
||||
hw = (unsigned char*)&hw_f;
|
||||
underflow = HDfabs(*((double*)aligned)) < FLT_MIN;
|
||||
overflow = HDfabs(*((double*)aligned)) > FLT_MAX;
|
||||
#ifdef H5_VMS
|
||||
maximal = HDfabs(*((double*)aligned)) == FLT_MAX;
|
||||
#endif
|
||||
} else if (FLT_DOUBLE==dst_type) {
|
||||
hw_d = *((double*)aligned);
|
||||
hw = (unsigned char*)&hw_d;
|
||||
@ -3149,17 +3074,11 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
|
||||
hw = (unsigned char*)&hw_f;
|
||||
underflow = HDfabsl(*((long double*)aligned)) < FLT_MIN;
|
||||
overflow = HDfabsl(*((long double*)aligned)) > FLT_MAX;
|
||||
#ifdef H5_VMS
|
||||
maximal = HDfabs(*((long double*)aligned)) == FLT_MAX;
|
||||
#endif
|
||||
} else if (FLT_DOUBLE==dst_type) {
|
||||
hw_d = *((long double*)aligned);
|
||||
hw = (unsigned char*)&hw_d;
|
||||
underflow = HDfabsl(*((long double*)aligned)) < DBL_MIN;
|
||||
overflow = HDfabsl(*((long double*)aligned)) > DBL_MAX;
|
||||
#ifdef H5_VMS
|
||||
maximal = HDfabs(*((long double*)aligned)) == DBL_MAX;
|
||||
#endif
|
||||
} else {
|
||||
hw_ld = *((long double*)aligned);
|
||||
hw = (unsigned char*)&hw_ld;
|
||||
@ -3194,17 +3113,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
|
||||
if (k==dst_size)
|
||||
continue; /*no error*/
|
||||
|
||||
#ifdef H5_VMS
|
||||
/* For "float" and "double" on OpenVMS/Alpha, NaN is
|
||||
* a valid value of maximal value.*/
|
||||
if (FLT_FLOAT==src_type &&
|
||||
my_isnan(src_type, saved+j*sizeof(float))) {
|
||||
continue;
|
||||
} else if (FLT_DOUBLE==src_type &&
|
||||
my_isnan(src_type, saved+j*sizeof(double))) {
|
||||
continue;
|
||||
}
|
||||
#endif /*H5_VMS*/
|
||||
|
||||
/*
|
||||
* Assume same if both results are NaN. There are many NaN bit
|
||||
@ -3262,11 +3170,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
|
||||
if (overflow && my_isinf(dendian, buf+j*sizeof(float),
|
||||
dst_size, dst_mpos, dst_msize, dst_epos, dst_esize))
|
||||
continue; /* all overflowed, no error */
|
||||
#ifdef H5_VMS
|
||||
if (maximal && my_isinf(dendian, buf+j*sizeof(float),
|
||||
dst_size, dst_mpos, dst_msize, dst_epos, dst_esize))
|
||||
continue; /* maximal value, no error */
|
||||
#endif /*H5_VMS*/
|
||||
check_mant[0] = HDfrexpf(x, check_expo+0);
|
||||
check_mant[1] = HDfrexpf(hw_f, check_expo+1);
|
||||
} else if (FLT_DOUBLE==dst_type) {
|
||||
@ -3278,11 +3181,6 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
|
||||
if (overflow && my_isinf(dendian, buf+j*sizeof(double),
|
||||
dst_size, dst_mpos, dst_msize, dst_epos, dst_esize))
|
||||
continue; /* all overflowed, no error */
|
||||
#ifdef H5_VMS
|
||||
if (maximal && my_isinf(dendian, buf+j*sizeof(double),
|
||||
dst_size, dst_mpos, dst_msize, dst_epos, dst_esize))
|
||||
continue; /* maximal value, no error */
|
||||
#endif /*H5_VMS*/
|
||||
check_mant[0] = HDfrexp(x, check_expo+0);
|
||||
check_mant[1] = HDfrexp(hw_d, check_expo+1);
|
||||
#if H5_SIZEOF_LONG_DOUBLE !=0 && (H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE)
|
||||
@ -4924,7 +4822,6 @@ run_fp_tests(const char *name)
|
||||
nerrors += test_conv_flt_1(name, TEST_NORMAL, H5T_NATIVE_LDOUBLE, H5T_NATIVE_DOUBLE);
|
||||
#endif
|
||||
|
||||
#ifndef H5_VMS
|
||||
/*Test denormalized values. TEST_DENORM indicates denormalized values.*/
|
||||
nerrors += test_conv_flt_1(name, TEST_DENORM, H5T_NATIVE_FLOAT, H5T_NATIVE_DOUBLE);
|
||||
nerrors += test_conv_flt_1(name, TEST_DENORM, H5T_NATIVE_DOUBLE, H5T_NATIVE_FLOAT);
|
||||
@ -4944,7 +4841,6 @@ run_fp_tests(const char *name)
|
||||
nerrors += test_conv_flt_1(name, TEST_SPECIAL, H5T_NATIVE_LDOUBLE, H5T_NATIVE_FLOAT);
|
||||
nerrors += test_conv_flt_1(name, TEST_SPECIAL, H5T_NATIVE_LDOUBLE, H5T_NATIVE_DOUBLE);
|
||||
#endif
|
||||
#endif /*H5_VMS*/
|
||||
|
||||
done:
|
||||
return nerrors;
|
||||
@ -5085,11 +4981,7 @@ run_fp_int_conv(const char *name)
|
||||
int nerrors = 0;
|
||||
int test_values;
|
||||
|
||||
#ifdef H5_VMS
|
||||
test_values = TEST_NORMAL;
|
||||
#else
|
||||
for(test_values = TEST_NORMAL; test_values <= TEST_SPECIAL; test_values++) {
|
||||
#endif /*H5_VMS*/
|
||||
|
||||
nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_SCHAR);
|
||||
nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_SCHAR);
|
||||
@ -5194,9 +5086,7 @@ run_fp_int_conv(const char *name)
|
||||
#endif /*H5_LDOUBLE_TO_LLONG_ACCURATE*/
|
||||
#endif
|
||||
#endif
|
||||
#ifndef H5_VMS
|
||||
} /* end for */
|
||||
#endif /* H5_VMS */
|
||||
|
||||
return nerrors;
|
||||
}
|
||||
@ -5248,10 +5138,8 @@ main(void)
|
||||
* for user-defined integer types */
|
||||
nerrors += test_derived_integer();
|
||||
|
||||
#ifndef H5_VMS
|
||||
/* Does floating point overflow generate a SIGFPE? */
|
||||
generates_sigfpe();
|
||||
#endif
|
||||
|
||||
/* Test degenerate cases */
|
||||
nerrors += run_fp_tests("noop");
|
||||
|
@ -3233,11 +3233,7 @@ test_compound_18(void)
|
||||
|
||||
/* Open Generated File */
|
||||
/* (generated with gen_bad_compound.c) */
|
||||
#ifdef H5_VMS
|
||||
if((file = H5Fopen(TESTFILE, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
|
||||
#else
|
||||
if((file = H5Fopen(testfile, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
|
||||
#endif
|
||||
|
||||
/* Try to open the datatype */
|
||||
H5E_BEGIN_TRY {
|
||||
|
@ -16418,9 +16418,7 @@ curr_test = FHEAP_TEST_NORMAL;
|
||||
nerrors += test_id_limits(fapl, &small_cparam);
|
||||
nerrors += test_filtered_create(fapl, &small_cparam);
|
||||
nerrors += test_size(fapl, &small_cparam);
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += test_reopen_hdr(fapl, &small_cparam);
|
||||
#endif /*H5_CANNOT_OPEN_TWICE*/
|
||||
#else /* QAK */
|
||||
HDfprintf(stderr, "Uncomment tests!\n");
|
||||
#endif /* QAK */
|
||||
|
@ -189,8 +189,6 @@ main(void)
|
||||
#if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS)
|
||||
SKIPPED();
|
||||
puts(" DLL will flush the file even when calling _exit, skip this test temporarily");
|
||||
#elif defined H5_VMS
|
||||
SKIPPED();
|
||||
#else
|
||||
H5_FAILED()
|
||||
goto error;
|
||||
@ -212,8 +210,6 @@ main(void)
|
||||
#if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS)
|
||||
SKIPPED();
|
||||
puts(" DLL will flush the file even when calling _exit, skip this test temporarily");
|
||||
#elif defined H5_VMS
|
||||
SKIPPED();
|
||||
#else
|
||||
H5_FAILED()
|
||||
goto error;
|
||||
|
@ -22,6 +22,10 @@
|
||||
* Run it on an OpenVMS, a little-endian, and a big-endian machine. Change the
|
||||
* output file names to vms_data.h5, le_data.h5, and be_data.h5, and put them
|
||||
* under hdf5/test/ directory.
|
||||
*
|
||||
* Note that we no longer support OpenVMS. The OpenVMS file will eventually
|
||||
* have to go away since we won't be able to re-create it but it's probably
|
||||
* worth keeping around for now.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -2995,9 +2995,7 @@ main(void)
|
||||
nerrors += test_main(file_id, fapl);
|
||||
nerrors += test_obj_ref(fapl);
|
||||
nerrors += test_reg_ref(fapl);
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += test_elinks(fapl);
|
||||
#endif /*H5_CANNOT_OPEN_TWICE*/
|
||||
|
||||
/* Close file */
|
||||
H5Fclose(file_id);
|
||||
|
@ -179,11 +179,7 @@ main(void)
|
||||
{
|
||||
const char *testfile = H5_get_srcdir_filename(TESTFILE); /* Corrected test file name */
|
||||
hid_t dset = -1;
|
||||
#ifdef H5_VMS
|
||||
file = H5Fopen(TESTFILE, H5F_ACC_RDONLY, H5P_DEFAULT);
|
||||
#else
|
||||
file = H5Fopen(testfile, H5F_ACC_RDONLY, H5P_DEFAULT);
|
||||
#endif
|
||||
if(file >= 0){
|
||||
if((dset = H5Dopen2(file, "/Dataset1", H5P_DEFAULT)) < 0)
|
||||
TEST_ERROR
|
||||
|
29
test/links.c
29
test/links.c
@ -36,13 +36,8 @@
|
||||
/* File for external link test. Created with gen_udlinks.c */
|
||||
#define LINKED_FILE "be_extlink2.h5"
|
||||
|
||||
#ifdef H5_VMS
|
||||
#define TMPDIR "[.tmp]"
|
||||
#define TMPDIR2 "[.tmp2]"
|
||||
#else /* H5_VMS */
|
||||
#define TMPDIR "tmp/"
|
||||
#define TMPDIR2 "tmp2/"
|
||||
#endif /* H5_VMS */
|
||||
|
||||
/* Symlinks for external link symlink test */
|
||||
#define SYMLINK1 TMPDIR "sym1.h5"
|
||||
@ -320,7 +315,7 @@ typedef struct {
|
||||
* Function: fix_ext_filename
|
||||
*
|
||||
* Purpose: Internal function to append path to file name. It handles
|
||||
* path name of Unix, Windows, and OpenVMS.
|
||||
* path name of Unix and Windows.
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
@ -333,17 +328,8 @@ fix_ext_filename(char *path_name, char *cwd, const char *file_name)
|
||||
{
|
||||
HDstrcpy(path_name, cwd);
|
||||
|
||||
#ifdef H5_VMS
|
||||
if(file_name[0] == '[') {
|
||||
char *tmp = file_name;
|
||||
path_name[strlen(cwd)-1] = '\0';
|
||||
HDstrcat(path_name, ++tmp);
|
||||
} else
|
||||
HDstrcat(path_name, file_name);
|
||||
#else
|
||||
HDstrcat(path_name, "/");
|
||||
HDstrcat(path_name, file_name);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -2877,7 +2863,6 @@ external_link_abs_mainpath(hid_t fapl, hbool_t new_format)
|
||||
* set up name for main file:
|
||||
* Linux: "/CWD/tmp/extlinks0"
|
||||
* Window: "<cur drive>:/CWD/tmp/extlinks0"
|
||||
* OpenVMS: "<cur disk>$<partition>:[CWD.tmp]extlinks0"
|
||||
*/
|
||||
fix_ext_filename(tmpname, cwdpath, FILENAME[13]);
|
||||
h5_fixname(tmpname, fapl, filename1, sizeof filename1);
|
||||
@ -6943,7 +6928,6 @@ external_file_cache(hid_t fapl, hbool_t new_format)
|
||||
/* Verify that all files are now closed */
|
||||
H5F_sfile_assert_num(0);
|
||||
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
/*
|
||||
* Test 5: 3 file cycle
|
||||
*/
|
||||
@ -7045,7 +7029,6 @@ external_file_cache(hid_t fapl, hbool_t new_format)
|
||||
|
||||
/* Verify that all files are now closed */
|
||||
H5F_sfile_assert_num(0);
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
|
||||
/* Close fapl */
|
||||
H5Pclose(my_fapl);
|
||||
@ -14580,15 +14563,11 @@ main(void)
|
||||
printf("\n---Testing without external file cache---\n");
|
||||
} /* end else */
|
||||
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += external_link_root(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
nerrors += external_link_path(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += external_link_self(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_pingpong(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_toomany(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
nerrors += external_link_dangling(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_recursive(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_query(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
@ -14596,9 +14575,7 @@ main(void)
|
||||
nerrors += external_link_unlink_dense(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_move(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_ride(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += external_link_closing(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
nerrors += external_link_endian(new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_link_strong(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
|
||||
@ -14628,9 +14605,7 @@ main(void)
|
||||
nerrors += external_symlink(env_h5_drvr, my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_copy_invalid_object(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += external_dont_fail_to_source(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += external_open_twice(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
} /* end for */
|
||||
|
||||
/* These tests assume that external links are a form of UD links,
|
||||
@ -14654,9 +14629,7 @@ main(void)
|
||||
nerrors += obj_visit_by_name(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += obj_visit_stop(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
nerrors += link_filters(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += obj_exists(my_fapl, new_format) < 0 ? 1 : 0;
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
|
||||
/* Keep this test last, it's testing files that are used above */
|
||||
/* do not do this for files used by external link tests */
|
||||
|
@ -25,11 +25,7 @@
|
||||
#include "H5Iprivate.h" /* IDs */
|
||||
#include "H5Lprivate.h" /* Links */
|
||||
|
||||
#ifdef H5_VMS
|
||||
#define TMPDIR "[.tmp]"
|
||||
#else /* H5_VMS */
|
||||
#define TMPDIR "tmp/"
|
||||
#endif /* H5_VMS */
|
||||
#define NAME_BUF_SIZE 1024
|
||||
|
||||
const char *FILENAME[] = {
|
||||
|
@ -12276,9 +12276,7 @@ main(void)
|
||||
nerrors += test_copy_group_wide_loop(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
|
||||
nerrors += test_copy_group_links(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
|
||||
nerrors += test_copy_soft_link(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
nerrors += test_copy_ext_link(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
nerrors += test_copy_exist(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
|
||||
nerrors += test_copy_path(fcpl_src, fcpl_dst, src_fapl, dst_fapl);
|
||||
|
||||
|
@ -57,8 +57,6 @@ const char *FILENAME[] = {
|
||||
/* The group_old.h5 is generated from gen_old_fill.c in HDF5 'test' directory
|
||||
* for version 1.6. To get this data file, simply compile gen_old_group.c with
|
||||
* the HDF5 library in that branch and run it. */
|
||||
/* I changed the name "group_old.h5.copy" to "group_old_copy.h5" because OpenVMS
|
||||
* doesn't like any file name with more than one ".". SLU 2010/12/13 */
|
||||
#define FILE_OLD_GROUPS "group_old.h5"
|
||||
#define FILE_OLD_GROUPS_COPY "group_old_copy.h5"
|
||||
|
||||
|
@ -60,13 +60,6 @@ void test_exit_definitions(void);
|
||||
* Programmer: Albert Cheng
|
||||
* September 25, 2001
|
||||
*
|
||||
* Modifications:
|
||||
* Raymond Lu
|
||||
* 16 Dec 2009
|
||||
* On Boeing's OpenVMS, the value of EXIT_FAILURE is 268435458.
|
||||
* (The test is in test_exit_definitions.) Their document says
|
||||
* it's supposed to be 2. I commented it out for OpenVMS for
|
||||
* further consideration.
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
@ -75,9 +68,7 @@ test_configure(void)
|
||||
/* Output message about test being performed */
|
||||
MESSAGE(5, ("Testing configure definitions\n"));
|
||||
test_config_ctypes();
|
||||
#ifndef H5_VMS
|
||||
test_exit_definitions();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
14
test/tfile.c
14
test/tfile.c
@ -181,19 +181,15 @@ test_file_create(void)
|
||||
* try to create the same file with H5F_ACC_TRUNC. This should fail
|
||||
* because fid1 is the same file and is currently open.
|
||||
*/
|
||||
#ifndef H5_HAVE_FILE_VERSIONS
|
||||
fid2 = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
VERIFY(fid2, FAIL, "H5Fcreate");
|
||||
#endif /*H5_DONT_HAVE_FILE_VERSIONS*/
|
||||
|
||||
/* Close all files */
|
||||
ret = H5Fclose(fid1);
|
||||
CHECK(ret, FAIL, "H5Fclose");
|
||||
|
||||
#ifndef H5_HAVE_FILE_VERSIONS
|
||||
ret = H5Fclose(fid2);
|
||||
VERIFY(ret, FAIL, "H5Fclose"); /*file should not have been open */
|
||||
#endif /*H5_HAVE_FILE_VERSIONS*/
|
||||
|
||||
/*
|
||||
* Try again with H5F_ACC_EXCL. This should fail because the file already
|
||||
@ -206,7 +202,6 @@ test_file_create(void)
|
||||
fid1 = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
CHECK(fid1, FAIL, "H5Fcreate");
|
||||
|
||||
#ifndef H5_HAVE_FILE_VERSIONS
|
||||
/*
|
||||
* Try to truncate first file again. This should fail because fid1 is the
|
||||
* same file and is currently open.
|
||||
@ -220,7 +215,6 @@ test_file_create(void)
|
||||
*/
|
||||
fid2 = H5Fcreate(FILE1, H5F_ACC_EXCL, H5P_DEFAULT, H5P_DEFAULT);
|
||||
VERIFY(fid2, FAIL, "H5Fcreate");
|
||||
#endif /*H5_HAVE_FILE_VERSIONS*/
|
||||
|
||||
/* Get the file-creation template */
|
||||
tmpl1 = H5Fget_create_plist(fid1);
|
||||
@ -1370,7 +1364,6 @@ test_file_perm(void)
|
||||
ret = H5Dclose(dset);
|
||||
CHECK(ret, FAIL, "H5Dclose");
|
||||
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
/* Open the file (with read-only permission) */
|
||||
filero = H5Fopen(FILE2, H5F_ACC_RDONLY, H5P_DEFAULT);
|
||||
CHECK(filero, FAIL, "H5Fopen");
|
||||
@ -1387,7 +1380,6 @@ test_file_perm(void)
|
||||
|
||||
ret = H5Fclose(filero);
|
||||
CHECK(ret, FAIL, "H5Fclose");
|
||||
#endif /*H5_CANNOT_OPEN_TWICE*/
|
||||
|
||||
ret = H5Fclose(file);
|
||||
CHECK(ret, FAIL, "H5Fclose");
|
||||
@ -2364,7 +2356,7 @@ test_rw_noupdate(void)
|
||||
/* Check That Timestamps Are Equal */
|
||||
if(diff > 0.0F) {
|
||||
/* Output message about test being performed */
|
||||
MESSAGE(1, ("Testing to verify that nothing is written if nothing is changed: This test is skipped on this system because the modification time from stat is the same as the last access time (We know OpenVMS behaves in this way).\n"));
|
||||
MESSAGE(1, ("Testing to verify that nothing is written if nothing is changed: This test is skipped on this system because the modification time from stat is the same as the last access time.\n"));
|
||||
} /* end if */
|
||||
else {
|
||||
hid_t file_id; /* HDF5 File ID */
|
||||
@ -3660,16 +3652,12 @@ test_file(void)
|
||||
test_file_freespace(); /* Test file free space information */
|
||||
test_file_ishdf5(); /* Test detecting HDF5 files correctly */
|
||||
test_file_open_dot(); /* Test opening objects with "." for a name */
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
test_file_open_overlap(); /* Test opening files in an overlapping manner */
|
||||
#endif /*H5_CANNOT_OPEN_TWICE*/
|
||||
test_file_getname(); /* Test basic H5Fget_name() functionality */
|
||||
#ifndef H5_CANNOT_OPEN_TWICE
|
||||
test_file_double_root_open(); /* Test opening root group from two files works properly */
|
||||
test_file_double_group_open(); /* Test opening same group from two files works properly */
|
||||
test_file_double_dataset_open(); /* Test opening same dataset from two files works properly */
|
||||
test_file_double_datatype_open(); /* Test opening same named datatype from two files works properly */
|
||||
#endif /*H5_CANNOT_OPEN_TWICE*/
|
||||
test_userblock_file_size(); /* Tests that files created with a userblock have the correct size */
|
||||
test_cached_stab_info(); /* Tests that files are created with cached stab info in the superblock */
|
||||
test_rw_noupdate(); /* Test to ensure that RW permissions don't write the file unless dirtied */
|
||||
|
@ -1355,9 +1355,7 @@ test_h5o(void)
|
||||
test_h5o_link(); /* Test object link routine */
|
||||
test_h5o_comment(); /* Test routines for comment */
|
||||
test_h5o_comment_by_name(); /* Test routines for comment by name */
|
||||
#ifndef H5_CANNOT_OPEN_TWICE /* OpenVMS can't open a file twice */
|
||||
test_h5o_getinfo_same_file(); /* Test info for objects in the same file */
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
} /* test_h5o() */
|
||||
|
||||
|
||||
|
@ -3988,10 +3988,7 @@ test_sohm(void)
|
||||
test_sohm_delete(); /* Test deleting shared messages */
|
||||
test_sohm_delete_revert(); /* Test that a file with SOHMs becomes an
|
||||
* empty file again when they are deleted. */
|
||||
#ifndef H5_CANNOT_OPEN_TWICE /* On VMS this test fails since it tries to
|
||||
open target file the second time */
|
||||
test_sohm_extlink(); /* Test SOHMs when external links are used */
|
||||
#endif /* H5_CANNOT_OPEN_TWICE */
|
||||
|
||||
test_sohm_extend_dset(); /* Test extending shared datasets */
|
||||
test_sohm_external_dtype(); /* Test using datatype in another file */
|
||||
|
@ -6090,28 +6090,6 @@ my_isnan(dtype_t type, void *val)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef H5_VMS
|
||||
/* For "float" and "double" on OpenVMS/Alpha, NaN is
|
||||
* actually a valid value of maximal value.*/
|
||||
if(!retval)
|
||||
{
|
||||
if (FLT_FLOAT==type)
|
||||
{
|
||||
float x;
|
||||
|
||||
HDmemcpy(&x, val, sizeof(float));
|
||||
retval = (x==FLT_MAX || x==-FLT_MAX);
|
||||
} else if (FLT_DOUBLE==type) {
|
||||
double x;
|
||||
|
||||
HDmemcpy(&x, val, sizeof(double));
|
||||
retval = (x==DBL_MAX || x==-DBL_MAX);
|
||||
} else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
#endif /*H5_VMS*/
|
||||
h5difftrace("my_isnan finish\n");
|
||||
|
||||
return retval;
|
||||
|
@ -860,11 +860,7 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
|
||||
else
|
||||
tempchar = (tempchar >> packed_data_offset) & packed_data_mask;
|
||||
}
|
||||
#ifdef H5_VMS
|
||||
h5tools_str_append(str, OPT(info->fmt_schar, "%hd"), tempchar);
|
||||
#else
|
||||
h5tools_str_append(str, OPT(info->fmt_schar, "%hhd"), tempchar);
|
||||
#endif
|
||||
}
|
||||
} /* end if (sizeof(char) == nsize) */
|
||||
else if (sizeof(int) == nsize) {
|
||||
|
@ -322,18 +322,7 @@ H5_DLL int HDrand(void);
|
||||
#define HDread(F,M,Z) read(F,M,Z)
|
||||
#define HDreaddir(D) readdir(D)
|
||||
#define HDrealloc(M,Z) realloc(M,Z)
|
||||
#ifdef H5_VMS
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
int HDremove_all(const char * fname);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#define HDremove(S) HDremove_all(S)
|
||||
#else
|
||||
#define HDremove(S) remove(S)
|
||||
#endif /*H5_VMS*/
|
||||
#define HDrename(OLD,NEW) rename(OLD,NEW)
|
||||
#define HDrewind(F) rewind(F)
|
||||
#define HDrewinddir(D) rewinddir(D)
|
||||
|
@ -30,15 +30,6 @@
|
||||
|
||||
#include <zlib.h>
|
||||
|
||||
#ifdef VMS
|
||||
# define unlink delete
|
||||
#endif /* VMS */
|
||||
|
||||
#ifdef RISCOS
|
||||
# define unlink remove
|
||||
# define fileno(file) file->__file
|
||||
#endif /* RISCOS */
|
||||
|
||||
#define ONE_KB 1024
|
||||
#define ONE_MB (ONE_KB * ONE_KB)
|
||||
#define ONE_GB (ONE_MB * ONE_KB)
|
||||
|
Loading…
x
Reference in New Issue
Block a user