mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
70 lines
3.5 KiB
Dart
70 lines
3.5 KiB
Dart
// Copyright 2018 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'dart:convert';
|
|
import 'dart:io';
|
|
|
|
import 'common.dart';
|
|
|
|
void main() {
|
|
test('analyze-sample-code', () async {
|
|
final Process process = await Process.start(
|
|
'../../bin/cache/dart-sdk/bin/dart',
|
|
<String>['analyze-sample-code.dart', 'test/analyze-sample-code-test-input'],
|
|
);
|
|
final List<String> stdout = await process.stdout.transform(utf8.decoder).transform(const LineSplitter()).toList();
|
|
final List<String> stderr = await process.stderr.transform(utf8.decoder).transform(const LineSplitter()).toList();
|
|
final Match line = new RegExp(r'^(.+)/main\.dart:[0-9]+:[0-9]+: .+$').matchAsPrefix(stdout[1]);
|
|
expect(line, isNot(isNull));
|
|
final String directory = line.group(1);
|
|
new Directory(directory).deleteSync(recursive: true);
|
|
expect(await process.exitCode, 1);
|
|
expect(stderr, isEmpty);
|
|
expect(stdout, <String>[
|
|
'Found 2 sample code sections.',
|
|
"$directory/main.dart:1:8: Unused import: 'dart:async'",
|
|
"$directory/main.dart:2:8: Unused import: 'dart:convert'",
|
|
"$directory/main.dart:3:8: Unused import: 'dart:math'",
|
|
"$directory/main.dart:4:8: Unused import: 'dart:typed_data'",
|
|
"$directory/main.dart:5:8: Unused import: 'dart:ui'",
|
|
"$directory/main.dart:6:8: Unused import: 'package:flutter_test/flutter_test.dart'",
|
|
"$directory/main.dart:9:8: Target of URI doesn't exist: 'package:flutter/known_broken_documentation.dart'",
|
|
'test/analyze-sample-code-test-input/known_broken_documentation.dart:27:5: Unnecessary new keyword (unnecessary_new)',
|
|
"test/analyze-sample-code-test-input/known_broken_documentation.dart:27:9: Undefined class 'Opacity' (undefined_class)",
|
|
"test/analyze-sample-code-test-input/known_broken_documentation.dart:29:20: Undefined class 'Text' (undefined_class)",
|
|
'test/analyze-sample-code-test-input/known_broken_documentation.dart:39:5: Unnecessary new keyword (unnecessary_new)',
|
|
"test/analyze-sample-code-test-input/known_broken_documentation.dart:39:9: Undefined class 'Opacity' (undefined_class)",
|
|
"test/analyze-sample-code-test-input/known_broken_documentation.dart:41:20: Undefined class 'Text' (undefined_class)",
|
|
'test/analyze-sample-code-test-input/known_broken_documentation.dart:42:5: unexpected comma at end of sample code',
|
|
'Kept $directory because it had errors (see above).',
|
|
'-------8<-------',
|
|
' 1: // generated code',
|
|
" 2: import 'dart:async';",
|
|
" 3: import 'dart:convert';",
|
|
" 4: import 'dart:math' as math;",
|
|
" 5: import 'dart:typed_data';",
|
|
" 6: import 'dart:ui' as ui;",
|
|
" 7: import 'package:flutter_test/flutter_test.dart';",
|
|
' 8: ',
|
|
' 9: // test/analyze-sample-code-test-input/known_broken_documentation.dart',
|
|
" 10: import 'package:flutter/known_broken_documentation.dart';",
|
|
' 11: ',
|
|
' 12: bool _visible = true;',
|
|
' 13: dynamic expression1 = ',
|
|
' 14: new Opacity(',
|
|
' 15: opacity: _visible ? 1.0 : 0.0,',
|
|
" 16: child: const Text('Poor wandering ones!'),",
|
|
' 17: )',
|
|
' 18: ;',
|
|
' 19: dynamic expression2 = ',
|
|
' 20: new Opacity(',
|
|
' 21: opacity: _visible ? 1.0 : 0.0,',
|
|
" 22: child: const Text('Poor wandering ones!'),",
|
|
' 23: ),',
|
|
' 24: ;',
|
|
'-------8<-------',
|
|
]);
|
|
}, skip: !Platform.isLinux);
|
|
}
|