mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-02 14:38:21 -06:00
ci: run the full source quality gate on pull requests
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import unittest
|
||||
from ci_report import report
|
||||
|
||||
POSITIVE = 'effectcraft-gpu tests: adapter llvmpipe (Vulkan)' + "\ntest result: ok. 12 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out\n"
|
||||
|
||||
|
||||
class CoverageReportTests(unittest.TestCase):
|
||||
def test_executed_gpu_tests_and_quality_gate_pass(self):
|
||||
code, text = report(POSITIVE, "success", "success")
|
||||
self.assertEqual(code, 0)
|
||||
self.assertIn("12 passed, 0 failed, 1 ignored", text)
|
||||
|
||||
def test_adapter_probe_failure_is_not_parity(self):
|
||||
code, text = report(POSITIVE, "failure", "success")
|
||||
self.assertEqual(code, 1)
|
||||
self.assertIn("probe did not succeed", text)
|
||||
|
||||
def test_runtime_gpu_skip_cannot_pass_with_other_gpu_evidence(self):
|
||||
code, text = report(POSITIVE + "\nno GPU adapter; skipping\n", "success", "success")
|
||||
self.assertEqual(code, 1)
|
||||
self.assertIn("GPU tests skipped at runtime", text)
|
||||
|
||||
def test_quality_gate_failure_is_reported(self):
|
||||
code, text = report(POSITIVE, "success", "failure")
|
||||
self.assertEqual(code, 1)
|
||||
self.assertIn("Full cargo xtask ci did not pass", text)
|
||||
|
||||
def test_no_selected_tests_or_missing_logs_fail(self):
|
||||
self.assertEqual(report("", "success", "success")[0], 1)
|
||||
self.assertEqual(report('effectcraft-gpu tests: adapter llvmpipe (Vulkan)', "success", "success")[0], 1)
|
||||
|
||||
def test_ignored_platform_case_is_reported_not_runtime_skip(self):
|
||||
code, text = report(POSITIVE + "test windows_case ... ignored, no adapter skips\n", "success", "success")
|
||||
self.assertEqual(code, 0)
|
||||
self.assertIn("GPU runtime-skip messages: 0", text)
|
||||
|
||||
def test_expected_no_adapter_error_without_skip_is_not_runtime_skip(self):
|
||||
self.assertEqual(report(POSITIVE + "expected constructor error: no adapter\n", "success", "success")[0], 0)
|
||||
|
||||
def test_no_gpu_execution_evidence_fails(self):
|
||||
code, text = report("test result: ok. 12 passed; 0 failed; 0 ignored\n", "success", "success")
|
||||
self.assertEqual(code, 1)
|
||||
self.assertIn("No successful GPU execution evidence", text)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user