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
60 changes: 59 additions & 1 deletion common/acs_test_framework_manifests/generate_acs_summary.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ suites:
path: "{dir}/summary.html"
- type: file_contains
path: "{dir}/bsa_detailed.html"
text: "Test_suite_info:"
text: "Test suite info:"
- type: file_contains
path: "{dir}/bsa_detailed.html"
text: "PCIe root complex present"
Expand All @@ -397,3 +397,61 @@ suites:
path: "{dir}/bsa_detailed.html"
text: "<ul"

- name: cli_injects_os_test_suite_info_from_named_os_sections
type: cli
text_files:
os_tests.html: |
<!DOCTYPE html>
<html><head><title>OS Test Summary</title></head><body><h1>OS Test Summary</h1><h2>Result Summary</h2><table class="summary-table"><tr><th>Status</th><th>Total</th></tr><tr><td>Passed</td><td>1</td></tr></table></body></html>
os_tests_detailed.html: |
<!DOCTYPE html>
<html><body><div class="test-suite-header">Test Suite: Network</div><div>details body</div></body></html>
merged.json: |
{
"Suite_Name: acs_info": {
"ACS Results Summary": {
"Overall Compliance Result": "Compliant"
}
},
"Suite_Name: OS Tests - ethtool_test_linux-debian": {
"test_results": [
{
"Test_suite": "Network",
"Test_suite_info": [
"OS network category information",
"Linux operating-system validation"
]
}
]
}
}
args:
- --merged_json
- "{dir}/merged.json"
- "{dir}/bsa_missing.html"
- "{dir}/sbsa_missing.html"
- "{dir}/fwts_missing.html"
- "{dir}/sct_missing.html"
- "{dir}/bbsr_fwts_missing.html"
- "{dir}/bbsr_sct_missing.html"
- "{dir}/bbsr_tpm_missing.html"
- "{dir}/pfdi_missing.html"
- "{dir}/post_script_missing.html"
- "{dir}/standalone_missing.html"
- "{dir}/os_tests.html"
- "{dir}/capsule_missing.html"
- "{dir}/sbmr_ib_missing.html"
- "{dir}/sbmr_oob_missing.html"
- "{dir}/scmi_missing.html"
- "{dir}/summary.html"
expect_exit_code: 0
post_checks:
- type: file_contains
path: "{dir}/os_tests_detailed.html"
text: "Test suite info:"
- type: file_contains
path: "{dir}/os_tests_detailed.html"
text: "OS network category information"
- type: file_contains
path: "{dir}/os_tests_detailed.html"
text: "Linux operating-system validation"
29 changes: 28 additions & 1 deletion common/acs_test_framework_manifests/merge-jsons.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -529,6 +529,33 @@ suites:
path: "{dir}/merged.json"
text: "\"Test_suite_info\""

- name: dt_bbsr_tpm_uses_measured_boot_log_category
type: module_main_with_env
scenario:
kind: merge_jsons
dt_or_sr_mode: DT
yocto_flag_path: yocto.flag
input_files:
acs_info.json:
ACS Results Summary:
Overall Compliance Result: Unknown
bbsr_tpm.json:
test_results:
- Test_suite: BBSR-TPM
test_result: PASSED
mocks:
"{module}.test_cat_dict":
value:
bbsr-standalone:
measured boot log:
Description:
- BBSR measured boot category information
expect_exit_code: 0
post_checks:
- type: file_contains
path: "{dir}/merged.json"
text: "BBSR measured boot category information"

# The exact standalone ethtool_test.json filename should classify through
# the ETHTOOL_TEST path and still be collapsed into the shared Standalone section.
- name: dt_ethtool_test_json_is_collapsed_under_standalone
Expand Down Expand Up @@ -1330,4 +1357,4 @@ suites:
total_skipped: 0
total_warnings: 0
expect_stdout_or_stderr_contains:
- "Suite: Mandatory : FWTS: Not Compliant: Failed 1"
- "FWTS: Not Compliant: Failed 1"
98 changes: 98 additions & 0 deletions common/acs_test_framework_manifests/report-ui.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
suites:
- name: shared_report_ui
files:
- common/log_parser/report_ui.py

cases:
- name: file_exists
type: file_exists

- name: python_compiles
type: py_compile

- name: injects_self_contained_ui
type: py_function
function: enhance_html_report
args:
- '<!DOCTYPE html><html><head><title>Test</title></head><body><h1>Test</h1></body></html>'
expect_return_contains: 'data-acs-report-ui="2026.4"'

- name: injects_suite_profile
type: py_function
function: enhance_html_report
args:
- '<!DOCTYPE html><html><head><title>SCT</title></head><body><h1>SCT</h1></body></html>'
- suite
- sct
expect_return_contains: 'data-acs-suite="sct"'

- name: labels_sct_category_metadata_as_test_suite_info
type: py_function
function: enhance_html_report
args:
- '<!DOCTYPE html><html><head><title>SCT</title></head><body><div class="detailed-summary"><div class="heading">Test Suite Name: <span>GenericTest</span></div><div class="test-suite-info"><strong>Test_suite_info:</strong>UEFI context</div><table></table></div></body></html>'
- suite
- sct
expect_return_contains: '"Test suite info"'

- name: discovers_status_columns_from_headers
type: py_function
function: enhance_html_report
args:
- '<!DOCTYPE html><html><head><title>Test</title></head><body><table><thead><tr><th>Test Result</th></tr></thead><tbody><tr><td>CUSTOM STATUS</td></tr></tbody></table></body></html>'
expect_return_contains: 'function statusColumnIndex(table)'

- name: supports_future_dynamic_statuses
type: py_function
function: enhance_html_report
args:
- '<!DOCTYPE html><html><head><title>Test</title></head><body><table><thead><tr><th>Result</th></tr></thead><tbody><tr><td>FUTURE STATUS</td></tr></tbody></table></body></html>'
expect_return_contains: 'allowDynamic ? statusSlug(text)'

- name: styles_every_status_row
type: py_function
function: enhance_html_report
args:
- '<!DOCTYPE html><html><head><title>Test</title></head><body><table><thead><tr><th>Outcome</th></tr></thead><tbody><tr><td>NEW OUTCOME</td></tr></tbody></table></body></html>'
expect_return_contains: 'data-acs-row-status'

- name: aligns_filter_counts_with_visible_results
type: py_function
function: enhance_html_report
args:
- '<!DOCTYPE html><html><head><title>Test</title></head><body><table><thead><tr><th>Outcome</th></tr></thead><tbody><tr><td>NEW OUTCOME</td></tr></tbody></table></body></html>'
expect_return_contains: 'record.match = (!activeStatus || record.status === activeStatus)'

- name: browser_executes_layout_navigation_collapse_filters_links_and_print_scope
type: command_success
command: python3
args:
- -c
- |
import pathlib, runpy, sys
project_root = pathlib.Path(sys.argv[1]).resolve().parents[2]
runpy.run_path(
str(project_root / "common/acs_test_framework_runner/report_ui_browser_smoke.py"),
run_name="__main__",
)
- "{file}"
timeout_sec: 45
skip_unless_commands_succeed:
- command -v chromium || command -v chromium-browser

- name: rejects_unknown_page_type
type: py_function
function: enhance_html_report
args:
- '<html><head></head><body></body></html>'
- unknown
expect_exception: ValueError

- name: rejects_unknown_suite_type
type: py_function
function: enhance_html_report
args:
- '<html><head></head><body></body></html>'
- suite
- unknown
expect_exception: ValueError
Loading
Loading