Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Final stage of bats removal, all tests converted to use shell scripts #228

Merged
merged 54 commits into from
Dec 2, 2019

Conversation

edwardhartnett
Copy link
Contributor

This PR is a continuation of #222

In this PR bats is completely removed. Only shell script tests remain. All tests formerly run by bats are run by the shell tests.

Fixes #221.

@underwoo underwoo added this to the 2020.01 milestone Nov 29, 2019
@underwoo underwoo added the enhancement Issue/PR for a modification that increases performance, improves syntax, or adds functionality. label Nov 29, 2019
@underwoo underwoo mentioned this pull request Nov 29, 2019
@wrongkindofdoctor wrongkindofdoctor merged commit a34023f into NOAA-GFDL:master Dec 2, 2019
wrongkindofdoctor added a commit that referenced this pull request Dec 2, 2019
wrongkindofdoctor added a commit that referenced this pull request Dec 4, 2019
* __APPLE__ replaced with autoconf test for gettid

On my Arch Linux distribution, the FMS build failed due to a pre-defined
gettid function, which refused to allow the build of a local gettid inside of
affinity.c.  (GCC 9.2, libc 2.30, Linux 5.3.5)

This patch adds a AC_CHECK_FUNCS test for gettid and redefines the local
version if it's unavailable.

HAVE_GETTID is defined for an automake build, but this patch may
potentially break any legacy MKMF builds for Darwin (OSX) users, unless
they manually define it in their templates.  (But perhaps that is the
preferred solution anyway?)

* Fix GNU compiler warnings

* updated makefile for use with current EMC build system

* Updated release version in configure.ac

* Update configure.ac release number for 2020.01 development

* Added CHANGELOG.md file

Added stub of a changelog file to contain 2020 updates.

* now check for sed and ncgen in configure.ac (#207)

* now check for sed and ncgen in configure.ac

* fixed comment

* fixed comments

* fixed comments

* Final stage of bats removal, all tests converted to use shell scripts (#228)

* changed some test runs to use 6 processors instead of 2

* turned of failing test

* turned of failing test

* turned of failing test

* now make check && make clean && make check works

* fixed Makefile.am wrt input_base.nml

* fixed location of input_base.nml for vpath builds

* fixing distcheck issue for data_table and diag_table

* fixed input_base.nml which should have <test_num>

* starting to fix set -e

* adding set -e in more places

* more set -e

* more adding set -e

* commenting out more failing tests

* using skip instead of commenting out tests

* adding option to run shell tests instead of bats tests

* starting to switch to shell tests

* shell tests now have TAP output

* added test_common.sh.in for common shell test code

* clean up and comments

* added shell test script

* better handling of test in diag_manager

* now diag_manager tests working well for shell script

* took TAP output out of axis_utils

* added test script

* more conversion away from bats

* more progress on shell tests

* more progress

* more progress adding shell testing

* more progress on shell tests

* more progress on shell tests

* more progress on shell testing

* now have shell testing in all test subdirectories

* fixed shell test script

* fixed makefile

* fixed makefile

* fixed makefile

* fixed makefile

* removing bats from axis_utils

* temporarily set ENABLE_SHELL_TESTS am conditional

* removed bats from data_override and diag_manager

* took bats out of drifters

* removed bats from exchange

* more removal of bats

* more removal of bats

* more removal of bats

* more removal of bats

* removed am conditional for enable_shell_tests

* removed last .bats and .test files

* remove LOG_DRIVER setting in travis

* commenting out skipped axis_util test

* fix circular depedency related to mpp_efp_mod.mod (#229)

* Fixed pull request template so it shows (#233)

The pull request template was not showing as expected.  This should fix that problem.
wrongkindofdoctor added a commit that referenced this pull request Jan 3, 2020
* __APPLE__ replaced with autoconf test for gettid

On my Arch Linux distribution, the FMS build failed due to a pre-defined
gettid function, which refused to allow the build of a local gettid inside of
affinity.c.  (GCC 9.2, libc 2.30, Linux 5.3.5)

This patch adds a AC_CHECK_FUNCS test for gettid and redefines the local
version if it's unavailable.

HAVE_GETTID is defined for an automake build, but this patch may
potentially break any legacy MKMF builds for Darwin (OSX) users, unless
they manually define it in their templates.  (But perhaps that is the
preferred solution anyway?)

* Fix GNU compiler warnings

* updated makefile for use with current EMC build system

* Updated release version in configure.ac

* Update configure.ac release number for 2020.01 development

* Added CHANGELOG.md file

Added stub of a changelog file to contain 2020 updates.

* now check for sed and ncgen in configure.ac (#207)

* now check for sed and ncgen in configure.ac

* fixed comment

* fixed comments

* fixed comments

* Final stage of bats removal, all tests converted to use shell scripts (#228)

* changed some test runs to use 6 processors instead of 2

* turned of failing test

* turned of failing test

* turned of failing test

* now make check && make clean && make check works

* fixed Makefile.am wrt input_base.nml

* fixed location of input_base.nml for vpath builds

* fixing distcheck issue for data_table and diag_table

* fixed input_base.nml which should have <test_num>

* starting to fix set -e

* adding set -e in more places

* more set -e

* more adding set -e

* commenting out more failing tests

* using skip instead of commenting out tests

* adding option to run shell tests instead of bats tests

* starting to switch to shell tests

* shell tests now have TAP output

* added test_common.sh.in for common shell test code

* clean up and comments

* added shell test script

* better handling of test in diag_manager

* now diag_manager tests working well for shell script

* took TAP output out of axis_utils

* added test script

* more conversion away from bats

* more progress on shell tests

* more progress

* more progress adding shell testing

* more progress on shell tests

* more progress on shell tests

* more progress on shell testing

* now have shell testing in all test subdirectories

* fixed shell test script

* fixed makefile

* fixed makefile

* fixed makefile

* fixed makefile

* removing bats from axis_utils

* temporarily set ENABLE_SHELL_TESTS am conditional

* removed bats from data_override and diag_manager

* took bats out of drifters

* removed bats from exchange

* more removal of bats

* more removal of bats

* more removal of bats

* more removal of bats

* removed am conditional for enable_shell_tests

* removed last .bats and .test files

* remove LOG_DRIVER setting in travis

* commenting out skipped axis_util test

* fix circular depedency related to mpp_efp_mod.mod (#229)

* Fixed pull request template so it shows (#233)

The pull request template was not showing as expected.  This should fix that problem.

* Fix CPP warning due to defining already defined macro. (#232)

* Remove string overflow warning in field_manager (#251)

Gfortran would issue a warning of reading 128 bytes from a region of 127 in field_manager.  This update removes that warning

* Use correct c abs function for all variable types (#187)

Fixed the use of the wrong absolute value function in C sources

Co-authored-by: Samuel Trahan (NOAA contractor) <[email protected]>
Co-authored-by: Marshall Ward <[email protected]>
Co-authored-by: Dusan Jovic <[email protected]>
Co-authored-by: Jess <[email protected]>
Co-authored-by: bensonr <[email protected]>
Co-authored-by: Seth Underwood <[email protected]>
Co-authored-by: Edward Hartnett <[email protected]>
wrongkindofdoctor added a commit that referenced this pull request Jan 9, 2020
* adding in new fms_io code

* added new fms-io code

* added checksum and some other legacy features

* backup, added legacy validator

* fixed logic error.

* added legacy axis_edges routine

* hacked in 1d string reads.  Needs to be cleaned up.

* make base type public for land

* add method to get name of unlimited dimension.

* make stuff public

* hacked in regional support for domain reads, need to clean this up

* remove old version

* updated formatting, possible fix for string write/reads

* bug fixes

* fixes for indexing bugs in string reads

* stop at null character.

* clear string before pointing at it.

* update for use fms2_io in xgrid.F90, test_xgrid.F90 and mosaic.F90

* potential fix for supporting buffers that include space for halos

* added some tests

* added makefiles

* fix make clean

* potential domain read fix and gnu string fixes

* bug fixes for domain reads

* bugfix in attribute broadcast

* removed some unnecessary lines

* possible fix for writes that include space for halos

* fixed a bug introduced in the cleanup

* bug fix for indexing

* updated unit tests for domain writes with buffers that include space for halos

* cleanup

* attempt at halo-ignoring global checksums.

* implicit do is hitting out-of-bounds errors

* set different values of npes_group in tests

* replace mpp_io/fms_io call with fms2_io calls

* added fms2_io and its test to the autotools build

* Fix build

* added doxygen file

* add check for .res.

* update interpolator to use new fms_io

* update to fix compilation issue

* add some more legacy features

* new function to get start/stop indices of global io_domain

* Adds open_check function to check if something opens correctly.

* Adds a flag to a file object to make sure the file is open

* Adds a check to see if an allocatable is allocated before deallocating

* first step toward intermediate restarts

* updates for intermediate restarts, needs debugging

* fixed intent issue

* handle unlimited dimension in copy_metadata

* if you have path problems

* attempt at diskless file objects

* Adds the file objects for new fms_io

Adds a method to check if the time axis has been registered

* Allocates the file objects for new fms_io

* Writes (most of the) metadata for axis and variables using the new fms_io

* Adds more variable attributes in the diag_manager.

* Adds an is_open function that returns true if a file is open with optional check for the file name as well

* Fixes an error with check_if_open

* Update to use new fms_io

* remove oda_tools. oda_tools is only used in MOM5 and MOM6 will not use this directory

* fixed bug in global checksum calculation

* fix bug in attribute check

* bugfix for verify if

* fix autotools build and clean up after merge of zhis branch

* Fixes diag_output.F90 to work with fms2_io updates

* bugfix for verify if

* Writes data for diagnostic variables.

Adds more metadata writes to include what is currently written out to history files

* Adds additional pos argument to diag_axis_init and get_diag_axis as well as adding pos to the Axes derrived type variable

* probably doesn't work

* add attributes required by mppnccombine

* potential bug fix in domain open

* bugfix in domain open

* bugfix in domains open for real this time

* added new test for workstation

* Adds the cart_name to an error message about an invalid cart_name

* Removes diag_field_out calls and replaces them with diag_field_write using fms2_io

* Adds interface for diag_field_write and new routine diag_field_write_varname when the variable name is passed in instead of the field derived type variable

Writes output for files with no domain using only mpp_root_pe

Uses the axis_pos to determine the position of the axis and passes it to register_axis

Accepts the direction of an axis and writes the positive attribute if axis_direction is -1 or 1

Write cart_name for unstructured axis

Uses “pack” to determine if a variable is 32bit or 64bit

Passes the variable name into write_attribute_meta to write attributes using new fms2_io

Converts attributes(i)%fatt to real(kind=4)  when attribute is NF90_FLOAT

* Adds public for check_if_open to fms2_io.F90

* need when using one register call for both read/write

* Uses the base type for the file objects with no domain in the diag_manager.

Minor updates to the diag write routines

* Bug fixes for is_open check routine

* Allows for passing in time steps into the diagnostic files with fms2_io.  It 'works' but not for all cases.

* Allows for a 4d variable to not have it's last dimension set as the time in fms2_io data writes.  This is needed to be compatible with the diag_manager which always passes in 4D variables.

* Adds edge metadata and edge axes to the history files using fms2_io

* refactor to move diskless file routines to their own module

* Changes some of the logic related to how diag files are closed

* Fix for writing output data in history files with no domain (scalars)

* Sets up a buffer to deal with diurnal data in the diag_manager

* Fixes an issue with multiple ranks trying to do something with a scalar file.

* add new tests to unit test

* Allows writing for history files with no domain.

Removes all functionality of diag_flush

* Removes mpp_io open and write routines from diag_manager modules.

Removes station_data_mod

* Adds cf_compliance for the cartesian letter of the axis.

Removes the units attribute from variables/axes if the units are none

* Removes the axis attribute for axes with the cartesian_name set to N

CF compliance for the calendar name using upper and lower case correctly

* Removes the optional attribute to the fms file objects as inputs for subroutines.

* Updates logic related to stripping out tile string in file name.  Can now use a file name smaller than 4 characters.

* Updates logic for stripping out 'tile' part of a file name in the diag_manager

* Adds time_name to the fms2_io file object.  The time name is used to set the name of the time variable and is passed in when writing the time data.

* Moves writing the range attribute into the pack selection section in diag_output.  This allows the range to being either a double or a float.

* Checks for an extra .nc suffix on the file name of a history file.

* Allows time_name in the file object to actually be set to whatever the time axis is called.

* Fixes a "typo" so that the the check for a .nc on the end of a file name go to the end.

* Allows for writing variables in closing_file who do not have the correct time at the end.  Presumably writes fill values

* updates autotools include path for fms2_io

* Fixes the Makefle.am include path error for the diag manager test.

* Skips running diag_manager tests.  Waiting for test updates.

* Removes the diag_manager test from configure.ac

* Removes bats from the repo

* Updates .travis.yml to install bats
Fixes FMS tests to run with make distcheck (only worked with make check before)

* Removes bats from travis.yml

* removed fms2-io  flag from diag_integral makefile

* Revert previous commit to remove fms2-io flag

* Fix crash when name of history file has tile

* Added trim when getting the length of filename string

* Moved diag_integral after coupler

Move diag_intergral after coupler in Makefile to build the modules in the correct order.

* Fix in compressed_write where the incorrect compressed index was used

* moved diag_manager after coupler in makefile

moved diag_manager after coupler to resolve dependency issue in the FMS Makefile

* Revert previous commit

Accidentally moved diag_manager;diag_integral was fine

* Fix to check for the missing_value in the is_valid function

* Added missing use fms_mod :: open file that was accidently removed in #114

* Remove extra has_missing declarations, added more explicit description

* Added missing_val to valid_t type

* hacks to fix domain read/write issues, needs serious cleanup

* Clean up domain read/write fix

* Fix typo in logic

* Remove extra factor of 100 in amip_interp

* Fixes typo in logic

* Modified read routines to check for scale factor and add_offset

* Added unpack_data.inc to the Makefile.am

* Fix to exchange grid to read grid file without a domain

* Changes logic to correctly set the name of the restart files for multiple tiles

* Added comments explaining the logic

* Fix typos when setting types in unpack_data.inc

* Revert "Bug fix amip_interp with new io"

* Adds index when assigning the corner and edges variables in the read

* fixed merge conflicts in test_diag_manager.bats

* fixed merge conflicts in test_diag_manager.sh

* fixed merge conflicts in diag_manager Makefile.am

* removed blank line in SUBDIRS definition in Makefile.am

* added a line to include the fms2_io directory in the test_fms/exchange/Makefile.m

* changed use mosaic_mod to use mosaic2_mod in test routine to use new fms io

* added missing open_namelist_file to fms_mod module use statement

* added missing close_file to fms_mod module use statement

* reordered statements, whitespace cleanup, addedLOG_DRIVER line to Makefile.am

* fixed the path definition to test_atmosphere_io.bats in test_diag_manager.sh

* added curly braces around $srcdir in test_diag_manager.sh

* fixed the link to the namelist file in the bats file, and added a statement to skip since the test is broken at the moment

* made the get_variable_unlimited_dimension_index public

* Modified input.nml_base to work with lat / lon grid, as well as test_data_override.F90 to work with new IO (was missing a mpp_io_define_domain call). The test_data_override.bats script has been modified not to skip the first two tests and has added a 3rd test that will be used during the testing of the data blend feature.

* Reverted .bats file

* fixed makefile and added fms2_io to the make target directories

* moved test_fms/fms2_io/Makefile up in the AC_CONFIG_FILES array

* removed white space

* added test_fms to the SUBDIRS in main Makefile.am

* removed test_fms subdirectory makefiles from SUBDIRS in main Makefils, since they are defined in the test_fms Makefile.am

* removed whitespace

* modified time_interp_missing parm for mixed-mode compilation to match fix in time_interp_external.F90

* changed order of cppflag file list in Makefile

* removed blank line from test_fms/Makefile.am

* removed unused calls that open the xgrid_log file and write to it via mpp routines

* Breaks up an if statement looking at is static is present and true.  Does the two separately instead of on a single line.

* Ouputs the chksum as a 16 length character

* Trims and adjusts checksums when comparing them

* Removes the *100 in amip_interp routine because new io doesn't read in the scale factor and add_offset (#236)

* User/jml/merge master into fms io dev (#237)

* __APPLE__ replaced with autoconf test for gettid

On my Arch Linux distribution, the FMS build failed due to a pre-defined
gettid function, which refused to allow the build of a local gettid inside of
affinity.c.  (GCC 9.2, libc 2.30, Linux 5.3.5)

This patch adds a AC_CHECK_FUNCS test for gettid and redefines the local
version if it's unavailable.

HAVE_GETTID is defined for an automake build, but this patch may
potentially break any legacy MKMF builds for Darwin (OSX) users, unless
they manually define it in their templates.  (But perhaps that is the
preferred solution anyway?)

* Fix GNU compiler warnings

* updated makefile for use with current EMC build system

* Updated release version in configure.ac

* Update configure.ac release number for 2020.01 development

* Added CHANGELOG.md file

Added stub of a changelog file to contain 2020 updates.

* now check for sed and ncgen in configure.ac (#207)

* now check for sed and ncgen in configure.ac

* fixed comment

* fixed comments

* fixed comments

* Final stage of bats removal, all tests converted to use shell scripts (#228)

* changed some test runs to use 6 processors instead of 2

* turned of failing test

* turned of failing test

* turned of failing test

* now make check && make clean && make check works

* fixed Makefile.am wrt input_base.nml

* fixed location of input_base.nml for vpath builds

* fixing distcheck issue for data_table and diag_table

* fixed input_base.nml which should have <test_num>

* starting to fix set -e

* adding set -e in more places

* more set -e

* more adding set -e

* commenting out more failing tests

* using skip instead of commenting out tests

* adding option to run shell tests instead of bats tests

* starting to switch to shell tests

* shell tests now have TAP output

* added test_common.sh.in for common shell test code

* clean up and comments

* added shell test script

* better handling of test in diag_manager

* now diag_manager tests working well for shell script

* took TAP output out of axis_utils

* added test script

* more conversion away from bats

* more progress on shell tests

* more progress

* more progress adding shell testing

* more progress on shell tests

* more progress on shell tests

* more progress on shell testing

* now have shell testing in all test subdirectories

* fixed shell test script

* fixed makefile

* fixed makefile

* fixed makefile

* fixed makefile

* removing bats from axis_utils

* temporarily set ENABLE_SHELL_TESTS am conditional

* removed bats from data_override and diag_manager

* took bats out of drifters

* removed bats from exchange

* more removal of bats

* more removal of bats

* more removal of bats

* more removal of bats

* removed am conditional for enable_shell_tests

* removed last .bats and .test files

* remove LOG_DRIVER setting in travis

* commenting out skipped axis_util test

* fix circular depedency related to mpp_efp_mod.mod (#229)

* Fixed pull request template so it shows (#233)

The pull request template was not showing as expected.  This should fix that problem.

* Io master merge (#253)

* __APPLE__ replaced with autoconf test for gettid

On my Arch Linux distribution, the FMS build failed due to a pre-defined
gettid function, which refused to allow the build of a local gettid inside of
affinity.c.  (GCC 9.2, libc 2.30, Linux 5.3.5)

This patch adds a AC_CHECK_FUNCS test for gettid and redefines the local
version if it's unavailable.

HAVE_GETTID is defined for an automake build, but this patch may
potentially break any legacy MKMF builds for Darwin (OSX) users, unless
they manually define it in their templates.  (But perhaps that is the
preferred solution anyway?)

* Fix GNU compiler warnings

* updated makefile for use with current EMC build system

* Updated release version in configure.ac

* Update configure.ac release number for 2020.01 development

* Added CHANGELOG.md file

Added stub of a changelog file to contain 2020 updates.

* now check for sed and ncgen in configure.ac (#207)

* now check for sed and ncgen in configure.ac

* fixed comment

* fixed comments

* fixed comments

* Final stage of bats removal, all tests converted to use shell scripts (#228)

* changed some test runs to use 6 processors instead of 2

* turned of failing test

* turned of failing test

* turned of failing test

* now make check && make clean && make check works

* fixed Makefile.am wrt input_base.nml

* fixed location of input_base.nml for vpath builds

* fixing distcheck issue for data_table and diag_table

* fixed input_base.nml which should have <test_num>

* starting to fix set -e

* adding set -e in more places

* more set -e

* more adding set -e

* commenting out more failing tests

* using skip instead of commenting out tests

* adding option to run shell tests instead of bats tests

* starting to switch to shell tests

* shell tests now have TAP output

* added test_common.sh.in for common shell test code

* clean up and comments

* added shell test script

* better handling of test in diag_manager

* now diag_manager tests working well for shell script

* took TAP output out of axis_utils

* added test script

* more conversion away from bats

* more progress on shell tests

* more progress

* more progress adding shell testing

* more progress on shell tests

* more progress on shell tests

* more progress on shell testing

* now have shell testing in all test subdirectories

* fixed shell test script

* fixed makefile

* fixed makefile

* fixed makefile

* fixed makefile

* removing bats from axis_utils

* temporarily set ENABLE_SHELL_TESTS am conditional

* removed bats from data_override and diag_manager

* took bats out of drifters

* removed bats from exchange

* more removal of bats

* more removal of bats

* more removal of bats

* more removal of bats

* removed am conditional for enable_shell_tests

* removed last .bats and .test files

* remove LOG_DRIVER setting in travis

* commenting out skipped axis_util test

* fix circular depedency related to mpp_efp_mod.mod (#229)

* Fixed pull request template so it shows (#233)

The pull request template was not showing as expected.  This should fix that problem.

* Fix CPP warning due to defining already defined macro. (#232)

* Remove string overflow warning in field_manager (#251)

Gfortran would issue a warning of reading 128 bytes from a region of 127 in field_manager.  This update removes that warning

* Use correct c abs function for all variable types (#187)

Fixed the use of the wrong absolute value function in C sources

Co-authored-by: Samuel Trahan (NOAA contractor) <[email protected]>
Co-authored-by: Marshall Ward <[email protected]>
Co-authored-by: Dusan Jovic <[email protected]>
Co-authored-by: Jess <[email protected]>
Co-authored-by: bensonr <[email protected]>
Co-authored-by: Seth Underwood <[email protected]>
Co-authored-by: Edward Hartnett <[email protected]>

* No extra xy (#146)

* Comments out checks for extra_y and extra_x in IO routines.

* Removes extra_x and extra_y from write routines in fms2_io.

Co-authored-by: menzel-gfdl <[email protected]>
Co-authored-by: Zhi Liang <[email protected]>
Co-authored-by: Tom Robinson <[email protected]>
Co-authored-by: Jess <[email protected]>
Co-authored-by: Eric <[email protected]>
Co-authored-by: uramirez8707 <[email protected]>
Co-authored-by: Samuel Trahan (NOAA contractor) <[email protected]>
Co-authored-by: Marshall Ward <[email protected]>
Co-authored-by: Dusan Jovic <[email protected]>
Co-authored-by: bensonr <[email protected]>
Co-authored-by: Edward Hartnett <[email protected]>
@edwardhartnett edwardhartnett deleted the ejh_remove_bats_2 branch June 11, 2020 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Issue/PR for a modification that increases performance, improves syntax, or adds functionality.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove the use of bats in testing
5 participants