b4e176b570
Change-Id: Ic1cb4aa69cfeec14109b9503db140f85fcfab06b Reviewed-on: https://dart-review.googlesource.com/48445 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
59 lines
1.6 KiB
Dart
59 lines
1.6 KiB
Dart
// Copyright (c) 2014, 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.
|
|
|
|
/**
|
|
* This test verifies that if reanalysis is performed while reanalysis is in
|
|
* progress, no problems occur.
|
|
*
|
|
* See dartbug.com/21448.
|
|
*/
|
|
import 'dart:async';
|
|
|
|
import 'package:test/test.dart';
|
|
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
|
|
|
import '../support/integration_tests.dart';
|
|
|
|
main() {
|
|
defineReflectiveSuite(() {
|
|
defineReflectiveTests(ReanalyzeTest);
|
|
defineReflectiveTests(ReanalyzeTest_UseCFE);
|
|
});
|
|
}
|
|
|
|
@reflectiveTest
|
|
class ReanalyzeTest extends AbstractAnalysisServerIntegrationTest {
|
|
@TestTimeout(const Timeout.factor(2))
|
|
test_reanalyze_concurrent() {
|
|
String pathname = sourcePath('test.dart');
|
|
String text = '''
|
|
// Do a bunch of imports so that analysis has some work to do.
|
|
import 'dart:io';
|
|
import 'dart:convert';
|
|
import 'dart:async';
|
|
|
|
main() {}''';
|
|
writeFile(pathname, text);
|
|
standardAnalysisSetup();
|
|
return analysisFinished.then((_) {
|
|
sendAnalysisReanalyze();
|
|
// Wait for reanalysis to start.
|
|
return onServerStatus.first.then((_) {
|
|
sendAnalysisReanalyze();
|
|
return analysisFinished.then((_) {
|
|
// Now that reanalysis has finished, give the server an extra second
|
|
// to make sure it doesn't crash.
|
|
return new Future.delayed(new Duration(seconds: 1));
|
|
});
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
@reflectiveTest
|
|
class ReanalyzeTest_UseCFE extends ReanalyzeTest {
|
|
@override
|
|
bool get useCFE => true;
|
|
}
|