# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

group("tests") {
  testonly = true
  deps = [
    ":netdump_integration_tests",
    ":netemul_empty_binaries",
    "basic_integration",
    "filter_integration",
    "helper",
    "pcapng_format",
  ]
}

# Required use of the netemul empty binaries pattern.
group("netemul_empty_binaries") {
  write_file("$root_out_dir/basic_integration_test", "")
  write_file("$root_out_dir/filter_integration_test", "")
  write_file("$root_out_dir/pcapng_format_test", "")
}

test_package("netdump_integration_tests") {
  deps = [
    ":netemul_empty_binaries",
    "basic_integration",
    "filter_integration",
    "helper:helper_test",
    "pcapng_format",
    "//src/connectivity/network/netdump",
    "//src/connectivity/network/testing/netemul/runner:netemul_sandbox",
  ]

  meta = [
    {
      path = rebase_path("meta/basic_integration.cmx")
      dest = "basic_integration.cmx"
    },
    {
      path = rebase_path("meta/filter_integration.cmx")
      dest = "filter_integration.cmx"
    },
    {
      path = rebase_path("meta/helper.cmx")
      dest = "helper.cmx"
    },
    {
      path = rebase_path("meta/pcapng_format.cmx")
      dest = "pcapng_format.cmx"
    },
  ]

  binaries = [
    {
      name = "basic_integration"
    },
    {
      name = "filter_integration"
    },
    {
      name = "pcapng_format"
    },
  ]

  tests = [
    {
      name = "basic_integration_test"
      environments = [ nuc_env ]
    },
    {
      name = "filter_integration_test"
      environments = [ nuc_env ]
    },
    {
      name = "helper_lib_test"
      dest = "helper_test"
      environments = [ nuc_env ]
    },
    {
      name = "pcapng_format_test"
      environments = [ nuc_env ]
    },
  ]
}
