OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file.=> defineTests(); |
| 4 |
| 5 /// This tests the benchmarks in benchmark/benchmark.test, and ensures that our |
| 6 /// benchmarks can run. |
| 7 |
| 8 import 'dart:convert'; |
| 9 import 'dart:io'; |
| 10 |
| 11 import 'package:path/path.dart' as path; |
| 12 import 'package:test/test.dart'; |
| 13 |
| 14 void main() => defineTests(); |
| 15 |
| 16 void defineTests() { |
| 17 group('benchmarks', () { |
| 18 final List<String> benchmarks = _listBenchmarks(); |
| 19 |
| 20 test('can list', () { |
| 21 expect(benchmarks, isNotEmpty); |
| 22 }); |
| 23 |
| 24 for (String benchmarkId in benchmarks) { |
| 25 test(benchmarkId, () { |
| 26 ProcessResult r = Process.runSync( |
| 27 Platform.resolvedExecutable, |
| 28 [ |
| 29 path.join('benchmark', 'benchmarks.dart'), |
| 30 'run', |
| 31 '--repeat=1', |
| 32 '--quick', |
| 33 benchmarkId |
| 34 ], |
| 35 workingDirectory: _serverSourcePath, |
| 36 ); |
| 37 expect(r.exitCode, 0, |
| 38 reason: 'exit: ${r.exitCode}\n${r.stdout}\n${r.stderr}'); |
| 39 }); |
| 40 } |
| 41 }); |
| 42 } |
| 43 |
| 44 List<String> _listBenchmarks() { |
| 45 ProcessResult result = Process.runSync( |
| 46 Platform.resolvedExecutable, |
| 47 [path.join('benchmark', 'benchmarks.dart'), 'list', '--machine'], |
| 48 workingDirectory: _serverSourcePath, |
| 49 ); |
| 50 Map m = JSON.decode(result.stdout); |
| 51 List benchmarks = m['benchmarks']; |
| 52 return benchmarks.map((b) => b['id']).toList(); |
| 53 } |
| 54 |
| 55 String get _serverSourcePath { |
| 56 String script = Platform.script.toFilePath(windows: Platform.isWindows); |
| 57 String pkgPath = path.normalize(path.join(path.dirname(script), '..', '..')); |
| 58 return path.join(pkgPath, 'analysis_server'); |
| 59 } |
OLD | NEW |