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

// Generated by prepare_flutter_bundle.dart and not ignoring vmspecific.
// Used in fuchsia_test_component.
//
// Note that we are not using any VM flags here, so we are not exercising GC
// corner cases etc. However, we are mainly interested in exercising the
// calling convention on Fuchsia.

import "dart:async";

import "aliasing_test.dart" as main0;
import "data_not_asan_test.dart" as main1;
import "data_test.dart" as main2;
import "dylib_isolates_test.dart" as main3;
import "extension_methods_test.dart" as main4;
import "external_typed_data_test.dart" as main5;
import "function_callbacks_many_test.dart" as main6;
import "function_callbacks_test.dart" as main7;
import "function_callbacks_very_many_test.dart" as main8;
import "function_structs_test.dart" as main9;
import "function_test.dart" as main10;
import "function_very_many_test.dart" as main11;
import "hardfp_test.dart" as main12;
import "negative_function_test.dart" as main13;
import "regress_37254_test.dart" as main16;
import "regress_39044_test.dart" as main17;
import "regress_39063_test.dart" as main18;
import "regress_39885_test.dart" as main19;
import "regress_40537_test.dart" as main20;
import "regress_43016_test.dart" as main21;
import "regress_43693_test.dart" as main22;
import "regress_jump_to_frame_test.dart" as main23;
import "sizeof_test.dart" as main24;
import "snapshot_test.dart" as main25;
import "stacktrace_regress_37910_test.dart" as main26;
import "structs_test.dart" as main27;
import "variance_function_test.dart" as main28;
import "vmspecific_function_callbacks_exit_test.dart" as main29;
import "vmspecific_function_test.dart" as main30;
import "vmspecific_handle_dynamically_linked_test.dart" as main31;
import "vmspecific_handle_test.dart" as main32;
import "vmspecific_object_gc_test.dart" as main34;
import "vmspecific_regress_37100_test.dart" as main35;
import "vmspecific_regress_37511_callbacks_test.dart" as main36;
import "vmspecific_regress_37511_test.dart" as main37;
import "vmspecific_regress_37780_test.dart" as main38;

Future invoke(dynamic fun) async {
  if (fun is void Function() || fun is Future Function()) {
    return await fun();
  } else {
    return await fun(<String>[]);
  }
}

dynamic main() async {
  await invoke(main0.main);
  await invoke(main1.main);
  await invoke(main2.main);
  await invoke(main3.main);
  await invoke(main4.main);
  await invoke(main5.main);
  await invoke(main6.main);
  await invoke(main7.main);
  await invoke(main8.main);
  await invoke(main9.main);
  await invoke(main10.main);
  await invoke(main11.main);
  await invoke(main12.main);
  await invoke(main13.main);
  await invoke(main16.main);
  await invoke(main17.main);
  await invoke(main18.main);
  await invoke(main19.main);
  await invoke(main20.main);
  await invoke(main21.main);
  await invoke(main22.main);
  await invoke(main23.main);
  await invoke(main24.main);
  await invoke(main25.main);
  await invoke(main26.main);
  await invoke(main27.main);
  await invoke(main28.main);
  await invoke(main29.main);
  await invoke(main30.main);
  await invoke(main31.main);
  await invoke(main32.main);
  await invoke(main34.main);
  await invoke(main35.main);
  await invoke(main36.main);
  await invoke(main37.main);
  await invoke(main38.main);
}
