Skip to content

Commit

Permalink
Merge pull request NOAA-EMC#201 from NOAA-EMC/ejh_test
Browse files Browse the repository at this point in the history
now testing with g2c_compare utility
  • Loading branch information
edwardhartnett authored Jan 26, 2023
2 parents 150a741 + 0f3f92e commit 19ee61f
Show file tree
Hide file tree
Showing 5 changed files with 240 additions and 13 deletions.
204 changes: 204 additions & 0 deletions .github/workflows/Linux_external.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
# This is a GitHub actions workflow for the NCEPLIBS-grib_util project.
#
# This workflow builds on Linux with latest versions of NCEPLIBS and
# different versions jasper.
#
# Ed Hartnett 1/19/23
name: Linux_external
on:
push:
branches:
- develop
pull_request:
branches:
- develop

jobs:
Linux_external:
runs-on: ubuntu-latest
env:
FC: gfortran-11
CC: gcc-11
strategy:
matrix:
g2-version: [develop, v3.4.x]
bacio-version: [2.5.0]
jasper-version: [2.0.33, 3.0.5, 4.0.0]
w3emc-version: [2.9.3]

steps:
- name: install-dependencies
run: |
sudo apt-get update &> /dev/null
sudo apt-get install libpng-dev libjpeg-dev
- name: cache-jasper
id: cache-jasper
uses: actions/cache@v2
with:
path: ~/jasper
key: jasper-Linux_versions-${{ matrix.jasper-version }}

- name: checkout-jasper
if: steps.cache-jasper.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: jasper-software/jasper
path: jasper
ref: version-${{ matrix.jasper-version }}

- name: build-jasper
if: steps.cache-jasper.outputs.cache-hit != 'true'
run: |
cd jasper
mkdir b && cd b
cmake .. -DCMAKE_INSTALL_PREFIX=~/jasper
make -j2
make install
- name: cache-bacio
id: cache-bacio
uses: actions/cache@v2
with:
path: ~/bacio
key: bacio-${{ runner.os }}-v${{ matrix.bacio-version }}

- name: checkout-bacio
if: steps.cache-bacio.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS-bacio
path: bacio
ref: v${{ matrix.bacio-version }}

- name: build-bacio
if: steps.cache-bacio.outputs.cache-hit != 'true'
run: |
cd bacio
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/bacio
make -j2
make install
- name: cache-sp
id: cache-sp
uses: actions/cache@v2
with:
path: ~/sp
key: sp-${{ runner.os }}-2.3.3-1

- name: checkout-sp
if: steps.cache-sp.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS-sp
path: sp
ref: v2.3.3

- name: build-sp
if: steps.cache-sp.outputs.cache-hit != 'true'
run: |
cd sp
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/sp
make -j2
make install
- name: cache-w3emc
id: cache-w3emc
uses: actions/cache@v2
with:
path: ~/w3emc
key: w3emc-${{ runner.os }}-${{ matrix.w3emc-version }}-bacio-${{ matrix.bacio-version }}

- name: checkout-w3emc
if: steps.cache-w3emc.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS-w3emc
path: w3emc
ref: v${{ matrix.w3emc-version }}

- name: build-w3emc
if: steps.cache-w3emc.outputs.cache-hit != 'true'
run: |
cd w3emc
mkdir build
cd build
cmake .. -DCMAKE_PREFIX_PATH=~/bacio -DCMAKE_INSTALL_PREFIX=~/w3emc
make -j2
make install
- name: cache-ip
id: cache-ip
uses: actions/cache@v2
with:
path: ~/ip
key: ip-${{ runner.os }}-3.3.3

- name: checkout-ip
if: steps.cache-ip.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS-ip
path: ip
ref: v3.3.3

- name: build-ip
if: steps.cache-ip.outputs.cache-hit != 'true'
run: |
cd ip
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/ip -DCMAKE_PREFIX_PATH=~/sp
make -j2
make install
- name: checkout-g2c
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS-g2c
path: g2c
ref: develop

- name: build-g2c
run: |
cd g2c
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/g2c -DCMAKE_PREFIX_PATH="~/jasper" ..
make -j2
make install
- name: checkout-g2
if: steps.cache-g2.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS-g2
path: g2
ref: ${{ matrix.g2-version }}

- name: build-g2
run: |
cd g2
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/g2 -DCMAKE_PREFIX_PATH="~/bacio;~/jasper;~/w3emc;~/g2c" ..
make -j2
make install
- name: checkout-grib_utils
uses: actions/checkout@v2
with:
path: grib_utils

- name: build-grib_utils
run: |
cd grib_utils
mkdir build && cd build
export LD_LIBRARY_PATH=/home/runner/jasper/lib
export PATH="~/g2c/bin:$PATH"
cmake -DCMAKE_PREFIX_PATH="~/bacio;~/jasper;~/sp;~/ip;~/w3emc;~/g2;~/g2c" ..
make -j2 VERBOSE=1
ctest --output-on-failure --rerun-failed --verbose
24 changes: 18 additions & 6 deletions .github/workflows/developer.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# This is a GitHub actions workflow for the NCEPLIBS-grib_util project.
# This is a GitHub actions CI workflow for the NCEPLIBS-grib_util
# project.
#
# This workflow does the developer run, with documentation build and
# code coverage.
# This workflow tests the build as a developer would do it, with
# address sanitizer and documentation build.
#
# Ed Hartnett 1/19/23
# Ed Hartnett 1/9/23
name: developer
on:
push:
Expand Down Expand Up @@ -36,7 +37,7 @@ jobs:
with:
repository: jasper-software/jasper
path: jasper
ref: version-2.0.33
ref: version-3.0.5

- name: cache-jasper
id: cache-jasper
Expand Down Expand Up @@ -69,14 +70,23 @@ jobs:
make -j2
make install
- name: cache-sp
id: cache-sp
uses: actions/cache@v2
with:
path: ~/sp
key: sp-developer-${{ runner.os }}-2.3.3

- name: checkout-sp
if: steps.cache-sp.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS-sp
path: sp
ref: develop
ref: v2.3.3

- name: build-sp
if: steps.cache-sp.outputs.cache-hit != 'true'
run: |
cd sp
mkdir build
Expand Down Expand Up @@ -146,6 +156,7 @@ jobs:
mkdir build
cd build
echo $LD_LIBRARY_PATH
export PATH="~/g2c/bin:$PATH"
pwd
cmake -DCMAKE_INSTALL_PREFIX=~/g2 -DCMAKE_PREFIX_PATH="~/bacio;~/jasper;~/w3emc;~/g2c" ..
make -j2
Expand All @@ -162,6 +173,7 @@ jobs:
mkdir build && cd build
ls -l ~/jasper/lib
export LD_LIBRARY_PATH=/home/runner/jasper/lib
export PATH="~/g2c/bin:$PATH"
cmake -DENABLE_DOCS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="~/bacio;~/jasper;~/sp;~/ip;~/w3emc;~/g2;~/g2c" -DCMAKE_Fortran_FLAGS="-fprofile-arcs -ftest-coverage -O0 -Wall" -DCMAKE_C_FLAGS="-fprofile-arcs -ftest-coverage -O0 -Wall" ..
make -j2 VERBOSE=1
ctest --output-on-failure --rerun-failed --verbose
Expand Down
10 changes: 10 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,16 @@ find_package(w3emc 2.9.2 REQUIRED)
find_package(g2 3.4.0 REQUIRED)
if (g2_VERSION GREATER_EQUAL 3.5.0)
find_package(g2c 1.7.0 REQUIRED)
else()
find_package(g2c 1.7.0)
endif()

# See if the g2c_compare program is available.
find_program(G2C_COMPARE g2c_compare)
if (G2C_COMPARE)
message(STATUS "g2c_compare found: ${G2C_COMPARE}")
else()
message(STATUS "g2c_compare not found.")
endif()

# The name of the bacio library changed with the 2.5.0 release. The
Expand Down
7 changes: 6 additions & 1 deletion tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,16 @@ gu_copy_test_data(ref_gdaswave.t00z.wcoast.0p16.f000_2.grib2.idx)
# Run these shell tests.
gu_test(run_cnvgrib_tests)
gu_test(run_copygb_tests)
gu_test(run_copygb2_tests)
gu_test(run_degrib2_tests)
gu_test(run_grbindex_tests)
gu_test(run_grb2index_tests)

# This test depends on the g2c_compare utility, which may not be
# present.
if (G2C_COMPARE)
gu_test(run_copygb2_tests)
endif()

# Does the user want to get extra test files from the FTP site, and
# run extra tests on them?
if(FTP_TEST_FILES)
Expand Down
8 changes: 2 additions & 6 deletions tests/run_copygb2_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,8 @@ echo "*** Running copygb2 test"
# Copy GRIB2 file.
../src/copygb2/copygb2 -x data/ref_gdaswave.t00z.wcoast.0p16.f000.grib2 test_gdaswave_2.grib2

# Create an index of the copied file.
../src/grb2index/grb2index test_gdaswave_2.grib2 test_gdaswave_2.idx

# Check against expected output. First 120 bytes contain differences,
# so ignore them.
cmp -i 120 test_gdaswave_2.idx data/ref_gdaswave_2.idx
# Are the files the same?
g2c_compare -v data/ref_gdaswave.t00z.wcoast.0p16.f000.grib2 test_gdaswave_2.grib2

echo "*** SUCCESS!"
exit 0

0 comments on commit 19ee61f

Please sign in to comment.