# Copyright 2018 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.

### Individual test environments ###

qemu_env = {
  dimensions = {
    device_type = "QEMU"
  }
}

astro_env = {
  dimensions = {
    device_type = "Astro"
  }

  # TODO(IN-876): Delete after bring-up.
  tags = [ "astro" ]
}

nuc_env = {
  dimensions = {
    device_type = "Intel NUC Kit NUC7i5DNHE"
  }
}

vim2_env = {
  dimensions = {
    device_type = "Khadas Vim2 Max"
  }

  # TODO(IN-571): Delete after bring-up.
  tags = [ "vim2" ]
}

linux_env = {
  dimensions = {
    os = "Linux"
    cpu = current_cpu
  }
}

mac_env = {
  dimensions = {
    os = "Mac"
    cpu = current_cpu
  }
  # When running tests for a mac build, we only wish to run mac tests; we attach
  # the "mac" tag in that case to filter out other tests.
  tags = ["mac"]
}

### Select environment lists ###

# The basic, freely usable test environments supported by the infrastructure.
basic_envs = [ qemu_env ]
if (current_cpu == "x64") {
  basic_envs += [ nuc_env ]
} else if (current_cpu == "arm64") {
  basic_envs += [ vim2_env ]
}
