Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
2188233
Restructure benchmarks to unified test framework
lajagapp Jan 6, 2026
5adda5a
Add functional test framework with MIOpen driver test
lajagapp Jan 6, 2026
64d9a40
Fix import errors
lajagapp Jan 6, 2026
7db3292
Fix pre-commit errors
lajagapp Jan 6, 2026
ee49925
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 6, 2026
8013e71
Update overall README.md
lajagapp Jan 6, 2026
fb3521b
Merge main into users/lajagapp/add-miopen-driver-test
lajagapp Jan 7, 2026
0d2b187
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 7, 2026
398c9b7
Fix pre-commit errors
lajagapp Jan 7, 2026
7f6bbd3
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 12, 2026
bf9cf14
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 12, 2026
a56f9c4
Refactor test framework READMEs to eliminate duplication
lajagapp Jan 13, 2026
48d75c7
Rename test matrix files for clarity
lajagapp Jan 13, 2026
049af2e
Update functional_base.py
lajagapp Jan 13, 2026
1ef8ecb
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 13, 2026
a5957e3
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 13, 2026
c87ecac
Refactor test_miopendriver_conv.py with JSON result parsing
lajagapp Jan 13, 2026
a9d7c26
Simplify exception handling and enhance functional tests
lajagapp Jan 13, 2026
22d338e
Rename test_framework to extended_tests
lajagapp Jan 13, 2026
23d0b0f
Update test framework name
lajagapp Jan 13, 2026
c0d0ed0
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 14, 2026
9d5f728
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 15, 2026
0112ef5
Update therock_dir path in benchmark scripts
lajagapp Jan 15, 2026
49097fe
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 16, 2026
1f1451b
Add extended functional tests to nightly CI
lajagapp Jan 16, 2026
d752368
Fix pre-commit errors
lajagapp Jan 16, 2026
245c6b0
Restrict extended functional tests to nightly runs only
lajagapp Jan 16, 2026
7181402
Refactor: Improve naming consistency for extended functional tests
lajagapp Jan 19, 2026
82579d5
Docs: Improve extended tests documentation and environment setup guid…
lajagapp Jan 19, 2026
c1839fa
Refactor: Improve naming and documentation for extended test framework
lajagapp Jan 19, 2026
6564b8e
Update functional/README.md
lajagapp Jan 19, 2026
b725f8d
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 19, 2026
6590d7e
Update README with test_extended_functional_tests.yml
lajagapp Jan 20, 2026
f0568fe
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 20, 2026
52cae62
Fix pre-commit errors
lajagapp Jan 20, 2026
7387c37
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 26, 2026
fece860
Restore rocm-libraries submodule to match main
lajagapp Jan 26, 2026
39deb97
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Jan 30, 2026
e9e6ed1
Merge branch 'main' into users/lajagapp/add-miopen-driver-test
lajagapp Feb 2, 2026
49a64c0
Improve functional test logging and remove redundancy
lajagapp Feb 2, 2026
7329da8
Rename functional test workflow for clarity
lajagapp Feb 2, 2026
f58d124
Fix pre-commit errors
lajagapp Feb 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/ci_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ on:
benchmark_runs_on:
type: string
default: ""
run_functional_tests:
type: boolean
default: false
expect_failure:
type: boolean
use_prebuilt_artifacts:
Expand Down Expand Up @@ -114,6 +117,34 @@ jobs:
test_runs_on: ${{ inputs.benchmark_runs_on }}
artifact_run_id: ${{ inputs.artifact_run_id }}

run_linux_functional_tests:
needs: [build_portable_linux_artifacts]
name: Run Linux Functional Tests
# Run functional tests if:
# - Build succeeded (or using prebuilt artifacts)
# - Not expecting failure
# - Test runner is available (test_runs_on is set)
# - Functional flag is enabled (only set to true in ci_nightly.yml)
if: >-
${{
!failure() &&
!cancelled() &&
(
inputs.use_prebuilt_artifacts == 'false' ||
inputs.use_prebuilt_artifacts == 'true'
) &&
inputs.expect_failure == false &&
inputs.test_runs_on != '' &&
inputs.run_functional_tests == true
}}
uses: ./.github/workflows/test_functional_tests.yml
secrets: inherit
with:
artifact_group: ${{ inputs.artifact_group }}
amdgpu_families: ${{ inputs.amdgpu_families }}
test_runs_on: ${{ inputs.test_runs_on }}
artifact_run_id: ${{ inputs.artifact_run_id }}

build_portable_linux_python_packages:
needs: [build_portable_linux_artifacts]
name: Build Python
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ jobs:
artifact_group: ${{ matrix.variant.artifact_group }}
test_runs_on: ${{ matrix.variant.test-runs-on }}
benchmark_runs_on: ${{ matrix.variant.benchmark-runs-on }}
run_functional_tests: true
build_variant_label: ${{ matrix.variant.build_variant_label }}
build_variant_suffix: ${{ matrix.variant.build_variant_suffix }}
build_variant_cmake_preset: ${{ matrix.variant.build_variant_cmake_preset }}
Expand Down Expand Up @@ -108,6 +109,7 @@ jobs:
artifact_group: ${{ matrix.variant.artifact_group }}
test_runs_on: ${{ matrix.variant.test-runs-on }}
benchmark_runs_on: ${{ matrix.variant.benchmark-runs-on }}
run_functional_tests: true
build_variant_label: ${{ matrix.variant.build_variant_label }}
build_variant_suffix: ${{ matrix.variant.build_variant_suffix }}
build_variant_cmake_preset: ${{ matrix.variant.build_variant_cmake_preset }}
Expand Down
31 changes: 31 additions & 0 deletions .github/workflows/ci_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ on:
benchmark_runs_on:
type: string
default: ""
run_functional_tests:
type: boolean
default: false
expect_failure:
type: boolean
use_prebuilt_artifacts:
Expand Down Expand Up @@ -114,6 +117,34 @@ jobs:
test_runs_on: ${{ inputs.benchmark_runs_on }}
artifact_run_id: ${{ inputs.artifact_run_id }}

run_windows_functional_tests:
needs: [build_windows_artifacts]
name: Run Windows Functional Tests
# Run functional tests if:
# - Build succeeded (or using prebuilt artifacts)
# - Not expecting failure
# - Test runner is available (test_runs_on is set)
# - Functional flag is enabled (only set to true in ci_nightly.yml)
if: >-
${{
!failure() &&
!cancelled() &&
(
inputs.use_prebuilt_artifacts == 'false' ||
inputs.use_prebuilt_artifacts == 'true'
) &&
inputs.expect_failure == false &&
inputs.test_runs_on != '' &&
inputs.run_functional_tests == true
}}
uses: ./.github/workflows/test_functional_tests.yml
secrets: inherit
with:
artifact_group: ${{ inputs.artifact_group }}
amdgpu_families: ${{ inputs.amdgpu_families }}
test_runs_on: ${{ inputs.test_runs_on }}
artifact_run_id: ${{ inputs.artifact_run_id }}

build_windows_python_packages:
needs: [build_windows_artifacts]
name: Build Python
Expand Down
95 changes: 95 additions & 0 deletions .github/workflows/test_functional_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Run Functional Tests

on:
workflow_dispatch:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add descriptions to all those params

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done! I've added descriptions to all input parameters in the workflow file.

inputs:
artifact_group:
description: 'Build artifact group to test (e.g., gfx94X-dcgpu, gfx101X-dgpu, gfx1151, gfx120X-all)'
type: string
artifact_run_id:
description: 'GitHub Actions run ID where artifacts were built (empty to use current run)'
type: string
default: ""
amdgpu_families:
description: 'Comma-separated list of AMD GPU families to test (e.g., gfx908, gfx90a, gfx942)'
type: string
test_runs_on:
description: 'GitHub Actions runner label for the test machine'
type: string
workflow_call:
inputs:
artifact_group:
description: 'Build artifact group to test (e.g., gfx94X-dcgpu, gfx101X-dgpu, gfx1151, gfx120X-all)'
type: string
artifact_run_id:
description: 'GitHub Actions run ID where artifacts were built (empty to use current run)'
type: string
default: ""
amdgpu_families:
description: 'Comma-separated list of AMD GPU families to test (e.g., gfx908, gfx90a, gfx942)'
type: string
test_runs_on:
description: 'GitHub Actions runner label for the test machine'
type: string

permissions:
contents: read

jobs:
configure_test_matrix:
name: "Configure functional test matrix"
# if there is a test machine available
if: ${{ inputs.test_runs_on != '' }}
runs-on: ${{ inputs.test_runs_on }}
outputs:
components: ${{ steps.configure.outputs.components }}
platform: ${{ steps.configure.outputs.platform }}
steps:
- name: "Fetch 'build_tools' from repository"
if: ${{ runner.os == 'Windows' }}
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
sparse-checkout: build_tools
path: "prejob"

# Checkout failure is possible on Windows, as it's the first job on a GPU test runner.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

@lajagapp lajagapp Jan 19, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To prevent checkout failures on Windows.
The sparse checkout gets the cleanup script before the main checkout, allowing us to terminate any lingering processes from previous runs that could block the checkout. This is a standard pattern for Windows GPU test runners - refer lines 55-56 comment and other test workflows.
Reference workflow - https://github.com/ROCm/TheRock/blob/main/.github/workflows/test_artifacts.yml

# Post-job cleanup isn't necessary since no executables are launched in this job.
- name: Pre-job cleanup processes on Windows
if: ${{ runner.os == 'Windows' }}
shell: powershell
run: . '${{ github.workspace }}\prejob\build_tools\github_actions\cleanup_processes.ps1'

- name: "Checking out repository"
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1

- name: Setting up Python
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
with:
python-version: 3.12

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this version requirement necessary?

@lajagapp lajagapp Jan 19, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. Python is needed to run fetch_test_configurations.py (line 76) which configures the test matrix. The specific version (3.12) is used for consistency across all our workflows - test_artifacts.yml, test_benchmarks.yml, and all build workflows use the same version.
Reference workflow - https://github.com/ROCm/TheRock/blob/main/.github/workflows/test_artifacts.yml


- name: "Configuring test options"
id: configure
env:
ARTIFACT_GROUP: ${{ inputs.artifact_group }}
AMDGPU_FAMILIES: ${{ inputs.amdgpu_families }}
IS_FUNCTIONAL_TESTS: "true"
run: python ./build_tools/github_actions/fetch_test_configurations.py

run_functional_tests:
name: 'Run Functional Tests ${{ matrix.components.job_name }}'
needs: [configure_test_matrix]
# skip tests if no test matrix to run
if: ${{ needs.configure_test_matrix.outputs.components != '[]' }}
strategy:
fail-fast: false
matrix:
components: ${{ fromJSON(needs.configure_test_matrix.outputs.components) }}
uses: ./.github/workflows/test_component.yml
secrets: inherit
with:
artifact_run_id: ${{ inputs.artifact_run_id }}
artifact_group: ${{ inputs.artifact_group }}
amdgpu_families: ${{ inputs.amdgpu_families }}
test_runs_on: ${{ inputs.test_runs_on }}
platform: ${{ needs.configure_test_matrix.outputs.platform }}
component: ${{ toJSON(matrix.components) }}
Loading
Loading