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

Enhance MET testing infrastructure to compute code coverage statistics #2612

Open
7 of 20 tasks
JohnHalleyGotway opened this issue Jul 17, 2023 · 1 comment
Open
7 of 20 tasks
Assignees
Labels
component: testing Software testing issue priority: high High Priority requestor: Community General Community type: new feature Make it do something new
Milestone

Comments

@JohnHalleyGotway
Copy link
Collaborator

JohnHalleyGotway commented Jul 17, 2023

Describe the New Feature

See dtcenter/METplus-Internal#25

The Australian BOM requires a certain test coverage percentage in order for software to be run operationally. This requirement applies to both METplus (python requirement of 90+% coverage) and MET (unknown coverage requirements). This task is to setup code coverage computation for MET and consists of multiple steps.

  1. Identify which toolchain to use (consider the GNU gcov utility).
  2. Compile MET with coverage enabled.
  3. Run full set of MET unit tests and write coverage information.
  4. Produce a report to quantify the coverage.
  5. Quantify the impact to runtime performance.
  6. Automate the computation of code coverage via GHA.

Acceptance Testing

List input data types and sources.
Describe tests required for new functionality.

Time Estimate

Estimate the amount of work required here.
Issues should represent approximately 1 to 3 days of work.

Sub-Issues

Consider breaking the new feature down into sub-issues.
Not sure yet.

Relevant Deadlines

List relevant project deadlines here or state NONE.

Funding Source

See @michelleharrold for FY2025 AF charging guidance

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Select component(s)
  • Select priority
  • Select requestor(s)

Projects and Milestone

  • Select Repository and/or Organization level Project(s) or add alert: NEED CYCLE ASSIGNMENT label
  • Select Milestone as the next official version or Future Versions

Define Related Issue(s)

Consider the impact to the other METplus components.

New Feature Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issues
    Select: Repository level development cycle Project for the next official release
    Select: Milestone as the next official version
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.
@JohnHalleyGotway JohnHalleyGotway added component: testing Software testing issue type: new feature Make it do something new requestor: Community General Community alert: NEED ACCOUNT KEY Need to assign an account key to this issue component: code optimization Code optimization issue priority: high High Priority labels Jul 17, 2023
@JohnHalleyGotway JohnHalleyGotway added this to the MET 12.0.0 milestone Jul 17, 2023
@JohnHalleyGotway JohnHalleyGotway self-assigned this Jul 17, 2023
@JohnHalleyGotway JohnHalleyGotway removed the component: code optimization Code optimization issue label Jul 17, 2023
@hsoh-u
Copy link
Collaborator

hsoh-u commented Jul 20, 2023

C++ example project for generating test coverage with gcov for SonarQube:
https://github.com/sonarsource-cfamily-examples/linux-autotools-gcov-travis-sc

JohnHalleyGotway added a commit that referenced this issue Jul 24, 2023
Co-authored-by: John Halley Gotway <johnhg@ucar.edu>
Co-authored-by: Seth Linden <linden@seneca.rap.ucar.edu>
Co-authored-by: jprestop <jpresto@ucar.edu>
Co-authored-by: Daniel Adriaansen <dadriaan@ucar.edu>
Co-authored-by: John and Cindy <halleygotway@Halleys-Mac-mini.local>
Co-authored-by: Howard Soh <hsoh@seneca.rap.ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
Co-authored-by: hsoh-u <hsoh@ucar.edu>
Co-authored-by: MET Tools Test Account <met_test@seneca.rap.ucar.edu>
Co-authored-by: Seth Linden <linden@ucar.edu>
Co-authored-by: lisagoodrich <33230218+lisagoodrich@users.noreply.github.com>
Co-authored-by: davidalbo <dave@ucar.edu>
Co-authored-by: Lisa Goodrich <lisag@ucar.edu>
Co-authored-by: metplus-bot <97135045+metplus-bot@users.noreply.github.com>
Co-authored-by: j-opatz <59586397+j-opatz@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Vigh <jvigh@ucar.edu>
Co-authored-by: Tracy Hertneky <39317287+hertneky@users.noreply.github.com>
Fix Python environment issue (#2407)
fix definitions of G172 and G220 based on comments in NOAA-EMC/NCEPLIBS-w3emc#157. (#2406)
fix #2380 develop override (#2382)
fix #2408 develop empty config (#2410)
fix #2390 develop compile zlib (#2404)
fix #2412 develop climo (#2422)
fix #2437 develop convert (#2439)
fix for develop, for #2437, forgot one reference to the search_parent for a dictionary lookup.
fix #2452 develop airnow (#2454)
fix #2449 develop pdf (#2464)
fix #2402 develop sonarqube (#2468)
fix #2426 develop buoy (#2475)
fix 2518 dtypes appf docs (#2519)
fix 2531 compilation errors (#2533)
fix #2531 compilation_errors_configure (#2535)
fix 2596 main v11.1 rpath compilation (#2614)
@JohnHalleyGotway JohnHalleyGotway added the alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle label Oct 3, 2024
@JohnHalleyGotway JohnHalleyGotway removed alert: NEED ACCOUNT KEY Need to assign an account key to this issue alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle labels Nov 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: testing Software testing issue priority: high High Priority requestor: Community General Community type: new feature Make it do something new
Projects
Status: 🟢 Ready
Development

No branches or pull requests

3 participants