# This file contains a list of Mojo gtest unit tests.
# This must be valid python. It can use the |config| global that will be a
# mopy.config.Config object and must set a |tests| global that will contain the
# tests to run.
# TODO(vtl): Add a way of specifying data dependencies instead of cacheable.

tests = [
  # EDK tests:
  {
    "test": "mojo_edk_base_edk_unittests",
  },
  {
    "test": "mojo_edk_embedder_unittests",
  },
  {
    "test": "mojo_edk_platform_unittests",
  },
  {
    "test": "mojo_edk_system_unittests",
  },
  {
    "test": "mojo_edk_system_test_unittests",
  },
  {
    "test": "mojo_edk_util_unittests",
  },

  # Public tests:
  {
    "test": "mojo_public_c_bindings_unittests",
  },
  {
    "test": "mojo_public_c_system_unittests",
  },
  {
    "test": "mojo_public_cpp_application_unittests",
  },
  {
    "test": "mojo_public_cpp_bindings_unittests",
    "cacheable": False,
  },
  {
    "test": "mojo_public_cpp_environment_unittests",
  },
  {
    "test": "mojo_public_cpp_system_unittests",
  },
  {
    "test": "mojo_public_cpp_utility_unittests",
  },

  # Non-system, non-public tests:
  {
    "test": "base_unittests",
  },
  {
    "test": "crypto_unittests",
  },
  {
    "test": "mojo_application_manager_unittests",
  },
  {
    "test": "mojo_converters_unittests",
  },
  {
    "test": "url_response_disk_cache_unittests",
  },

  # Shell integration tests:
  {
    "test": "mojo_shell_tests",
    "cacheable": False,
  },
  {
    "test": "crash_unittests",
  },
]

if config.target_os != config.OS_ANDROID:
  tests += [
    # Tests for components we depend on:
    {
      "test": "gfx_unittests",
    },
    {
      "test": "events_unittests",
    },

    # JavaScript tests:
    {
      "test": "js_unittests",
      "cacheable": False,
    },
    {
      "test": "js_integration_tests",
      "cacheable": False,
    },
    {
      "test": "js_services_unittests",
      "cacheable": False,
    },
  ]

# TODO: get dart unittests working with android.
if config.target_os != config.OS_ANDROID:
  tests += [
    {
      "test": "dart_unittests",
      "cacheable": False,
    },
    {
      "test": "dart_finalizer_unittests",
      "cacheable": False,
    },
    {
      "test": "dart_validation_unittests",
      "cacheable": False,
    },
    {
      "test": "dart_to_cpp_unittests",
      "cacheable": False,
    },
  ]

if config.target_os == config.OS_LINUX:
  tests += [
    {
      "test": "sandbox_linux_unittests",
    },
  ]
