summaryrefslogtreecommitdiffstats
path: root/java/test/TestH5PL.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/test/TestH5PL.java')
-rw-r--r--java/test/TestH5PL.java98
1 files changed, 72 insertions, 26 deletions
diff --git a/java/test/TestH5PL.java b/java/test/TestH5PL.java
index 759db5f..8ce708b 100644
--- a/java/test/TestH5PL.java
+++ b/java/test/TestH5PL.java
@@ -5,12 +5,10 @@
* *
* 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. *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
package test;
@@ -72,26 +70,74 @@ public class TestH5PL {
@Test
public void TestH5PLpaths() {
try {
- int original_entries = H5.H5PLsize();
- H5.H5PLappend("path_one");
- int plugin_entries = H5.H5PLsize();
- assertTrue("H5.H5PLsize: "+plugin_entries, (original_entries+1) == plugin_entries);
- H5.H5PLprepend("path_two");
- plugin_entries = H5.H5PLsize();
- assertTrue("H5.H5PLsize: "+plugin_entries, (original_entries+2) == plugin_entries);
- H5.H5PLinsert("path_three", original_entries);
- plugin_entries = H5.H5PLsize();
- assertTrue("H5.H5PLsize: "+plugin_entries, (original_entries+3) == plugin_entries);
- String first_path = H5.H5PLget(original_entries);
- assertTrue("First path was : "+first_path + " ",first_path.compareToIgnoreCase("path_three")==0);
- H5.H5PLreplace("path_four", original_entries);
- first_path = H5.H5PLget(original_entries);
- assertTrue("First path changed to : "+first_path + " ",first_path.compareToIgnoreCase("path_four")==0);
- H5.H5PLremove(original_entries);
- first_path = H5.H5PLget(original_entries);
- assertTrue("First path now : "+first_path + " ",first_path.compareToIgnoreCase("path_two")==0);
- plugin_entries = H5.H5PLsize();
- assertTrue("H5.H5PLsize: "+plugin_entries, (original_entries+2) == plugin_entries);
+ // Get the original number of paths
+ int nStartPaths = H5.H5PLsize();
+
+ int nPaths; /* # paths from H5PLSize() */
+ int nTruePaths = nStartPaths; /* What the # paths should be */
+ int index; /* Path table index */
+ String path; /* Path from H5PLget() */
+
+ // APPEND a path and ensure it was added correctly
+ String pathAppend = "path_append";
+ H5.H5PLappend(pathAppend);
+
+ nPaths = H5.H5PLsize();
+ nTruePaths++;
+ assertTrue("# paths should be " + nTruePaths + " but was " + nPaths, nTruePaths == nPaths);
+
+ index = nTruePaths - 1;
+ path = H5.H5PLget(index);
+ assertTrue("Path should be " + pathAppend + " but was " + path, path.compareToIgnoreCase(pathAppend) == 0);
+
+ // PREPEND a path and ensure it was added correctly
+ String pathPrepend = "path_prepend";
+ H5.H5PLprepend(pathPrepend);
+
+ nPaths = H5.H5PLsize();
+ nTruePaths++;
+ assertTrue("# paths should be " + nTruePaths + " but was " + nPaths, nTruePaths == nPaths);
+
+ index = 0;
+ path = H5.H5PLget(index);
+ assertTrue("Path should be " + pathPrepend + " but was " + path, path.compareToIgnoreCase(pathPrepend) == 0);
+
+ // INSERT a path and ensure it was added correctly
+ // Inserting at the index == # of start paths ensures we're in the middle
+ String pathInsert = "path_insert";
+ index = nStartPaths;
+ H5.H5PLinsert(pathInsert, index);
+
+ nPaths = H5.H5PLsize();
+ nTruePaths++;
+ assertTrue("# paths should be " + nTruePaths + " but was " + nPaths, nTruePaths == nPaths);
+
+ path = H5.H5PLget(index);
+ assertTrue("Path should be " + pathInsert + " but was " + path, path.compareToIgnoreCase(pathInsert) == 0);
+
+ // REPLACE the path we just added and ensure it updated correctly
+ String pathReplace = "path_replace";
+ index = nStartPaths;
+ H5.H5PLreplace(pathReplace, index);
+
+ nPaths = H5.H5PLsize();
+ assertTrue("# paths should be " + nTruePaths + " but was " + nPaths, nTruePaths == nPaths);
+
+ path = H5.H5PLget(index);
+ assertTrue("Path should be " + pathReplace + " but was " + path, path.compareToIgnoreCase(pathReplace) == 0);
+
+ // REMOVE the path we just replaced and check that the table was compacted
+ // The (index+1) path should move down to fill the space when the path is removed.
+ index = nStartPaths;
+ String pathRemove = H5.H5PLget(index + 1);
+ H5.H5PLremove(index);
+
+ nPaths = H5.H5PLsize();
+ nTruePaths--;
+ assertTrue("# paths should be " + nTruePaths + " but was " + nPaths, nTruePaths == nPaths);
+
+ path = H5.H5PLget(index);
+ assertTrue("Path should be " + pathRemove + " but was " + path, path.compareToIgnoreCase(pathRemove) == 0);
}
catch (Throwable err) {
err.printStackTrace();