Skip to content

Modernize papi test framework and update spec for package checker#2328

Merged
adrianreber merged 10 commits intoopenhpc:4.xfrom
adrianreber:2026-01-11-papi
Jan 11, 2026
Merged

Modernize papi test framework and update spec for package checker#2328
adrianreber merged 10 commits intoopenhpc:4.xfrom
adrianreber:2026-01-11-papi

Conversation

@adrianreber
Copy link
Copy Markdown
Member

  • Update papi spec to use GitHub releases URL for compatibility with OpenHPC package update checker
  • Add BEST_PRACTICES.md documenting test framework guidelines
  • Modernize papi tests following the new best practices (BATS parallel execution, proper variable quoting, setup_file/teardown, SIMPLE_CI handling)
  • Add upstream smoke tests (simple.c, threads.c) from PAPI repository
  • Reformat papi C test files with clang-format
  • Run autoupdate on configure.ac files

Update source URL to use GitHub releases endpoint which is compatible
with OpenHPC's package update checker. Also simplify BuildRequires by
removing SUSE-specific conditionals.

Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Adrian Reber <areber@redhat.com>
Apply clang-format to all papi test C files to follow the coding style
used in tests/.

Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Adrian Reber <areber@redhat.com>
Document best practices for writing tests in the tests/ directory,
covering BATS framework usage, shell variable quoting, SIMPLE_CI
environment handling, and CI lint integration.

Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Adrian Reber <areber@redhat.com>
Add simple.c and threads.c smoke tests from upstream PAPI repository:
https://github.com/icl-utk-edu/papi/tree/master/src/smoke_tests

These tests validate basic PAPI functionality and multithreaded usage.

Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Adrian Reber <areber@redhat.com>
Update papi test infrastructure to follow patterns from BEST_PRACTICES.md:

- Add parallel execution flag to BATS shebang
- Update source paths to use ../../../common/
- Add setup_file() for variable initialization
- Add setup()/teardown() for temp file handling
- Use ${RESOURCE_MANAGER} instead of local aliases
- Quote all variables with curly braces
- Add SIMPLE_CI skip for tests requiring real hardware
- Add timeout support to run_serial_binary calls
- Use run_with_retry for flaky branches test
- Add papi tests to CI lint targets
- Include new smoke tests in Makefile.am and rm_execution

Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Adrian Reber <areber@redhat.com>
Run autoupdate to modernize autoconf macros in configure.ac files.

Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Adrian Reber <areber@redhat.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 11, 2026

📦 Package Count Analysis Results

Environment: UBI 10 Container
Target Branch: 4.x
Version: OpenHPC 4.x
Overall Status:Analysis completed successfully

🏭 Factory Repositories

Status:Factory repositories analysis completed successfully

Release Base OS aarch64 x86_64 noarch Total
4.1 EL_10 57 111 6 174
4.1 openEuler_24.03 51 57 6 114
Total All 108 168 12 288

Analysis performed by OpenHPC Package Count CI
Commit: e9a6233d
Workflow: 20902284443

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 11, 2026

📊 Build Order Analysis Results

Environment: AlmaLinux 10 Container
Total Spec Files Analyzed: 99
Status:Build order analysis completed successfully

📋 Build Order Output

📦 Build Order (91 packages)

➕ Show remaining 76 packages

Analysis performed by OpenHPC Build Order CI
Commit: e9a6233d
Workflow: 20902284441

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 11, 2026

🚀 CCache Statistics

Configuration 🐧 RHEL 🦊 openEuler
🖥️ x86_64 / gnu15 🟢 54.06% 🟢 54.25%
🖥️ x86_64 / intel 🟢 53.25% -
💪 aarch64 / gnu15 🟡 47.99% 🟡 42.04%
📊 Detailed Statistics

openEuler (aarch64)

Cacheable calls:    1375 / 2582 (53.25%)
  Hits:              578 / 1375 (42.04%)
    Direct:          575 /  578 (99.48%)
    Preprocessed:      3 /  578 ( 0.52%)
  Misses:            797 / 1375 (57.96%)
Uncacheable calls:  1207 / 2582 (46.75%)
Local storage:
  Cache size (GiB):  0.0 /  5.0 ( 0.74%)
  Hits:              578 / 1375 (42.04%)
  Misses:            797 / 1375 (57.96%)

openEuler (x86_64)

Cacheable calls:    2188 / 3394 (64.47%)
  Hits:             1187 / 2188 (54.25%)
    Direct:         1184 / 1187 (99.75%)
    Preprocessed:      3 / 1187 ( 0.25%)
  Misses:           1001 / 2188 (45.75%)
Uncacheable calls:  1206 / 3394 (35.53%)
Local storage:
  Cache size (GiB):  0.0 /  5.0 ( 0.80%)
  Hits:             1187 / 2188 (54.25%)
  Misses:           1001 / 2188 (45.75%)

RHEL (aarch64/gnu15)

Cacheable calls:    1544 / 2968 (52.02%)
  Hits:              741 / 1544 (47.99%)
    Direct:          736 /  741 (99.33%)
    Preprocessed:      5 /  741 ( 0.67%)
  Misses:            803 / 1544 (52.01%)
Uncacheable calls:  1424 / 2968 (47.98%)
Local storage:
  Cache size (GiB):  0.1 /  5.0 ( 1.65%)
  Hits:              741 / 1544 (47.99%)
  Misses:            803 / 1544 (52.01%)

RHEL (x86_64/gnu15)

Cacheable calls:    2192 / 3393 (64.60%)
  Hits:             1185 / 2192 (54.06%)
    Direct:         1180 / 1185 (99.58%)
    Preprocessed:      5 / 1185 ( 0.42%)
  Misses:           1007 / 2192 (45.94%)
Uncacheable calls:  1201 / 3393 (35.40%)
Local storage:
  Cache size (GiB):  0.1 /  5.0 ( 1.72%)
  Hits:             1185 / 2192 (54.06%)
  Misses:           1007 / 2192 (45.94%)

RHEL (x86_64/intel)

Cacheable calls:    2171 / 3600 (60.31%)
  Hits:             1156 / 2171 (53.25%)
    Direct:         1151 / 1156 (99.57%)
    Preprocessed:      5 / 1156 ( 0.43%)
  Misses:           1015 / 2171 (46.75%)
Uncacheable calls:  1429 / 3600 (39.69%)
Local storage:
  Cache size (GiB):  0.1 /  5.0 ( 1.72%)
  Hits:             1156 / 2171 (53.25%)
  Misses:           1015 / 2171 (46.75%)

🤖 Generated from workflow run 20902284446

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 11, 2026

Test Results

 36 files  + 9   36 suites  +9   48s ⏱️ +12s
105 tests +52   95 ✅ +46  10 💤 + 6  0 ❌ ±0 
177 runs  +78  158 ✅ +65  19 💤 +13  0 ❌ ±0 

Results for commit f91fe16. ± Comparison against base commit 6ffaa70.

♻️ This comment has been updated with latest results.

Signed-off-by: Adrian Reber <areber@redhat.com>
Keep libpapi.a as tau explicitly requires it. Remove the spec code that
deleted static libraries and update test to not check for their absence.

Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Adrian Reber <areber@redhat.com>
Apply best practices to native_avail test:
- Add parallel execution flag to BATS shebang
- Update source paths to use ../../../common/
- Add setup_file() for variable initialization
- Fix testname to perf-tools/papi
- Quote all variables with curly braces

Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Adrian Reber <areber@redhat.com>
@adrianreber adrianreber force-pushed the 2026-01-11-papi branch 2 times, most recently from 4d7a7ea to 76a649a Compare January 11, 2026 16:49
- Skip tests requiring hardware counters on aarch64 in SIMPLE_CI mode
  (first, cost, fmultiplex1, tenth, zero, simple, threads)
- Only check for available counters on x86_64 in test_module
- Remove tests from Makefile.am TESTS that are run via rm_execution

Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Adrian Reber <areber@redhat.com>
@adrianreber adrianreber merged commit 900a79e into openhpc:4.x Jan 11, 2026
26 checks passed
@adrianreber adrianreber deleted the 2026-01-11-papi branch January 11, 2026 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant