// 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.

import 'package:test_reflective_loader/test_reflective_loader.dart';

import 'analysis_options_test.dart' as analysis_options_test;
import 'error_test.dart' as error_test;
import 'get_errors_non_standard_sdk_test.dart' as get_errors_non_standard_sdk;
import 'get_errors_test.dart' as get_errors_test;
import 'get_hover_test.dart' as get_hover_test;
import 'get_imported_elements_test.dart' as get_imported_elements_test;
import 'get_library_dependencies_test.dart' as get_library_dependencies_test;
import 'get_navigation_test.dart' as get_navigation_test;
import 'get_reachable_sources_test.dart' as get_reachable_sources_test;
import 'highlights2_test.dart' as highlights2_test;
import 'highlights_test.dart' as highlights_test;
import 'hint_sdk_version_async_exported_from_core_test.dart'
    as hint_sdk_version_async_exported_from_core_test;
import 'lint_test.dart' as lint_test;
import 'navigation_test.dart' as navigation_test;
import 'occurrences_test.dart' as occurrences_test;
import 'outline_test.dart' as outline_test;
import 'overrides_test.dart' as overrides_test;
import 'package_root_test.dart' as package_root_test;
import 'reanalyze_concurrent_test.dart' as reanalyze_concurrent_test;
import 'reanalyze_test.dart' as reanalyze_test;
import 'set_analysis_roots_test.dart' as set_analysis_roots_test;
import 'set_general_subscriptions_test.dart' as set_general_subscriptions_test;
import 'set_priority_files_test.dart' as set_priority_files_test;
import 'set_subscriptions_test.dart' as set_subscriptions_test;
import 'update_content_list_test.dart' as update_content_list_test;
import 'update_content_test.dart' as update_content_test;
import 'update_options_test.dart' as update_options_test;

void main() {
  defineReflectiveSuite(() {
    analysis_options_test.main();
    error_test.main();
    get_errors_test.main();
    get_errors_non_standard_sdk.main();
    get_library_dependencies_test.main();
    get_hover_test.main();
    get_imported_elements_test.main();
    get_navigation_test.main();
    get_reachable_sources_test.main();
    highlights2_test.main();
    highlights_test.main();
    hint_sdk_version_async_exported_from_core_test.main();
    lint_test.main();
    navigation_test.main();
    occurrences_test.main();
    outline_test.main();
    overrides_test.main();
    package_root_test.main();
    reanalyze_concurrent_test.main();
    reanalyze_test.main();
    set_analysis_roots_test.main();
    set_general_subscriptions_test.main();
    set_priority_files_test.main();
    set_subscriptions_test.main();
    update_content_test.main();
    update_content_list_test.main();
    update_options_test.main();
  }, name: 'analysis');
}
