summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJake Smith <jake.smith@hdfgroup.org>2019-08-14 20:54:10 (GMT)
committerJake Smith <jake.smith@hdfgroup.org>2019-08-14 20:54:10 (GMT)
commit396edbe6bf053b9acc432b45eb47c3bfbdbbefed (patch)
tree1b1638303a96d5cf19622498cd10634aa357e462 /test
parent47e3d99f65b5f610c3de61c3e9060b6b30b71ca0 (diff)
parent2e5cd3d2b2d953420252c80ab5e32ac95ac0c5b3 (diff)
downloadhdf5-396edbe6bf053b9acc432b45eb47c3bfbdbbefed.zip
hdf5-396edbe6bf053b9acc432b45eb47c3bfbdbbefed.tar.gz
hdf5-396edbe6bf053b9acc432b45eb47c3bfbdbbefed.tar.bz2
Merge pull request #1872 in HDFFV/hdf5 from ~JAKE.SMITH/hdf5:bugfix/ros3_hdfs_warns_squashed to develop
* commit '2e5cd3d2b2d953420252c80ab5e32ac95ac0c5b3': Fix compiler warnings with diabled ROS3 and HDFS VFDs. Fix misuse of [HD]strncpy and [HD]snprintf. Minor formatting changes. Fix test cleanup issue with java groups example.
Diffstat (limited to 'test')
-rw-r--r--test/hdfs.c443
-rw-r--r--test/ros3.c170
-rw-r--r--test/s3comms.c215
3 files changed, 367 insertions, 461 deletions
diff --git a/test/hdfs.c b/test/hdfs.c
index 57dbac9..ab39da6 100644
--- a/test/hdfs.c
+++ b/test/hdfs.c
@@ -11,9 +11,9 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
- * Read-Only HDFS Virtual File Driver (VFD)
+ * Read-Only HDFS Virtual File Driver (VFD)
*
- * Purpose:
+ * Purpose:
*
* Verify behavior for Read-Only HDFS VFD.
*
@@ -27,11 +27,10 @@
#include "H5FDhdfs.h" /* this file driver's utilities */
+#ifdef H5_HAVE_LIBHDFS
#define HDFS_TEST_DEBUG 0
#define HDFS_TEST_MAX_BUF_SIZE 256
-#if 0
-#define S3_TEST_MAX_URL_SIZE 256
-#endif /* s3comms relic */
+#endif /* H5_HAVE_LIBHDFS */
/*****************************************************************************
*
@@ -39,7 +38,7 @@
*
* Purpose:
*
- * 1) Upon test failure, goto-jump to single-location teardown in test
+ * 1) Upon test failure, goto-jump to single-location teardown in test
* function. E.g., `error:` (consistency with HDF corpus) or
* `failed:` (reflects purpose).
* >>> using "error", in part because `H5E_BEGIN_TRY` expects it.
@@ -48,22 +47,22 @@
* requires reading of entire line to know whether this if/call is
* part of the test setup, test operation, or a test unto itself.
* 3) Provide testing macros with optional user-supplied failure message;
- * if not supplied (NULL), generate comparison output in the spirit of
+ * if not supplied (NULL), generate comparison output in the spirit of
* test-driven development. E.g., "expected 5 but was -3"
* User messages clarify test's purpose in code, encouraging description
* without relying on comments.
* 4) Configurable expected-actual order in generated comparison strings.
- * Some prefer `VERIFY(expected, actual)`, others
+ * Some prefer `VERIFY(expected, actual)`, others
* `VERIFY(actual, expected)`. Provide preprocessor ifdef switch
* to satifsy both parties, assuming one paradigm per test file.
* (One could #undef and redefine the flag through the file as desired,
* but _why_.)
*
- * Provided as courtesy, per consideration for inclusion in the library
+ * Provided as courtesy, per consideration for inclusion in the library
* proper.
*
* Macros:
- *
+ *
* JSVERIFY_EXP_ACT - ifdef flag, configures comparison order
* FAIL_IF() - check condition
* FAIL_UNLESS() - check _not_ condition
@@ -80,8 +79,8 @@
/*----------------------------------------------------------------------------
*
* ifdef flag: JSVERIFY_EXP_ACT
- *
- * JSVERIFY macros accept arguments as (EXPECTED, ACTUAL[, reason])
+ *
+ * JSVERIFY macros accept arguments as (EXPECTED, ACTUAL[, reason])
* default, if this is undefined, is (ACTUAL, EXPECTED[, reason])
*
*----------------------------------------------------------------------------
@@ -114,10 +113,10 @@
*
* Macro: FAIL_IF()
*
- * Purpose:
+ * Purpose:
*
* Make tests more accessible and less cluttered than
- * `if (thing == otherthing()) TEST_ERROR`
+ * `if (thing == otherthing()) TEST_ERROR`
* paradigm.
*
* The following lines are roughly equivalent:
@@ -148,7 +147,7 @@ if (condition) { \
*
* TEST_ERROR wrapper to reduce cognitive overhead from "negative tests",
* e.g., "a != b".
- *
+ *
* Opposite of FAIL_IF; fails if the given condition is _not_ true.
*
* `FAIL_IF( 5 != my_op() )`
@@ -254,10 +253,10 @@ if (!(condition)) { \
*
* Macro: JSVERIFY()
*
- * Purpose:
+ * Purpose:
*
* Verify that two long integers are equal.
- * If unequal, print failure message
+ * If unequal, print failure message
* (with `reason`, if not NULL; expected/actual if NULL)
* and jump to `error` at end of function
*
@@ -277,10 +276,10 @@ if ((long)(actual) != (long)(expected)) { \
*
* Macro: JSVERIFY_NOT()
*
- * Purpose:
+ * Purpose:
*
* Verify that two long integers are _not_ equal.
- * If equal, print failure message
+ * If equal, print failure message
* (with `reason`, if not NULL; expected/actual if NULL)
* and jump to `error` at end of function
*
@@ -300,10 +299,10 @@ if ((long)(actual) == (long)(expected)) { \
*
* Macro: JSVERIFY_STR()
*
- * Purpose:
+ * Purpose:
*
* Verify that two strings are equal.
- * If unequal, print failure message
+ * If unequal, print failure message
* (with `reason`, if not NULL; expected/actual if NULL)
* and jump to `error` at end of function
*
@@ -319,8 +318,8 @@ if (strcmp((actual), (expected)) != 0) { \
} /* JSVERIFY_STR */
-#else
-/* JSVERIFY_EXP_ACT not defined
+#else
+/* JSVERIFY_EXP_ACT not defined
*
* Repeats macros above, but with actual/expected parameters reversed.
*/
@@ -373,23 +372,30 @@ if (strcmp((actual), (expected)) != 0) { \
* OTHER MACROS AND DEFINITIONS *
********************************/
-/* copied from src/hdfs.c
+/* copied from src/hdfs.c
*/
+#ifdef H5_HAVE_LIBHDFS
#define MAXADDR (((haddr_t)1<<(8*sizeof(HDoff_t)-1))-1)
-#define MAX_HDFS_NAMENODE_NAME 128
+#endif /* H5_HAVE_LIBHDFS */
+
+#define HDFS_NAMENODE_NAME_MAX_SIZE 128
/*******************************
* FILE-LOCAL GLOBAL VARIABLES *
*******************************/
+
+#ifdef H5_HAVE_LIBHDFS
static const char filename_missing[] = "/tmp/missing.txt";
static const char filename_bard[] = "/tmp/t8.shakespeare.txt";
static const char filename_raven[] = "/tmp/Poe_Raven.txt";
static const char filename_example_h5[] = "/tmp/t.h5";
+#endif /* H5_HAVE_LIBHDFS */
+
static H5FD_hdfs_fapl_t default_fa = {
1, /* fa version */
"localhost", /* namenode name */
0, /* namenode port */
- "", /* user name */
+ "", /* user name */
"", /* kerberos path */
1024, /* buffer size */
};
@@ -403,7 +409,7 @@ static H5FD_hdfs_fapl_t default_fa = {
*
* Function: test_fapl_config_validation()
*
- * Purpose:
+ * Purpose:
*
* Test data consistency of fapl configuration.
* Tests `H5FD_hdfs_validate_config` indirectly through `H5Pset_fapl_hdfs`.
@@ -522,7 +528,7 @@ test_fapl_config_validation(void)
for (i = 0; i < ncases; i++) {
/*---------------
- * per-test setup
+ * per-test setup
*---------------
*/
case_ptr = &cases_arr[i];
@@ -535,7 +541,7 @@ test_fapl_config_validation(void)
*-----------------------------------
*/
H5E_BEGIN_TRY {
- /* `H5FD_hdfs_validate_config(...)` is static/private
+ /* `H5FD_hdfs_validate_config(...)` is static/private
* to src/hdfs.c and cannot (and should not?) be tested directly?
* Instead, validate config through public api.
*/
@@ -543,7 +549,7 @@ test_fapl_config_validation(void)
} H5E_END_TRY;
JSVERIFY( case_ptr->expected, success, case_ptr->msg )
-
+
/* Make sure we can get back what we put in.
* Only valid if the fapl configuration does not result in error.
*/
@@ -566,7 +572,7 @@ test_fapl_config_validation(void)
"streambuffer size mismatch" )
JSVERIFY_STR( config.namenode_name,
fa_fetch.namenode_name,
- NULL )
+ NULL )
JSVERIFY_STR( config.user_name,
fa_fetch.user_name,
NULL )
@@ -599,7 +605,7 @@ error:
}
return 1;
-} /* test_fapl_config_validation */
+} /* end test_fapl_config_validation() */
/*-------------------------------------------------------------------------
@@ -608,7 +614,7 @@ error:
*
* Purpose: Tests the file handle interface for the HDFS driver.
*
- * For now, test only fapl & flags. Extend as the
+ * For now, test only fapl & flags. Extend as the
* work on the VFD continues.
*
* Return: Success: 0
@@ -642,7 +648,7 @@ test_hdfs_fapl(void)
TESTING("HDFS fapl ");
- /* Set property list and file name for HDFS driver.
+ /* Set property list and file name for HDFS driver.
*/
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
FAIL_IF( fapl_id < 0 )
@@ -654,12 +660,12 @@ test_hdfs_fapl(void)
/****************
* Check that the VFD feature flags are correct
- * SPEC MAY CHANGE
+ * SPEC MAY CHANGE
******************/
FAIL_IF( H5FDdriver_query(driver_id, &driver_flags) < 0 )
- JSVERIFY_NOT( 0, (driver_flags & H5FD_FEAT_DATA_SIEVE),
+ JSVERIFY_NOT( 0, (driver_flags & H5FD_FEAT_DATA_SIEVE),
"bit(s) in `driver_flags` must align with "
"H5FD_FEAT_DATA_SIEVE" )
@@ -676,14 +682,14 @@ error:
return 1;
-} /* test_hdfs_fapl() */
+} /* end test_hdfs_fapl() */
/*---------------------------------------------------------------------------
*
* Function: test_vfd_open()
*
- * Purpose:
+ * Purpose:
*
* Demonstrate/specify VFD-level "Open" failure cases
*
@@ -700,6 +706,16 @@ error:
static int
test_vfd_open(void)
{
+
+#ifndef H5_HAVE_LIBHDFS
+ TESTING("HDFS VFD-level open");
+ SKIPPED();
+ puts(" HDFS VFD is not enabled");
+ fflush(stdout);
+ return 0;
+
+#else
+
/*********************
* test-local macros *
*********************/
@@ -709,7 +725,6 @@ test_vfd_open(void)
#define FAPL_UNCONFIGURED -3 /* H5P_FILE_ACCESS */
#define FAPL_HDFS -4
-#ifdef H5_HAVE_LIBHDFS
/*************************
* test-local structures *
*************************/
@@ -799,21 +814,14 @@ test_vfd_open(void)
FALSE,
},
};
-#endif /* H5_HAVE_LIBHDFS */
+ unsigned i = 0;
+ unsigned failing_conditions_count = 10;
H5FD_t *fd = NULL;
hid_t fapl_hdfs = -1;
hid_t fapl_unconfigured = -1;
- unsigned i = 0;
- unsigned failing_conditions_count = 10;
TESTING("HDFS VFD-level open");
-#ifndef H5_HAVE_LIBHDFS
- SKIPPED();
- puts(" HDFS VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
fapl_unconfigured = H5Pcreate(H5P_FILE_ACCESS);
FAIL_IF( fapl_unconfigured < 0 )
@@ -833,10 +841,13 @@ test_vfd_open(void)
fd = NULL;
- if (T.which_fapl == FAPL_UNCONFIGURED)
+ if (T.which_fapl == FAPL_UNCONFIGURED) {
fapl_id = fapl_unconfigured;
- else if (T.which_fapl == FAPL_HDFS)
+ }
+ else
+ if (T.which_fapl == FAPL_HDFS) {
fapl_id = fapl_hdfs;
+ }
#if HDFS_TEST_DEBUG
HDfprintf(stderr, "testing: %s\n", T.message);
@@ -852,10 +863,11 @@ test_vfd_open(void)
HDfprintf(stderr, "\n!!!!! WARNING !!!!!\n" \
" Successful open of file on local system " \
"with non-HDFS VFD.\n");
- JSVERIFY(SUCCEED, H5FDclose(fd),
+ JSVERIFY(SUCCEED, H5FDclose(fd),
"unable to close errant open");
fd = NULL;
- } else {
+ }
+ else {
JSVERIFY(1, 0, T.message); /* print message and fail */
}
}
@@ -867,14 +879,14 @@ test_vfd_open(void)
HDfprintf(stderr, "nominal open\n");
#endif /* HDFS_TEST_DEBUG */
- /* finally, show that a file can be opened
+ /* finally, show that a file can be opened
*/
fd = H5FDopen(
- filename_bard,
- H5F_ACC_RDONLY,
- fapl_hdfs,
+ filename_bard,
+ H5F_ACC_RDONLY,
+ fapl_hdfs,
MAXADDR);
- FAIL_IF( NULL == fd )
+ FAIL_IF( NULL == fd )
/************
* TEARDOWN *
@@ -895,20 +907,23 @@ test_vfd_open(void)
PASSED();
return 0;
-#endif /* H5_HAVE_LIBHDFS */
error:
+
/***********
* CLEANUP *
***********/
- if (fd)
- (void)H5FDclose(fd);
+ if (fd) {
+ (void)H5FDclose(fd);
+ }
H5E_BEGIN_TRY {
- if (fapl_hdfs >= 0)
+ if (fapl_hdfs >= 0) {
(void)H5Pclose(fapl_hdfs);
- if (fapl_unconfigured >= 0)
+ }
+ if (fapl_unconfigured >= 0) {
(void)H5Pclose(fapl_unconfigured);
+ }
} H5E_END_TRY;
return 1;
@@ -917,14 +932,16 @@ error:
#undef FAPL_UNCONFIGURED
#undef FAPL_HDFS
-} /* test_vfd_open */
+#endif /* H5_HAVE_LIBHDFS */
+
+} /* end test_vfd_open() */
/*---------------------------------------------------------------------------
*
* Function: test_eof_eoa()
*
- * Purpose:
+ * Purpose:
*
* Demonstrate behavior of get_eof, get_eoa, and set_eoa.
*
@@ -941,6 +958,15 @@ error:
static int
test_eof_eoa(void)
{
+#ifndef H5_HAVE_LIBHDFS
+ TESTING("HDFS eof/eoa gets and sets");
+ SKIPPED();
+ puts(" HDFS VFD is not enabled");
+ fflush(stdout);
+ return 0;
+
+#else
+
/*********************
* test-local macros *
*********************/
@@ -958,16 +984,10 @@ test_eof_eoa(void)
TESTING("HDFS eof/eoa gets and sets");
-#ifndef H5_HAVE_LIBHDFS
- SKIPPED();
- puts(" HDFS VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
/*********
* SETUP *
*********/
-
+
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
FAIL_IF( 0 > fapl_id )
FAIL_IF( FAIL == H5Pset_fapl_hdfs(fapl_id, &default_fa) )
@@ -990,31 +1010,31 @@ test_eof_eoa(void)
H5FDget_eof(fd_shakespeare, H5FD_MEM_DRAW),
"mismatch between DEFAULT and RAW memory types" )
JSVERIFY( 0,
- H5FDget_eoa(fd_shakespeare, H5FD_MEM_DEFAULT),
+ H5FDget_eoa(fd_shakespeare, H5FD_MEM_DEFAULT),
"EoA should be unset by H5FDopen" )
/* set EoA below EoF
*/
- JSVERIFY( SUCCEED,
- H5FDset_eoa(fd_shakespeare, H5FD_MEM_DEFAULT, 44442202),
+ JSVERIFY( SUCCEED,
+ H5FDset_eoa(fd_shakespeare, H5FD_MEM_DEFAULT, 44442202),
"unable to set EoA (lower)" )
- JSVERIFY( 5458199,
- H5FDget_eof(fd_shakespeare, H5FD_MEM_DEFAULT),
+ JSVERIFY( 5458199,
+ H5FDget_eof(fd_shakespeare, H5FD_MEM_DEFAULT),
"EoF changed" )
- JSVERIFY( 44442202,
- H5FDget_eoa(fd_shakespeare, H5FD_MEM_DEFAULT),
+ JSVERIFY( 44442202,
+ H5FDget_eoa(fd_shakespeare, H5FD_MEM_DEFAULT),
"EoA unchanged" )
/* set EoA above EoF
*/
- JSVERIFY( SUCCEED,
- H5FDset_eoa(fd_shakespeare, H5FD_MEM_DEFAULT, 6789012),
+ JSVERIFY( SUCCEED,
+ H5FDset_eoa(fd_shakespeare, H5FD_MEM_DEFAULT, 6789012),
"unable to set EoA (higher)" )
- JSVERIFY( 5458199,
- H5FDget_eof(fd_shakespeare, H5FD_MEM_DEFAULT),
+ JSVERIFY( 5458199,
+ H5FDget_eof(fd_shakespeare, H5FD_MEM_DEFAULT),
"EoF changed" )
- JSVERIFY( 6789012,
- H5FDget_eoa(fd_shakespeare, H5FD_MEM_DEFAULT),
+ JSVERIFY( 6789012,
+ H5FDget_eoa(fd_shakespeare, H5FD_MEM_DEFAULT),
"EoA unchanged" )
/************
@@ -1029,9 +1049,9 @@ test_eof_eoa(void)
PASSED();
return 0;
-#endif /* H5_HAVE_LIBHDFS */
error:
+
/***********
* CLEANUP *
***********/
@@ -1039,7 +1059,7 @@ error:
if (fd_shakespeare != NULL) {
(void)H5FDclose(fd_shakespeare);
}
- if (fapl_id >= 0) {
+ if (fapl_id >= 0) {
H5E_BEGIN_TRY {
(void)H5Pclose(fapl_id);
} H5E_END_TRY;
@@ -1047,15 +1067,17 @@ error:
return 1;
-} /* test_eof_eoa */
+#endif /* H5_HAVE_LIBHDFS */
+
+} /* end test_eof_eoa() */
/*-----------------------------------------------------------------------------
*
* Function: test_H5FDread_without_eoa_set_fails()
- *
+ *
* Purpose:
- *
+ *
* Demonstrate a not-obvious constraint by the library, preventing
* file read before EoA is set
*
@@ -1067,26 +1089,27 @@ error:
static int
test_H5FDread_without_eoa_set_fails(void)
{
-#ifdef H5_HAVE_LIBHDFS
+#ifndef H5_HAVE_LIBHDFS
+ TESTING("HDFS VFD read-eoa temporal coupling library limitation");
+ SKIPPED();
+ puts(" HDFS VFD is not enabled");
+ fflush(stdout);
+ return 0;
+
+#else
+
char buffer[HDFS_TEST_MAX_BUF_SIZE];
unsigned int i = 0;
-#endif /* H5_HAVE_LIBHDFS */
H5FD_t *file_shakespeare = NULL;
hid_t fapl_id = -1;
TESTING("HDFS VFD read-eoa temporal coupling library limitation");
-#ifndef H5_HAVE_LIBHDFS
- SKIPPED();
- puts(" HDFS VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
/*********
* SETUP *
*********/
- /* create HDFS fapl
+ /* create HDFS fapl
*/
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
FAIL_IF( fapl_id < 0 )
@@ -1137,9 +1160,9 @@ test_H5FDread_without_eoa_set_fails(void)
PASSED();
return 0;
-#endif /* H5_HAVE_LIBHDFS */
error:
+
/***********
* CLEANUP *
***********/
@@ -1155,7 +1178,9 @@ error:
return 1;
-} /* test_H5FDread_without_eoa_set_fails */
+#endif /* H5_HAVE_LIBHDFS */
+
+} /* end test_H5FDread_without_eoa_set_fails() */
@@ -1163,7 +1188,7 @@ error:
*
* Function: test_read()
*
- * Purpose:
+ * Purpose:
*
* Return:
*
@@ -1178,11 +1203,19 @@ error:
static int
test_read(void)
{
+#ifndef H5_HAVE_LIBHDFS
+ TESTING("HDFS VFD read/range-gets");
+ SKIPPED();
+ puts(" HDFS VFD is not enabled");
+ fflush(stdout);
+ return 0;
+
+#else
+
/*********************
* test-local macros *
*********************/
-#ifdef H5_HAVE_LIBHDFS
/*************************
* test-local structures *
*************************/
@@ -1248,23 +1281,16 @@ test_read(void)
herr_t open_return = FAIL;
char buffer[HDFS_TEST_MAX_BUF_SIZE];
unsigned int i = 0;
-#endif /* H5_HAVE_LIBHDFS */
H5FD_t *file_raven = NULL;
hid_t fapl_id = -1;
TESTING("HDFS VFD read/range-gets");
-#ifndef H5_HAVE_LIBHDFS
- SKIPPED();
- puts(" HDFS VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
/*********
* SETUP *
*********/
- /* create HDFS fapl
+ /* create HDFS fapl
*/
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
FAIL_IF( fapl_id < 0 )
@@ -1275,7 +1301,7 @@ test_read(void)
buffer[i] = 0;
}
- /* open file
+ /* open file
*/
file_raven = H5FDopen(
filename_raven,
@@ -1301,7 +1327,7 @@ test_read(void)
FAIL_IF( HDFS_TEST_MAX_BUF_SIZE < test.len ) /* buffer too small! */
- FAIL_IF( FAIL ==
+ FAIL_IF( FAIL ==
H5FDset_eoa( file_raven, H5FD_MEM_DEFAULT, test.eoa_set) )
/* zero buffer contents */
@@ -1345,15 +1371,16 @@ test_read(void)
PASSED();
return 0;
-#endif /* H5_HAVE_LIBHDFS */
error:
+
/***********
* CLEANUP *
***********/
- if (file_raven != 0)
+ if (file_raven != 0) {
(void)H5FDclose(file_raven);
+ }
if (fapl_id >= 0) {
H5E_BEGIN_TRY {
(void)H5Pclose(fapl_id);
@@ -1362,14 +1389,16 @@ error:
return 1;
-} /* test_read */
+#endif /* H5_HAVE_LIBHDFS */
+
+} /* end test_read() */
/*---------------------------------------------------------------------------
*
* Function: test_noops_and_autofails()
*
- * Purpose:
+ * Purpose:
*
* Demonstrate the unavailable and do-nothing routines unique to
* Read-Only VFD.
@@ -1391,6 +1420,15 @@ error:
static int
test_noops_and_autofails(void)
{
+#ifndef H5_HAVE_LIBHDFS
+ TESTING("HDFS VFD always-fail and no-op routines");
+ SKIPPED();
+ puts(" HDFS VFD is not enabled");
+ fflush(stdout);
+ return 0;
+
+#else
+
/*********************
* test-local macros *
*********************/
@@ -1413,13 +1451,7 @@ test_noops_and_autofails(void)
* SETUP *
*********/
-#ifndef H5_HAVE_LIBHDFS
- SKIPPED();
- puts(" HDFS VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
- /* create HDFS fapl
+ /* create HDFS fapl
*/
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
FAIL_IF( fapl_id < 0 )
@@ -1441,7 +1473,7 @@ test_noops_and_autofails(void)
/* auto-fail calls to write and truncate
*/
H5E_BEGIN_TRY {
- JSVERIFY( FAIL,
+ JSVERIFY( FAIL,
H5FDwrite(file, H5FD_MEM_DRAW, H5P_DEFAULT, 1000, 35, data),
"write must fail" )
} H5E_END_TRY;
@@ -1485,9 +1517,9 @@ test_noops_and_autofails(void)
PASSED();
return 0;
-#endif /* H5_HAVE_LIBHDFS */
error:
+
/***********
* CLEANUP *
***********/
@@ -1503,14 +1535,16 @@ error:
return 1;
-} /* test_noops_and_autofails*/
+#endif /* H5_HAVE_LIBHDFS */
+
+} /* end test_noops_and_autofails() */
/*---------------------------------------------------------------------------
*
* Function: test_cmp()
*
- * Purpose:
+ * Purpose:
*
* Verify "file comparison" behavior.
*
@@ -1527,117 +1561,6 @@ error:
static int
test_cmp(void)
{
-#if 0
- /*********************
- * test-local macros *
- *********************/
-
- /*************************
- * test-local structures *
- *************************/
-
- /************************
- * test-local variables *
- ************************/
-
- H5FD_t *fd_raven = NULL;
- H5FD_t *fd_shakes = NULL;
- H5FD_t *fd_raven_2 = NULL;
- hbool_t curl_ready = FALSE;
- hid_t fapl_id = -1;
-
-
-
- TESTING("HDFS cmp (comparison)");
-
- if (s3_test_credentials_loaded == 0) {
- SKIPPED();
- puts(" s3 credentials are not loaded");
- fflush(stdout);
- return 0;
- }
-
- /*********
- * SETUP *
- *********/
-
- FAIL_IF( CURLE_OK != curl_global_init(CURL_GLOBAL_DEFAULT) )
- curl_ready = TRUE;
-
- fapl_id = H5Pcreate(H5P_FILE_ACCESS);
- FAIL_IF( 0 > fapl_id )
- JSVERIFY( SUCCEED, H5Pset_fapl_hdfs(fapl_id, &restricted_access_fa), NULL )
-
- fd_raven = H5FDopen(
- url_text_public,
- H5F_ACC_RDONLY,
- fapl_id,
- HADDR_UNDEF);
- FAIL_IF( NULL == fd_raven )
-
- fd_shakes = H5FDopen(
- url_text_restricted,
- H5F_ACC_RDONLY,
- fapl_id,
- HADDR_UNDEF);
- FAIL_IF( NULL == fd_shakes )
-
- fd_raven_2 = H5FDopen(
- url_text_public,
- H5F_ACC_RDONLY,
- fapl_id,
- HADDR_UNDEF);
- FAIL_IF( NULL == fd_raven_2 )
-
- /*********
- * TESTS *
- *********/
-
- JSVERIFY( 0, H5FDcmp(fd_raven, fd_raven_2), NULL )
- JSVERIFY( -1, H5FDcmp(fd_raven, fd_shakes), NULL )
- JSVERIFY( 1, H5FDcmp(fd_shakes, fd_raven_2), NULL )
-
- /************
- * TEARDOWN *
- ************/
-
- FAIL_IF( FAIL == H5FDclose(fd_raven) )
- fd_raven = NULL;
- FAIL_IF( FAIL == H5FDclose(fd_shakes) )
- fd_shakes = NULL;
- FAIL_IF( FAIL == H5FDclose(fd_raven_2) )
- fd_raven_2 = NULL;
- FAIL_IF( FAIL == H5Pclose(fapl_id) )
- fapl_id = -1;
-
- curl_global_cleanup();
- curl_ready = FALSE;
-
- PASSED();
- return 0;
-
-error:
- /***********
- * CLEANUP *
- ***********/
-
- if (fd_raven != NULL) (void)H5FDclose(fd_raven);
- if (fd_raven_2 != NULL) (void)H5FDclose(fd_raven_2);
- if (fd_shakes != NULL) (void)H5FDclose(fd_shakes);
- if (TRUE == curl_ready) curl_global_cleanup();
- if (fapl_id >= 0) {
- H5E_BEGIN_TRY {
- (void)H5Pclose(fapl_id);
- } H5E_END_TRY;
- }
-
-#else
- /*
- JSFAILED_AT()
- HDprintf("TODO\n");
- return 1;
- */
-
TESTING("HDFS cmp (comparison)");
SKIPPED();
HDfprintf(
@@ -1645,16 +1568,15 @@ error:
" TODO: Distinct valid fapls to open the same file.\n");
return 0;
-#endif /* s3comms relic */
-} /* test_cmp */
+} /* end test_cmp() */
/*---------------------------------------------------------------------------
*
* Function: test_H5F_integration()
*
- * Purpose:
+ * Purpose:
*
* Demonstrate H5F (File interface) behavior with files on HDFS.
*
@@ -1675,6 +1597,15 @@ error:
static int
test_H5F_integration(void)
{
+#ifndef H5_HAVE_LIBHDFS
+ TESTING("HDFS file access through HD5F library (H5F API)");
+ SKIPPED();
+ puts(" HDFS VFD is not enabled");
+ fflush(stdout);
+ return 0;
+
+#else
+
/*********************
* test-local macros *
*********************/
@@ -1696,12 +1627,6 @@ test_H5F_integration(void)
* SETUP *
*********/
-#ifndef H5_HAVE_LIBHDFS
- SKIPPED();
- puts(" HDFS VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
FAIL_IF( 0 > fapl_id )
FAIL_IF( FAIL == H5Pset_fapl_hdfs(fapl_id, &default_fa) )
@@ -1749,7 +1674,6 @@ test_H5F_integration(void)
PASSED();
return 0;
-#endif /* H5_HAVE_LIBHDFS */
error:
/***********
@@ -1771,6 +1695,8 @@ error:
return 1;
+#endif /* H5_HAVE_LIBHDFS */
+
} /* test_H5F_integration */
@@ -1796,15 +1722,19 @@ main(void)
/******************
* commence tests *
******************/
-
- static char hdfs_namenode_name[MAX_HDFS_NAMENODE_NAME] = "";
+
+ static char hdfs_namenode_name[HDFS_NAMENODE_NAME_MAX_SIZE] = "";
const char *hdfs_namenode_name_env = NULL;
hdfs_namenode_name_env = HDgetenv("HDFS_TEST_NAMENODE_NAME");
if (hdfs_namenode_name_env == NULL || hdfs_namenode_name_env[0] == '\0') {
- HDstrncpy(hdfs_namenode_name, "localhost", 9);
- } else {
- HDstrncpy(default_fa.namenode_name, hdfs_namenode_name_env, MAX_HDFS_NAMENODE_NAME);
+ HDstrncpy(hdfs_namenode_name, "localhost", HDFS_NAMENODE_NAME_MAX_SIZE);
+ }
+ else {
+ HDstrncpy( /* TODO: error-check? */
+ default_fa.namenode_name,
+ hdfs_namenode_name_env,
+ HDFS_NAMENODE_NAME_MAX_SIZE);
}
h5_reset();
@@ -1823,14 +1753,15 @@ main(void)
if (nerrors > 0) {
HDprintf("***** %d hdfs TEST%s FAILED! *****\n",
- nerrors,
+ nerrors,
nerrors > 1 ? "S" : "");
nerrors = 1;
- } else {
+ }
+ else {
HDprintf("All hdfs tests passed.\n");
}
return nerrors; /* 0 if no errors, 1 if any errors */
-} /* main() */
+} /* end main() */
diff --git a/test/ros3.c b/test/ros3.c
index 60d3932..6d58af0 100644
--- a/test/ros3.c
+++ b/test/ros3.c
@@ -11,7 +11,7 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
- * Read-Only S3 Virtual File Driver (VFD)
+ * Read-Only S3 Virtual File Driver (VFD)
*
* Purpose:
*
@@ -32,6 +32,9 @@
+/* only include the testing macros if needed */
+#ifdef H5_HAVE_ROS3_VFD
+
/*****************************************************************************
*
* FILE-LOCAL TESTING MACROS
@@ -368,15 +371,16 @@ if (strcmp((actual), (expected)) != 0) { \
#endif /* ifdef/else JSVERIFY_EXP_ACT */
+#endif /* H5_HAVE_ROS3_VFD */
+
/********************************
* OTHER MACROS AND DEFINITIONS *
********************************/
-/* copied from src/ros3.c
- */
+#ifdef H5_HAVE_ROS3_VFD
+
#define MAXADDR (((haddr_t)1<<(8*sizeof(HDoff_t)-1))-1)
-#ifdef H5_HAVE_ROS3_VFD
#define S3_TEST_PROFILE_NAME "ros3_vfd_test"
#define S3_TEST_MAX_URL_SIZE 256
@@ -440,6 +444,15 @@ H5FD_ros3_fapl_t anonymous_fa = {
static int
test_fapl_config_validation(void)
{
+#ifndef H5_HAVE_ROS3_VFD
+ TESTING("ROS3 fapl configuration validation");
+ SKIPPED();
+ puts(" ROS3 VFD not enabled");
+ fflush(stdout);
+ return 0;
+
+#else /* H5_HAVE_ROS3_VFD defined */
+
/*********************
* test-local macros *
*********************/
@@ -458,7 +471,6 @@ test_fapl_config_validation(void)
* test-local variables *
************************/
-#ifdef H5_HAVE_ROS3_VFD
hid_t fapl_id = -1; /* file access property list ID */
H5FD_ros3_fapl_t config;
H5FD_ros3_fapl_t fa_fetch;
@@ -544,21 +556,12 @@ test_fapl_config_validation(void)
},
};
-#endif /* H5_HAVE_ROS3_VFD */
-
TESTING("ROS3 fapl configuration validation");
/*********
* TESTS *
*********/
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD not enabled");
- fflush(stdout);
- return 0;
-#else
-
if (FALSE == s3_test_bucket_defined) {
SKIPPED();
puts(" environment variable HDF5_ROS3_TEST_BUCKET_URL not defined");
@@ -655,7 +658,7 @@ error:
* Purpose: Tests the file handle interface for the ROS3 driver
*
* As the ROS3 driver is 1) read only, 2) requires access
- * to an S3 server (minio for now), this test is quite
+ * to an S3 server, this test is quite
* different from the other tests.
*
* For now, test only fapl & flags. Extend as the
@@ -675,11 +678,19 @@ error:
static int
test_ros3_fapl(void)
{
+#ifndef H5_HAVE_ROS3_VFD
+ TESTING("ROS3 fapl ");
+ SKIPPED();
+ puts(" ROS3 VFD not enabled");
+ fflush(stdout);
+ return 0;
+
+#else /* H5_HAVE_ROS3 defined */
+
/************************
* test-local variables *
************************/
-#ifdef H5_HAVE_ROS3_VFD
hid_t fapl_id = -1; /* file access property list ID */
hid_t driver_id = -1; /* ID for this VFD */
unsigned long driver_flags = 0; /* VFD feature flags */
@@ -690,16 +701,9 @@ test_ros3_fapl(void)
"", /* secret_id */
"plugh", /* secret_key */
};
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("ROS3 fapl ");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD not enabled");
- fflush(stdout);
- return 0;
-#else
/* Set property list and file name for ROS3 driver.
*/
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
@@ -759,11 +763,19 @@ error:
static int
test_vfd_open(void)
{
+#ifndef H5_HAVE_ROS3_VFD
+ TESTING("ROS3 VFD-level open");
+ SKIPPED();
+ puts(" ROS3 VFD not enabled");
+ fflush(stdout);
+ return 0;
+
+#else /* H5_HAVE_ROS3_VFD defined */
+
/*********************
* test-local macros *
*********************/
-#ifdef H5_HAVE_ROS3_VFD
#define FAPL_H5P_DEFAULT -2
#define FAPL_FILE_ACCESS -3
@@ -853,17 +865,9 @@ test_vfd_open(void)
hid_t fapl_file_access = -1;
unsigned i = 0;
unsigned tests_count = 10;
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("ROS3 VFD-level open");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD not enabled");
- fflush(stdout);
- return 0;
-#else
-
if (FALSE == s3_test_bucket_defined) {
SKIPPED();
puts(" environment variable HDF5_ROS3_TEST_BUCKET_URL not defined");
@@ -989,6 +993,15 @@ error:
static int
test_eof_eoa(void)
{
+#ifndef H5_HAVE_ROS3_VFD
+ TESTING("ROS3 eof/eoa gets and sets");
+ SKIPPED();
+ puts(" ROS3 VFD not enabled");
+ fflush(stdout);
+ return 0;
+
+#else /* H5_HAVE_ROS3_VFD defined */
+
/*********************
* test-local macros *
*********************/
@@ -1001,20 +1014,12 @@ test_eof_eoa(void)
* test-local variables *
************************/
-#ifdef H5_HAVE_ROS3_VFD
H5FD_t *fd_shakespeare = NULL;
hbool_t curl_ready = FALSE;
hid_t fapl_id = -1;
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("ROS3 eof/eoa gets and sets");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD not enabled");
- fflush(stdout);
- return 0;
-#else
if (s3_test_credentials_loaded == 0) {
SKIPPED();
puts(" s3 credentials are not loaded");
@@ -1136,21 +1141,22 @@ error:
static int
test_H5FDread_without_eoa_set_fails(void)
{
-#ifdef H5_HAVE_ROS3_VFD
+#ifndef H5_HAVE_ROS3_VFD
+ TESTING("ROS3 VFD read-eoa temporal coupling library limitation ");
+ SKIPPED();
+ puts(" ROS3 VFD not enabled");
+ fflush(stdout);
+ return 0;
+
+#else /* H5_HAVE_ROS3_VFD defined */
+
char buffer[256];
unsigned int i = 0;
H5FD_t *file_shakespeare = NULL;
hid_t fapl_id = -1;
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("ROS3 VFD read-eoa temporal coupling library limitation ");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD not enabled");
- fflush(stdout);
- return 0;
-#else
if (s3_test_credentials_loaded == 0) {
SKIPPED();
puts(" s3 credentials are not loaded");
@@ -1256,6 +1262,15 @@ error:
static int
test_read(void)
{
+#ifndef H5_HAVE_ROS3_VFD
+ TESTING("ROS3 VFD read/range-gets");
+ SKIPPED();
+ puts(" ROS3 VFD not enabled");
+ fflush(stdout);
+ return 0;
+
+#else /* H5_HAVE_ROS3_VFD defined */
+
/*********************
* test-local macros *
*********************/
@@ -1275,7 +1290,6 @@ test_read(void)
/************************
* test-local variables *
************************/
-#ifdef H5_HAVE_ROS3_VFD
struct testcase cases[] = {
{ "successful range-get",
6464,
@@ -1328,16 +1342,9 @@ test_read(void)
unsigned int i = 0;
H5FD_t *file_raven = NULL;
hid_t fapl_id = -1;
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("ROS3 VFD read/range-gets");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD not enabled");
- fflush(stdout);
- return 0;
-#else
if (s3_test_credentials_loaded == 0) {
SKIPPED();
puts(" s3 credentials are not loaded");
@@ -1471,6 +1478,15 @@ error:
static int
test_noops_and_autofails(void)
{
+#ifndef H5_HAVE_ROS3_VFD
+ TESTING("ROS3 VFD always-fail and no-op routines");
+ SKIPPED();
+ puts(" ROS3 VFD not enabled");
+ fflush(stdout);
+ return 0;
+
+#else
+
/*********************
* test-local macros *
*********************/
@@ -1483,21 +1499,13 @@ test_noops_and_autofails(void)
* test-local variables *
************************/
-#ifdef H5_HAVE_ROS3_VFD
hbool_t curl_ready = FALSE;
hid_t fapl_id = -1;
H5FD_t *file = NULL;
const char data[36] = "The Force shall be with you, always";
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("ROS3 VFD always-fail and no-op routines");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD not enabled");
- fflush(stdout);
- return 0;
-#else
if (FALSE == s3_test_bucket_defined) {
SKIPPED();
@@ -1624,6 +1632,15 @@ error:
static int
test_cmp(void)
{
+#ifndef H5_HAVE_ROS3_VFD
+ TESTING("ROS3 cmp (comparison)");
+ SKIPPED();
+ puts(" ROS3 VFD not enabled");
+ fflush(stdout);
+ return 0;
+
+#else
+
/*********************
* test-local macros *
*********************/
@@ -1636,22 +1653,14 @@ test_cmp(void)
* test-local variables *
************************/
-#ifdef H5_HAVE_ROS3_VFD
H5FD_t *fd_raven = NULL;
H5FD_t *fd_shakes = NULL;
H5FD_t *fd_raven_2 = NULL;
hbool_t curl_ready = FALSE;
hid_t fapl_id = -1;
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("ROS3 cmp (comparison)");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD not enabled");
- fflush(stdout);
- return 0;
-#else
if (s3_test_credentials_loaded == 0) {
SKIPPED();
puts(" s3 credentials are not loaded");
@@ -1767,6 +1776,15 @@ error:
static int
test_H5F_integration(void)
{
+#ifndef H5_HAVE_ROS3_VFD
+ TESTING("S3 file access through HD5F library (H5F API)");
+ SKIPPED();
+ puts(" ROS3 VFD not enabled");
+ fflush(stdout);
+ return 0;
+
+#else
+
/*********************
* test-local macros *
*********************/
@@ -1779,19 +1797,11 @@ test_H5F_integration(void)
* test-local variables *
************************/
-#ifdef H5_HAVE_ROS3_VFD
hid_t file = -1;
hid_t fapl_id = -1;
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("S3 file access through HD5F library (H5F API)");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD not enabled");
- fflush(stdout);
- return 0;
-#else
if (s3_test_credentials_loaded == 0) {
SKIPPED();
puts(" s3 credentials are not loaded");
diff --git a/test/s3comms.c b/test/s3comms.c
index a797e04..d636550 100644
--- a/test/s3comms.c
+++ b/test/s3comms.c
@@ -11,7 +11,7 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
- * Read-Only S3 Virtual File Driver (VFD)
+ * Read-Only S3 Virtual File Driver (VFD)
*
* Purpose: Unit tests for the S3 Communications (s3comms) module.
*
@@ -386,7 +386,7 @@ static hbool_t s3_test_bucket_defined = FALSE;
#endif /* H5_HAVE_ROS3_VFD */
-
+
/*---------------------------------------------------------------------------
*
* Function: test_macro_format_credential()
@@ -408,7 +408,6 @@ test_macro_format_credential(void)
* test-local variables *
************************/
-#ifdef H5_HAVE_ROS3_VFD
char dest[256];
const char access[] = "AKIAIOSFODNN7EXAMPLE";
const char date[] = "20130524";
@@ -416,16 +415,9 @@ test_macro_format_credential(void)
const char service[] = "s3";
const char expected[] =
"AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request";
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("test_macro_format_credential");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
FAIL_IF( S3COMMS_MAX_CREDENTIAL_SIZE <
S3COMMS_FORMAT_CREDENTIAL(dest, access, date, region, service) )
@@ -433,14 +425,13 @@ test_macro_format_credential(void)
PASSED();
return 0;
-#endif /* H5_HAVE_ROS3_VFD */
error:
return -1;
-} /* test_macro_format_credential */
-
+} /* end test_macro_format_credential() */
+
/*---------------------------------------------------------------------------
*
* Function: test_aws_canonical_request()
@@ -465,7 +456,6 @@ test_aws_canonical_request(void)
* test-local structures *
*************************/
-#ifdef H5_HAVE_ROS3_VFD
struct header {
const char *name;
const char *value;
@@ -520,16 +510,9 @@ test_aws_canonical_request(void)
hrb_node_t *node = NULL; /* http headers list pointer */
unsigned int n_cases = 3;
char sh_dest[64]; /* signed headers */
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("test_aws_canonical_request");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
for (i = 0; i < n_cases; i++) {
/* pre-test bookkeeping
*/
@@ -559,16 +542,22 @@ test_aws_canonical_request(void)
/* test
*/
JSVERIFY( SUCCEED,
- H5FD_s3comms_aws_canonical_request(cr_dest, sh_dest, hrb),
+ H5FD_s3comms_aws_canonical_request(
+ cr_dest,
+ 512,
+ sh_dest,
+ 64,
+ hrb),
" unable to compose canonical request" )
JSVERIFY_STR( C->exp_headers, sh_dest, NULL )
JSVERIFY_STR( C->exp_request, cr_dest, NULL )
/* tear-down
*/
- while (node != NULL)
+ while (node != NULL) {
FAIL_IF( FAIL ==
H5FD_s3comms_hrb_node_set(&node, node->name, NULL));
+ }
HDassert(NULL == node);
FAIL_IF( FAIL == H5FD_s3comms_hrb_destroy(&hrb));
HDassert(NULL == hrb);
@@ -581,14 +570,29 @@ test_aws_canonical_request(void)
/* malformed hrb and/or node-list
*/
- JSVERIFY( FAIL, H5FD_s3comms_aws_canonical_request(cr_dest, sh_dest, NULL),
+ JSVERIFY( FAIL, H5FD_s3comms_aws_canonical_request(
+ cr_dest,
+ 20,
+ sh_dest,
+ 20,
+ NULL),
"http request object cannot be null" )
hrb = H5FD_s3comms_hrb_init_request("GET", "/", "HTTP/1.1");
- JSVERIFY( FAIL, H5FD_s3comms_aws_canonical_request(NULL, sh_dest, hrb),
+ JSVERIFY( FAIL, H5FD_s3comms_aws_canonical_request(
+ NULL,
+ 20,
+ sh_dest,
+ 20,
+ hrb),
"canonical request destination cannot be NULL" )
- JSVERIFY( FAIL, H5FD_s3comms_aws_canonical_request(cr_dest, NULL, hrb),
+ JSVERIFY( FAIL, H5FD_s3comms_aws_canonical_request(
+ cr_dest,
+ 20,
+ NULL,
+ 20,
+ hrb),
"signed headers destination cannot be null" )
FAIL_IF( FAIL == H5FD_s3comms_hrb_destroy(&hrb) )
@@ -604,15 +608,15 @@ error:
(void)H5FD_s3comms_hrb_node_set(&node, node->name, NULL);
HDassert( node == NULL );
}
- if (hrb != NULL)
+ if (hrb != NULL) {
(void)H5FD_s3comms_hrb_destroy(&hrb);
+ }
return -1;
-#endif /* H5_HAVE_ROS3_VFD */
-
-} /* test_aws_canonical_request */
+} /* end test_aws_canonical_request() */
+
/*---------------------------------------------------------------------------
*
* Function: test_bytes_to_hex
@@ -706,9 +710,9 @@ test_bytes_to_hex(void)
error:
return -1;
-} /* test_bytes_to_hex */
-
+} /* end test_bytes_to_hex() */
+
/*---------------------------------------------------------------------------
*
* Function: test_hrb_init_request()
@@ -725,7 +729,6 @@ error:
static herr_t
test_hrb_init_request(void)
{
-#ifdef H5_HAVE_ROS3_VFD
/*********************
* test-local macros *
*********************/
@@ -769,7 +772,7 @@ test_hrb_init_request(void)
"HTTP/1.1",
FALSE,
},
- { "slash prepented to resource path, if necessary",
+ { "slash prepended to resource path, if necessary",
NULL,
"MYPATH/MYFILE.tiff",
"/MYPATH/MYFILE.tiff",
@@ -788,29 +791,25 @@ test_hrb_init_request(void)
unsigned int i = 0;
unsigned int ncases = 5;
hrb_t *req = NULL;
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("hrb_init_request");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
for (i = 0; i < ncases; i++) {
C = &cases[i];
- req = H5FD_s3comms_hrb_init_request(C->verb,
- C->resource,
- C->version);
+ req = H5FD_s3comms_hrb_init_request(
+ C->verb,
+ C->resource,
+ C->version);
if (cases[i].ret_null == TRUE) {
FAIL_IF( req != NULL );
- } else {
+ }
+ else {
FAIL_IF( req == NULL );
JSVERIFY( S3COMMS_HRB_MAGIC, req->magic, NULL )
if (C->verb == NULL) {
JSVERIFY_STR( "GET", req->verb, NULL )
- } else {
+ }
+ else {
JSVERIFY_STR( req->verb, C->verb, NULL )
}
JSVERIFY_STR( "HTTP/1.1", req->version, NULL )
@@ -823,7 +822,7 @@ test_hrb_init_request(void)
FAIL_IF( NULL != req ); /* should annull pointer as well as free */
}
- } /* for each testcase */
+ } /* end for each testcase */
PASSED();
return 0;
@@ -832,11 +831,10 @@ error:
(void)H5FD_s3comms_hrb_destroy(&req);
return -1;
-#endif /* H5_HAVE_ROS3_VFD */
-
-} /* test_hrb_init_request */
+} /* end test_hrb_init_request() */
+
/*---------------------------------------------------------------------------
*
* Function: test_hrb_node_set()
@@ -853,7 +851,6 @@ error:
static herr_t
test_hrb_node_set(void)
{
-#ifdef H5_HAVE_ROS3_VFD
/*************************
* test-local structures *
*************************/
@@ -1071,18 +1068,10 @@ test_hrb_node_set(void)
};
unsigned testcases_count = 16;
unsigned test_i = 0;
-
hrb_node_t *list = NULL;
-#endif /* H5_HAVE_ROS3_VFD */
- TESTING("test_hrb_node_t");
+ TESTING("hrb_node_t (test_hrb_node_set)");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
for (test_i = 0; test_i < testcases_count; test_i++) {
const hrb_node_t *node = NULL;
const testcase *test = &(cases[test_i]);
@@ -1137,21 +1126,22 @@ test_hrb_node_set(void)
FAIL_IF( SUCCEED !=
H5FD_s3comms_hrb_node_set(&list, list->name, NULL) )
}
- }
+ } /* end for each testcase */
PASSED();
return 0;
error:
- while (list != NULL)
+ while (list != NULL) {
(void)H5FD_s3comms_hrb_node_set(&list, list->name, NULL);
+ }
return -1;
-#endif /* H5_HAVE_ROS3_VFD */
-} /* test_hrb_node_t */
+} /* end test_hrb_node_t() */
+
/*---------------------------------------------------------------------------
*
* Function: test_HMAC_SHA256()
@@ -1265,13 +1255,13 @@ test_HMAC_SHA256(void)
dest);
TEST_ERROR;
}
-#else
+#else /* VERBOSE not defined */
/* simple pass/fail test
*/
JSVERIFY( 0,
strncmp(cases[i].exp, dest, HDstrlen(cases[i].exp)),
NULL);
-#endif
+#endif /* VERBOSE */
}
free(dest);
}
@@ -1284,9 +1274,9 @@ error:
return -1;
#endif /* H5_HAVE_ROS3_VFD */
-} /* test_HMAC_SHA256 */
-
+} /* end test_HMAC_SHA256() */
+
/*----------------------------------------------------------------------------
*
* Function: test_nlowercase()
@@ -1307,7 +1297,6 @@ test_nlowercase(void)
* test-local structures *
*************************/
-#ifdef H5_HAVE_ROS3_VFD
struct testcase {
const char *in;
size_t len;
@@ -1338,16 +1327,9 @@ test_nlowercase(void)
char *dest = NULL;
int i = 0;
int n_cases = 3;
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("nlowercase");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
for (i = 0; i < n_cases; i++) {
dest = (char *)HDmalloc(sizeof(char) * 16);
@@ -1360,7 +1342,7 @@ test_nlowercase(void)
JSVERIFY( 0, strncmp(dest, cases[i].exp, cases[i].len), NULL )
}
free(dest);
- }
+ } /* end for each testcase */
JSVERIFY( FAIL,
H5FD_s3comms_nlowercase(NULL,
@@ -1374,11 +1356,10 @@ test_nlowercase(void)
error:
free(dest);
return -1;
-#endif /* H5_HAVE_ROS3_VFD */
-
-} /* test_nlowercase */
+} /* end test_nlowercase() */
+
/*---------------------------------------------------------------------------
*
* Function: test_parse_url()
@@ -1399,7 +1380,6 @@ test_parse_url(void)
* test-local structures *
*************************/
-#ifdef H5_HAVE_ROS3_VFD
typedef struct {
const char *scheme;
const char *host;
@@ -1540,16 +1520,9 @@ test_parse_url(void)
"non-decimal PORT (01a3)",
},
};
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("url-parsing functionality");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
/*********
* TESTS *
*********/
@@ -1564,7 +1537,8 @@ test_parse_url(void)
if (cases[i].exp_ret == FAIL) {
/* on FAIL, `purl` should be untouched--remains NULL */
FAIL_UNLESS( purl == NULL )
- } else {
+ }
+ else {
/* on SUCCEED, `purl` should be set */
FAIL_IF( purl == NULL )
@@ -1612,7 +1586,7 @@ test_parse_url(void)
} else {
FAIL_UNLESS( NULL == purl->query )
}
- } /* if parse-url return SUCCEED/FAIL */
+ } /* end if parse-url return SUCCEED/FAIL */
/* per-test cleanup
* well-behaved, even if `purl` is NULL
@@ -1620,7 +1594,7 @@ test_parse_url(void)
FAIL_IF( FAIL == H5FD_s3comms_free_purl(purl) )
purl = NULL;
- } /* for each testcase */
+ } /* end for each testcase */
PASSED();
return 0;
@@ -1632,11 +1606,10 @@ error:
(void)H5FD_s3comms_free_purl(purl);
return -1;
-#endif /* H5_HAVE_ROS3_VFD */
-
-} /* test_parse_url */
+} /* end test_parse_url() */
+
/*---------------------------------------------------------------------------
*
* Function: test_percent_encode_char()
@@ -1662,7 +1635,6 @@ test_percent_encode_char(void)
* test-local structures *
*************************/
-#ifdef H5_HAVE_ROS3_VFD
struct testcase {
const char c;
const char *exp;
@@ -1692,16 +1664,9 @@ test_percent_encode_char(void)
size_t dest_len = 0;
int i = 0;
int n_cases = 5;
-#endif /* H5_HAVE_ROS3_VFD */
TESTING("percent encode characters");
-#ifndef H5_HAVE_ROS3_VFD
- SKIPPED();
- puts(" ROS3 VFD is not enabled");
- fflush(stdout);
- return 0;
-#else
for (i = 0; i < n_cases; i++) {
JSVERIFY( SUCCEED,
H5FD_s3comms_percent_encode_char(
@@ -1726,11 +1691,9 @@ test_percent_encode_char(void)
error:
return -1;
-#endif /* H5_HAVE_ROS3_VFD */
-
-} /* test_percent_encode_char */
-
+} /* end test_percent_encode_char() */
+
/*---------------------------------------------------------------------------
* Function: test_s3r_open()
*
@@ -1798,9 +1761,9 @@ error:
return -1;
#endif /* H5_HAVE_ROS3_VFD */
-} /* test_s3r_get_filesize */
-
+} /* end test_s3r_get_filesize() */
+
/*---------------------------------------------------------------------------
* Function: test_s3r_open()
*
@@ -2039,9 +2002,9 @@ error:
return -1;
#endif /* H5_HAVE_ROS3_VFD */
-} /* test_s3r_open */
-
+} /* end test_s3r_open() */
+
/*---------------------------------------------------------------------------
*
* Function: test_s3r_read()
@@ -2265,7 +2228,7 @@ error:
#undef S3COMMS_TEST_BUFFER_SIZE
#endif /* H5_HAVE_ROS3_VFD */
-} /* test_s3r_read */
+} /* end test_s3r_read() */
/*---------------------------------------------------------------------------
@@ -2404,9 +2367,9 @@ error:
return -1;
#endif /* H5_HAVE_ROS3_VFD */
-} /* test_signing_key */
-
+} /* end test_signing_key() */
+
/*---------------------------------------------------------------------------
*
* Function: test_tostringtosign()
@@ -2476,9 +2439,9 @@ error :
return -1;
#endif /* H5_HAVE_ROS3_VFD */
-} /* test_tostringtosign */
-
+} /* end test_tostringtosign() */
+
/*----------------------------------------------------------------------------
*
* Function: test_trim()
@@ -2563,7 +2526,7 @@ test_trim(void)
}
free(str);
str = NULL;
- }
+ } /* end for each testcase */
JSVERIFY( SUCCEED, H5FD_s3comms_trim(dest, NULL, 3, &dest_len),
"should not fail when trimming a null string" );
@@ -2582,13 +2545,14 @@ test_trim(void)
return 0;
error:
- if (str != NULL)
+ if (str != NULL) {
free(str);
+ }
return -1;
-} /* test_trim */
-
+} /* end test_trim() */
+
/*----------------------------------------------------------------------------
*
* Function: test_uriencode()
@@ -2685,7 +2649,7 @@ test_uriencode(void)
free(dest);
dest = NULL;
- }
+ } /* end for each testcase */
/***************
* ERROR CASES *
@@ -2713,11 +2677,11 @@ error:
}
return -1;
-} /* test_uriencode */
-
+} /* end test_uriencode() */
+
/*-------------------------------------------------------------------------
* Function: main()
*
@@ -2774,7 +2738,8 @@ main(void)
if (bucket_url_env == NULL || bucket_url_env[0] == '\0') {
HDprintf("WARNING: S3 bucket url is not defined in enviornment " \
"variable 'HDF5_ROS3_TEST_BUCKET_URL'!\n");
- } else {
+ }
+ else {
HDstrncpy(s3_test_bucket_url, bucket_url_env, S3_TEST_MAX_URL_SIZE);
s3_test_bucket_defined = TRUE;
}
@@ -2799,12 +2764,12 @@ main(void)
nerrors += test_s3r_get_filesize() < 0 ? 1 : 0;
nerrors += test_s3r_read() < 0 ? 1 : 0;
- if(nerrors) {
+ if (nerrors) {
HDprintf("***** %d S3comms TEST%s FAILED! *****\n",
nerrors,
nerrors > 1 ? "S" : "");
return 1;
- } /* end if */
+ }
HDprintf("All S3comms tests passed.\n");