Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
41 changes: 40 additions & 1 deletion .github/workflows/validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
workflow_dispatch:

permissions:
contents: read
contents: write

jobs:
validate:
Expand Down Expand Up @@ -44,14 +44,53 @@ jobs:
run: poetry install --no-interaction

- name: Run osc-validation suite
id: run_validation
working-directory: osc-validation
run: |
set +e
poetry run pytest validation/scenario \
--tool OscSimulator \
--toolpath "$(which osc-simulator)" \
--html=validation-report.html \
--junitxml=validation-results.xml \
--self-contained-html \
-v
pytest_exit_code=$?
python - <<'PY'
import os
import xml.etree.ElementTree as ET

total_tests = 0
failures = 0
errors = 0
skipped = 0

try:
root = ET.parse("validation-results.xml").getroot()
suites = [root] if root.tag == "testsuite" else root.findall("testsuite")
for suite in suites:
total_tests += int(suite.attrib.get("tests", 0))
failures += int(suite.attrib.get("failures", 0))
errors += int(suite.attrib.get("errors", 0))
skipped += int(suite.attrib.get("skipped", 0))
except Exception:
pass

passed_tests = max(total_tests - failures - errors - skipped, 0)
with open(os.environ["GITHUB_OUTPUT"], "a", encoding="utf-8") as github_output:
github_output.write(f"total_tests={total_tests}\n")
github_output.write(f"passed_tests={passed_tests}\n")
PY
exit "$pytest_exit_code"

- name: Build validation ratio badge
if: always()
uses: peterrhodesdev/build-a-badge@v1.3.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
filename: validation-suite-tests
label: validation
message: ${{ steps.run_validation.outputs.passed_tests }}/${{ steps.run_validation.outputs.total_tests }}

- name: Upload validation report
if: always()
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

[![Build and Test](https://github.com/PMSFIT/osc-simulator/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/PMSFIT/osc-simulator/actions/workflows/build-and-test.yml)
[![Validation](https://github.com/PMSFIT/osc-simulator/actions/workflows/validation.yml/badge.svg)](https://github.com/PMSFIT/osc-simulator/actions/workflows/validation.yml)
[![Validation Tests](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/wiki/PMSFIT/osc-simulator/validation-suite-tests.md)](https://github.com/PMSFIT/osc-simulator/actions/workflows/validation.yml)

This repository provides a baseline simulator for ASAM OpenSCENARIO XML scenarios.
It serves as an adjunct to the [OpenSCENARIO XML Validation Suite](https://github.com/PMSFIT/osc-validation), which provides test cases to validate a scenario engine against a subset of the [ASAM OpenSCENARIO XML standard](https://www.asam.net/standards/detail/openscenario-xml/).
Expand Down
Loading