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

Unified Diff: utils/tests/pub/command_line_config.dart

Issue 14297021: Move pub into sdk/lib/_internal. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Disallow package: imports of pub. Created 7 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « utils/pub/version.dart ('k') | utils/tests/pub/descriptor.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/tests/pub/command_line_config.dart
diff --git a/utils/tests/pub/command_line_config.dart b/utils/tests/pub/command_line_config.dart
deleted file mode 100644
index 47c68a9bef5423aba7567b289bec4b6b9346b47d..0000000000000000000000000000000000000000
--- a/utils/tests/pub/command_line_config.dart
+++ /dev/null
@@ -1,171 +0,0 @@
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library command_line_config;
-
-import 'dart:io';
-import 'dart:math' as math;
-
-import 'package:pathos/path.dart' as path;
-import 'package:unittest/unittest.dart';
-import '../../pub/utils.dart';
-
-/// Gets a "special" string (ANSI escape or Unicode). On Windows, returns
-/// something else since those aren't supported.
-String _getSpecial(String color, [String onWindows = '']) {
- // No ANSI escapes on windows.
- if (Platform.operatingSystem == 'windows') return onWindows;
- return color;
-}
-
-/// Pretty Unicode characters!
-final _checkbox = _getSpecial('\u2713', 'PASS');
-final _ballotX = _getSpecial('\u2717', 'FAIL');
-final _lambda = _getSpecial('\u03bb', '<fn>');
-
-final _green = _getSpecial('\u001b[32m');
-final _red = _getSpecial('\u001b[31m');
-final _magenta = _getSpecial('\u001b[35m');
-final _none = _getSpecial('\u001b[0m');
-
-/// A custom unittest configuration for running the pub tests from the
-/// command-line and generating human-friendly output.
-class CommandLineConfiguration extends Configuration {
- void onInit() {
- // Do nothing. Overridden to prevent the base class from printing.
- }
-
- void onTestResult(TestCase testCase) {
- var result;
- switch (testCase.result) {
- case PASS: result = '$_green$_checkbox$_none'; break;
- case FAIL: result = '$_red$_ballotX$_none'; break;
- case ERROR: result = '$_magenta?$_none'; break;
- }
- print('$result ${testCase.description}');
-
- if (testCase.message != '') {
- print(_indent(testCase.message));
- }
-
- _printStackTrace(testCase.stackTrace);
-
- super.onTestResult(testCase);
- }
-
- void onSummary(int passed, int failed, int errors, List<TestCase> results,
- String uncaughtError) {
- var success = false;
- if (uncaughtError != null) {
- print('Top-level uncaught error: $uncaughtError');
- } else if (errors != 0) {
- print('${_green}$passed${_none} passed, ${_red}$failed${_none} failed, '
- '${_magenta}$errors${_none} errors.');
- } else if (failed != 0) {
- print('${_green}$passed${_none} passed, ${_red}$failed${_none} '
- 'failed.');
- } else if (passed == 0) {
- print('No tests found.');
- } else {
- print('All ${_green}$passed${_none} tests passed!');
- success = true;
- }
- }
-
- void onDone(bool success) {
- if (!success) exit(1);
- }
-
- void _printStackTrace(String stackTrace) {
- if (stackTrace == null || stackTrace == '') return;
-
- print('');
-
- // Parse out each stack entry.
- var stack = [];
- for (var line in stackTrace.split('\n')) {
- if (line.trim() == '') continue;
- stack.add(new _StackFrame(line));
- }
-
- if (stack.length == 0) return;
-
- // Figure out the longest path so we know how much to pad.
- int longest = stack.map((frame) => frame.location.length).reduce(math.max);
-
- // Print out the stack trace nicely formatted.
- for (var frame in stack) {
- print(' ${_padLeft(frame.location, longest)} ${frame.member}');
- }
-
- print('');
- }
-
- String _padLeft(String string, int length) {
- if (string.length >= length) return string;
-
- var result = new StringBuffer();
- result.write(string);
- for (var i = 0; i < length - string.length; i++) {
- result.write(' ');
- }
-
- return result.toString();
- }
-
- String _indent(String str) {
- // TODO(nweiz): Use this simpler code once issue 2980 is fixed.
- // return str.replaceAll(new RegExp("^", multiLine: true), " ");
- return str.split("\n").map((line) => " $line").join("\n");
- }
-}
-
-class _StackFrame {
- static final fileRegExp = new RegExp(
- r'#\d+\s+(.*) \(file://(/.+):(\d+):(\d+)\)');
- static final coreRegExp = new RegExp(r'#\d+\s+(.*) \((.+):(\d+):(\d+)\)');
-
- /// If `true`, then this stack frame is for a library built into Dart and
- /// not a regular file path.
- final bool isCore;
-
- /// The path to the library or the library name if a core library.
- String library;
-
- /// The line number.
- final String line;
-
- /// The column number.
- final String column;
-
- /// The member where the error occurred.
- final String member;
-
- /// A formatted description of the code location.
- String get location => '$library $line:$column';
-
- _StackFrame._(this.isCore, this.library, this.line, this.column, this.member);
-
- factory _StackFrame(String text) {
- var match = fileRegExp.firstMatch(text);
- var isCore = false;
-
- if (match == null) {
- match = coreRegExp.firstMatch(text);
- if (match == null) {
- throw new FormatException("Couldn't parse stack trace line '$text'.");
- }
- isCore = true;
- }
-
- var library = match[2];
- if (!isCore) {
- // Make the library path relative to the entrypoint.
- library = path.relative(library);
- }
-
- var member = match[1].replaceAll("<anonymous closure>", _lambda);
- return new _StackFrame._(isCore, library, match[3], match[4], member);
- }
-}
« no previous file with comments | « utils/pub/version.dart ('k') | utils/tests/pub/descriptor.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698