| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent ef384fe commit 9e21711
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -500,14 +500,16 @@ class StatusLoader { | |||
| 500 | 500 | ||
| 501 | 501 | load() { | |
| 502 | 502 | const dir = path.join(__dirname, '..', 'wpt'); | |
| 503 | - let statusFile = path.join(dir, 'status', `${this.path}.json`); | ||
| 504 | 503 | let result; | |
| 505 | 504 | ||
| 506 | - if (fs.existsSync(statusFile)) { | ||
| 507 | - result = JSON.parse(fs.readFileSync(statusFile, 'utf8')); | ||
| 508 | - } else { | ||
| 509 | - statusFile = path.join(dir, 'status', `${this.path}.cjs`); | ||
| 510 | - result = require(statusFile); | ||
| 505 | + try { | ||
| 506 | + this.statusFile = `${this.path}.json`; | ||
| 507 | + const jsonFile = path.join(dir, 'status', this.statusFile); | ||
| 508 | + result = JSON.parse(fs.readFileSync(jsonFile, 'utf8')); | ||
| 509 | + } catch (err) { | ||
| 510 | + if (err?.code !== 'ENOENT') throw err; | ||
| 511 | + this.statusFile = `${this.path}.cjs`; | ||
| 512 | + result = require(path.join(dir, 'status', this.statusFile)); | ||
| 511 | 513 | } | |
| 512 | 514 | ||
| 513 | 515 | this.rules.addRules(result); | |
@@ -573,13 +575,16 @@ class WPTRunner { | |||
| 573 | 575 | ||
| 574 | 576 | this.status = new StatusLoader(path); | |
| 575 | 577 | this.status.load(); | |
| 578 | + this.statusFile = this.status.statusFile; | ||
| 576 | 579 | this.specs = new Set(this.status.specs); | |
| 577 | 580 | ||
| 578 | 581 | this.results = {}; | |
| 579 | 582 | this.inProgress = new Set(); | |
| 580 | 583 | this.workers = new Map(); | |
| 581 | 584 | this.unexpectedFailures = []; | |
| 582 | 585 | ||
| 586 | + this.subtestCounts = { passed: 0, failed: 0, expectedFailures: 0, skipped: 0, unexpectedPasses: 0 }; | ||
| 587 | + | ||
| 583 | 588 | if (process.env.WPT_REPORT != null) { | |
| 584 | 589 | this.report = new WPTReport(path); | |
| 585 | 590 | } | |
@@ -775,7 +780,6 @@ class WPTRunner { | |||
| 775 | 780 | const failures = []; | |
| 776 | 781 | let expectedFailures = 0; | |
| 777 | 782 | let skipped = 0; | |
| 778 | - let skippedTests = 0; | ||
| 779 | 783 | for (const [key, item] of Object.entries(this.results)) { | |
| 780 | 784 | if (item.fail?.unexpected) { | |
| 781 | 785 | failures.push(key); | |
@@ -786,9 +790,6 @@ class WPTRunner { | |||
| 786 | 790 | if (item.skip) { | |
| 787 | 791 | skipped++; | |
| 788 | 792 | } | |
| 789 | - if (item.skipTests) { | ||
| 790 | - skippedTests += item.skipTests.length; | ||
| 791 | - } | ||
| 792 | 793 | } | |
| 793 | 794 | ||
| 794 | 795 | const unexpectedPasses = []; | |
@@ -823,23 +824,28 @@ class WPTRunner { | |||
| 823 | 824 | // so that results survive if the process is killed. | |
| 824 | 825 | this.report?.write(); | |
| 825 | 826 | ||
| 827 | + const p = (n, word, suffix = 's') => `${n} ${word}${n === 1 ? '' : suffix}`; | ||
| 826 | 828 | const ran = queue.length; | |
| 827 | 829 | const total = ran + skipped; | |
| 828 | 830 | const passed = ran - expectedFailures - failures.length; | |
| 831 | + const { subtestCounts } = this; | ||
| 829 | 832 | console.log(''); | |
| 830 | - console.log(`Ran ${ran}/${total} tests, ${skipped} skipped,`, | ||
| 831 | - `${passed} passed, ${expectedFailures} expected failures,`, | ||
| 832 | - `${failures.length} unexpected failures,`, | ||
| 833 | - `${unexpectedPasses.length} unexpected passes` + | ||
| 834 | - (skippedTests ? `, ${skippedTests} subtests skipped` : '')); | ||
| 833 | + console.log(`Files: ${ran}/${total} ran, ${passed} passed,`, | ||
| 834 | + `${skipped} skipped, ${p(expectedFailures, 'expected failure')},`, | ||
| 835 | + `${p(failures.length, 'unexpected failure')},`, | ||
| 836 | + `${p(unexpectedPasses.length, 'unexpected pass', 'es')}`); | ||
| 837 | + console.log(`Subtests: ${subtestCounts.passed} passed,`, | ||
| 838 | + `${subtestCounts.skipped} skipped, ${p(subtestCounts.expectedFailures, 'expected failure')},`, | ||
| 839 | + `${p(subtestCounts.failed, 'unexpected failure')},`, | ||
| 840 | + `${p(subtestCounts.unexpectedPasses, 'unexpected pass', 'es')}`); | ||
| 835 | 841 | if (failures.length > 0) { | |
| 836 | - const file = path.join('test', 'wpt', 'status', `${this.path}.json`); | ||
| 842 | + const file = path.join('test', 'wpt', 'status', this.statusFile); | ||
| 837 | 843 | throw new Error( | |
| 838 | 844 | `Found ${failures.length} unexpected failures. ` + | |
| 839 | 845 | `Consider updating ${file} for these files:\n${failures.join('\n')}`); | |
| 840 | 846 | } | |
| 841 | 847 | if (unexpectedPasses.length > 0) { | |
| 842 | - const file = path.join('test', 'wpt', 'status', `${this.path}.json`); | ||
| 848 | + const file = path.join('test', 'wpt', 'status', this.statusFile); | ||
| 843 | 849 | throw new Error( | |
| 844 | 850 | `Found ${unexpectedPasses.length} unexpected passes. ` + | |
| 845 | 851 | `Consider updating ${file} for these files:\n${unexpectedPasses.join('\n')}`); | |
@@ -875,7 +881,7 @@ class WPTRunner { | |||
| 875 | 881 | if (status !== kPass) { | |
| 876 | 882 | this.fail(spec, test, status, reportResult); | |
| 877 | 883 | } else { | |
| 878 | - this.succeed(test, status, reportResult); | ||
| 884 | + this.succeed(spec, test, status, reportResult); | ||
| 879 | 885 | } | |
| 880 | 886 | } | |
| 881 | 887 | ||
@@ -943,14 +949,22 @@ class WPTRunner { | |||
| 943 | 949 | } | |
| 944 | 950 | } | |
| 945 | 951 | ||
| 946 | - succeed(test, status, reportResult) { | ||
| 947 | - console.log(`[${status.toUpperCase()}] ${test.name}`); | ||
| 952 | + succeed(spec, test, status, reportResult) { | ||
| 953 | + const unexpectedPass = spec.failedTests.includes(test.name); | ||
| 954 | + if (unexpectedPass) { | ||
| 955 | + console.log(`[UNEXPECTED_PASS][${status.toUpperCase()}] ${test.name}`); | ||
| 956 | + this.subtestCounts.unexpectedPasses++; | ||
| 957 | + } else { | ||
| 958 | + console.log(`[${status.toUpperCase()}] ${test.name}`); | ||
| 959 | + this.subtestCounts.passed++; | ||
| 960 | + } | ||
| 948 | 961 | reportResult?.addSubtest(test.name, 'PASS'); | |
| 949 | 962 | } | |
| 950 | 963 | ||
| 951 | 964 | skipTest(spec, test, reportResult) { | |
| 952 | 965 | console.log(`[SKIP] ${test.name}`); | |
| 953 | 966 | reportResult?.addSubtest(test.name, 'NOTRUN'); | |
| 967 | + this.subtestCounts.skipped++; | ||
| 954 | 968 | this.addTestResult(spec, { | |
| 955 | 969 | name: test.name, | |
| 956 | 970 | status: kSkip, | |
@@ -973,6 +987,11 @@ class WPTRunner { | |||
| 973 | 987 | console.log(`Command: ${command}\n`); | |
| 974 | 988 | ||
| 975 | 989 | reportResult?.addSubtest(test.name, 'FAIL', test.message); | |
| 990 | + if (expected) { | ||
| 991 | + this.subtestCounts.expectedFailures++; | ||
| 992 | + } else { | ||
| 993 | + this.subtestCounts.failed++; | ||
| 994 | + } | ||
| 976 | 995 | ||
| 977 | 996 | this.addTestResult(spec, { | |
| 978 | 997 | name: test.name, | |
| Back | FazBrowse Home | New Git URL |
0 commit comments