From e0183056d5362f2198726281e446e02912120d4d Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Wed, 6 May 2020 11:19:50 -0500 Subject: Add github actions and cleanup java whitespace --- .github/workflows/main.yml | 80 ++++++++++++++++++++++ MANIFEST | 2 + java/src/hdf/hdf5lib/structs/H5O_hdr_info_t.java | 2 +- .../src/hdf/hdf5lib/structs/H5O_native_info_t.java | 4 +- java/src/hdf/hdf5lib/structs/H5O_token_t.java | 2 +- java/src/jni/h5sImp.c | 2 +- java/src/jni/h5sImp.h | 2 +- java/test/TestH5E.java | 38 +++++----- java/test/TestH5Tparams.java | 2 +- 9 files changed, 109 insertions(+), 25 deletions(-) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..5c38961 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,80 @@ +name: hdf5 dev CI + +# Controls when the action will run. Triggers the workflow on push or pull request +on: + push: + branches: [ develop, hdf5_1_12, hdf5_1_10, hdf5_1_8 ] + pull_request: + branches: [ develop ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + strategy: + fail-fast: false + matrix: + name: ["Windows Latest MSVC", "Ubuntu Latest GCC", "macOS Latest Clang"] + include: + - name: "Windows Latest MSVC" + artifact: "Windows-MSVC.tar.xz" + os: windows-latest + build_type: "Release" + toolchain: "" + fortran: OFF + generator: "-G \"Visual Studio 16 2019\" -A x64" + - name: "Ubuntu Latest GCC" + artifact: "Linux.tar.xz" + os: ubuntu-latest + build_type: "Release" + fortran: OFF + toolchain: "config/toolchain/GCC.cmake" + generator: "-G Ninja" + - name: "macOS Latest Clang" + artifact: "macOS.tar.xz" + os: macos-latest + build_type: "Release" + fortran: OFF + toolchain: "config/toolchain/clang.cmake" + generator: "-G Ninja" + + name: ${{ matrix.name }} + # The type of runner that the job will run on + runs-on: ${{ matrix.os }} + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - name: Install Dependencies (Linux) + run: sudo apt-get install ninja-build + if: matrix.os == 'ubuntu-latest' + - name: Install Dependencies (Windows) + run: choco install ninja + if: matrix.os == 'windows-latest' + - name: Install Dependencies (macOS) + run: brew install ninja + if: matrix.os == 'macos-latest' + - name: Set environment for MSVC (Windows) + if: matrix.os == 'windows-latest' + run: | + # Set these env vars so cmake picks the correct compiler + echo "::set-env name=CXX::cl.exe" + echo "::set-env name=CC::cl.exe" + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v2 + + - name: Configure + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake ${{ matrix.generator }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_TOOLCHAIN_FILE=${{ matrix.toolchain }} -DBUILD_SHARED_LIBS=ON -DHDF5_ENABLE_ALL_WARNINGS=ON -DHDF5_BUILD_FORTRAN=${{ matrix.fortran }} -DHDF5_BUILD_JAVA=ON $GITHUB_WORKSPACE + shell: bash + + - name: Build + run: cmake --build . --config ${{ matrix.build_type }} + working-directory: ${{ runner.workspace }}/build + + - name: Test + run: ctest --build . -C ${{ matrix.build_type }} -V + working-directory: ${{ runner.workspace }}/build diff --git a/MANIFEST b/MANIFEST index 4485812..e34a575 100644 --- a/MANIFEST +++ b/MANIFEST @@ -33,6 +33,8 @@ ./autogen.sh ./configure.ac +./github/workflows/main.yml _DO_NOT_DISTRIBUTE_ + ./m4/aclocal_cxx.m4 ./m4/aclocal_fc.m4 ./m4/aclocal_fc.f90 diff --git a/java/src/hdf/hdf5lib/structs/H5O_hdr_info_t.java b/java/src/hdf/hdf5lib/structs/H5O_hdr_info_t.java index 8d0cc24..73aaa47 100644 --- a/java/src/hdf/hdf5lib/structs/H5O_hdr_info_t.java +++ b/java/src/hdf/hdf5lib/structs/H5O_hdr_info_t.java @@ -74,7 +74,7 @@ public class H5O_hdr_info_t implements Serializable { if (this.mesg_present != info.mesg_present) return false; if (this.mesg_shared != info.mesg_shared) - return false; + return false; return true; } diff --git a/java/src/hdf/hdf5lib/structs/H5O_native_info_t.java b/java/src/hdf/hdf5lib/structs/H5O_native_info_t.java index 4e80849..f410a7f 100644 --- a/java/src/hdf/hdf5lib/structs/H5O_native_info_t.java +++ b/java/src/hdf/hdf5lib/structs/H5O_native_info_t.java @@ -22,7 +22,7 @@ public class H5O_native_info_t implements Serializable { public H5O_hdr_info_t hdr_info; /* Object header information */ /* Extra metadata storage for obj & attributes */ - public H5_ih_info_t obj_info; /* v1/v2 B-tree & local/fractal heap for groups, B-tree for chunked datasets */ + public H5_ih_info_t obj_info; /* v1/v2 B-tree & local/fractal heap for groups, B-tree for chunked datasets */ public H5_ih_info_t attr_info; /* v2 B-tree & heap for attributes */ H5O_native_info_t (H5O_hdr_info_t oheader_info, H5_ih_info_t obj_info, H5_ih_info_t attr_info) @@ -49,4 +49,4 @@ public class H5O_native_info_t implements Serializable { return true; } -} \ No newline at end of file +} diff --git a/java/src/hdf/hdf5lib/structs/H5O_token_t.java b/java/src/hdf/hdf5lib/structs/H5O_token_t.java index 8ec0b7f..e6d2474 100644 --- a/java/src/hdf/hdf5lib/structs/H5O_token_t.java +++ b/java/src/hdf/hdf5lib/structs/H5O_token_t.java @@ -42,4 +42,4 @@ public class H5O_token_t implements Serializable { return Arrays.equals(this.data, token.data); } -} \ No newline at end of file +} diff --git a/java/src/jni/h5sImp.c b/java/src/jni/h5sImp.c index 33d3c2b..3498392 100644 --- a/java/src/jni/h5sImp.c +++ b/java/src/jni/h5sImp.c @@ -165,7 +165,7 @@ done: /* 10/28/99 -- added code to copy the array -- this is not used, * but serves as a reminder in case we try to implement this in * the future.... - */ + */ /* * Note: the argument coord is actually long coord[][], which has been * flattened by the caller. diff --git a/java/src/jni/h5sImp.h b/java/src/jni/h5sImp.h index a07d4c5..cea2ebf 100644 --- a/java/src/jni/h5sImp.h +++ b/java/src/jni/h5sImp.h @@ -52,7 +52,7 @@ Java_hdf_hdf5lib_H5__1H5Scopy /* 10/28/99 -- added code to copy the array -- this is not used, * but serves as a reminder in case we try to implement this in * the future.... - */ + */ /* * Note: the argument coord is actually long coord[][], which has been * flattened by the caller. diff --git a/java/test/TestH5E.java b/java/test/TestH5E.java index 6f4f473..ac641c3 100644 --- a/java/test/TestH5E.java +++ b/java/test/TestH5E.java @@ -81,6 +81,7 @@ public class TestH5E { long errnum = hdferr.getMajorErrorNumber(); int[] error_msg_type = { HDF5Constants.H5E_MAJOR }; String msg = null; + try { msg = H5.H5Eget_msg(errnum, error_msg_type); } @@ -91,15 +92,15 @@ public class TestH5E { assertNotNull("H5.H5Eget_msg: " + msg, msg); assertEquals("H5.H5Eget_msg: ", HDF5Constants.H5E_MAJOR, error_msg_type[0]); - /* - * If HDF5_VOL_CONNECTOR is set, this might not be the - * native connector and the error string might be different. - * Only check for the specific error message if the native - * connector is being used. - */ - String connector = System.getenv("HDF5_VOL_CONNECTOR"); - if (connector == null) - assertEquals("H5.H5Eget_msg: ", "File accessibility", msg); + /* + * If HDF5_VOL_CONNECTOR is set, this might not be the + * native connector and the error string might be different. + * Only check for the specific error message if the native + * connector is being used. + */ + String connector = System.getenv("HDF5_VOL_CONNECTOR"); + if (connector == null) + assertTrue("H5.H5Eget_msg: ", msg.contains("File accessibility")); } catch (Throwable err) { err.printStackTrace(); @@ -116,6 +117,7 @@ public class TestH5E { long errnum = hdferr.getMinorErrorNumber(); int[] error_msg_type = { HDF5Constants.H5E_MINOR }; String msg = null; + try { msg = H5.H5Eget_msg(errnum, error_msg_type); } @@ -126,15 +128,15 @@ public class TestH5E { assertNotNull("H5.H5Eget_msg: " + msg, msg); assertEquals("H5.H5Eget_msg: ", HDF5Constants.H5E_MINOR, error_msg_type[0]); - /* - * If HDF5_VOL_CONNECTOR is set, this might not be the - * native connector and the error string might be different. - * Only check for the specific error message if the native - * connector is being used. - */ - String connector = System.getenv("HDF5_VOL_CONNECTOR"); - if (connector == null) - assertEquals("H5.H5Eget_msg: ", "Unable to open file", msg); + /* + * If HDF5_VOL_CONNECTOR is set, this might not be the + * native connector and the error string might be different. + * Only check for the specific error message if the native + * connector is being used. + */ + String connector = System.getenv("HDF5_VOL_CONNECTOR"); + if (connector == null) + assertTrue("H5.H5Eget_msg: ", msg.contains("Unable to open file")); } catch (Throwable err) { err.printStackTrace(); diff --git a/java/test/TestH5Tparams.java b/java/test/TestH5Tparams.java index 8baccd1..f2b5ab5 100644 --- a/java/test/TestH5Tparams.java +++ b/java/test/TestH5Tparams.java @@ -274,7 +274,7 @@ public class TestH5Tparams { public void testH5Tpack_invalid() throws Throwable { H5.H5Tpack(-1); } - + @Test(expected = HDF5LibraryException.class) public void testH5Treclaim_invalid() throws Throwable { byte[] buf = new byte[2]; -- cgit v0.12