| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'dart:async' show | 5 import 'dart:async' show |
| 6 Future, | 6 Future, |
| 7 Stream, | 7 Stream, |
| 8 StreamController; | 8 StreamController; |
| 9 | 9 |
| 10 import 'dart:io' show | 10 import 'dart:io' show |
| 11 Directory, | 11 Directory, |
| 12 File, | 12 File, |
| 13 Process, | 13 Process, |
| 14 ProcessResult; | 14 ProcessResult; |
| 15 | 15 |
| 16 import 'dart:convert' show | 16 import 'dart:convert' show |
| 17 UTF8; | 17 UTF8; |
| 18 | 18 |
| 19 import 'package:expect/expect.dart' show | 19 import 'package:expect/expect.dart' show |
| 20 Expect; | 20 Expect; |
| 21 | 21 |
| 22 import '../fletchc/run.dart' show | 22 import '../dartino_compiler/run.dart' show |
| 23 export; | 23 export; |
| 24 | 24 |
| 25 import 'package:fletchc/program_info.dart' as program_info; | 25 import 'package:dartino_compiler/program_info.dart' as program_info; |
| 26 | 26 |
| 27 import 'utils.dart' show | 27 import 'utils.dart' show |
| 28 withTempDirectory; | 28 withTempDirectory; |
| 29 | 29 |
| 30 const String buildDirectory = | 30 const String buildDirectory = |
| 31 const String.fromEnvironment('test.dart.build-dir'); | 31 const String.fromEnvironment('test.dart.build-dir'); |
| 32 | 32 |
| 33 const String buildArch = | 33 const String buildArch = |
| 34 const String.fromEnvironment('test.dart.build-arch'); | 34 const String.fromEnvironment('test.dart.build-arch'); |
| 35 | 35 |
| 36 const String buildSystem = | 36 const String buildSystem = |
| 37 const String.fromEnvironment('test.dart.build-system'); | 37 const String.fromEnvironment('test.dart.build-system'); |
| 38 | 38 |
| 39 final String fletchVM = '$buildDirectory/fletch-vm'; | 39 final String dartinoVM = '$buildDirectory/dartino-vm'; |
| 40 | 40 |
| 41 typedef Future NoArgFuture(); | 41 typedef Future NoArgFuture(); |
| 42 | 42 |
| 43 Future<Map<String, NoArgFuture>> listTests( | 43 Future<Map<String, NoArgFuture>> listTests( |
| 44 [bool write_golden_files = false]) async { | 44 [bool write_golden_files = false]) async { |
| 45 var tests = <String, NoArgFuture>{ | 45 var tests = <String, NoArgFuture>{ |
| 46 'snapshot_stacktrace_tests/uncaught_exception': | 46 'snapshot_stacktrace_tests/uncaught_exception': |
| 47 () => runTest('uncaught_exception', write_golden_files), | 47 () => runTest('uncaught_exception', write_golden_files), |
| 48 'snapshot_stacktrace_tests/nsm_exception': | 48 'snapshot_stacktrace_tests/nsm_exception': |
| 49 () => runTest('nsm_exception', write_golden_files), | 49 () => runTest('nsm_exception', write_golden_files), |
| (...skipping 10 matching lines...) Expand all Loading... |
| 60 | 60 |
| 61 Future runTest(String testName, bool write_golden_files) { | 61 Future runTest(String testName, bool write_golden_files) { |
| 62 return withTempDirectory((Directory temp) async { | 62 return withTempDirectory((Directory temp) async { |
| 63 String snapshotFilename = '${temp.absolute.path}/test.snapshot'; | 63 String snapshotFilename = '${temp.absolute.path}/test.snapshot'; |
| 64 | 64 |
| 65 // Part 1: Generate snapshot. | 65 // Part 1: Generate snapshot. |
| 66 await export( | 66 await export( |
| 67 testFilename(testName), snapshotFilename, binaryProgramInfo: true); | 67 testFilename(testName), snapshotFilename, binaryProgramInfo: true); |
| 68 | 68 |
| 69 // Part 2: Run VM. | 69 // Part 2: Run VM. |
| 70 ProcessResult result = await Process.run(fletchVM, [snapshotFilename]); | 70 ProcessResult result = await Process.run(dartinoVM, [snapshotFilename]); |
| 71 String expectationContent = | 71 String expectationContent = |
| 72 await new File(testExpectationFilename(testName)).readAsString(); | 72 await new File(testExpectationFilename(testName)).readAsString(); |
| 73 | 73 |
| 74 // Part 3: Transform stdout via stack trace decoder. | 74 // Part 3: Transform stdout via stack trace decoder. |
| 75 var stdin = new Stream.fromIterable([UTF8.encode(result.stdout)]); | 75 var stdin = new Stream.fromIterable([UTF8.encode(result.stdout)]); |
| 76 var stdout = new StreamController(); | 76 var stdout = new StreamController(); |
| 77 Future<List> stdoutBytes = | 77 Future<List> stdoutBytes = |
| 78 stdout.stream.fold([], (buffer, data) => buffer..addAll(data)); | 78 stdout.stream.fold([], (buffer, data) => buffer..addAll(data)); |
| 79 var arguments = [ | 79 var arguments = [ |
| 80 buildArch.toLowerCase() == 'x64' ? '64' : '32', | 80 buildArch.toLowerCase() == 'x64' ? '64' : '32', |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 | 119 |
| 120 String testDirectory([String generated = '']) | 120 String testDirectory([String generated = '']) |
| 121 => 'tests/snapshot_stacktrace_tests$generated'; | 121 => 'tests/snapshot_stacktrace_tests$generated'; |
| 122 | 122 |
| 123 main() async { | 123 main() async { |
| 124 var tests = await listTests(true); | 124 var tests = await listTests(true); |
| 125 for (var name in tests.keys) { | 125 for (var name in tests.keys) { |
| 126 await tests[name](); | 126 await tests[name](); |
| 127 } | 127 } |
| 128 } | 128 } |
| OLD | NEW |