var allTestFiles = []; var TEST_REGEXP = /(_test|_multi)\.js$/i; var pathToModule = function(path) { return path.replace(/^\/base\//, '').replace(/\.js$/, ''); }; var testsToSkip = [ // syntax error in DDC's generated code (related to break/continue labels): '/base/gen/codegen_output/language/execute_finally6_test.js', '/base/gen/codegen_output/language/switch_label2_test.js', '/base/gen/codegen_output/language/infinite_switch_label_test.js', '/base/gen/codegen_output/language/switch_label_test.js', '/base/gen/codegen_output/language/nested_switch_label_test.js', '/base/gen/codegen_output/language/switch_try_catch_test.js', // module code execution error in DDC's generated code // (types are initialized incorrectly): '/base/gen/codegen_output/language/f_bounded_quantification3_test.js', '/base/gen/codegen_output/language/regress_16640_test.js', '/base/gen/codegen_output/language/cyclic_type_test_02_multi.js', '/base/gen/codegen_output/language/cyclic_type_test_03_multi.js', '/base/gen/codegen_output/language/cyclic_type_test_04_multi.js', '/base/gen/codegen_output/language/cyclic_type2_test.js', '/base/gen/codegen_output/language/least_upper_bound_expansive_test_none_multi.js' ]; Object.keys(window.__karma__.files).forEach(function(file) { if (TEST_REGEXP.test(file) && testsToSkip.indexOf(file) == -1) { // Normalize paths to RequireJS module names. allTestFiles.push(pathToModule(file)); } }); allTestFiles.push('test/browser/language_tests'); allTestFiles.push('test/browser/runtime_tests'); require.config({ // Karma serves files under /base. baseUrl: '/base', // Travis bots take a bit longer to load all ~2k test files. waitSeconds: 30, paths: { dart_sdk: 'lib/js/amd/dart_sdk', async_helper: 'gen/codegen_output/pkg/async_helper', expect: 'gen/codegen_output/pkg/expect', js: 'gen/codegen_output/pkg/js', matcher: 'gen/codegen_output/pkg/matcher', meta: 'gen/codegen_output/pkg/meta', minitest: 'gen/codegen_output/pkg/minitest', path: 'gen/codegen_output/pkg/path', stack_trace: 'gen/codegen_output/pkg/stack_trace', unittest: 'gen/codegen_output/pkg/unittest', is: 'node_modules/is_js/is', test_status: 'gen/codegen_output/test_status' }, // Require all test files before starting tests. deps: allTestFiles, // We have to kickoff jasmine, as it is asynchronous callback: window.__karma__.start });