summaryrefslogtreecommitdiffstats
path: root/dom/webgpu/tests/cts/checkout/src/unittests/test_group_test.ts
blob: 2a939ba052eab0324fdfcd7a0191f6df70d01959 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { Logger, LogResults } from '../common/internal/logging/logger.js';
import { TestQuerySingleCase } from '../common/internal/query/query.js';
import { IterableTestGroup, TestCaseID } from '../common/internal/test_group.js';
import { objectEquals } from '../common/util/util.js';

import { UnitTest } from './unit_test.js';

export class TestGroupTest extends UnitTest {
  async run(g: IterableTestGroup): Promise<LogResults> {
    const logger = new Logger({ overrideDebugMode: true });
    for (const t of g.iterate()) {
      for (const rc of t.iterate()) {
        const query = new TestQuerySingleCase('xx', ['yy'], rc.id.test, rc.id.params);
        const [rec] = logger.record(query.toString());
        await rc.run(rec, query, []);
      }
    }
    return logger.results;
  }

  expectCases(g: IterableTestGroup, cases: TestCaseID[]): void {
    const gcases = [];
    for (const t of g.iterate()) {
      gcases.push(...Array.from(t.iterate(), c => c.id));
    }
    this.expect(
      objectEquals(gcases, cases),
      `expected
  ${JSON.stringify(cases)}
got
  ${JSON.stringify(gcases)}`
    );
  }
}