summaryrefslogtreecommitdiffstats
path: root/dom/webgpu/tests/cts/checkout/tools/gen_wpt_cts_html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webgpu/tests/cts/checkout/tools/gen_wpt_cts_html')
-rw-r--r--dom/webgpu/tests/cts/checkout/tools/gen_wpt_cts_html39
1 files changed, 39 insertions, 0 deletions
diff --git a/dom/webgpu/tests/cts/checkout/tools/gen_wpt_cts_html b/dom/webgpu/tests/cts/checkout/tools/gen_wpt_cts_html
new file mode 100644
index 0000000000..07f1f465c7
--- /dev/null
+++ b/dom/webgpu/tests/cts/checkout/tools/gen_wpt_cts_html
@@ -0,0 +1,39 @@
+#!/usr/bin/env node
+
+// Generate a top-level cts.https.html file for WPT.
+//
+// In the default invocation (used by grunt), just generates a cts.https.html with one "variant"
+// per test spec file (.spec.ts).
+//
+// In the advanced invocation, generate a list of variants, which are broken down as much as needed
+// to accommodate a provided list of suppressions, and no further. This reduces the total runtime of
+// the test suite by not generating an entire page load for every single test case.
+// The resulting cts.https.html can be checked in and used to run tests within browser harnesses.
+//
+// For example, for the following 9 cases:
+//
+// webgpu:a/foo:foo1={"x":1}
+// webgpu:a/foo:foo1={"x":2}
+// webgpu:a/foo:foo2={"x":1}
+// webgpu:a/foo:foo2={"x":2}
+// webgpu:a/bar:bar1={"x":1}
+// webgpu:a/bar:bar1={"x":2}
+// webgpu:a/bar:bar1={"x":3}
+// webgpu:a/bar:bar2={"x":1}
+// webgpu:a/bar:bar2={"x":2}
+//
+// and the following suppressions:
+//
+// [ Win ] ?q=webgpu:a/bar:bar1={"x":1} [ Failure ]
+// [ Mac ] ?q=webgpu:a/bar:bar1={"x":3} [ Failure ]
+//
+// the following list of 5 variants gives enough granularity to suppress only the failing cases:
+//
+// ?q=webgpu:a/foo:
+// ?q=webgpu:a/bar:bar1={"x":1} <- [ Win ]
+// ?q=webgpu:a/bar:bar1={"x":2}
+// ?q=webgpu:a/bar:bar1={"x":3} <- [ Mac ]
+// ?q=webgpu:a/bar:bar2~
+
+require('../src/common/tools/setup-ts-in-node.js');
+require('../src/common/tools/gen_wpt_cts_html.ts');