// Copyright (c) 2017, 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.

import 'package:test_reflective_loader/test_reflective_loader.dart';

import 'analyzer_converter_test.dart' as analyzer_converter_test;
import 'completion/test_all.dart' as completion;
import 'navigation_test.dart' as navigation_test;
import 'range_factory_test.dart' as range_factory_test;
import 'subscriptions/test_all.dart' as subscriptions;

main() {
  defineReflectiveSuite(() {
    analyzer_converter_test.main();
    completion.main();
    navigation_test.main();
    range_factory_test.main();
    subscriptions.main();
  }, name: 'utilities');
}
