# Copyright 2020 The SwiftShader Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//testing/test.gni")

test("swiftshader_reactor_llvm_unittests") {
  deps = [
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/swiftshader/src/Reactor:swiftshader_llvm_reactor",
  ]

  sources = [
    "//gpu/swiftshader_tests_main.cc",
    "ReactorUnitTests.cpp",
  ]

  include_dirs = [
    "../../src/Reactor"
  ]
}

test("swiftshader_reactor_subzero_unittests") {
  deps = [
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/swiftshader/src/Reactor:swiftshader_subzero_reactor",
  ]

  sources = [
    "//gpu/swiftshader_tests_main.cc",
    "ReactorUnitTests.cpp",
  ]

  include_dirs = [
    "../../src/Reactor"
  ]
}