| Index: pkg/analysis_server/benchmark/perf/analysis_timing_test.dart
|
| diff --git a/pkg/analysis_server/benchmark/perf/analysis_timing_test.dart b/pkg/analysis_server/benchmark/perf/analysis_timing_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fd50e1364040614ff0158e9da8141002c7754bcd
|
| --- /dev/null
|
| +++ b/pkg/analysis_server/benchmark/perf/analysis_timing_test.dart
|
| @@ -0,0 +1,59 @@
|
| +// Copyright (c) 2015, 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 server.performance.analysis.timing;
|
| +
|
| +import 'dart:async';
|
| +import 'dart:io';
|
| +
|
| +import 'package:args/args.dart';
|
| +import 'package:test_reflective_loader/test_reflective_loader.dart';
|
| +
|
| +import '../../test/utils.dart';
|
| +import 'performance_tests.dart';
|
| +
|
| +const String SOURCE_OPTION = 'source';
|
| +
|
| +/**
|
| + * Pass in the directory of the source to be analyzed as option --source
|
| + */
|
| +main(List<String> arguements) {
|
| + initializeTestEnvironment();
|
| + ArgParser parser = _createArgParser();
|
| + var args = parser.parse(arguements);
|
| + if (args[SOURCE_OPTION] == null) {
|
| + print('path to source directory must be specified');
|
| + exit(1);
|
| + }
|
| + source = args[SOURCE_OPTION];
|
| + defineReflectiveTests(AnalysisTimingIntegrationTest);
|
| +}
|
| +
|
| +String source;
|
| +
|
| +@reflectiveTest
|
| +class AnalysisTimingIntegrationTest
|
| + extends AbstractAnalysisServerPerformanceTest {
|
| + test_detect_analysis_done() {
|
| + sourceDirectory = new Directory(source);
|
| + subscribeToStatusNotifications();
|
| + return _runAndTimeAnalysis();
|
| + }
|
| +
|
| + Future _runAndTimeAnalysis() {
|
| + stopwatch.start();
|
| + setAnalysisRoot();
|
| + return analysisFinished.then((_) {
|
| + print('analysis completed in ${stopwatch.elapsed}');
|
| + stopwatch.reset();
|
| + });
|
| + }
|
| +}
|
| +
|
| +ArgParser _createArgParser() {
|
| + ArgParser parser = new ArgParser();
|
| + parser.addOption('source',
|
| + help: 'full path to source directory for analysis');
|
| + return parser;
|
| +}
|
|
|