Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: third_party/WebKit/Source/devtools/scripts/npm_test.js

Issue 2661573002: DevTools: skip specific tests for backwards compatibility testing (Closed)
Patch Set: devtools runtime Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 var childProcess = require('child_process'); 5 var childProcess = require('child_process');
6 var fs = require('fs'); 6 var fs = require('fs');
7 var path = require('path'); 7 var path = require('path');
8 var shell = require('child_process').execSync; 8 var shell = require('child_process').execSync;
9 9
10 var utils = require('./utils'); 10 var utils = require('./utils');
11 11
12 var Flags = { 12 var Flags = {
13 DEBUG_DEVTOOLS: '--debug-devtools', 13 DEBUG_DEVTOOLS: '--debug-devtools',
14 DEBUG_DEVTOOLS_SHORTHAND: '-d', 14 DEBUG_DEVTOOLS_SHORTHAND: '-d',
15 FETCH_CONTENT_SHELL: '--fetch-content-shell', 15 FETCH_CONTENT_SHELL: '--fetch-content-shell',
16 COMPAT_PROTOCOL: '--compat-protocol', 16 COMPAT_PROTOCOL: '--compat-protocol', // backwards compatibility testing
17 CHROMIUM_PATH: '--chromium-path' // useful for bisecting
17 }; 18 };
18 19
19 var COMPAT_URL_MAPPING = { 20 var COMPAT_URL_MAPPING = {
20 '1.2': 'https://storage.googleapis.com/content-shell-devtools-compat/content_s hell_417361.zip', 21 '1.2': 'https://storage.googleapis.com/content-shell-devtools-compat/content_s hell_417361.zip',
21 }; 22 };
22 23
23 var IS_DEBUG_ENABLED = 24 var IS_DEBUG_ENABLED =
24 utils.includes(process.argv, Flags.DEBUG_DEVTOOLS) || utils.includes(process .argv, Flags.DEBUG_DEVTOOLS_SHORTHAND); 25 utils.includes(process.argv, Flags.DEBUG_DEVTOOLS) || utils.includes(process .argv, Flags.DEBUG_DEVTOOLS_SHORTHAND);
25 var COMPAT_PROTOCOL = utils.parseArgs(process.argv)[Flags.COMPAT_PROTOCOL]; 26 var COMPAT_PROTOCOL = utils.parseArgs(process.argv)[Flags.COMPAT_PROTOCOL];
27 var CUSTOM_CHROMIUM_PATH = utils.parseArgs(process.argv)[Flags.CHROMIUM_PATH];
26 var IS_FETCH_CONTENT_SHELL = utils.includes(process.argv, Flags.FETCH_CONTENT_SH ELL); 28 var IS_FETCH_CONTENT_SHELL = utils.includes(process.argv, Flags.FETCH_CONTENT_SH ELL);
27 29
28 var CONTENT_SHELL_ZIP = 'content-shell.zip'; 30 var CONTENT_SHELL_ZIP = 'content-shell.zip';
29 var MAX_CONTENT_SHELLS = 10; 31 var MAX_CONTENT_SHELLS = 10;
30 var PLATFORM = getPlatform(); 32 var PLATFORM = getPlatform();
31 var PYTHON = process.platform === 'win32' ? 'python.bat' : 'python'; 33 var PYTHON = process.platform === 'win32' ? 'python.bat' : 'python';
32 34
33 var CHROMIUM_SRC_PATH = path.resolve(__dirname, '..', '..', '..', '..', '..'); 35 var CHROMIUM_SRC_PATH = CUSTOM_CHROMIUM_PATH || path.resolve(__dirname, '..', '. .', '..', '..', '..');
34 var RELEASE_PATH = path.resolve(CHROMIUM_SRC_PATH, 'out', 'Release'); 36 var RELEASE_PATH = path.resolve(CHROMIUM_SRC_PATH, 'out', 'Release');
35 var BLINK_TEST_PATH = path.resolve(CHROMIUM_SRC_PATH, 'blink', 'tools', 'run_lay out_tests.py'); 37 var BLINK_TEST_PATH = path.resolve(CHROMIUM_SRC_PATH, 'blink', 'tools', 'run_lay out_tests.py');
36 var DEVTOOLS_PATH = path.resolve(__dirname, '..'); 38 var DEVTOOLS_PATH = path.resolve(CHROMIUM_SRC_PATH, 'third_party', 'WebKit', 'So urce', 'devtools');
37 var CACHE_PATH = path.resolve(DEVTOOLS_PATH, '.test_cache'); 39 var CACHE_PATH = path.resolve(DEVTOOLS_PATH, '.test_cache');
38 var SOURCE_PATH = path.resolve(DEVTOOLS_PATH, 'front_end'); 40 var SOURCE_PATH = path.resolve(DEVTOOLS_PATH, 'front_end');
39 41
40 function main() { 42 function main() {
41 if (!utils.isDir(CACHE_PATH)) 43 if (!utils.isDir(CACHE_PATH))
42 fs.mkdirSync(CACHE_PATH); 44 fs.mkdirSync(CACHE_PATH);
43 deleteOldContentShells(); 45 deleteOldContentShells();
44 46
45 if (COMPAT_PROTOCOL) { 47 if (COMPAT_PROTOCOL) {
46 runCompatibilityTests(); 48 runCompatibilityTests();
(...skipping 13 matching lines...) Expand all
60 62
61 function onError(error) { 63 function onError(error) {
62 console.log('Unable to run tests because of error:', error); 64 console.log('Unable to run tests because of error:', error);
63 console.log(`Try removing the .test_cache folder [${CACHE_PATH}] and retryin g`); 65 console.log(`Try removing the .test_cache folder [${CACHE_PATH}] and retryin g`);
64 } 66 }
65 } 67 }
66 main(); 68 main();
67 69
68 function runCompatibilityTests() { 70 function runCompatibilityTests() {
69 const folder = `compat-protocol-${COMPAT_PROTOCOL}`; 71 const folder = `compat-protocol-${COMPAT_PROTOCOL}`;
72 utils.removeRecursive(path.resolve(RELEASE_PATH, 'resources', 'inspector'));
70 compileFrontend(); 73 compileFrontend();
71 var outPath = path.resolve(CACHE_PATH, folder, 'out'); 74 var outPath = path.resolve(CACHE_PATH, folder, 'out');
72 var contentShellDirPath = path.resolve(outPath, 'Release'); 75 var contentShellDirPath = path.resolve(outPath, 'Release');
73 var hasCachedContentShell = utils.isFile(getContentShellBinaryPath(contentShel lDirPath)); 76 var hasCachedContentShell = utils.isFile(getContentShellBinaryPath(contentShel lDirPath));
74 if (hasCachedContentShell) { 77 if (hasCachedContentShell) {
75 console.log(`Using cached content shell at: ${outPath}`); 78 console.log(`Using cached content shell at: ${outPath}`);
76 copyFrontendToCompatBuildPath(contentShellDirPath, RELEASE_PATH); 79 copyFrontendToCompatBuildPath(contentShellDirPath, RELEASE_PATH);
77 runTests(outPath, IS_DEBUG_ENABLED); 80 runTests(outPath, IS_DEBUG_ENABLED);
78 return; 81 return;
79 } 82 }
80 prepareContentShellDirectory(folder) 83 prepareContentShellDirectory(folder)
81 .then(() => downloadContentShell(COMPAT_URL_MAPPING[COMPAT_PROTOCOL], fold er)) 84 .then(() => downloadContentShell(COMPAT_URL_MAPPING[COMPAT_PROTOCOL], fold er))
82 .then(extractContentShell) 85 .then(extractContentShell)
83 .then(() => copyFrontendToCompatBuildPath(contentShellDirPath, RELEASE_PAT H)) 86 .then(() => copyFrontendToCompatBuildPath(contentShellDirPath, RELEASE_PAT H))
84 .then(() => runTests(outPath, IS_DEBUG_ENABLED)); 87 .then(() => runTests(outPath, IS_DEBUG_ENABLED));
85 } 88 }
86 89
87 function compileFrontend() { 90 function compileFrontend() {
88 console.log('Compiling devtools frontend'); 91 console.log('Compiling devtools frontend');
89 try { 92 try {
90 shell(`ninja -C ${RELEASE_PATH} devtools_frontend_resources`); 93 shell(`ninja -C ${RELEASE_PATH} devtools_frontend_resources`, {cwd: CHROMIUM _SRC_PATH});
91 } catch (err) { 94 } catch (err) {
92 console.log(err.stdout.toString()); 95 console.log(err.stdout.toString());
93 console.log('ERROR: Cannot compile frontend\n' + err); 96 console.log('ERROR: Cannot compile frontend\n' + err);
94 process.exit(1); 97 process.exit(1);
95 } 98 }
96 } 99 }
97 100
98 function onUploadedCommitPosition(commitPosition) { 101 function onUploadedCommitPosition(commitPosition) {
99 var contentShellDirPath = path.resolve(CACHE_PATH, commitPosition, 'out', 'Rel ease'); 102 var contentShellDirPath = path.resolve(CACHE_PATH, commitPosition, 'out', 'Rel ease');
100 var contentShellResourcesPath = path.resolve(contentShellDirPath, 'resources') ; 103 var contentShellResourcesPath = path.resolve(contentShellDirPath, 'resources') ;
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 '--no-pixel-tests', 267 '--no-pixel-tests',
265 '--build-directory', 268 '--build-directory',
266 buildDirectoryPath, 269 buildDirectoryPath,
267 ]); 270 ]);
268 if (useDebugDevtools) 271 if (useDebugDevtools)
269 testArgs.push('--additional-driver-flag=--debug-devtools'); 272 testArgs.push('--additional-driver-flag=--debug-devtools');
270 else 273 else
271 console.log('TIP: You can debug a test using: npm run debug-test inspector/t est-name.html'); 274 console.log('TIP: You can debug a test using: npm run debug-test inspector/t est-name.html');
272 275
273 if (COMPAT_PROTOCOL) { 276 if (COMPAT_PROTOCOL) {
274 let platform = `protocol-${COMPAT_PROTOCOL}`; 277 const platform = `protocol-${COMPAT_PROTOCOL}`;
275 let compatBaselinePath = path.resolve(DEVTOOLS_PATH, 'tests', 'baseline', pl atform); 278 const testsPath = path.resolve(DEVTOOLS_PATH, 'tests');
279 const compatBaselinePath = path.resolve(testsPath, 'baseline', platform);
276 testArgs.push(`--additional-platform-directory=${compatBaselinePath}`); 280 testArgs.push(`--additional-platform-directory=${compatBaselinePath}`);
281 const expectationsPath = path.resolve(testsPath, 'TestExpectations');
282 testArgs.push(`--additional-expectations=${expectationsPath}`);
277 } 283 }
278 if (IS_DEBUG_ENABLED) { 284 if (IS_DEBUG_ENABLED) {
279 testArgs.push('--additional-driver-flag=--remote-debugging-port=9222'); 285 testArgs.push('--additional-driver-flag=--remote-debugging-port=9222');
280 testArgs.push('--time-out-ms=6000000'); 286 testArgs.push('--time-out-ms=6000000');
281 console.log('\n============================================='); 287 console.log('\n=============================================');
282 console.log('Go to: http://localhost:9222/'); 288 console.log('Go to: http://localhost:9222/');
283 console.log('Click on link and in console execute: test()'); 289 console.log('Click on link and in console execute: test()');
284 console.log('=============================================\n'); 290 console.log('=============================================\n');
285 } 291 }
286 var args = [BLINK_TEST_PATH].concat(testArgs).concat(getTestFlags()); 292 var args = [BLINK_TEST_PATH].concat(testArgs).concat(getTestFlags());
(...skipping 11 matching lines...) Expand all
298 304
299 function getInspectorTests() { 305 function getInspectorTests() {
300 var specificTests = process.argv.filter(arg => utils.includes(arg, 'inspector' )); 306 var specificTests = process.argv.filter(arg => utils.includes(arg, 'inspector' ));
301 if (specificTests.length) 307 if (specificTests.length)
302 return specificTests; 308 return specificTests;
303 return [ 309 return [
304 'inspector*', 310 'inspector*',
305 'http/tests/inspector*', 311 'http/tests/inspector*',
306 ]; 312 ];
307 } 313 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698