// Copyright (c) 2024, 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 'dart:convert' show jsonEncode;
import 'dart:io'
    show Directory, File, Platform, Process, ProcessResult, exitCode;

import 'package:args/args.dart' show ArgParser;
import 'package:args/src/arg_results.dart';

import '../tool/coverage_merger.dart' as coverageMerger;

bool debug = false;

// This is the state as of 8b8ec2aa3d91a7dc9e61bd7b9e576f82bf2b52c3,
// using out/ReleaseX64/dart-sdk/bin/dart (which for instance makes a
// difference for compute_platform_binaries_location.dart).
const Map<String, double> _expect = {
  "package:front_end/src/api_prototype/compiler_options.dart":
      18.53448275862069,
  "package:front_end/src/api_prototype/experimental_flags.dart":
      81.08108108108108,
  "package:front_end/src/api_prototype/experimental_flags_generated.dart":
      53.605769230769226,
  "package:front_end/src/api_prototype/file_system.dart": 33.33333333333333,
  "package:front_end/src/api_prototype/incremental_kernel_generator.dart":
      6.666666666666667,
  "package:front_end/src/api_prototype/kernel_generator.dart": 0.0,
  "package:front_end/src/api_prototype/language_version.dart": 0.0,
  "package:front_end/src/api_prototype/lowering_predicates.dart":
      3.6036036036036037,
  "package:front_end/src/api_prototype/memory_file_system.dart": 25.0,
  "package:front_end/src/api_prototype/standard_file_system.dart":
      38.46153846153847,
  "package:front_end/src/api_prototype/summary_generator.dart": 0.0,
  "package:front_end/src/api_prototype/terminal_color_support.dart": 0.0,
  "package:front_end/src/api_unstable/compiler_state.dart": 0.0,
  "package:front_end/src/api_unstable/dart2js.dart": 0.0,
  "package:front_end/src/api_unstable/util.dart": 37.03703703703704,
  "package:front_end/src/base/instrumentation.dart": 100.0,
  "package:front_end/src/base/processed_options.dart": 38.81578947368421,
  "package:front_end/src/compute_platform_binaries_location.dart":
      66.66666666666666,
  "package:front_end/src/fasta/builder/builder.dart": 63.63636363636363,
  "package:front_end/src/fasta/builder/builder_mixins.dart": 100.0,
  "package:front_end/src/fasta/builder/builtin_type_declaration_builder.dart":
      70.0,
  "package:front_end/src/fasta/builder/class_builder.dart": 71.14427860696517,
  "package:front_end/src/fasta/builder/constructor_reference_builder.dart":
      100.0,
  "package:front_end/src/fasta/builder/declaration_builder.dart": 100.0,
  "package:front_end/src/fasta/builder/dynamic_type_declaration_builder.dart":
      100.0,
  "package:front_end/src/fasta/builder/extension_builder.dart": 50.0,
  "package:front_end/src/fasta/builder/extension_type_declaration_builder.dart":
      100.0,
  "package:front_end/src/fasta/builder/fixed_type_builder.dart":
      22.727272727272727,
  "package:front_end/src/fasta/builder/formal_parameter_builder.dart":
      95.85492227979275,
  "package:front_end/src/fasta/builder/function_type_builder.dart":
      77.95275590551181,
  "package:front_end/src/fasta/builder/future_or_type_declaration_builder.dart":
      0.0,
  "package:front_end/src/fasta/builder/inferable_type_builder.dart": 100.0,
  "package:front_end/src/fasta/builder/invalid_type_builder.dart":
      33.33333333333333,
  "package:front_end/src/fasta/builder/invalid_type_declaration_builder.dart":
      85.0,
  "package:front_end/src/fasta/builder/library_builder.dart": 81.63265306122449,
  "package:front_end/src/fasta/builder/member_builder.dart": 96.75324675324676,
  "package:front_end/src/fasta/builder/metadata_builder.dart":
      86.04651162790698,
  "package:front_end/src/fasta/builder/mixin_application_builder.dart": 100.0,
  "package:front_end/src/fasta/builder/modifier_builder.dart":
      76.47058823529412,
  "package:front_end/src/fasta/builder/named_type_builder.dart":
      74.74747474747475,
  "package:front_end/src/fasta/builder/never_type_declaration_builder.dart":
      76.92307692307693,
  "package:front_end/src/fasta/builder/null_type_declaration_builder.dart":
      33.33333333333333,
  "package:front_end/src/fasta/builder/nullability_builder.dart": 100.0,
  "package:front_end/src/fasta/builder/omitted_type_builder.dart":
      34.146341463414636,
  "package:front_end/src/fasta/builder/omitted_type_declaration_builder.dart":
      0.0,
  "package:front_end/src/fasta/builder/prefix_builder.dart": 89.1891891891892,
  "package:front_end/src/fasta/builder/record_type_builder.dart":
      77.43589743589745,
  "package:front_end/src/fasta/builder/type_alias_builder.dart":
      78.99159663865547,
  "package:front_end/src/fasta/builder/type_builder.dart": 77.77777777777779,
  "package:front_end/src/fasta/builder/type_declaration_builder.dart": 90.0,
  "package:front_end/src/fasta/builder/type_variable_builder.dart":
      78.42227378190255,
  "package:front_end/src/fasta/builder/void_type_declaration_builder.dart":
      100.0,
  "package:front_end/src/fasta/builder_graph.dart": 54.71698113207547,
  "package:front_end/src/fasta/codes/fasta_codes_cfe_generated.dart":
      73.0892742453436,
  "package:front_end/src/fasta/codes/type_labeler.dart": 83.57723577235772,
  "package:front_end/src/fasta/combinator.dart": 100.0,
  "package:front_end/src/fasta/command_line_reporting.dart": 68.68686868686868,
  "package:front_end/src/fasta/compiler_context.dart": 90.1639344262295,
  "package:front_end/src/fasta/configuration.dart": 100.0,
  "package:front_end/src/fasta/crash.dart": 59.09090909090909,
  "package:front_end/src/fasta/dill/dill_builder_mixins.dart": 100.0,
  "package:front_end/src/fasta/dill/dill_class_builder.dart": 92.34972677595628,
  "package:front_end/src/fasta/dill/dill_extension_builder.dart":
      86.74698795180723,
  "package:front_end/src/fasta/dill/dill_extension_member_builder.dart":
      70.29702970297029,
  "package:front_end/src/fasta/dill/dill_extension_type_declaration_builder.dart":
      95.42483660130719,
  "package:front_end/src/fasta/dill/dill_extension_type_member_builder.dart":
      83.76623376623377,
  "package:front_end/src/fasta/dill/dill_library_builder.dart": 78.134110787172,
  "package:front_end/src/fasta/dill/dill_loader.dart": 76.58536585365854,
  "package:front_end/src/fasta/dill/dill_member_builder.dart":
      86.52173913043478,
  "package:front_end/src/fasta/dill/dill_target.dart": 74.35897435897436,
  "package:front_end/src/fasta/dill/dill_type_alias_builder.dart":
      95.83333333333334,
  "package:front_end/src/fasta/export.dart": 72.22222222222221,
  "package:front_end/src/fasta/hybrid_file_system.dart": 50.0,
  "package:front_end/src/fasta/identifiers.dart": 84.78260869565217,
  "package:front_end/src/fasta/ignored_parser_errors.dart": 100.0,
  "package:front_end/src/fasta/import.dart": 100.0,
  "package:front_end/src/fasta/import_chains.dart": 96.96969696969697,
  "package:front_end/src/fasta/incremental_compiler.dart": 47.61111111111111,
  "package:front_end/src/fasta/incremental_serializer.dart": 0.0,
  "package:front_end/src/fasta/kernel/augmentation_lowering.dart": 100.0,
  "package:front_end/src/fasta/kernel/benchmarker.dart": 0.0,
  "package:front_end/src/fasta/kernel/body_builder.dart": 90.95321558581637,
  "package:front_end/src/fasta/kernel/body_builder_context.dart":
      68.31501831501832,
  "package:front_end/src/fasta/kernel/collections.dart": 36.44736842105264,
  "package:front_end/src/fasta/kernel/combined_member_signature.dart":
      91.29411764705883,
  "package:front_end/src/fasta/kernel/const_conditional_simplifier.dart": 50.0,
  "package:front_end/src/fasta/kernel/constant_collection_builders.dart":
      64.92307692307693,
  "package:front_end/src/fasta/kernel/constant_evaluator.dart":
      78.68572647749093,
  "package:front_end/src/fasta/kernel/constant_int_folder.dart":
      92.04545454545455,
  "package:front_end/src/fasta/kernel/constructor_tearoff_lowering.dart":
      95.11278195488721,
  "package:front_end/src/fasta/kernel/exhaustiveness.dart": 74.57098283931357,
  "package:front_end/src/fasta/kernel/expression_generator.dart":
      79.69046114971573,
  "package:front_end/src/fasta/kernel/expression_generator_helper.dart": 100.0,
  "package:front_end/src/fasta/kernel/forest.dart": 90.27777777777779,
  "package:front_end/src/fasta/kernel/forwarding_node.dart": 94.4927536231884,
  "package:front_end/src/fasta/kernel/hierarchy/class_member.dart":
      83.1896551724138,
  "package:front_end/src/fasta/kernel/hierarchy/delayed.dart": 100.0,
  "package:front_end/src/fasta/kernel/hierarchy/extension_type_members.dart":
      87.52834467120182,
  "package:front_end/src/fasta/kernel/hierarchy/hierarchy_builder.dart":
      50.256410256410255,
  "package:front_end/src/fasta/kernel/hierarchy/hierarchy_node.dart":
      93.33333333333333,
  "package:front_end/src/fasta/kernel/hierarchy/members_builder.dart":
      98.51851851851852,
  "package:front_end/src/fasta/kernel/hierarchy/members_node.dart":
      91.44427001569859,
  "package:front_end/src/fasta/kernel/hierarchy/mixin_inferrer.dart":
      61.53846153846154,
  "package:front_end/src/fasta/kernel/implicit_field_type.dart":
      52.24719101123596,
  "package:front_end/src/fasta/kernel/implicit_type_argument.dart":
      2.941176470588235,
  "package:front_end/src/fasta/kernel/internal_ast.dart": 46.40625,
  "package:front_end/src/fasta/kernel/invalid_type.dart": 74.13793103448276,
  "package:front_end/src/fasta/kernel/kernel_constants.dart": 45.45454545454545,
  "package:front_end/src/fasta/kernel/kernel_helper.dart": 98.95833333333334,
  "package:front_end/src/fasta/kernel/kernel_target.dart": 79.03103709311128,
  "package:front_end/src/fasta/kernel/kernel_variable_builder.dart":
      61.111111111111114,
  "package:front_end/src/fasta/kernel/late_lowering.dart": 100.0,
  "package:front_end/src/fasta/kernel/load_library_builder.dart":
      87.17948717948718,
  "package:front_end/src/fasta/kernel/macro/annotation_parser.dart":
      0.1984126984126984,
  "package:front_end/src/fasta/kernel/macro/identifiers.dart": 0.0,
  "package:front_end/src/fasta/kernel/macro/introspectors.dart": 0.0,
  "package:front_end/src/fasta/kernel/macro/macro.dart": 0.22675736961451248,
  "package:front_end/src/fasta/kernel/macro/offsets.dart": 0.0,
  "package:front_end/src/fasta/kernel/macro/types.dart": 0.0,
  "package:front_end/src/fasta/kernel/member_covariance.dart":
      89.23611111111111,
  "package:front_end/src/fasta/kernel/resource_identifier.dart":
      39.473684210526315,
  "package:front_end/src/fasta/kernel/static_weak_references.dart":
      15.238095238095239,
  "package:front_end/src/fasta/kernel/try_constant_evaluator.dart":
      19.753086419753085,
  "package:front_end/src/fasta/kernel/type_algorithms.dart": 93.96728016359918,
  "package:front_end/src/fasta/kernel/type_builder_computer.dart":
      90.20618556701031,
  "package:front_end/src/fasta/kernel/utils.dart": 37.93103448275862,
  "package:front_end/src/fasta/kernel/verifier.dart": 56.25,
  "package:front_end/src/fasta/library_graph.dart": 79.3103448275862,
  "package:front_end/src/fasta/messages.dart": 30.0,
  "package:front_end/src/fasta/modifier.dart": 100.0,
  "package:front_end/src/fasta/operator.dart": 100.0,
  "package:front_end/src/fasta/problems.dart": 0.0,
  "package:front_end/src/fasta/scope.dart": 79.22606924643586,
  "package:front_end/src/fasta/source/class_declaration.dart":
      80.29556650246306,
  "package:front_end/src/fasta/source/diet_listener.dart": 89.18539325842697,
  "package:front_end/src/fasta/source/diet_parser.dart": 100.0,
  "package:front_end/src/fasta/source/name_scheme.dart": 93.19148936170212,
  "package:front_end/src/fasta/source/offset_map.dart": 95.16129032258065,
  "package:front_end/src/fasta/source/outline_builder.dart": 91.37159137159138,
  "package:front_end/src/fasta/source/redirecting_factory_body.dart":
      94.44444444444444,
  "package:front_end/src/fasta/source/source_builder_mixins.dart":
      88.8268156424581,
  "package:front_end/src/fasta/source/source_class_builder.dart":
      85.51136363636364,
  "package:front_end/src/fasta/source/source_constructor_builder.dart":
      92.65658747300216,
  "package:front_end/src/fasta/source/source_enum_builder.dart":
      95.73560767590618,
  "package:front_end/src/fasta/source/source_extension_builder.dart":
      61.261261261261254,
  "package:front_end/src/fasta/source/source_extension_type_declaration_builder.dart":
      85.34136546184739,
  "package:front_end/src/fasta/source/source_factory_builder.dart":
      92.22222222222223,
  "package:front_end/src/fasta/source/source_field_builder.dart":
      90.0990099009901,
  "package:front_end/src/fasta/source/source_function_builder.dart":
      89.29663608562691,
  "package:front_end/src/fasta/source/source_library_builder.dart":
      83.27291558777836,
  "package:front_end/src/fasta/source/source_loader.dart": 79.344409519533,
  "package:front_end/src/fasta/source/source_member_builder.dart":
      40.32258064516129,
  "package:front_end/src/fasta/source/source_procedure_builder.dart":
      96.11829944547135,
  "package:front_end/src/fasta/source/source_type_alias_builder.dart":
      97.63313609467455,
  "package:front_end/src/fasta/source/stack_listener_impl.dart":
      64.44444444444444,
  "package:front_end/src/fasta/ticker.dart": 73.07692307692307,
  "package:front_end/src/fasta/type_inference/closure_context.dart":
      84.23236514522821,
  "package:front_end/src/fasta/type_inference/delayed_expressions.dart":
      77.55474452554745,
  "package:front_end/src/fasta/type_inference/external_ast_helper.dart":
      97.88732394366197,
  "package:front_end/src/fasta/type_inference/factor_type.dart":
      76.19047619047619,
  "package:front_end/src/fasta/type_inference/for_in.dart": 75.47169811320755,
  "package:front_end/src/fasta/type_inference/inference_results.dart":
      85.12820512820512,
  "package:front_end/src/fasta/type_inference/inference_visitor.dart":
      90.17588521175654,
  "package:front_end/src/fasta/type_inference/inference_visitor_base.dart":
      84.20487106017191,
  "package:front_end/src/fasta/type_inference/matching_cache.dart":
      80.26509572901325,
  "package:front_end/src/fasta/type_inference/matching_expressions.dart":
      98.10964083175804,
  "package:front_end/src/fasta/type_inference/object_access_target.dart":
      77.19298245614034,
  "package:front_end/src/fasta/type_inference/shared_type_analyzer.dart": 98.0,
  "package:front_end/src/fasta/type_inference/standard_bounds.dart":
      71.42857142857143,
  "package:front_end/src/fasta/type_inference/type_constraint_gatherer.dart":
      60.026041666666664,
  "package:front_end/src/fasta/type_inference/type_demotion.dart":
      77.77777777777779,
  "package:front_end/src/fasta/type_inference/type_inference_engine.dart":
      88.06509945750453,
  "package:front_end/src/fasta/type_inference/type_inferrer.dart":
      51.17647058823529,
  "package:front_end/src/fasta/type_inference/type_schema.dart":
      36.666666666666664,
  "package:front_end/src/fasta/type_inference/type_schema_elimination.dart":
      88.88888888888889,
  "package:front_end/src/fasta/type_inference/type_schema_environment.dart":
      79.50530035335689,
  "package:front_end/src/fasta/uri_offset.dart": 100.0,
  "package:front_end/src/fasta/uri_translator.dart": 75.92592592592592,
  "package:front_end/src/fasta/uris.dart": 100.0,
  "package:front_end/src/fasta/util/error_reporter_file_copier.dart": 0.0,
  "package:front_end/src/fasta/util/experiment_environment_getter.dart":
      85.71428571428571,
  "package:front_end/src/fasta/util/helpers.dart": 52.63157894736842,
  "package:front_end/src/fasta/util/parser_ast.dart": 5.567451820128479,
  "package:front_end/src/fasta/util/parser_ast_helper.dart": 20.424013434089,
  "package:front_end/src/fasta/util/textual_outline.dart": 86.54205607476636,
  "package:front_end/src/kernel_generator_impl.dart": 28.645833333333332,
  "package:front_end/src/macros/isolate_macro_serializer.dart": 0.0,
  "package:front_end/src/macros/macro_serializer.dart": 0.0,
  "package:front_end/src/macros/macro_target.dart": 0.0,
  "package:front_end/src/macros/macro_target_io.dart": 0.0,
  "package:front_end/src/macros/temp_dir_macro_serializer.dart": 0.0,
};

Future<void> main([List<String> arguments = const <String>[]]) async {
  Directory coverageTmpDir =
      Directory.systemTemp.createTempSync("cfe_coverage");
  try {
    await _run(coverageTmpDir, arguments);
  } finally {
    if (debug) {
      print("Data available in $coverageTmpDir");
    } else {
      coverageTmpDir.deleteSync(recursive: true);
    }
  }
}

Future<void> _run(Directory coverageTmpDir, List<String> arguments) async {
  Stopwatch totalRuntime = new Stopwatch()..start();

  List<String> results = [];
  List<String> logs = [];
  Options options = Options.parse(arguments);
  debug = options.debug;
  List<Future<ProcessResult>> futures = [];

  if (options.verbose) {
    print("NOTE: Will run with ${options.numberOfWorkers} shards.");
    print("");
  }

  print("Note: Has ${Platform.numberOfProcessors} cores.");

  for (int i = 0; i < options.numberOfWorkers; i++) {
    print("Starting shard ${i + 1} of ${options.numberOfWorkers}");
    futures.add(Process.run(Platform.resolvedExecutable, [
      "--enable-asserts",
      "pkg/front_end/test/fasta/strong_suite.dart",
      "-DskipVm=true",
      "--shards=${options.numberOfWorkers}",
      "--shard=${i + 1}",
      "--coverage=${coverageTmpDir.path}/",
    ]));
  }

  // Wait for isolates to terminate and clean up.
  Iterable<ProcessResult> runResults = await Future.wait(futures);

  print("Run finished.");

  Map<Uri, coverageMerger.CoverageInfo>? coverageData =
      coverageMerger.mergeFromDirUri(
    Uri.base.resolve(".dart_tool/package_config.json"),
    coverageTmpDir.uri,
    silent: true,
  );
  if (coverageData == null) throw "Failure in coverage.";

  void addResult(String testName, bool pass, {String? log}) {
    results.add(jsonEncode({
      "name": "coverage/$testName",
      "configuration": options.configurationName,
      "suite": "coverage",
      "test_name": testName,
      "expected": "Pass",
      "result": pass ? "Pass" : "Fail",
      "matches": pass,
    }));

    if (log != null) {
      logs.add(jsonEncode({
        "name": "coverage/$testName",
        "configuration": options.configurationName,
        "suite": "coverage",
        "test_name": testName,
        "result": pass ? "Pass" : "Fail",
        "log": log,
      }));
    }

    if (options.verbose) {
      String result = pass ? "PASS" : "FAIL";
      print("${testName}: ${result}");
    }
  }

  for (MapEntry<Uri, coverageMerger.CoverageInfo> coverageEntry
      in coverageData.entries) {
    if (coverageEntry.value.error) {
      // TODO(jensj): More info here would be good.
      addResult(coverageEntry.key.toString(), false, log: "Error");
    } else {
      int hitCount = coverageEntry.value.hitCount;
      int missCount = coverageEntry.value.missCount;
      double percent = (hitCount / (hitCount + missCount) * 100);
      if (debug) {
        print("\"${coverageEntry.key}\": $percent,");
      }
      int requireAtLeast =
          (_expect[coverageEntry.key.toString()] ?? 0.0).floor();
      bool pass = percent >= requireAtLeast;
      String? log;
      if (!pass) {
        log = "${coverageEntry.value.visualization}\n\n"
            "Expected at least $requireAtLeast%, got $percent% "
            "($hitCount hits and $missCount misses).";
      }
      addResult(coverageEntry.key.toString(), pass, log: log);
    }
  }

  // Write results.json and logs.json.
  Uri resultJsonUri = options.outputDirectory.resolve("results.json");
  Uri logsJsonUri = options.outputDirectory.resolve("logs.json");
  await writeLinesToFile(resultJsonUri, results);
  await writeLinesToFile(logsJsonUri, logs);
  print("Log files written to ${resultJsonUri.toFilePath()} and"
      " ${logsJsonUri.toFilePath()}");
  print("Entire run took ${totalRuntime.elapsed}.");

  bool timedOutOrCrashed = runResults.any((p) => p.exitCode != 0);
  if (timedOutOrCrashed) {
    print("Warning: At least one processes exited with a non-0 exit code.");
  }

  // Always return 0 or the try bot will become purple.
  exitCode = 0;
}

int getDefaultThreads() {
  int numberOfWorkers = 1;
  if (Platform.numberOfProcessors > 2) {
    numberOfWorkers = Platform.numberOfProcessors - 1;
  }
  if (numberOfWorkers > 5) numberOfWorkers = 5;
  return numberOfWorkers;
}

Future<void> writeLinesToFile(Uri uri, List<String> lines) async {
  await File.fromUri(uri).writeAsString(lines.map((line) => "$line\n").join());
}

class Options {
  final String? configurationName;
  final bool verbose;
  final bool debug;
  final Uri outputDirectory;
  final int numberOfWorkers;

  Options(
    this.configurationName,
    this.verbose,
    this.debug,
    this.outputDirectory, {
    required this.numberOfWorkers,
  });

  static Options parse(List<String> args) {
    var parser = new ArgParser()
      ..addOption("named-configuration",
          abbr: "n",
          help: "configuration name to use for emitting json result files")
      ..addOption("output-directory",
          help: "directory to which results.json and logs.json are written")
      ..addFlag("verbose",
          abbr: "v", help: "print additional information", defaultsTo: false)
      ..addFlag("debug", help: "debug mode", defaultsTo: false)
      ..addOption("tasks",
          abbr: "j",
          help: "The number of parallel tasks to run.",
          defaultsTo: "${getDefaultThreads()}")
      // These are not used but are here for compatibility with the test system.
      ..addOption("shards", help: "(Ignored) Number of shards", defaultsTo: "1")
      ..addOption("shard",
          help: "(Ignored) Which shard to run", defaultsTo: "1");
    ArgResults parsedOptions = parser.parse(args);
    String outputPath = parsedOptions["output-directory"] ?? ".";
    Uri outputDirectory = Uri.base.resolveUri(Uri.directory(outputPath));

    bool verbose = parsedOptions["verbose"];
    bool debug = parsedOptions["debug"];

    String tasksString = parsedOptions["tasks"];
    int? tasks = int.tryParse(tasksString);
    if (tasks == null || tasks < 1) {
      throw "--tasks (-j) has to be an integer >= 1";
    }

    if (verbose) {
      print("NOTE: Created with options\n  "
          "named config = ${parsedOptions["named-configuration"]},\n  "
          "verbose = ${verbose},\n  "
          "debug = ${debug},\n  "
          "${outputDirectory},\n  "
          "numberOfWorkers: ${tasks}");
    }

    return Options(
      parsedOptions["named-configuration"],
      verbose,
      debug,
      outputDirectory,
      numberOfWorkers: tasks,
    );
  }
}
