summaryrefslogtreecommitdiffstats
path: root/dom/webgpu/tests/cts/checkout/Gruntfile.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webgpu/tests/cts/checkout/Gruntfile.js')
-rw-r--r--dom/webgpu/tests/cts/checkout/Gruntfile.js229
1 files changed, 229 insertions, 0 deletions
diff --git a/dom/webgpu/tests/cts/checkout/Gruntfile.js b/dom/webgpu/tests/cts/checkout/Gruntfile.js
new file mode 100644
index 0000000000..bb48aeaac4
--- /dev/null
+++ b/dom/webgpu/tests/cts/checkout/Gruntfile.js
@@ -0,0 +1,229 @@
+/* eslint-disable node/no-unpublished-require */
+/* eslint-disable prettier/prettier */
+/* eslint-disable no-console */
+
+module.exports = function (grunt) {
+ // Project configuration.
+ grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+
+ clean: {
+ out: ['out/', 'out-wpt/', 'out-node/'],
+ },
+
+ run: {
+ 'generate-version': {
+ cmd: 'node',
+ args: ['tools/gen_version'],
+ },
+ 'generate-listings': {
+ cmd: 'node',
+ args: ['tools/gen_listings', 'out/', 'src/webgpu', 'src/stress', 'src/manual', 'src/unittests', 'src/demo'],
+ },
+ 'generate-wpt-cts-html': {
+ cmd: 'node',
+ args: ['tools/gen_wpt_cts_html', 'out-wpt/cts.https.html', 'src/common/templates/cts.https.html'],
+ },
+ 'generate-cache': {
+ cmd: 'node',
+ args: ['tools/gen_cache', 'out/data', 'src/webgpu'],
+ },
+ unittest: {
+ cmd: 'node',
+ args: ['tools/run_node', 'unittests:*'],
+ },
+ 'build-out': {
+ cmd: 'node',
+ args: [
+ 'node_modules/@babel/cli/bin/babel',
+ '--extensions=.ts,.js',
+ '--source-maps=true',
+ '--out-dir=out/',
+ 'src/',
+ ],
+ },
+ 'build-out-wpt': {
+ cmd: 'node',
+ args: [
+ 'node_modules/@babel/cli/bin/babel',
+ '--extensions=.ts,.js',
+ '--source-maps=false',
+ '--delete-dir-on-start',
+ '--out-dir=out-wpt/',
+ 'src/',
+ '--only=src/common/framework/',
+ '--only=src/common/runtime/helper/',
+ '--only=src/common/runtime/wpt.ts',
+ '--only=src/webgpu/',
+ // These files will be generated, instead of compiled from TypeScript.
+ '--ignore=src/common/internal/version.ts',
+ '--ignore=src/webgpu/listing.ts',
+ ],
+ },
+ 'build-out-node': {
+ cmd: 'node',
+ args: [
+ 'node_modules/typescript/lib/tsc.js',
+ '--project', 'node.tsconfig.json',
+ '--outDir', 'out-node/',
+ ],
+ },
+ 'copy-assets': {
+ cmd: 'node',
+ args: [
+ 'node_modules/@babel/cli/bin/babel',
+ 'src/resources/',
+ '--out-dir=out/resources/',
+ '--copy-files'
+ ],
+ },
+ 'copy-assets-wpt': {
+ cmd: 'node',
+ args: [
+ 'node_modules/@babel/cli/bin/babel',
+ 'src/resources/',
+ '--out-dir=out-wpt/resources/',
+ '--copy-files'
+ ],
+ },
+ lint: {
+ cmd: 'node',
+ args: ['node_modules/eslint/bin/eslint', 'src/**/*.ts', '--max-warnings=0'],
+ },
+ presubmit: {
+ cmd: 'node',
+ args: ['tools/presubmit'],
+ },
+ fix: {
+ cmd: 'node',
+ args: ['node_modules/eslint/bin/eslint', 'src/**/*.ts', '--fix'],
+ },
+ 'autoformat-out-wpt': {
+ cmd: 'node',
+ args: ['node_modules/prettier/bin-prettier', '--loglevel=warn', '--write', 'out-wpt/**/*.js'],
+ },
+ tsdoc: {
+ cmd: 'node',
+ args: ['node_modules/typedoc/bin/typedoc'],
+ },
+ 'tsdoc-treatWarningsAsErrors': {
+ cmd: 'node',
+ args: ['node_modules/typedoc/bin/typedoc', '--treatWarningsAsErrors'],
+ },
+
+ serve: {
+ cmd: 'node',
+ args: ['node_modules/http-server/bin/http-server', '-p8080', '-a127.0.0.1', '-c-1']
+ }
+ },
+
+ copy: {
+ 'out-wpt-generated': {
+ files: [
+ { expand: true, cwd: 'out', src: 'common/internal/version.js', dest: 'out-wpt/' },
+ { expand: true, cwd: 'out', src: 'webgpu/listing.js', dest: 'out-wpt/' },
+ ],
+ },
+ 'out-wpt-htmlfiles': {
+ files: [
+ { expand: true, cwd: 'src', src: 'webgpu/**/*.html', dest: 'out-wpt/' },
+ ],
+ },
+ },
+
+ ts: {
+ check: {
+ tsconfig: {
+ tsconfig: 'tsconfig.json',
+ passThrough: true,
+ },
+ },
+ },
+ });
+
+ grunt.loadNpmTasks('grunt-contrib-clean');
+ grunt.loadNpmTasks('grunt-contrib-copy');
+ grunt.loadNpmTasks('grunt-run');
+ grunt.loadNpmTasks('grunt-ts');
+
+ const helpMessageTasks = [];
+ function registerTaskAndAddToHelp(name, desc, deps) {
+ grunt.registerTask(name, deps);
+ addExistingTaskToHelp(name, desc);
+ }
+ function addExistingTaskToHelp(name, desc) {
+ helpMessageTasks.push({ name, desc });
+ }
+
+ grunt.registerTask('set-quiet-mode', () => {
+ grunt.log.write('Running tasks');
+ require('quiet-grunt');
+ });
+
+ grunt.registerTask('build-standalone', 'Build out/ (no checks, no WPT)', [
+ 'run:build-out',
+ 'run:copy-assets',
+ 'run:generate-version',
+ 'run:generate-listings',
+ ]);
+ grunt.registerTask('build-wpt', 'Build out/ (no checks)', [
+ 'run:build-out-wpt',
+ 'run:copy-assets-wpt',
+ 'run:autoformat-out-wpt',
+ 'run:generate-version',
+ 'run:generate-listings',
+ 'copy:out-wpt-generated',
+ 'copy:out-wpt-htmlfiles',
+ 'run:generate-wpt-cts-html',
+ ]);
+ grunt.registerTask('build-done-message', () => {
+ process.stderr.write('\nBuild completed! Running checks/tests');
+ });
+
+ registerTaskAndAddToHelp('pre', 'Run all presubmit checks: standalone+wpt+typecheck+unittest+lint', [
+ 'set-quiet-mode',
+ 'clean',
+ 'build-standalone',
+ 'build-wpt',
+ 'run:build-out-node',
+ 'build-done-message',
+ 'ts:check',
+ 'run:presubmit',
+ 'run:unittest',
+ 'run:lint',
+ 'run:tsdoc-treatWarningsAsErrors',
+ ]);
+ registerTaskAndAddToHelp('standalone', 'Build standalone and typecheck', [
+ 'set-quiet-mode',
+ 'build-standalone',
+ 'build-done-message',
+ 'ts:check',
+ ]);
+ registerTaskAndAddToHelp('wpt', 'Build for WPT and typecheck', [
+ 'set-quiet-mode',
+ 'build-wpt',
+ 'build-done-message',
+ 'ts:check',
+ ]);
+ registerTaskAndAddToHelp('unittest', 'Build standalone, typecheck, and unittest', [
+ 'standalone',
+ 'run:unittest',
+ ]);
+ registerTaskAndAddToHelp('check', 'Just typecheck', [
+ 'set-quiet-mode',
+ 'ts:check',
+ ]);
+
+ registerTaskAndAddToHelp('serve', 'Serve out/ on 127.0.0.1:8080 (does NOT compile source)', ['run:serve']);
+ registerTaskAndAddToHelp('fix', 'Fix lint and formatting', ['run:fix']);
+
+ addExistingTaskToHelp('clean', 'Clean out/ and out-wpt/');
+
+ grunt.registerTask('default', '', () => {
+ console.error('\nAvailable tasks (see grunt --help for info):');
+ for (const { name, desc } of helpMessageTasks) {
+ console.error(`$ grunt ${name}`);
+ console.error(` ${desc}`);
+ }
+ });
+};