NOAA-EMC / NCEPLIBS-bufr

The NCEPLIBS-bufr library contains routines and utilites for working with the WMO BUFR format.
Other
44 stars 19 forks source link

convert remaining IN and OUT test codes to F90 #331

Closed jbathegit closed 1 year ago

jbathegit commented 1 year ago

Fixes #308 Fixes #295

Part of #33

jbathegit commented 1 year ago

So I added a new outtest8.F90 test to capture some more of the library subprograms that weren't yet being tested. And I correspondingly updated the bufr-11.6.0.tgz bundle on the emcrzdm server to include the input and baseline output files for this new test.

Everything works fine when I run this locally in my own area and let it download the updated bufr-11.6.0.tgz bundle from the server. But the automated CI tests apparently don't download this bundle and instead copy it in from a stored cache, according to the Copying file /home/runner/data/bufr-11.6.0.tgz to test data directory statement in the logs. The problem is that stored cache obviously doesn't contain the baseline files that are now needed for the new outtest8.F90 test, so all of those tests are now failing.

@edwardhartnett how do we replace the old bufr-11.6.0.tgz in /home/runner/data with the new one? Until we do this, the cmake option -DTEST_FILE_DIR=/home/runner/data in all of the workflow yml files will continue to use the old cached version and these tests will continue to fail.

jbathegit commented 1 year ago

I know I have admin access to this repository, but I've been through all of the Settings pages and don't see any way to update the cache with the new bufr-11.6.0.tgz file.

@edwardhartnett once you're back from leave, I'd really appreciate a quick tutorial to understand how you cached that file in the first place, and how to update it (thanks ;-)

edwardhartnett commented 1 year ago

OK, I didn't notice until now that you had converted the rest of the IN tests. So I have done some in another PR.

In order to invalidate the data cache in the develop branch change this line in developer.yml:

key: data-1 Change this to "data-2" and it will invalidate the current cache and fetch the data again.

jbathegit commented 1 year ago

BTW, thanks for the explanation of how to force the runner to change the data in the cache! I'll take care of that when I push up the next commit.

I may still have one new intest code to add if I can get my hands on a sample prepfits file, and in which case I can cook up a test for the ufbin3 routine as well. I'll keep you posted.

jbathegit commented 1 year ago

BTW, I'm guessing I'm going to need to update that key setting in all of the .yml files, not just in developer.yml, correct?

At the moment, we have the following in each of the .yml files:

So MacOS is already pointing to a different data-2 key - do you have any idea why? And does this mean that I should now update all of them to be key: data-3?

edwardhartnett commented 1 year ago

Just increment all the keys by 2 and that should work. MacOS has a different cache from Linux, IIRC.