[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:
Dana Robinson 2015-08-24 15:19:39 -05:00
parent 76d7d3cb97
commit 2e6100fb23
37 changed files with 27 additions and 647 deletions

View File

@ -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

View File

@ -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/.

View File

@ -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

View File

@ -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);
}

View File

@ -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();

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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

View File

@ -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() */

View File

@ -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() */

View File

@ -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;

View File

@ -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*/)

View File

@ -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*/
}
/*

View File

@ -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 ':'

View File

@ -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 */

View File

@ -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

View File

@ -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");

View File

@ -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 {

View File

@ -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 */

View File

@ -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;

View File

@ -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>

View File

@ -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);

View File

@ -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

View File

@ -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 */

View File

@ -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[] = {

View File

@ -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);

View File

@ -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"

View File

@ -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
}

View File

@ -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 */

View File

@ -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() */

View File

@ -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 */

View 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;

View File

@ -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) {

View File

@ -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)

View File

@ -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)