xref: /aosp_15_r20/external/angle/src/tests/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2015 The ANGLE Project Authors. All rights reserved.
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard Workerimport("//testing/test.gni")
6*8975f5c5SAndroid Build Coastguard Workerimport("../../gni/angle.gni")
7*8975f5c5SAndroid Build Coastguard Workerimport("angle_unittests.gni")
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard Workerdeclare_args() {
10*8975f5c5SAndroid Build Coastguard Worker  build_angle_gles1_conform_tests = checkout_angle_internal
11*8975f5c5SAndroid Build Coastguard Worker  build_angle_trace_perf_tests = false
12*8975f5c5SAndroid Build Coastguard Worker  build_angle_perftests =
13*8975f5c5SAndroid Build Coastguard Worker      is_win || is_linux || is_chromeos || is_android || is_apple || is_fuchsia
14*8975f5c5SAndroid Build Coastguard Worker}
15*8975f5c5SAndroid Build Coastguard Worker
16*8975f5c5SAndroid Build Coastguard Workerdeclare_args() {
17*8975f5c5SAndroid Build Coastguard Worker  build_angle_trace_tests = is_clang && (build_angle_trace_perf_tests ||
18*8975f5c5SAndroid Build Coastguard Worker                                         checkout_angle_restricted_traces)
19*8975f5c5SAndroid Build Coastguard Worker  if (!build_with_chromium && is_android) {
20*8975f5c5SAndroid Build Coastguard Worker    assert(
21*8975f5c5SAndroid Build Coastguard Worker        !is_official_build,
22*8975f5c5SAndroid Build Coastguard Worker        "is_official_build not supported by ANGLE for Android (https://anglebug.com/42265853)")
23*8975f5c5SAndroid Build Coastguard Worker  }
24*8975f5c5SAndroid Build Coastguard Worker}
25*8975f5c5SAndroid Build Coastguard Worker
26*8975f5c5SAndroid Build Coastguard Workerif (is_android) {
27*8975f5c5SAndroid Build Coastguard Worker  android_library("native_test_java") {
28*8975f5c5SAndroid Build Coastguard Worker    testonly = true
29*8975f5c5SAndroid Build Coastguard Worker    sources = [
30*8975f5c5SAndroid Build Coastguard Worker      "test_utils/runner/android/java/src/com/android/angle/test/AngleNativeTest.java",
31*8975f5c5SAndroid Build Coastguard Worker      "test_utils/runner/android/java/src/com/android/angle/test/AngleUnitTestActivity.java",
32*8975f5c5SAndroid Build Coastguard Worker      "test_utils/runner/android/java/src/com/android/angle/test/TestStatusReporter.java",
33*8975f5c5SAndroid Build Coastguard Worker    ]
34*8975f5c5SAndroid Build Coastguard Worker
35*8975f5c5SAndroid Build Coastguard Worker    deps = [
36*8975f5c5SAndroid Build Coastguard Worker      "//build/android:build_java",
37*8975f5c5SAndroid Build Coastguard Worker      "//build/android/gtest_apk:native_test_instrumentation_test_runner_java",
38*8975f5c5SAndroid Build Coastguard Worker    ]
39*8975f5c5SAndroid Build Coastguard Worker  }
40*8975f5c5SAndroid Build Coastguard Worker
41*8975f5c5SAndroid Build Coastguard Worker  angle_source_set("native_test_support_android") {
42*8975f5c5SAndroid Build Coastguard Worker    testonly = true
43*8975f5c5SAndroid Build Coastguard Worker    sources = [ "test_utils/runner/android/AngleNativeTest.cpp" ]
44*8975f5c5SAndroid Build Coastguard Worker    deps = [ "$angle_root:angle_common" ]
45*8975f5c5SAndroid Build Coastguard Worker  }
46*8975f5c5SAndroid Build Coastguard Worker}
47*8975f5c5SAndroid Build Coastguard Worker
48*8975f5c5SAndroid Build Coastguard Workerangle_test("test_utils_unittest_helper") {
49*8975f5c5SAndroid Build Coastguard Worker  sources = [
50*8975f5c5SAndroid Build Coastguard Worker    "../../util/test_utils_unittest_helper.cpp",
51*8975f5c5SAndroid Build Coastguard Worker    "../../util/test_utils_unittest_helper.h",
52*8975f5c5SAndroid Build Coastguard Worker    "test_utils/angle_test_instantiate.h",
53*8975f5c5SAndroid Build Coastguard Worker    "test_utils/runner/TestSuite_unittest.cpp",
54*8975f5c5SAndroid Build Coastguard Worker  ]
55*8975f5c5SAndroid Build Coastguard Worker}
56*8975f5c5SAndroid Build Coastguard Worker
57*8975f5c5SAndroid Build Coastguard Workertest_expectations_sources = [
58*8975f5c5SAndroid Build Coastguard Worker  "test_expectations/GPUTestConfig.cpp",
59*8975f5c5SAndroid Build Coastguard Worker  "test_expectations/GPUTestConfig.h",
60*8975f5c5SAndroid Build Coastguard Worker  "test_expectations/GPUTestExpectationsParser.cpp",
61*8975f5c5SAndroid Build Coastguard Worker  "test_expectations/GPUTestExpectationsParser.h",
62*8975f5c5SAndroid Build Coastguard Worker]
63*8975f5c5SAndroid Build Coastguard Workerif (is_mac) {
64*8975f5c5SAndroid Build Coastguard Worker  test_expectations_sources_mac = [
65*8975f5c5SAndroid Build Coastguard Worker    "test_expectations/GPUTestConfig_mac.mm",
66*8975f5c5SAndroid Build Coastguard Worker    "test_expectations/GPUTestConfig_mac.h",
67*8975f5c5SAndroid Build Coastguard Worker  ]
68*8975f5c5SAndroid Build Coastguard Worker}
69*8975f5c5SAndroid Build Coastguard Workerif (is_ios) {
70*8975f5c5SAndroid Build Coastguard Worker  test_expectation_sources_ios = [
71*8975f5c5SAndroid Build Coastguard Worker    "test_expectations/GPUTestConfig_ios.mm",
72*8975f5c5SAndroid Build Coastguard Worker    "test_expectations/GPUTestConfig_ios.h",
73*8975f5c5SAndroid Build Coastguard Worker  ]
74*8975f5c5SAndroid Build Coastguard Worker}
75*8975f5c5SAndroid Build Coastguard Worker
76*8975f5c5SAndroid Build Coastguard Workerangle_static_library("angle_test_expectations") {
77*8975f5c5SAndroid Build Coastguard Worker  public_deps = [
78*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:angle_common",
79*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:angle_gpu_info_util",
80*8975f5c5SAndroid Build Coastguard Worker  ]
81*8975f5c5SAndroid Build Coastguard Worker  sources = test_expectations_sources
82*8975f5c5SAndroid Build Coastguard Worker  if (is_mac) {
83*8975f5c5SAndroid Build Coastguard Worker    sources += test_expectations_sources_mac
84*8975f5c5SAndroid Build Coastguard Worker    frameworks = [ "Cocoa.framework" ]
85*8975f5c5SAndroid Build Coastguard Worker  }
86*8975f5c5SAndroid Build Coastguard Worker  if (is_ios) {
87*8975f5c5SAndroid Build Coastguard Worker    sources += test_expectation_sources_ios
88*8975f5c5SAndroid Build Coastguard Worker    frameworks = [ "Foundation.framework" ]
89*8975f5c5SAndroid Build Coastguard Worker  }
90*8975f5c5SAndroid Build Coastguard Worker}
91*8975f5c5SAndroid Build Coastguard Worker
92*8975f5c5SAndroid Build Coastguard Workerconfig("angle_common_test_utils_config") {
93*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ "." ]
94*8975f5c5SAndroid Build Coastguard Worker  defines = []
95*8975f5c5SAndroid Build Coastguard Worker  if (angle_enable_swiftshader) {
96*8975f5c5SAndroid Build Coastguard Worker    defines += [ "ANGLE_ENABLE_SWIFTSHADER" ]
97*8975f5c5SAndroid Build Coastguard Worker  }
98*8975f5c5SAndroid Build Coastguard Worker}
99*8975f5c5SAndroid Build Coastguard Worker
100*8975f5c5SAndroid Build Coastguard Workertemplate("angle_common_test_utils") {
101*8975f5c5SAndroid Build Coastguard Worker  assert(defined(invoker.angle_util))
102*8975f5c5SAndroid Build Coastguard Worker  angle_source_set(target_name) {
103*8975f5c5SAndroid Build Coastguard Worker    testonly = true
104*8975f5c5SAndroid Build Coastguard Worker    if (is_ios) {
105*8975f5c5SAndroid Build Coastguard Worker      # shared libraries are hidden inside ios_framework_bundle, but we include headers from them
106*8975f5c5SAndroid Build Coastguard Worker      check_includes = false
107*8975f5c5SAndroid Build Coastguard Worker    }
108*8975f5c5SAndroid Build Coastguard Worker    public_configs = [
109*8975f5c5SAndroid Build Coastguard Worker      ":angle_common_test_utils_config",
110*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:library_name_config",
111*8975f5c5SAndroid Build Coastguard Worker    ]
112*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
113*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_common",
114*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_gpu_info_util",
115*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:${invoker.angle_util}",
116*8975f5c5SAndroid Build Coastguard Worker      "//testing/gmock",
117*8975f5c5SAndroid Build Coastguard Worker      "//testing/gtest",
118*8975f5c5SAndroid Build Coastguard Worker      "//third_party/googletest:gmock",
119*8975f5c5SAndroid Build Coastguard Worker      "//third_party/googletest:gtest",
120*8975f5c5SAndroid Build Coastguard Worker    ]
121*8975f5c5SAndroid Build Coastguard Worker    sources = [
122*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/third_party/renderdoc/src/renderdoc_app.h",
123*8975f5c5SAndroid Build Coastguard Worker      "test_utils/MultiThreadSteps.cpp",
124*8975f5c5SAndroid Build Coastguard Worker      "test_utils/MultiThreadSteps.h",
125*8975f5c5SAndroid Build Coastguard Worker      "test_utils/RenderDoc.cpp",
126*8975f5c5SAndroid Build Coastguard Worker      "test_utils/RenderDoc.h",
127*8975f5c5SAndroid Build Coastguard Worker      "test_utils/angle_test_configs.cpp",
128*8975f5c5SAndroid Build Coastguard Worker      "test_utils/angle_test_configs.h",
129*8975f5c5SAndroid Build Coastguard Worker      "test_utils/angle_test_instantiate.cpp",
130*8975f5c5SAndroid Build Coastguard Worker      "test_utils/angle_test_instantiate.h",
131*8975f5c5SAndroid Build Coastguard Worker      "test_utils/angle_test_platform.cpp",
132*8975f5c5SAndroid Build Coastguard Worker      "test_utils/angle_test_platform.h",
133*8975f5c5SAndroid Build Coastguard Worker      "test_utils/gl_raii.h",
134*8975f5c5SAndroid Build Coastguard Worker    ]
135*8975f5c5SAndroid Build Coastguard Worker    if (is_apple) {
136*8975f5c5SAndroid Build Coastguard Worker      sources += [
137*8975f5c5SAndroid Build Coastguard Worker        "test_utils/angle_test_instantiate_apple.h",
138*8975f5c5SAndroid Build Coastguard Worker        "test_utils/angle_test_instantiate_apple.mm",
139*8975f5c5SAndroid Build Coastguard Worker      ]
140*8975f5c5SAndroid Build Coastguard Worker    }
141*8975f5c5SAndroid Build Coastguard Worker    data_deps = []
142*8975f5c5SAndroid Build Coastguard Worker    if (angle_enable_vulkan_validation_layers) {
143*8975f5c5SAndroid Build Coastguard Worker      data_deps += [ "$angle_root/src/common/vulkan:vulkan_validation_layers" ]
144*8975f5c5SAndroid Build Coastguard Worker    }
145*8975f5c5SAndroid Build Coastguard Worker    if (angle_enable_vulkan_api_dump_layer) {
146*8975f5c5SAndroid Build Coastguard Worker      data_deps += [ "$angle_root/src/common/vulkan:lunarg_vulkantools" ]
147*8975f5c5SAndroid Build Coastguard Worker    }
148*8975f5c5SAndroid Build Coastguard Worker  }
149*8975f5c5SAndroid Build Coastguard Worker}
150*8975f5c5SAndroid Build Coastguard Worker
151*8975f5c5SAndroid Build Coastguard Workerangle_common_test_utils("angle_common_test_utils_shared") {
152*8975f5c5SAndroid Build Coastguard Worker  angle_util = "angle_util"
153*8975f5c5SAndroid Build Coastguard Worker}
154*8975f5c5SAndroid Build Coastguard Worker
155*8975f5c5SAndroid Build Coastguard Workerangle_common_test_utils("angle_common_test_utils_static") {
156*8975f5c5SAndroid Build Coastguard Worker  angle_util = "angle_util_static"
157*8975f5c5SAndroid Build Coastguard Worker}
158*8975f5c5SAndroid Build Coastguard Worker
159*8975f5c5SAndroid Build Coastguard Worker# We use this in the restricted trace tests to load driver info.
160*8975f5c5SAndroid Build Coastguard Workerangle_test("angle_system_info_test") {
161*8975f5c5SAndroid Build Coastguard Worker  sources = [ "angle_system_info_tests_main.cpp" ]
162*8975f5c5SAndroid Build Coastguard Worker  deps = [
163*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:angle_gpu_info_util",
164*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:angle_static",
165*8975f5c5SAndroid Build Coastguard Worker    "$angle_root/util:angle_util_static",
166*8975f5c5SAndroid Build Coastguard Worker  ]
167*8975f5c5SAndroid Build Coastguard Worker}
168*8975f5c5SAndroid Build Coastguard Worker
169*8975f5c5SAndroid Build Coastguard Workerangle_test("angle_unittests") {
170*8975f5c5SAndroid Build Coastguard Worker  sources = angle_unittests_sources + [ "angle_unittest_main.cpp" ]
171*8975f5c5SAndroid Build Coastguard Worker
172*8975f5c5SAndroid Build Coastguard Worker  # Compiler tests frequently require either TranslatorGLSL or TranslatorESSL.  Build them only if
173*8975f5c5SAndroid Build Coastguard Worker  # both are enabled.
174*8975f5c5SAndroid Build Coastguard Worker  if (angle_enable_essl && angle_enable_glsl) {
175*8975f5c5SAndroid Build Coastguard Worker    sources += angle_unittests_compiler_tests_sources
176*8975f5c5SAndroid Build Coastguard Worker
177*8975f5c5SAndroid Build Coastguard Worker    if (is_apple) {
178*8975f5c5SAndroid Build Coastguard Worker      sources += angle_unittests_glsl_mac_sources
179*8975f5c5SAndroid Build Coastguard Worker    }
180*8975f5c5SAndroid Build Coastguard Worker    if (angle_enable_metal) {
181*8975f5c5SAndroid Build Coastguard Worker      sources += angle_unittests_msl_sources
182*8975f5c5SAndroid Build Coastguard Worker    }
183*8975f5c5SAndroid Build Coastguard Worker  }
184*8975f5c5SAndroid Build Coastguard Worker
185*8975f5c5SAndroid Build Coastguard Worker  defines = []
186*8975f5c5SAndroid Build Coastguard Worker
187*8975f5c5SAndroid Build Coastguard Worker  if (angle_enable_hlsl) {
188*8975f5c5SAndroid Build Coastguard Worker    sources += angle_unittests_hlsl_sources
189*8975f5c5SAndroid Build Coastguard Worker    defines += [ "ANGLE_ENABLE_HLSL" ]
190*8975f5c5SAndroid Build Coastguard Worker  }
191*8975f5c5SAndroid Build Coastguard Worker
192*8975f5c5SAndroid Build Coastguard Worker  if (angle_enable_gl) {
193*8975f5c5SAndroid Build Coastguard Worker    sources += angle_unittests_gl_sources
194*8975f5c5SAndroid Build Coastguard Worker  }
195*8975f5c5SAndroid Build Coastguard Worker
196*8975f5c5SAndroid Build Coastguard Worker  if (angle_enable_wgpu) {
197*8975f5c5SAndroid Build Coastguard Worker    sources += angle_unittests_wgsl_sources
198*8975f5c5SAndroid Build Coastguard Worker  }
199*8975f5c5SAndroid Build Coastguard Worker
200*8975f5c5SAndroid Build Coastguard Worker  deps = [
201*8975f5c5SAndroid Build Coastguard Worker    ":angle_test_expectations",
202*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:angle_static",
203*8975f5c5SAndroid Build Coastguard Worker    "$angle_root:libfeature_support",
204*8975f5c5SAndroid Build Coastguard Worker    "$angle_root/util:angle_util_static",
205*8975f5c5SAndroid Build Coastguard Worker  ]
206*8975f5c5SAndroid Build Coastguard Worker
207*8975f5c5SAndroid Build Coastguard Worker  if (angle_has_rapidjson) {
208*8975f5c5SAndroid Build Coastguard Worker    deps += [ "$angle_root:angle_json_serializer" ]
209*8975f5c5SAndroid Build Coastguard Worker  }
210*8975f5c5SAndroid Build Coastguard Worker
211*8975f5c5SAndroid Build Coastguard Worker  if (angle_enable_vulkan) {
212*8975f5c5SAndroid Build Coastguard Worker    sources += [ "compiler_tests/Precise_test.cpp" ]
213*8975f5c5SAndroid Build Coastguard Worker    deps += [
214*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/common/spirv:angle_spirv_base",
215*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/common/spirv:angle_spirv_headers",
216*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/common/spirv:angle_spirv_parser",
217*8975f5c5SAndroid Build Coastguard Worker      "${angle_spirv_headers_dir}:spv_headers",
218*8975f5c5SAndroid Build Coastguard Worker    ]
219*8975f5c5SAndroid Build Coastguard Worker  }
220*8975f5c5SAndroid Build Coastguard Worker
221*8975f5c5SAndroid Build Coastguard Worker  if (!is_android && !is_fuchsia && !is_ios) {
222*8975f5c5SAndroid Build Coastguard Worker    # SystemUtils.RunApp, the only unittest using a helper binary, is not supported on these
223*8975f5c5SAndroid Build Coastguard Worker    # platforms yet.
224*8975f5c5SAndroid Build Coastguard Worker    data_deps = [ ":test_utils_unittest_helper" ]
225*8975f5c5SAndroid Build Coastguard Worker  }
226*8975f5c5SAndroid Build Coastguard Worker
227*8975f5c5SAndroid Build Coastguard Worker  if (is_android) {
228*8975f5c5SAndroid Build Coastguard Worker    data += [ "$angle_root/src/tests/angle_android_test_runner.py" ]
229*8975f5c5SAndroid Build Coastguard Worker  }
230*8975f5c5SAndroid Build Coastguard Worker
231*8975f5c5SAndroid Build Coastguard Worker  if (angle_has_rapidjson) {
232*8975f5c5SAndroid Build Coastguard Worker    sources += [ "../common/serializer/JsonSerializer_unittest.cpp" ]
233*8975f5c5SAndroid Build Coastguard Worker  }
234*8975f5c5SAndroid Build Coastguard Worker}
235*8975f5c5SAndroid Build Coastguard Worker
236*8975f5c5SAndroid Build Coastguard Workerif (is_ios) {
237*8975f5c5SAndroid Build Coastguard Worker  bundle_data("angle_end2end_tests_bundle_data") {
238*8975f5c5SAndroid Build Coastguard Worker    testonly = true
239*8975f5c5SAndroid Build Coastguard Worker    sources = [ "angle_end2end_tests_expectations.txt" ]
240*8975f5c5SAndroid Build Coastguard Worker    outputs = [ "{{bundle_resources_dir}}/" +
241*8975f5c5SAndroid Build Coastguard Worker                "{{source_root_relative_dir}}/{{source_file_part}}" ]
242*8975f5c5SAndroid Build Coastguard Worker  }
243*8975f5c5SAndroid Build Coastguard Worker}
244*8975f5c5SAndroid Build Coastguard Worker
245*8975f5c5SAndroid Build Coastguard Workerif (is_win || is_linux || is_chromeos || is_android || is_fuchsia || is_apple) {
246*8975f5c5SAndroid Build Coastguard Worker  import("angle_end2end_tests.gni")
247*8975f5c5SAndroid Build Coastguard Worker
248*8975f5c5SAndroid Build Coastguard Worker  angle_test("angle_end2end_tests") {
249*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "." ]
250*8975f5c5SAndroid Build Coastguard Worker
251*8975f5c5SAndroid Build Coastguard Worker    sources = angle_end2end_tests_sources + [ "angle_end2end_tests_main.cpp" ]
252*8975f5c5SAndroid Build Coastguard Worker    libs = []
253*8975f5c5SAndroid Build Coastguard Worker    defines = []
254*8975f5c5SAndroid Build Coastguard Worker    configs += [ "${angle_root}:libANGLE_config" ]
255*8975f5c5SAndroid Build Coastguard Worker
256*8975f5c5SAndroid Build Coastguard Worker    if (is_ios) {
257*8975f5c5SAndroid Build Coastguard Worker      sources += angle_end2end_tests_ios_sources
258*8975f5c5SAndroid Build Coastguard Worker      frameworks = [ "IOSurface.framework" ]
259*8975f5c5SAndroid Build Coastguard Worker    }
260*8975f5c5SAndroid Build Coastguard Worker    if (is_mac) {
261*8975f5c5SAndroid Build Coastguard Worker      sources += angle_end2end_tests_mac_sources
262*8975f5c5SAndroid Build Coastguard Worker      frameworks = [
263*8975f5c5SAndroid Build Coastguard Worker        "CoreFoundation.framework",
264*8975f5c5SAndroid Build Coastguard Worker        "IOSurface.framework",
265*8975f5c5SAndroid Build Coastguard Worker      ]
266*8975f5c5SAndroid Build Coastguard Worker      ldflags = [
267*8975f5c5SAndroid Build Coastguard Worker        "-weak_framework",
268*8975f5c5SAndroid Build Coastguard Worker        "Metal",
269*8975f5c5SAndroid Build Coastguard Worker      ]
270*8975f5c5SAndroid Build Coastguard Worker      cflags_objcc = [
271*8975f5c5SAndroid Build Coastguard Worker        "-Wno-nullability-completeness",
272*8975f5c5SAndroid Build Coastguard Worker        "-Wno-unguarded-availability",
273*8975f5c5SAndroid Build Coastguard Worker      ]
274*8975f5c5SAndroid Build Coastguard Worker    }
275*8975f5c5SAndroid Build Coastguard Worker    if (is_win) {
276*8975f5c5SAndroid Build Coastguard Worker      sources += angle_end2end_tests_win_sources
277*8975f5c5SAndroid Build Coastguard Worker    }
278*8975f5c5SAndroid Build Coastguard Worker    if (angle_use_x11) {
279*8975f5c5SAndroid Build Coastguard Worker      sources += [ "egl_tests/EGLX11VisualTest.cpp" ]
280*8975f5c5SAndroid Build Coastguard Worker    }
281*8975f5c5SAndroid Build Coastguard Worker    if (angle_use_wayland) {
282*8975f5c5SAndroid Build Coastguard Worker      sources += [ "egl_tests/EGLWaylandTest.cpp" ]
283*8975f5c5SAndroid Build Coastguard Worker    }
284*8975f5c5SAndroid Build Coastguard Worker
285*8975f5c5SAndroid Build Coastguard Worker    deps = [
286*8975f5c5SAndroid Build Coastguard Worker      ":angle_common_test_utils_shared",
287*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_gl_enum_utils",
288*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_image_util",
289*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:translator",
290*8975f5c5SAndroid Build Coastguard Worker    ]
291*8975f5c5SAndroid Build Coastguard Worker
292*8975f5c5SAndroid Build Coastguard Worker    if (is_ios) {
293*8975f5c5SAndroid Build Coastguard Worker      deps += [ ":angle_end2end_tests_bundle_data" ]
294*8975f5c5SAndroid Build Coastguard Worker    } else {
295*8975f5c5SAndroid Build Coastguard Worker      data = [ "angle_end2end_tests_expectations.txt" ]
296*8975f5c5SAndroid Build Coastguard Worker    }
297*8975f5c5SAndroid Build Coastguard Worker
298*8975f5c5SAndroid Build Coastguard Worker    if (angle_has_rapidjson) {
299*8975f5c5SAndroid Build Coastguard Worker      deps += [ "$angle_root:angle_json_serializer" ]
300*8975f5c5SAndroid Build Coastguard Worker    }
301*8975f5c5SAndroid Build Coastguard Worker
302*8975f5c5SAndroid Build Coastguard Worker    if (build_angle_end2end_tests_aosp) {
303*8975f5c5SAndroid Build Coastguard Worker      # AOSP end2end tests builds don't bundle ANGLE libs or Vulkan tests and don't need the NDK path
304*8975f5c5SAndroid Build Coastguard Worker    } else {
305*8975f5c5SAndroid Build Coastguard Worker      if (is_android) {
306*8975f5c5SAndroid Build Coastguard Worker        include_dirs += [ "${android_ndk_root}/sysroot/usr/includes" ]
307*8975f5c5SAndroid Build Coastguard Worker      }
308*8975f5c5SAndroid Build Coastguard Worker
309*8975f5c5SAndroid Build Coastguard Worker      data_deps = [ "$angle_root:angle" ]
310*8975f5c5SAndroid Build Coastguard Worker
311*8975f5c5SAndroid Build Coastguard Worker      if (angle_enable_vulkan) {
312*8975f5c5SAndroid Build Coastguard Worker        sources += [
313*8975f5c5SAndroid Build Coastguard Worker          "gl_tests/VulkanExternalImageTest.cpp",
314*8975f5c5SAndroid Build Coastguard Worker          "gl_tests/VulkanImageTest.cpp",
315*8975f5c5SAndroid Build Coastguard Worker          "test_utils/VulkanHelper.cpp",
316*8975f5c5SAndroid Build Coastguard Worker          "test_utils/VulkanHelper.h",
317*8975f5c5SAndroid Build Coastguard Worker        ]
318*8975f5c5SAndroid Build Coastguard Worker        deps += [ "$angle_root/src/common/vulkan" ]
319*8975f5c5SAndroid Build Coastguard Worker      }
320*8975f5c5SAndroid Build Coastguard Worker    }
321*8975f5c5SAndroid Build Coastguard Worker
322*8975f5c5SAndroid Build Coastguard Worker    if (is_android) {
323*8975f5c5SAndroid Build Coastguard Worker      android_test_runner_script =
324*8975f5c5SAndroid Build Coastguard Worker          "$angle_root/src/tests/angle_android_test_runner.py"
325*8975f5c5SAndroid Build Coastguard Worker      data += [ "$android_test_runner_script" ]
326*8975f5c5SAndroid Build Coastguard Worker    }
327*8975f5c5SAndroid Build Coastguard Worker
328*8975f5c5SAndroid Build Coastguard Worker    if (angle_build_mesa) {
329*8975f5c5SAndroid Build Coastguard Worker      data_deps += [ "$angle_root/third_party/mesa" ]
330*8975f5c5SAndroid Build Coastguard Worker    }
331*8975f5c5SAndroid Build Coastguard Worker
332*8975f5c5SAndroid Build Coastguard Worker    if (is_fuchsia) {
333*8975f5c5SAndroid Build Coastguard Worker      # TODO(crbug.com/1185811): Investigate removing the requirement for
334*8975f5c5SAndroid Build Coastguard Worker      # job_policy_ambient_mark_vmo_exec.
335*8975f5c5SAndroid Build Coastguard Worker      test_runner_shard = "//build/config/fuchsia/test/elf_test_ambient_exec_runner.shard.test-cml"
336*8975f5c5SAndroid Build Coastguard Worker      additional_manifest_fragments = [
337*8975f5c5SAndroid Build Coastguard Worker        "//build/config/fuchsia/test/present_view.shard.test-cml",
338*8975f5c5SAndroid Build Coastguard Worker        "//third_party/fuchsia-sdk/sdk/pkg/vulkan/client.shard.cml",
339*8975f5c5SAndroid Build Coastguard Worker      ]
340*8975f5c5SAndroid Build Coastguard Worker    }
341*8975f5c5SAndroid Build Coastguard Worker
342*8975f5c5SAndroid Build Coastguard Worker    if (is_ios) {
343*8975f5c5SAndroid Build Coastguard Worker      xcode_extra_attributes = {
344*8975f5c5SAndroid Build Coastguard Worker        SUPPORTS_MACCATALYST = "YES"
345*8975f5c5SAndroid Build Coastguard Worker      }
346*8975f5c5SAndroid Build Coastguard Worker
347*8975f5c5SAndroid Build Coastguard Worker      # Need to bundle the libraries inside the .app.
348*8975f5c5SAndroid Build Coastguard Worker      deps += [ "$angle_root:angle" ]
349*8975f5c5SAndroid Build Coastguard Worker    }
350*8975f5c5SAndroid Build Coastguard Worker  }
351*8975f5c5SAndroid Build Coastguard Worker}
352*8975f5c5SAndroid Build Coastguard Worker
353*8975f5c5SAndroid Build Coastguard Workerif (angle_enable_cl_testing) {
354*8975f5c5SAndroid Build Coastguard Worker  copy("opencl_icd") {
355*8975f5c5SAndroid Build Coastguard Worker    sources = [ "$angle_root/src/tests/cl_support/ancle.icd" ]
356*8975f5c5SAndroid Build Coastguard Worker    outputs = [ "$root_out_dir/$angle_data_dir/{{source_file_part}}" ]
357*8975f5c5SAndroid Build Coastguard Worker  }
358*8975f5c5SAndroid Build Coastguard Worker
359*8975f5c5SAndroid Build Coastguard Worker  template("angle_oclcts_test") {
360*8975f5c5SAndroid Build Coastguard Worker    angle_test("angle_oclcts_${target_name}") {
361*8975f5c5SAndroid Build Coastguard Worker      testonly = true
362*8975f5c5SAndroid Build Coastguard Worker      sources = [ "$angle_root/src/tests/cl_support/angle_oclcts_gtest.cpp" ]
363*8975f5c5SAndroid Build Coastguard Worker
364*8975f5c5SAndroid Build Coastguard Worker      deps = [
365*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:angle_common",
366*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:cl_includes",
367*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/third_party/OpenCL-CTS/gn:test_common",
368*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/third_party/OpenCL-CTS/gn/${invoker.group}:${invoker.suite}",
369*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/third_party/OpenCL-ICD-Loader:opencl_icd_loader",
370*8975f5c5SAndroid Build Coastguard Worker        "//third_party/googletest:gtest",
371*8975f5c5SAndroid Build Coastguard Worker      ]
372*8975f5c5SAndroid Build Coastguard Worker      defines = [
373*8975f5c5SAndroid Build Coastguard Worker        "CL_TARGET_OPENCL_VERSION=300",
374*8975f5c5SAndroid Build Coastguard Worker        "ANGLE_CL_SUITE_NAME=\"${invoker.suite}\"",
375*8975f5c5SAndroid Build Coastguard Worker      ]
376*8975f5c5SAndroid Build Coastguard Worker      if (!is_android) {
377*8975f5c5SAndroid Build Coastguard Worker        defines += [ "ANGLE_OPENCL_ICD_PATH=\"$angle_data_dir\"" ]
378*8975f5c5SAndroid Build Coastguard Worker      }
379*8975f5c5SAndroid Build Coastguard Worker      cflags = [
380*8975f5c5SAndroid Build Coastguard Worker        "-Wno-deprecated-declarations",
381*8975f5c5SAndroid Build Coastguard Worker        "-Wno-#warnings",
382*8975f5c5SAndroid Build Coastguard Worker        "-Wno-format",
383*8975f5c5SAndroid Build Coastguard Worker        "-Wno-vla-cxx-extension",
384*8975f5c5SAndroid Build Coastguard Worker        "-Wno-deprecated-volatile",
385*8975f5c5SAndroid Build Coastguard Worker        "-Wno-c++11-narrowing",
386*8975f5c5SAndroid Build Coastguard Worker      ]
387*8975f5c5SAndroid Build Coastguard Worker      include_dirs = [
388*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/third_party/OpenCL-CTS/src/test_common",
389*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/third_party/OpenCL-CTS/src/test_common/autotest",
390*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/third_party/OpenCL-CTS/src/test_common/harness",
391*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/third_party/OpenCL-CTS/src/test_common/miniz",
392*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/third_party/OpenCL-CTS/src/test_conformance/",
393*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/third_party/OpenCL-CTS/",
394*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/src/tests/",
395*8975f5c5SAndroid Build Coastguard Worker      ]
396*8975f5c5SAndroid Build Coastguard Worker      configs += [ "${angle_root}:libANGLE_config" ]
397*8975f5c5SAndroid Build Coastguard Worker
398*8975f5c5SAndroid Build Coastguard Worker      deps += [
399*8975f5c5SAndroid Build Coastguard Worker        ":angle_common_test_utils_static",
400*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:angle_static",
401*8975f5c5SAndroid Build Coastguard Worker      ]
402*8975f5c5SAndroid Build Coastguard Worker      data = [
403*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/src/tests/cl_support/openclcts_expectations.txt",
404*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/src/tests/cl_support/openclcts_mustpass.txt",
405*8975f5c5SAndroid Build Coastguard Worker      ]
406*8975f5c5SAndroid Build Coastguard Worker
407*8975f5c5SAndroid Build Coastguard Worker      data_deps += [
408*8975f5c5SAndroid Build Coastguard Worker        ":opencl_icd",
409*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:libEGL",
410*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:libGLESv2",
411*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/src/libOpenCL:angle_cl",
412*8975f5c5SAndroid Build Coastguard Worker      ]
413*8975f5c5SAndroid Build Coastguard Worker    }
414*8975f5c5SAndroid Build Coastguard Worker  }
415*8975f5c5SAndroid Build Coastguard Worker
416*8975f5c5SAndroid Build Coastguard Worker  oclcts_targets = [
417*8975f5c5SAndroid Build Coastguard Worker    "SVM svm",
418*8975f5c5SAndroid Build Coastguard Worker    "allocations allocations",
419*8975f5c5SAndroid Build Coastguard Worker    "api api",
420*8975f5c5SAndroid Build Coastguard Worker    "atomics atomics",
421*8975f5c5SAndroid Build Coastguard Worker    "basic basic",
422*8975f5c5SAndroid Build Coastguard Worker    "buffers buffers",
423*8975f5c5SAndroid Build Coastguard Worker    "c11_atomics c11_atomics",
424*8975f5c5SAndroid Build Coastguard Worker    "commonfns commonfns",
425*8975f5c5SAndroid Build Coastguard Worker    "compiler compiler",
426*8975f5c5SAndroid Build Coastguard Worker    "computeinfo computeinfo",
427*8975f5c5SAndroid Build Coastguard Worker    "contractions contractions",
428*8975f5c5SAndroid Build Coastguard Worker    "conversions conversions",
429*8975f5c5SAndroid Build Coastguard Worker    "device_execution device_execution",
430*8975f5c5SAndroid Build Coastguard Worker    "device_partition device_partition",
431*8975f5c5SAndroid Build Coastguard Worker    "device_timer device_timer",
432*8975f5c5SAndroid Build Coastguard Worker    "events events",
433*8975f5c5SAndroid Build Coastguard Worker    "extensions/cl_ext_cxx_for_opencl cl_ext_cxx_for_opencl",
434*8975f5c5SAndroid Build Coastguard Worker    "extensions/cl_khr_command_buffer cl_khr_command_buffer",
435*8975f5c5SAndroid Build Coastguard Worker    "extensions/cl_khr_semaphore cl_khr_semaphore",
436*8975f5c5SAndroid Build Coastguard Worker    "generic_address_space generic_address_space",
437*8975f5c5SAndroid Build Coastguard Worker    "geometrics geometrics",
438*8975f5c5SAndroid Build Coastguard Worker    "half half",
439*8975f5c5SAndroid Build Coastguard Worker    "images/clCopyImage cl_copy_images",
440*8975f5c5SAndroid Build Coastguard Worker    "images/clFillImage cl_fill_images",
441*8975f5c5SAndroid Build Coastguard Worker    "images/clGetInfo cl_get_info",
442*8975f5c5SAndroid Build Coastguard Worker    "images/clReadWriteImage cl_read_write_images",
443*8975f5c5SAndroid Build Coastguard Worker    "images/kernel_image_methods kernel_image_methods",
444*8975f5c5SAndroid Build Coastguard Worker    "images/kernel_read_write image_streams",
445*8975f5c5SAndroid Build Coastguard Worker    "images/samplerlessReads samplerless_reads",
446*8975f5c5SAndroid Build Coastguard Worker    "integer_ops integer_ops",
447*8975f5c5SAndroid Build Coastguard Worker    "math_brute_force bruteforce",
448*8975f5c5SAndroid Build Coastguard Worker    "mem_host_flags mem_host_flags",
449*8975f5c5SAndroid Build Coastguard Worker    "multiple_device_context multiples",
450*8975f5c5SAndroid Build Coastguard Worker    "non_uniform_work_group non_uniform_work_group",
451*8975f5c5SAndroid Build Coastguard Worker    "pipes pipes",
452*8975f5c5SAndroid Build Coastguard Worker    "printf printf",
453*8975f5c5SAndroid Build Coastguard Worker    "profiling profiling",
454*8975f5c5SAndroid Build Coastguard Worker    "relationals relationals",
455*8975f5c5SAndroid Build Coastguard Worker    "select select",
456*8975f5c5SAndroid Build Coastguard Worker    "spir spir",
457*8975f5c5SAndroid Build Coastguard Worker    "spirv_new spirv_new",
458*8975f5c5SAndroid Build Coastguard Worker
459*8975f5c5SAndroid Build Coastguard Worker    # CTS build error, fixed in https://github.com/KhronosGroup/OpenCL-CTS/pull/1906
460*8975f5c5SAndroid Build Coastguard Worker    #"subgroups subgroups",
461*8975f5c5SAndroid Build Coastguard Worker    "thread_dimensions thread_dimensions",
462*8975f5c5SAndroid Build Coastguard Worker    "vectors vectors",
463*8975f5c5SAndroid Build Coastguard Worker    "workgroups workgroups",
464*8975f5c5SAndroid Build Coastguard Worker  ]
465*8975f5c5SAndroid Build Coastguard Worker
466*8975f5c5SAndroid Build Coastguard Worker  foreach(_group_and_suite_joined, oclcts_targets) {
467*8975f5c5SAndroid Build Coastguard Worker    _group_and_suite = []
468*8975f5c5SAndroid Build Coastguard Worker    _group_and_suite = string_split(_group_and_suite_joined)
469*8975f5c5SAndroid Build Coastguard Worker    _group = _group_and_suite[0]
470*8975f5c5SAndroid Build Coastguard Worker    _suite = _group_and_suite[1]
471*8975f5c5SAndroid Build Coastguard Worker
472*8975f5c5SAndroid Build Coastguard Worker    angle_oclcts_test(_suite) {
473*8975f5c5SAndroid Build Coastguard Worker      group = _group
474*8975f5c5SAndroid Build Coastguard Worker      suite = _suite
475*8975f5c5SAndroid Build Coastguard Worker    }
476*8975f5c5SAndroid Build Coastguard Worker  }
477*8975f5c5SAndroid Build Coastguard Worker
478*8975f5c5SAndroid Build Coastguard Worker  group("angle_openclcts") {
479*8975f5c5SAndroid Build Coastguard Worker    testonly = true
480*8975f5c5SAndroid Build Coastguard Worker    deps = []
481*8975f5c5SAndroid Build Coastguard Worker    foreach(_group_and_suite_joined, oclcts_targets) {
482*8975f5c5SAndroid Build Coastguard Worker      _group_and_suite = []
483*8975f5c5SAndroid Build Coastguard Worker      _group_and_suite = string_split(_group_and_suite_joined)
484*8975f5c5SAndroid Build Coastguard Worker      _suite = _group_and_suite[1]
485*8975f5c5SAndroid Build Coastguard Worker
486*8975f5c5SAndroid Build Coastguard Worker      deps += [ ":angle_oclcts_${_suite}" ]
487*8975f5c5SAndroid Build Coastguard Worker    }
488*8975f5c5SAndroid Build Coastguard Worker  }
489*8975f5c5SAndroid Build Coastguard Worker}
490*8975f5c5SAndroid Build Coastguard Worker
491*8975f5c5SAndroid Build Coastguard Workerif (is_win || is_linux || is_chromeos || is_android || is_fuchsia || is_apple) {
492*8975f5c5SAndroid Build Coastguard Worker  import("angle_white_box_tests.gni")
493*8975f5c5SAndroid Build Coastguard Worker
494*8975f5c5SAndroid Build Coastguard Worker  angle_test("angle_white_box_tests") {
495*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "." ]
496*8975f5c5SAndroid Build Coastguard Worker    sources = angle_white_box_tests_sources + [ "angle_generic_tests_main.cpp" ]
497*8975f5c5SAndroid Build Coastguard Worker
498*8975f5c5SAndroid Build Coastguard Worker    if (is_win && angle_enable_d3d11) {
499*8975f5c5SAndroid Build Coastguard Worker      sources += angle_white_box_tests_win_sources
500*8975f5c5SAndroid Build Coastguard Worker    }
501*8975f5c5SAndroid Build Coastguard Worker
502*8975f5c5SAndroid Build Coastguard Worker    configs += [ "${angle_root}:libANGLE_config" ]
503*8975f5c5SAndroid Build Coastguard Worker
504*8975f5c5SAndroid Build Coastguard Worker    deps = [
505*8975f5c5SAndroid Build Coastguard Worker      ":angle_common_test_utils_static",
506*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_static",
507*8975f5c5SAndroid Build Coastguard Worker    ]
508*8975f5c5SAndroid Build Coastguard Worker
509*8975f5c5SAndroid Build Coastguard Worker    deps += [ "${angle_root}:angle_gl_enum_utils" ]
510*8975f5c5SAndroid Build Coastguard Worker
511*8975f5c5SAndroid Build Coastguard Worker    if (angle_enable_vulkan) {
512*8975f5c5SAndroid Build Coastguard Worker      sources += angle_white_box_tests_vulkan_sources
513*8975f5c5SAndroid Build Coastguard Worker      deps += [ "$angle_root/src/common/vulkan:angle_vulkan_entry_points" ]
514*8975f5c5SAndroid Build Coastguard Worker    }
515*8975f5c5SAndroid Build Coastguard Worker  }
516*8975f5c5SAndroid Build Coastguard Worker}
517*8975f5c5SAndroid Build Coastguard Worker
518*8975f5c5SAndroid Build Coastguard Workerconfig("angle_maybe_has_histograms") {
519*8975f5c5SAndroid Build Coastguard Worker  if (angle_has_histograms) {
520*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_HAS_HISTOGRAMS=1" ]
521*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "$root_gen_dir" ]
522*8975f5c5SAndroid Build Coastguard Worker  } else {
523*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_HAS_HISTOGRAMS=0" ]
524*8975f5c5SAndroid Build Coastguard Worker  }
525*8975f5c5SAndroid Build Coastguard Worker}
526*8975f5c5SAndroid Build Coastguard Worker
527*8975f5c5SAndroid Build Coastguard Workertemplate("angle_perftests_common") {
528*8975f5c5SAndroid Build Coastguard Worker  assert(defined(invoker.test_utils))
529*8975f5c5SAndroid Build Coastguard Worker
530*8975f5c5SAndroid Build Coastguard Worker  angle_source_set(target_name) {
531*8975f5c5SAndroid Build Coastguard Worker    testonly = true
532*8975f5c5SAndroid Build Coastguard Worker    if (is_ios) {
533*8975f5c5SAndroid Build Coastguard Worker      # shared libraries are hidden inside ios_framework_bundle, but we include headers from them
534*8975f5c5SAndroid Build Coastguard Worker      check_includes = false
535*8975f5c5SAndroid Build Coastguard Worker    }
536*8975f5c5SAndroid Build Coastguard Worker    sources = [
537*8975f5c5SAndroid Build Coastguard Worker      "../common/base/anglebase/trace_event/trace_event.h",
538*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/ANGLEPerfTest.cpp",
539*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/ANGLEPerfTest.h",
540*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/ANGLEPerfTestArgs.cpp",
541*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/ANGLEPerfTestArgs.h",
542*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/DrawCallPerfParams.cpp",
543*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/DrawCallPerfParams.h",
544*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/third_party/perf/perf_result_reporter.cc",
545*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/third_party/perf/perf_result_reporter.h",
546*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/third_party/perf/perf_test.cc",
547*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/third_party/perf/perf_test.h",
548*8975f5c5SAndroid Build Coastguard Worker      "test_utils/runner/HistogramWriter.h",
549*8975f5c5SAndroid Build Coastguard Worker      "test_utils/runner/TestSuite.h",
550*8975f5c5SAndroid Build Coastguard Worker    ]
551*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
552*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_gl_enum_utils",
553*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests:angle_test_expectations",
554*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/third_party/rapidjson:rapidjson",
555*8975f5c5SAndroid Build Coastguard Worker      "${invoker.test_utils}",
556*8975f5c5SAndroid Build Coastguard Worker    ]
557*8975f5c5SAndroid Build Coastguard Worker    public_configs += [
558*8975f5c5SAndroid Build Coastguard Worker      ":angle_maybe_has_histograms",
559*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:libANGLE_config",
560*8975f5c5SAndroid Build Coastguard Worker    ]
561*8975f5c5SAndroid Build Coastguard Worker  }
562*8975f5c5SAndroid Build Coastguard Worker}
563*8975f5c5SAndroid Build Coastguard Worker
564*8975f5c5SAndroid Build Coastguard Workerangle_perftests_common("angle_perftests_shared") {
565*8975f5c5SAndroid Build Coastguard Worker  test_utils = ":angle_common_test_utils_shared"
566*8975f5c5SAndroid Build Coastguard Worker}
567*8975f5c5SAndroid Build Coastguard Worker
568*8975f5c5SAndroid Build Coastguard Workerangle_perftests_common("angle_perftests_static") {
569*8975f5c5SAndroid Build Coastguard Worker  test_utils = ":angle_common_test_utils_static"
570*8975f5c5SAndroid Build Coastguard Worker}
571*8975f5c5SAndroid Build Coastguard Worker
572*8975f5c5SAndroid Build Coastguard Workerif (is_win || is_linux || is_chromeos || is_android || is_apple) {
573*8975f5c5SAndroid Build Coastguard Worker  import("angle_perftests.gni")
574*8975f5c5SAndroid Build Coastguard Worker
575*8975f5c5SAndroid Build Coastguard Worker  # This test suite is for perf tests that use ANGLE's internals in some direct way.
576*8975f5c5SAndroid Build Coastguard Worker  angle_test("angle_white_box_perftests") {
577*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "." ]
578*8975f5c5SAndroid Build Coastguard Worker    sources =
579*8975f5c5SAndroid Build Coastguard Worker        angle_white_box_perf_tests_sources + [ "angle_perftests_main.cpp" ]
580*8975f5c5SAndroid Build Coastguard Worker
581*8975f5c5SAndroid Build Coastguard Worker    if (angle_enable_d3d11 || angle_enable_d3d9) {
582*8975f5c5SAndroid Build Coastguard Worker      sources += [ "perf_tests/IndexDataManagerTest.cpp" ]
583*8975f5c5SAndroid Build Coastguard Worker    }
584*8975f5c5SAndroid Build Coastguard Worker
585*8975f5c5SAndroid Build Coastguard Worker    deps = [
586*8975f5c5SAndroid Build Coastguard Worker      ":angle_perftests_static",
587*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_static",
588*8975f5c5SAndroid Build Coastguard Worker    ]
589*8975f5c5SAndroid Build Coastguard Worker
590*8975f5c5SAndroid Build Coastguard Worker    data = [
591*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/scripts/process_angle_perf_results.py",
592*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/py_utils/android_helper.py",
593*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/py_utils/angle_metrics.py",
594*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/py_utils/angle_path_util.py",
595*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/run_perf_tests.py",
596*8975f5c5SAndroid Build Coastguard Worker    ]
597*8975f5c5SAndroid Build Coastguard Worker    data_deps = [ "//testing:run_perf_test" ]
598*8975f5c5SAndroid Build Coastguard Worker
599*8975f5c5SAndroid Build Coastguard Worker    if (angle_enable_vulkan) {
600*8975f5c5SAndroid Build Coastguard Worker      sources += angle_white_box_perf_tests_vulkan_sources
601*8975f5c5SAndroid Build Coastguard Worker      deps += [
602*8975f5c5SAndroid Build Coastguard Worker        "$angle_glslang_dir:glslang_lib_sources",
603*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/src/common/vulkan:angle_vulkan_entry_points",
604*8975f5c5SAndroid Build Coastguard Worker      ]
605*8975f5c5SAndroid Build Coastguard Worker    }
606*8975f5c5SAndroid Build Coastguard Worker
607*8975f5c5SAndroid Build Coastguard Worker    # These tests depend on vulkan_command_buffer_utils, which is
608*8975f5c5SAndroid Build Coastguard Worker    # not yet compatible with mac and vulkan display/headless backend.
609*8975f5c5SAndroid Build Coastguard Worker    if (angle_enable_vulkan && !angle_use_vulkan_display && !is_apple) {
610*8975f5c5SAndroid Build Coastguard Worker      sources += angle_white_box_perf_tests_vulkan_command_buffer_sources
611*8975f5c5SAndroid Build Coastguard Worker    }
612*8975f5c5SAndroid Build Coastguard Worker  }
613*8975f5c5SAndroid Build Coastguard Worker}
614*8975f5c5SAndroid Build Coastguard Worker
615*8975f5c5SAndroid Build Coastguard Workerconfig("angle_enable_renderdoc") {
616*8975f5c5SAndroid Build Coastguard Worker  if (angle_enable_renderdoc) {
617*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_TEST_ENABLE_RENDERDOC_CAPTURE" ]
618*8975f5c5SAndroid Build Coastguard Worker  }
619*8975f5c5SAndroid Build Coastguard Worker}
620*8975f5c5SAndroid Build Coastguard Worker
621*8975f5c5SAndroid Build Coastguard Workerif (build_angle_perftests) {
622*8975f5c5SAndroid Build Coastguard Worker  import("angle_perftests.gni")
623*8975f5c5SAndroid Build Coastguard Worker
624*8975f5c5SAndroid Build Coastguard Worker  # This test suite is designed to run against a generic GL implementation.
625*8975f5c5SAndroid Build Coastguard Worker  angle_test("angle_perftests") {
626*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "." ]
627*8975f5c5SAndroid Build Coastguard Worker    sources = angle_perf_tests_sources + [ "angle_perftests_main.cpp" ]
628*8975f5c5SAndroid Build Coastguard Worker
629*8975f5c5SAndroid Build Coastguard Worker    deps = [
630*8975f5c5SAndroid Build Coastguard Worker      ":angle_perftests_shared",
631*8975f5c5SAndroid Build Coastguard Worker      "$angle_spirv_tools_dir:spvtools_val",
632*8975f5c5SAndroid Build Coastguard Worker    ]
633*8975f5c5SAndroid Build Coastguard Worker
634*8975f5c5SAndroid Build Coastguard Worker    data = [
635*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/scripts/process_angle_perf_results.py",
636*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/py_utils/android_helper.py",
637*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/py_utils/angle_metrics.py",
638*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/py_utils/angle_path_util.py",
639*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/run_perf_tests.py",
640*8975f5c5SAndroid Build Coastguard Worker    ]
641*8975f5c5SAndroid Build Coastguard Worker
642*8975f5c5SAndroid Build Coastguard Worker    data_deps = [
643*8975f5c5SAndroid Build Coastguard Worker      "${angle_root}:angle",
644*8975f5c5SAndroid Build Coastguard Worker      "//testing:run_perf_test",
645*8975f5c5SAndroid Build Coastguard Worker    ]
646*8975f5c5SAndroid Build Coastguard Worker
647*8975f5c5SAndroid Build Coastguard Worker    if (angle_build_mesa) {
648*8975f5c5SAndroid Build Coastguard Worker      data_deps += [ "$angle_root/third_party/mesa" ]
649*8975f5c5SAndroid Build Coastguard Worker    }
650*8975f5c5SAndroid Build Coastguard Worker
651*8975f5c5SAndroid Build Coastguard Worker    if (is_win || is_linux || is_chromeos) {
652*8975f5c5SAndroid Build Coastguard Worker      data_deps += [ "${angle_root}/third_party/glmark2:glmark2_angle" ]
653*8975f5c5SAndroid Build Coastguard Worker    }
654*8975f5c5SAndroid Build Coastguard Worker    if (is_win && target_cpu != "arm64") {
655*8975f5c5SAndroid Build Coastguard Worker      data_deps += [ "${angle_root}/third_party/glmark2:glmark2_wgl" ]
656*8975f5c5SAndroid Build Coastguard Worker    }
657*8975f5c5SAndroid Build Coastguard Worker    if (is_linux || is_chromeos) {
658*8975f5c5SAndroid Build Coastguard Worker      data_deps += [ "${angle_root}/third_party/glmark2:glmark2_glx" ]
659*8975f5c5SAndroid Build Coastguard Worker    }
660*8975f5c5SAndroid Build Coastguard Worker  }
661*8975f5c5SAndroid Build Coastguard Worker}
662*8975f5c5SAndroid Build Coastguard Worker
663*8975f5c5SAndroid Build Coastguard Workerif (build_angle_trace_tests) {
664*8975f5c5SAndroid Build Coastguard Worker  angle_test("angle_trace_tests") {
665*8975f5c5SAndroid Build Coastguard Worker    # http://anglebug.com/42264541: Traces with long shaders are hitting string literal
666*8975f5c5SAndroid Build Coastguard Worker    # limit in MSVC, so only compile them when using clang
667*8975f5c5SAndroid Build Coastguard Worker    assert(is_clang, "angle trace tests require clang")
668*8975f5c5SAndroid Build Coastguard Worker
669*8975f5c5SAndroid Build Coastguard Worker    if (is_ios) {
670*8975f5c5SAndroid Build Coastguard Worker      # shared libraries are hidden inside ios_framework_bundle, but we include headers from them
671*8975f5c5SAndroid Build Coastguard Worker      check_includes = false
672*8975f5c5SAndroid Build Coastguard Worker    }
673*8975f5c5SAndroid Build Coastguard Worker
674*8975f5c5SAndroid Build Coastguard Worker    sources = [
675*8975f5c5SAndroid Build Coastguard Worker      "angle_trace_tests_main.cpp",
676*8975f5c5SAndroid Build Coastguard Worker      "perf_tests/TracePerfTest.cpp",
677*8975f5c5SAndroid Build Coastguard Worker    ]
678*8975f5c5SAndroid Build Coastguard Worker
679*8975f5c5SAndroid Build Coastguard Worker    deps = [
680*8975f5c5SAndroid Build Coastguard Worker      ":angle_perftests_shared",
681*8975f5c5SAndroid Build Coastguard Worker      ":wrap_restricted_trace_gold_tests",
682*8975f5c5SAndroid Build Coastguard Worker      ":wrap_restricted_trace_perf",
683*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_compression",
684*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:angle_frame_capture_test_utils",
685*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:angle_png_utils",
686*8975f5c5SAndroid Build Coastguard Worker      "restricted_traces:gen_trace_list_json",
687*8975f5c5SAndroid Build Coastguard Worker    ]
688*8975f5c5SAndroid Build Coastguard Worker
689*8975f5c5SAndroid Build Coastguard Worker    # If this flag is set, we want to build the trace libraries independent of the APK, i.e. not packaged.
690*8975f5c5SAndroid Build Coastguard Worker    # We're doing this for size reasons - the APK is too large if you include all the traces.
691*8975f5c5SAndroid Build Coastguard Worker    if (restricted_traces_outside_of_apk) {
692*8975f5c5SAndroid Build Coastguard Worker      defines = [ "ANGLE_TRACE_EXTERNAL_BINARIES" ]
693*8975f5c5SAndroid Build Coastguard Worker      deps += [ "$angle_root/util:angle_trace_loader" ]
694*8975f5c5SAndroid Build Coastguard Worker    } else {
695*8975f5c5SAndroid Build Coastguard Worker      deps += [
696*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/util:angle_trace_interpreter",
697*8975f5c5SAndroid Build Coastguard Worker        "restricted_traces:angle_restricted_traces",
698*8975f5c5SAndroid Build Coastguard Worker      ]
699*8975f5c5SAndroid Build Coastguard Worker    }
700*8975f5c5SAndroid Build Coastguard Worker
701*8975f5c5SAndroid Build Coastguard Worker    data = [ "$angle_root/src/tests/py_utils/android_helper.py" ]
702*8975f5c5SAndroid Build Coastguard Worker
703*8975f5c5SAndroid Build Coastguard Worker    if (is_android) {
704*8975f5c5SAndroid Build Coastguard Worker      android_test_runner_script =
705*8975f5c5SAndroid Build Coastguard Worker          "$angle_root/src/tests/angle_android_test_runner.py"
706*8975f5c5SAndroid Build Coastguard Worker      data += [ "$android_test_runner_script" ]
707*8975f5c5SAndroid Build Coastguard Worker    }
708*8975f5c5SAndroid Build Coastguard Worker
709*8975f5c5SAndroid Build Coastguard Worker    data_deps = [ "${angle_root}:angle" ]
710*8975f5c5SAndroid Build Coastguard Worker
711*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
712*8975f5c5SAndroid Build Coastguard Worker      # Allows us to edit traces and remove chunks of code without compile warnings.
713*8975f5c5SAndroid Build Coastguard Worker      cflags_cc = [ "-Wno-unused-const-variable" ]
714*8975f5c5SAndroid Build Coastguard Worker    }
715*8975f5c5SAndroid Build Coastguard Worker  }
716*8975f5c5SAndroid Build Coastguard Worker
717*8975f5c5SAndroid Build Coastguard Worker  group("angle_trace_perf_tests") {
718*8975f5c5SAndroid Build Coastguard Worker    testonly = true
719*8975f5c5SAndroid Build Coastguard Worker
720*8975f5c5SAndroid Build Coastguard Worker    data = [
721*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/scripts/process_angle_perf_results.py",
722*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/py_utils/angle_metrics.py",
723*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/py_utils/angle_path_util.py",
724*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/restricted_traces/restricted_trace_perf.py",
725*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/src/tests/run_perf_tests.py",
726*8975f5c5SAndroid Build Coastguard Worker    ]
727*8975f5c5SAndroid Build Coastguard Worker
728*8975f5c5SAndroid Build Coastguard Worker    data_deps = [
729*8975f5c5SAndroid Build Coastguard Worker      ":angle_trace_tests",
730*8975f5c5SAndroid Build Coastguard Worker      "//testing:run_perf_test",
731*8975f5c5SAndroid Build Coastguard Worker    ]
732*8975f5c5SAndroid Build Coastguard Worker
733*8975f5c5SAndroid Build Coastguard Worker    if (restricted_traces_outside_of_apk) {
734*8975f5c5SAndroid Build Coastguard Worker      deps = [ "restricted_traces:angle_restricted_traces__unpacked_libs" ]
735*8975f5c5SAndroid Build Coastguard Worker    }
736*8975f5c5SAndroid Build Coastguard Worker  }
737*8975f5c5SAndroid Build Coastguard Worker
738*8975f5c5SAndroid Build Coastguard Worker  group("angle_trace_interpreter_tests") {
739*8975f5c5SAndroid Build Coastguard Worker    testonly = true
740*8975f5c5SAndroid Build Coastguard Worker    data = [
741*8975f5c5SAndroid Build Coastguard Worker      "restricted_traces/gen_restricted_traces.py",
742*8975f5c5SAndroid Build Coastguard Worker      "restricted_traces/retrace_restricted_traces.py",
743*8975f5c5SAndroid Build Coastguard Worker    ]
744*8975f5c5SAndroid Build Coastguard Worker    data_deps = [ ":angle_trace_perf_tests" ]
745*8975f5c5SAndroid Build Coastguard Worker  }
746*8975f5c5SAndroid Build Coastguard Worker
747*8975f5c5SAndroid Build Coastguard Worker  group("angle_capture_tests") {
748*8975f5c5SAndroid Build Coastguard Worker    testonly = true
749*8975f5c5SAndroid Build Coastguard Worker    data = [
750*8975f5c5SAndroid Build Coastguard Worker      "capture_tests/capture_tests.py",
751*8975f5c5SAndroid Build Coastguard Worker      "capture_tests/expected",
752*8975f5c5SAndroid Build Coastguard Worker    ]
753*8975f5c5SAndroid Build Coastguard Worker    if (is_android) {
754*8975f5c5SAndroid Build Coastguard Worker      data += [ "$angle_root/src/tests/angle_android_test_runner.py" ]
755*8975f5c5SAndroid Build Coastguard Worker    }
756*8975f5c5SAndroid Build Coastguard Worker    data_deps = [ ":angle_end2end_tests" ]
757*8975f5c5SAndroid Build Coastguard Worker  }
758*8975f5c5SAndroid Build Coastguard Worker
759*8975f5c5SAndroid Build Coastguard Worker  action("wrap_restricted_trace_perf") {
760*8975f5c5SAndroid Build Coastguard Worker    script = "//scripts/angle_test_wrapper.py"
761*8975f5c5SAndroid Build Coastguard Worker
762*8975f5c5SAndroid Build Coastguard Worker    outputs = [ "$root_build_dir/restricted_trace_perf" ]
763*8975f5c5SAndroid Build Coastguard Worker    args = [
764*8975f5c5SAndroid Build Coastguard Worker      rebase_path(outputs[0], root_build_dir),
765*8975f5c5SAndroid Build Coastguard Worker      "src/tests/restricted_traces/restricted_trace_perf.py",
766*8975f5c5SAndroid Build Coastguard Worker    ]
767*8975f5c5SAndroid Build Coastguard Worker  }
768*8975f5c5SAndroid Build Coastguard Worker
769*8975f5c5SAndroid Build Coastguard Worker  action("wrap_restricted_trace_gold_tests") {
770*8975f5c5SAndroid Build Coastguard Worker    script = "//scripts/angle_test_wrapper.py"
771*8975f5c5SAndroid Build Coastguard Worker
772*8975f5c5SAndroid Build Coastguard Worker    outputs = [ "$root_build_dir/restricted_trace_gold_tests" ]
773*8975f5c5SAndroid Build Coastguard Worker    args = [
774*8975f5c5SAndroid Build Coastguard Worker      rebase_path(outputs[0], root_build_dir),
775*8975f5c5SAndroid Build Coastguard Worker      "src/tests/restricted_traces/restricted_trace_gold_tests.py",
776*8975f5c5SAndroid Build Coastguard Worker    ]
777*8975f5c5SAndroid Build Coastguard Worker  }
778*8975f5c5SAndroid Build Coastguard Worker}
779*8975f5c5SAndroid Build Coastguard Worker
780*8975f5c5SAndroid Build Coastguard Worker###-----------------------------------------------------
781*8975f5c5SAndroid Build Coastguard Worker### ES 1 conformance tests
782*8975f5c5SAndroid Build Coastguard Worker###-----------------------------------------------------
783*8975f5c5SAndroid Build Coastguard Worker
784*8975f5c5SAndroid Build Coastguard Workerif (build_angle_gles1_conform_tests) {
785*8975f5c5SAndroid Build Coastguard Worker  gles1_conform_root = "$angle_root/third_party/gles1_conform"
786*8975f5c5SAndroid Build Coastguard Worker
787*8975f5c5SAndroid Build Coastguard Worker  config("angle_gles1_conform_support") {
788*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [
789*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root",
790*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform",
791*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell",
792*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/ctk",
793*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/fixed",
794*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/platform",
795*8975f5c5SAndroid Build Coastguard Worker    ]
796*8975f5c5SAndroid Build Coastguard Worker
797*8975f5c5SAndroid Build Coastguard Worker    defines = [
798*8975f5c5SAndroid Build Coastguard Worker      "COMMON",
799*8975f5c5SAndroid Build Coastguard Worker      "CONFORM_ALTERNATE_MAIN",
800*8975f5c5SAndroid Build Coastguard Worker
801*8975f5c5SAndroid Build Coastguard Worker      # NULLWS defines is only used in covegl/native.h, remove here.
802*8975f5c5SAndroid Build Coastguard Worker      # if needed please add it in angle_test("angle_gles1_covegl_no_gtest") defines.
803*8975f5c5SAndroid Build Coastguard Worker      #"NULLWS",
804*8975f5c5SAndroid Build Coastguard Worker    ]
805*8975f5c5SAndroid Build Coastguard Worker
806*8975f5c5SAndroid Build Coastguard Worker    # This is used by the tests to typedef uint32_t. For some reason only needed on mac.
807*8975f5c5SAndroid Build Coastguard Worker    if (is_apple) {
808*8975f5c5SAndroid Build Coastguard Worker      defines += [ "__linux" ]
809*8975f5c5SAndroid Build Coastguard Worker    }
810*8975f5c5SAndroid Build Coastguard Worker
811*8975f5c5SAndroid Build Coastguard Worker    cflags = []
812*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
813*8975f5c5SAndroid Build Coastguard Worker      # Remove when crbug.com/428099 is resolved.
814*8975f5c5SAndroid Build Coastguard Worker      cflags += [
815*8975f5c5SAndroid Build Coastguard Worker        "-Wno-implicit-function-declaration",
816*8975f5c5SAndroid Build Coastguard Worker        "-Wno-implicit-int-float-conversion",
817*8975f5c5SAndroid Build Coastguard Worker        "-Wno-int-to-pointer-cast",
818*8975f5c5SAndroid Build Coastguard Worker        "-Wno-self-assign",
819*8975f5c5SAndroid Build Coastguard Worker        "-Wno-sign-compare",
820*8975f5c5SAndroid Build Coastguard Worker        "-Wno-unreachable-code-break",
821*8975f5c5SAndroid Build Coastguard Worker        "-Wno-unused-const-variable",
822*8975f5c5SAndroid Build Coastguard Worker        "-Wno-unused-result",
823*8975f5c5SAndroid Build Coastguard Worker        "-Wno-unused-variable",
824*8975f5c5SAndroid Build Coastguard Worker
825*8975f5c5SAndroid Build Coastguard Worker        # Upstream tests do null pointer arithmetic, so disable those warnings.
826*8975f5c5SAndroid Build Coastguard Worker        "-Wno-null-pointer-arithmetic",
827*8975f5c5SAndroid Build Coastguard Worker      ]
828*8975f5c5SAndroid Build Coastguard Worker    } else {
829*8975f5c5SAndroid Build Coastguard Worker      cflags += [ "/wd4101" ]  # unreferenced local variable
830*8975f5c5SAndroid Build Coastguard Worker    }
831*8975f5c5SAndroid Build Coastguard Worker  }
832*8975f5c5SAndroid Build Coastguard Worker
833*8975f5c5SAndroid Build Coastguard Worker  # This source set is a bit special so we don't use angle_source_set.
834*8975f5c5SAndroid Build Coastguard Worker  angle_gles1_conform_common_source = [
835*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/ctk/ctk.h",
836*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/ctk/ctkn.c",
837*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/ctk/glext.c",
838*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/fixed/fixed.c",
839*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/fixed/float64.c",
840*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/fixed/int32.c",
841*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/fixed/int64.c",
842*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/gl_fixed_point.h",
843*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/gl_single_precision.h",
844*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/math_fixed.h",
845*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/math_float.h",
846*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/platform.h",
847*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/platform_gl.h",
848*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/platform_random.h",
849*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/platform_stdlib.h",
850*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/platform_types.h",
851*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/printf_fixed.h",
852*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/printf_float.h",
853*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/random.c",
854*8975f5c5SAndroid Build Coastguard Worker    "$gles1_conform_root/platform/stdlib_ansi.h",
855*8975f5c5SAndroid Build Coastguard Worker  ]
856*8975f5c5SAndroid Build Coastguard Worker
857*8975f5c5SAndroid Build Coastguard Worker  source_set("angle_gles1_conformance_no_gtest") {
858*8975f5c5SAndroid Build Coastguard Worker    configs += [
859*8975f5c5SAndroid Build Coastguard Worker      ":angle_gles1_conform_support",
860*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:internal_config",
861*8975f5c5SAndroid Build Coastguard Worker    ]
862*8975f5c5SAndroid Build Coastguard Worker
863*8975f5c5SAndroid Build Coastguard Worker    public_configs = [
864*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:angle_util_config",
865*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:gl_prototypes",
866*8975f5c5SAndroid Build Coastguard Worker    ]
867*8975f5c5SAndroid Build Coastguard Worker
868*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
869*8975f5c5SAndroid Build Coastguard Worker      cflags_c = [
870*8975f5c5SAndroid Build Coastguard Worker        "-Wno-implicit-fallthrough",
871*8975f5c5SAndroid Build Coastguard Worker        "-Wno-shadow",
872*8975f5c5SAndroid Build Coastguard Worker      ]
873*8975f5c5SAndroid Build Coastguard Worker    }
874*8975f5c5SAndroid Build Coastguard Worker
875*8975f5c5SAndroid Build Coastguard Worker    testonly = true
876*8975f5c5SAndroid Build Coastguard Worker
877*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
878*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_static",
879*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:angle_util_static",
880*8975f5c5SAndroid Build Coastguard Worker    ]
881*8975f5c5SAndroid Build Coastguard Worker
882*8975f5c5SAndroid Build Coastguard Worker    sources = [
883*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/apfunc.c",
884*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/appl.c",
885*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/bclear.c",
886*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/bcolor.c",
887*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/bcorner.c",
888*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/blend.c",
889*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/bufobj.c",
890*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/clip.c",
891*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/colramp.c",
892*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/copytex.c",
893*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/dither.c",
894*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/divzero.c",
895*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/drawtex.c",
896*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/fogexp.c",
897*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/foglin.c",
898*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/gets.c",
899*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_ac.c",
900*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_al.c",
901*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_am.c",
902*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_ap.c",
903*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_as.c",
904*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_dl.c",
905*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_dm.c",
906*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_dmn.c",
907*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_dmp.c",
908*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_em.c",
909*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_se.c",
910*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_sed.c",
911*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_sen.c",
912*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_sep.c",
913*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_sl.c",
914*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_sm.c",
915*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_sn.c",
916*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/l_sp.c",
917*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/lineaa.c",
918*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/linehv.c",
919*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/linerast.c",
920*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/logicop.c",
921*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/mask.c",
922*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/mget.c",
923*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/mipgen.c",
924*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/miplevels.c",
925*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/miplin.c",
926*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/mipsel.c",
927*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/mpalette.c",
928*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/mquery.c",
929*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/mstack.c",
930*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/multitex.c",
931*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/mustpass.c",
932*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/packpix.c",
933*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/pntaa.c",
934*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/pntrast.c",
935*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/pntsprt.c",
936*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/pntszary.c",
937*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/polycull.c",
938*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/readfmt.c",
939*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/rescalen.c",
940*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/scissor.c",
941*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/spclear.c",
942*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/spcorner.c",
943*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/spfunc.c",
944*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/spop.c",
945*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/tests.c",
946*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/texcombine.c",
947*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/texdecal.c",
948*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/texedge.c",
949*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/texpalet.c",
950*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/trirast.c",
951*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/tritile.c",
952*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/userclip.c",
953*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/vorder.c",
954*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/vpclamp.c",
955*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/xform.c",
956*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/xformmix.c",
957*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/xformn.c",
958*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/xformvp.c",
959*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/xformw.c",
960*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/zbclear.c",
961*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conform/zbfunc.c",
962*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/conform.h",
963*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/driver.c",
964*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/driver.h",
965*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/path.c",
966*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/path.h",
967*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/pathdata.c",
968*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/pathdata.h",
969*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/paths.c",
970*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/shell.c",
971*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/util.c",
972*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/util.h",
973*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utilg.c",
974*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utilg.h",
975*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utilm.c",
976*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utilm.h",
977*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utilp.c",
978*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utilp.h",
979*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utilru.c",
980*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utilru.h",
981*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utils.c",
982*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utils.h",
983*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utilt.c",
984*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/conformshell/utilt.h",
985*8975f5c5SAndroid Build Coastguard Worker    ]
986*8975f5c5SAndroid Build Coastguard Worker
987*8975f5c5SAndroid Build Coastguard Worker    sources += angle_gles1_conform_common_source
988*8975f5c5SAndroid Build Coastguard Worker  }
989*8975f5c5SAndroid Build Coastguard Worker
990*8975f5c5SAndroid Build Coastguard Worker  angle_test("angle_gles1_conformance_tests") {
991*8975f5c5SAndroid Build Coastguard Worker    deps = [
992*8975f5c5SAndroid Build Coastguard Worker      ":angle_common_test_utils_static",
993*8975f5c5SAndroid Build Coastguard Worker      ":angle_gles1_conformance_no_gtest",
994*8975f5c5SAndroid Build Coastguard Worker    ]
995*8975f5c5SAndroid Build Coastguard Worker
996*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "." ]
997*8975f5c5SAndroid Build Coastguard Worker
998*8975f5c5SAndroid Build Coastguard Worker    sources = [
999*8975f5c5SAndroid Build Coastguard Worker      "angle_generic_tests_main.cpp",
1000*8975f5c5SAndroid Build Coastguard Worker      "gles1_conformance_tests/ConformanceTests.cpp",
1001*8975f5c5SAndroid Build Coastguard Worker      "test_utils/ANGLETest.cpp",
1002*8975f5c5SAndroid Build Coastguard Worker      "test_utils/ANGLETest.h",
1003*8975f5c5SAndroid Build Coastguard Worker    ]
1004*8975f5c5SAndroid Build Coastguard Worker
1005*8975f5c5SAndroid Build Coastguard Worker    configs += [
1006*8975f5c5SAndroid Build Coastguard Worker      ":angle_gles1_conform_support",
1007*8975f5c5SAndroid Build Coastguard Worker      "${angle_root}:libANGLE_config",
1008*8975f5c5SAndroid Build Coastguard Worker      "${angle_root}:angle_backend_config",
1009*8975f5c5SAndroid Build Coastguard Worker    ]
1010*8975f5c5SAndroid Build Coastguard Worker  }
1011*8975f5c5SAndroid Build Coastguard Worker
1012*8975f5c5SAndroid Build Coastguard Worker  if (!is_win && !is_apple) {
1013*8975f5c5SAndroid Build Coastguard Worker    source_set("angle_gles1_covgl_no_gtest") {
1014*8975f5c5SAndroid Build Coastguard Worker      configs += [
1015*8975f5c5SAndroid Build Coastguard Worker        ":angle_gles1_conform_support",
1016*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:internal_config",
1017*8975f5c5SAndroid Build Coastguard Worker      ]
1018*8975f5c5SAndroid Build Coastguard Worker
1019*8975f5c5SAndroid Build Coastguard Worker      public_configs = [
1020*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/util:angle_util_config",
1021*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:gl_prototypes",
1022*8975f5c5SAndroid Build Coastguard Worker      ]
1023*8975f5c5SAndroid Build Coastguard Worker
1024*8975f5c5SAndroid Build Coastguard Worker      testonly = true
1025*8975f5c5SAndroid Build Coastguard Worker
1026*8975f5c5SAndroid Build Coastguard Worker      public_deps = [
1027*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:angle_static",
1028*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/util:angle_util_static",
1029*8975f5c5SAndroid Build Coastguard Worker      ]
1030*8975f5c5SAndroid Build Coastguard Worker
1031*8975f5c5SAndroid Build Coastguard Worker      sources = [
1032*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/a.c",
1033*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/b.c",
1034*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/c.c",
1035*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/d.c",
1036*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/data.c",
1037*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/e.c",
1038*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/enum.c",
1039*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/f.c",
1040*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/g.c",
1041*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/h.c",
1042*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/i.c",
1043*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/l.c",
1044*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/m.c",
1045*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/n.c",
1046*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/o.c",
1047*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/p.c",
1048*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/q.c",
1049*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/r.c",
1050*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/s.c",
1051*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/shell.h",
1052*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/t.c",
1053*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/v.c",
1054*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/w.c",
1055*8975f5c5SAndroid Build Coastguard Worker      ]
1056*8975f5c5SAndroid Build Coastguard Worker
1057*8975f5c5SAndroid Build Coastguard Worker      sources += angle_gles1_conform_common_source
1058*8975f5c5SAndroid Build Coastguard Worker
1059*8975f5c5SAndroid Build Coastguard Worker      if (is_clang) {
1060*8975f5c5SAndroid Build Coastguard Worker        cflags_c = [ "-Wno-shadow" ]
1061*8975f5c5SAndroid Build Coastguard Worker      }
1062*8975f5c5SAndroid Build Coastguard Worker      defines = [ "ProbeEnum=ProbeEnumANGLE" ]
1063*8975f5c5SAndroid Build Coastguard Worker    }
1064*8975f5c5SAndroid Build Coastguard Worker
1065*8975f5c5SAndroid Build Coastguard Worker    angle_test("angle_gles1_covgl_tests") {
1066*8975f5c5SAndroid Build Coastguard Worker      deps = [
1067*8975f5c5SAndroid Build Coastguard Worker        ":angle_common_test_utils_static",
1068*8975f5c5SAndroid Build Coastguard Worker        ":angle_gles1_covgl_no_gtest",
1069*8975f5c5SAndroid Build Coastguard Worker      ]
1070*8975f5c5SAndroid Build Coastguard Worker
1071*8975f5c5SAndroid Build Coastguard Worker      include_dirs = [ "." ]
1072*8975f5c5SAndroid Build Coastguard Worker
1073*8975f5c5SAndroid Build Coastguard Worker      sources = [
1074*8975f5c5SAndroid Build Coastguard Worker        "$gles1_conform_root/conform/covgl/shell.c",
1075*8975f5c5SAndroid Build Coastguard Worker        "angle_generic_tests_main.cpp",
1076*8975f5c5SAndroid Build Coastguard Worker        "gles1_conformance_tests/CovglTests.cpp",
1077*8975f5c5SAndroid Build Coastguard Worker        "test_utils/ANGLETest.cpp",
1078*8975f5c5SAndroid Build Coastguard Worker        "test_utils/ANGLETest.h",
1079*8975f5c5SAndroid Build Coastguard Worker      ]
1080*8975f5c5SAndroid Build Coastguard Worker
1081*8975f5c5SAndroid Build Coastguard Worker      if (is_clang) {
1082*8975f5c5SAndroid Build Coastguard Worker        cflags_c = [ "-Wno-shadow" ]
1083*8975f5c5SAndroid Build Coastguard Worker      }
1084*8975f5c5SAndroid Build Coastguard Worker
1085*8975f5c5SAndroid Build Coastguard Worker      configs += [
1086*8975f5c5SAndroid Build Coastguard Worker        ":angle_gles1_conform_support",
1087*8975f5c5SAndroid Build Coastguard Worker        "${angle_root}:libANGLE_config",
1088*8975f5c5SAndroid Build Coastguard Worker        "${angle_root}:angle_backend_config",
1089*8975f5c5SAndroid Build Coastguard Worker      ]
1090*8975f5c5SAndroid Build Coastguard Worker    }
1091*8975f5c5SAndroid Build Coastguard Worker  }
1092*8975f5c5SAndroid Build Coastguard Worker  source_set("angle_gles1_primtest_no_gtest") {
1093*8975f5c5SAndroid Build Coastguard Worker    configs += [
1094*8975f5c5SAndroid Build Coastguard Worker      ":angle_gles1_conform_support",
1095*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:internal_config",
1096*8975f5c5SAndroid Build Coastguard Worker    ]
1097*8975f5c5SAndroid Build Coastguard Worker
1098*8975f5c5SAndroid Build Coastguard Worker    public_configs = [
1099*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:angle_util_config",
1100*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:gl_prototypes",
1101*8975f5c5SAndroid Build Coastguard Worker    ]
1102*8975f5c5SAndroid Build Coastguard Worker
1103*8975f5c5SAndroid Build Coastguard Worker    testonly = true
1104*8975f5c5SAndroid Build Coastguard Worker
1105*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1106*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_static",
1107*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:angle_util_static",
1108*8975f5c5SAndroid Build Coastguard Worker    ]
1109*8975f5c5SAndroid Build Coastguard Worker
1110*8975f5c5SAndroid Build Coastguard Worker    sources = [
1111*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/alias.c",
1112*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/alpha.c",
1113*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/blend.c",
1114*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/depth.c",
1115*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/dither.c",
1116*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/driver.c",
1117*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/driver.h",
1118*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/fog.c",
1119*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/hint.c",
1120*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/light.c",
1121*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/logic.c",
1122*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/prim.c",
1123*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/scissor.c",
1124*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/shade.c",
1125*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/shell.c",
1126*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/shell.h",
1127*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/stencil.c",
1128*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/texture.c",
1129*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/primtest/tproto.h",
1130*8975f5c5SAndroid Build Coastguard Worker    ]
1131*8975f5c5SAndroid Build Coastguard Worker
1132*8975f5c5SAndroid Build Coastguard Worker    sources += angle_gles1_conform_common_source
1133*8975f5c5SAndroid Build Coastguard Worker
1134*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
1135*8975f5c5SAndroid Build Coastguard Worker      cflags_c = [ "-Wno-shadow" ]
1136*8975f5c5SAndroid Build Coastguard Worker    }
1137*8975f5c5SAndroid Build Coastguard Worker  }
1138*8975f5c5SAndroid Build Coastguard Worker
1139*8975f5c5SAndroid Build Coastguard Worker  angle_test("angle_gles1_primtest_tests") {
1140*8975f5c5SAndroid Build Coastguard Worker    deps = [
1141*8975f5c5SAndroid Build Coastguard Worker      ":angle_common_test_utils_static",
1142*8975f5c5SAndroid Build Coastguard Worker      ":angle_gles1_primtest_no_gtest",
1143*8975f5c5SAndroid Build Coastguard Worker    ]
1144*8975f5c5SAndroid Build Coastguard Worker
1145*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "$gles1_conform_root/conform" ]
1146*8975f5c5SAndroid Build Coastguard Worker
1147*8975f5c5SAndroid Build Coastguard Worker    sources = [
1148*8975f5c5SAndroid Build Coastguard Worker      "angle_generic_tests_main.cpp",
1149*8975f5c5SAndroid Build Coastguard Worker      "gles1_conformance_tests/PrimtestTests.cpp",
1150*8975f5c5SAndroid Build Coastguard Worker      "test_utils/ANGLETest.cpp",
1151*8975f5c5SAndroid Build Coastguard Worker      "test_utils/ANGLETest.h",
1152*8975f5c5SAndroid Build Coastguard Worker    ]
1153*8975f5c5SAndroid Build Coastguard Worker
1154*8975f5c5SAndroid Build Coastguard Worker    configs += [
1155*8975f5c5SAndroid Build Coastguard Worker      ":angle_gles1_conform_support",
1156*8975f5c5SAndroid Build Coastguard Worker      "${angle_root}:angle_backend_config",
1157*8975f5c5SAndroid Build Coastguard Worker    ]
1158*8975f5c5SAndroid Build Coastguard Worker  }
1159*8975f5c5SAndroid Build Coastguard Worker  source_set("angle_gles1_covegl_no_gtest_source") {
1160*8975f5c5SAndroid Build Coastguard Worker    configs += [
1161*8975f5c5SAndroid Build Coastguard Worker      ":angle_gles1_conform_support",
1162*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:internal_config",
1163*8975f5c5SAndroid Build Coastguard Worker    ]
1164*8975f5c5SAndroid Build Coastguard Worker
1165*8975f5c5SAndroid Build Coastguard Worker    public_configs = [
1166*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:angle_util_config",
1167*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:gl_prototypes",
1168*8975f5c5SAndroid Build Coastguard Worker    ]
1169*8975f5c5SAndroid Build Coastguard Worker
1170*8975f5c5SAndroid Build Coastguard Worker    testonly = true
1171*8975f5c5SAndroid Build Coastguard Worker
1172*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1173*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_static",
1174*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:angle_util_static",
1175*8975f5c5SAndroid Build Coastguard Worker    ]
1176*8975f5c5SAndroid Build Coastguard Worker
1177*8975f5c5SAndroid Build Coastguard Worker    sources = [
1178*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/covegl/enum.c",
1179*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/covegl/native.h",
1180*8975f5c5SAndroid Build Coastguard Worker      "$gles1_conform_root/conform/covegl/test.c",
1181*8975f5c5SAndroid Build Coastguard Worker    ]
1182*8975f5c5SAndroid Build Coastguard Worker
1183*8975f5c5SAndroid Build Coastguard Worker    sources += angle_gles1_conform_common_source
1184*8975f5c5SAndroid Build Coastguard Worker
1185*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
1186*8975f5c5SAndroid Build Coastguard Worker      cflags_c = [ "-Wno-shadow" ]
1187*8975f5c5SAndroid Build Coastguard Worker    }
1188*8975f5c5SAndroid Build Coastguard Worker
1189*8975f5c5SAndroid Build Coastguard Worker    if (!is_win && !is_linux && !is_chromeos) {
1190*8975f5c5SAndroid Build Coastguard Worker      defines = [ "NULLWS" ]
1191*8975f5c5SAndroid Build Coastguard Worker    }
1192*8975f5c5SAndroid Build Coastguard Worker  }
1193*8975f5c5SAndroid Build Coastguard Worker
1194*8975f5c5SAndroid Build Coastguard Worker  angle_test("angle_gles1_covegl_no_gtest") {
1195*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_gles1_covegl_no_gtest_source" ]
1196*8975f5c5SAndroid Build Coastguard Worker
1197*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "$gles1_conform_root" ]
1198*8975f5c5SAndroid Build Coastguard Worker
1199*8975f5c5SAndroid Build Coastguard Worker    sources = [ "$gles1_conform_root/conform/covegl/shell.c" ]
1200*8975f5c5SAndroid Build Coastguard Worker
1201*8975f5c5SAndroid Build Coastguard Worker    if (is_win) {
1202*8975f5c5SAndroid Build Coastguard Worker      sources += [ "$gles1_conform_root/conform/covegl/native_w32.c" ]
1203*8975f5c5SAndroid Build Coastguard Worker    } else if (is_linux || is_chromeos) {
1204*8975f5c5SAndroid Build Coastguard Worker      sources += [ "$gles1_conform_root/conform/covegl/native.c" ]
1205*8975f5c5SAndroid Build Coastguard Worker    } else {
1206*8975f5c5SAndroid Build Coastguard Worker      sources += [ "$gles1_conform_root/conform/covegl/native_nws.c" ]
1207*8975f5c5SAndroid Build Coastguard Worker      defines += [ "NULLWS" ]
1208*8975f5c5SAndroid Build Coastguard Worker    }
1209*8975f5c5SAndroid Build Coastguard Worker
1210*8975f5c5SAndroid Build Coastguard Worker    configs += [ "${angle_root}:angle_backend_config" ]
1211*8975f5c5SAndroid Build Coastguard Worker
1212*8975f5c5SAndroid Build Coastguard Worker    defines += [ "COMMON" ]
1213*8975f5c5SAndroid Build Coastguard Worker
1214*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
1215*8975f5c5SAndroid Build Coastguard Worker      cflags_c = [ "-Wno-shadow" ]
1216*8975f5c5SAndroid Build Coastguard Worker    }
1217*8975f5c5SAndroid Build Coastguard Worker
1218*8975f5c5SAndroid Build Coastguard Worker    if (is_win) {
1219*8975f5c5SAndroid Build Coastguard Worker      if (is_clang) {
1220*8975f5c5SAndroid Build Coastguard Worker        cflags = [ "-Wno-incompatible-pointer-types" ]
1221*8975f5c5SAndroid Build Coastguard Worker      } else {
1222*8975f5c5SAndroid Build Coastguard Worker        cflags = [ "/wd4133" ]  # 'function': incompatible types
1223*8975f5c5SAndroid Build Coastguard Worker      }
1224*8975f5c5SAndroid Build Coastguard Worker
1225*8975f5c5SAndroid Build Coastguard Worker      suppressed_configs += [
1226*8975f5c5SAndroid Build Coastguard Worker        "//build/config/win:lean_and_mean",
1227*8975f5c5SAndroid Build Coastguard Worker        "//build/config/win:nominmax",
1228*8975f5c5SAndroid Build Coastguard Worker        "//build/config/win:unicode",
1229*8975f5c5SAndroid Build Coastguard Worker      ]
1230*8975f5c5SAndroid Build Coastguard Worker    }
1231*8975f5c5SAndroid Build Coastguard Worker  }
1232*8975f5c5SAndroid Build Coastguard Worker}
1233*8975f5c5SAndroid Build Coastguard Worker
1234*8975f5c5SAndroid Build Coastguard Worker###-----------------------------------------------------
1235*8975f5c5SAndroid Build Coastguard Worker### dEQP tests
1236*8975f5c5SAndroid Build Coastguard Worker###-----------------------------------------------------
1237*8975f5c5SAndroid Build Coastguard Worker
1238*8975f5c5SAndroid Build Coastguard Workerif (build_angle_deqp_tests && !is_fuchsia) {
1239*8975f5c5SAndroid Build Coastguard Worker  import("deqp_support/deqp.gni")
1240*8975f5c5SAndroid Build Coastguard Worker  import("deqp_support/deqp_data_autogen.gni")
1241*8975f5c5SAndroid Build Coastguard Worker
1242*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_support") {
1243*8975f5c5SAndroid Build Coastguard Worker    include_dirs = deqp_include_dirs
1244*8975f5c5SAndroid Build Coastguard Worker    if (is_win && !is_clang) {
1245*8975f5c5SAndroid Build Coastguard Worker      include_dirs += [ "$deqp_path/framework/platform/win32" ]
1246*8975f5c5SAndroid Build Coastguard Worker      cflags = [
1247*8975f5c5SAndroid Build Coastguard Worker        "/EHsc",  # dEQP requires exceptions
1248*8975f5c5SAndroid Build Coastguard Worker        "/wd4091",  # typedef ignored when no variable is declared
1249*8975f5c5SAndroid Build Coastguard Worker        "/wd4100",
1250*8975f5c5SAndroid Build Coastguard Worker        "/wd4101",  # unreferenced local variable
1251*8975f5c5SAndroid Build Coastguard Worker        "/wd4125",  # decimal digit terminates octal escape sequence
1252*8975f5c5SAndroid Build Coastguard Worker        "/wd4127",  # conditional expression constant
1253*8975f5c5SAndroid Build Coastguard Worker        "/wd4244",  # possible loss of data
1254*8975f5c5SAndroid Build Coastguard Worker        "/wd4245",  # argument signed/unsigned mismatch
1255*8975f5c5SAndroid Build Coastguard Worker        "/wd4297",  # function assumed not to throw an exception but does
1256*8975f5c5SAndroid Build Coastguard Worker        "/wd4302",  # truncation
1257*8975f5c5SAndroid Build Coastguard Worker        "/wd4311",  # pointer truncation
1258*8975f5c5SAndroid Build Coastguard Worker        "/wd4389",  # signed/unsigned mismatch
1259*8975f5c5SAndroid Build Coastguard Worker        "/wd4510",  # default constructor could not be generated
1260*8975f5c5SAndroid Build Coastguard Worker        "/wd4512",
1261*8975f5c5SAndroid Build Coastguard Worker        "/wd4610",  # cannot be instantiated
1262*8975f5c5SAndroid Build Coastguard Worker        "/wd4611",  # setjmp interaction non-portable
1263*8975f5c5SAndroid Build Coastguard Worker        "/wd4701",  # potentially uninit used
1264*8975f5c5SAndroid Build Coastguard Worker        "/wd4702",  # unreachable code
1265*8975f5c5SAndroid Build Coastguard Worker        "/wd4706",  # assignment within conditional expression
1266*8975f5c5SAndroid Build Coastguard Worker        "/wd4834",  # discarding return value of function with 'nodiscard'
1267*8975f5c5SAndroid Build Coastguard Worker                    # attribute
1268*8975f5c5SAndroid Build Coastguard Worker        "/wd4838",  # conversion requires a narrowing conversion
1269*8975f5c5SAndroid Build Coastguard Worker        "/wd4996",  # deprecated
1270*8975f5c5SAndroid Build Coastguard Worker      ]
1271*8975f5c5SAndroid Build Coastguard Worker    }
1272*8975f5c5SAndroid Build Coastguard Worker
1273*8975f5c5SAndroid Build Coastguard Worker    defines = [
1274*8975f5c5SAndroid Build Coastguard Worker      "DEQP_SUPPORT_GLES31=1",
1275*8975f5c5SAndroid Build Coastguard Worker      "DEQP_SUPPORT_GLES3=1",
1276*8975f5c5SAndroid Build Coastguard Worker      "DEQP_SUPPORT_GLES2=1",
1277*8975f5c5SAndroid Build Coastguard Worker      "DEQP_SUPPORT_EGL=1",
1278*8975f5c5SAndroid Build Coastguard Worker      "DEQP_TARGET_NAME=\"angle\"",
1279*8975f5c5SAndroid Build Coastguard Worker      "DEQP_GLES31_RUNTIME_LOAD=1",
1280*8975f5c5SAndroid Build Coastguard Worker      "DEQP_GLES3_RUNTIME_LOAD=1",
1281*8975f5c5SAndroid Build Coastguard Worker      "DEQP_GLES2_RUNTIME_LOAD=1",
1282*8975f5c5SAndroid Build Coastguard Worker      "QP_SUPPORT_PNG=1",
1283*8975f5c5SAndroid Build Coastguard Worker      "_HAS_EXCEPTIONS=1",
1284*8975f5c5SAndroid Build Coastguard Worker      "_MBCS",
1285*8975f5c5SAndroid Build Coastguard Worker      "ANGLE_DEQP_DATA_DIR=\"gen/vk_gl_cts_data/data\"",
1286*8975f5c5SAndroid Build Coastguard Worker    ]
1287*8975f5c5SAndroid Build Coastguard Worker
1288*8975f5c5SAndroid Build Coastguard Worker    if (is_android) {
1289*8975f5c5SAndroid Build Coastguard Worker      include_dirs += [ "$deqp_path/framework/platform/android" ]
1290*8975f5c5SAndroid Build Coastguard Worker
1291*8975f5c5SAndroid Build Coastguard Worker      _android_api = android64_ndk_api_level
1292*8975f5c5SAndroid Build Coastguard Worker      if (!angle_64bit_current_cpu) {
1293*8975f5c5SAndroid Build Coastguard Worker        _android_api = android32_ndk_api_level
1294*8975f5c5SAndroid Build Coastguard Worker      }
1295*8975f5c5SAndroid Build Coastguard Worker
1296*8975f5c5SAndroid Build Coastguard Worker      defines += [ "DE_ANDROID_API=" + "${_android_api}" ]
1297*8975f5c5SAndroid Build Coastguard Worker    }
1298*8975f5c5SAndroid Build Coastguard Worker
1299*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
1300*8975f5c5SAndroid Build Coastguard Worker      # TODO(jmadill): Remove this once we fix dEQP.
1301*8975f5c5SAndroid Build Coastguard Worker      cflags_c = [ "-Wno-unused-local-typedef" ]
1302*8975f5c5SAndroid Build Coastguard Worker      cflags_cc = [
1303*8975f5c5SAndroid Build Coastguard Worker        "-Wno-sizeof-array-div",  # https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/2127
1304*8975f5c5SAndroid Build Coastguard Worker        "-Wno-string-conversion",  # implicit conversion turns string literal
1305*8975f5c5SAndroid Build Coastguard Worker                                   # into bool
1306*8975f5c5SAndroid Build Coastguard Worker        "-Wno-unused-function",
1307*8975f5c5SAndroid Build Coastguard Worker        "-Wno-unused-local-typedef",
1308*8975f5c5SAndroid Build Coastguard Worker        "-Wno-unused-result",  # ignoring return value of function declared with
1309*8975f5c5SAndroid Build Coastguard Worker                               # 'nodiscard' attribute
1310*8975f5c5SAndroid Build Coastguard Worker      ]
1311*8975f5c5SAndroid Build Coastguard Worker      if (!is_win) {
1312*8975f5c5SAndroid Build Coastguard Worker        # Not supported by clang-cl
1313*8975f5c5SAndroid Build Coastguard Worker        cflags_cc += [
1314*8975f5c5SAndroid Build Coastguard Worker          "-fwrapv",  # Treat signed integer overflow as two's complement
1315*8975f5c5SAndroid Build Coastguard Worker                      # https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/37
1316*8975f5c5SAndroid Build Coastguard Worker                      # https://android.googlesource.com/platform/external/deqp/+/ae6c306e39080de59a8535cf1797b27951dcaa6c%5E%21/
1317*8975f5c5SAndroid Build Coastguard Worker        ]
1318*8975f5c5SAndroid Build Coastguard Worker      }
1319*8975f5c5SAndroid Build Coastguard Worker    }
1320*8975f5c5SAndroid Build Coastguard Worker
1321*8975f5c5SAndroid Build Coastguard Worker    # Ask the system headers to expose all the regular function otherwise
1322*8975f5c5SAndroid Build Coastguard Worker    # dEQP doesn't compile and produces warnings about implicitly defined
1323*8975f5c5SAndroid Build Coastguard Worker    # functions.
1324*8975f5c5SAndroid Build Coastguard Worker    if (is_linux || is_chromeos) {
1325*8975f5c5SAndroid Build Coastguard Worker      # This has to be GNU_SOURCE as on Linux dEQP uses syscall()
1326*8975f5c5SAndroid Build Coastguard Worker      defines += [ "_GNU_SOURCE" ]
1327*8975f5c5SAndroid Build Coastguard Worker    }
1328*8975f5c5SAndroid Build Coastguard Worker    if (is_android) {
1329*8975f5c5SAndroid Build Coastguard Worker      # _XOPEN_SOURCE=600 is what is used in deqp/src/Android.mk
1330*8975f5c5SAndroid Build Coastguard Worker      defines += [ "_XOPEN_SOURCE=600" ]
1331*8975f5c5SAndroid Build Coastguard Worker    } else if (is_apple) {
1332*8975f5c5SAndroid Build Coastguard Worker      # Work-around for https://github.com/llvm/llvm-project/issues/117630
1333*8975f5c5SAndroid Build Coastguard Worker      defines += [ "_XOPEN_SOURCE=700" ]
1334*8975f5c5SAndroid Build Coastguard Worker    }
1335*8975f5c5SAndroid Build Coastguard Worker  }
1336*8975f5c5SAndroid Build Coastguard Worker
1337*8975f5c5SAndroid Build Coastguard Worker  deqp_undefine_configs = [
1338*8975f5c5SAndroid Build Coastguard Worker    "//build/config/compiler:chromium_code",
1339*8975f5c5SAndroid Build Coastguard Worker    "//build/config/compiler:no_exceptions",
1340*8975f5c5SAndroid Build Coastguard Worker    "//build/config/compiler:no_rtti",
1341*8975f5c5SAndroid Build Coastguard Worker    "${angle_root}:constructor_and_destructor_warnings",
1342*8975f5c5SAndroid Build Coastguard Worker    "${angle_root}:extra_warnings",
1343*8975f5c5SAndroid Build Coastguard Worker  ]
1344*8975f5c5SAndroid Build Coastguard Worker
1345*8975f5c5SAndroid Build Coastguard Worker  if (is_win) {
1346*8975f5c5SAndroid Build Coastguard Worker    deqp_undefine_configs += [
1347*8975f5c5SAndroid Build Coastguard Worker      "//build/config/win:lean_and_mean",
1348*8975f5c5SAndroid Build Coastguard Worker      "//build/config/win:nominmax",
1349*8975f5c5SAndroid Build Coastguard Worker      "//build/config/win:unicode",
1350*8975f5c5SAndroid Build Coastguard Worker    ]
1351*8975f5c5SAndroid Build Coastguard Worker  }
1352*8975f5c5SAndroid Build Coastguard Worker
1353*8975f5c5SAndroid Build Coastguard Worker  set_defaults("angle_deqp_source_set") {
1354*8975f5c5SAndroid Build Coastguard Worker    public_configs = []
1355*8975f5c5SAndroid Build Coastguard Worker    configs = angle_common_configs
1356*8975f5c5SAndroid Build Coastguard Worker    cflags = []
1357*8975f5c5SAndroid Build Coastguard Worker  }
1358*8975f5c5SAndroid Build Coastguard Worker
1359*8975f5c5SAndroid Build Coastguard Worker  template("angle_deqp_source_set") {
1360*8975f5c5SAndroid Build Coastguard Worker    angle_source_set(target_name) {
1361*8975f5c5SAndroid Build Coastguard Worker      testonly = true
1362*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker, "*")
1363*8975f5c5SAndroid Build Coastguard Worker      suppressed_configs += deqp_undefine_configs
1364*8975f5c5SAndroid Build Coastguard Worker
1365*8975f5c5SAndroid Build Coastguard Worker      if (is_clang) {
1366*8975f5c5SAndroid Build Coastguard Worker        cflags += [
1367*8975f5c5SAndroid Build Coastguard Worker          # Suppress a spurious header warning. http://crbug.com/995046
1368*8975f5c5SAndroid Build Coastguard Worker          "-Wno-nonportable-include-path",
1369*8975f5c5SAndroid Build Coastguard Worker        ]
1370*8975f5c5SAndroid Build Coastguard Worker      }
1371*8975f5c5SAndroid Build Coastguard Worker    }
1372*8975f5c5SAndroid Build Coastguard Worker  }
1373*8975f5c5SAndroid Build Coastguard Worker
1374*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_framework_debase_config") {
1375*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "$deqp_path/framework/delibs/debase" ]
1376*8975f5c5SAndroid Build Coastguard Worker  }
1377*8975f5c5SAndroid Build Coastguard Worker
1378*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_framework_debase") {
1379*8975f5c5SAndroid Build Coastguard Worker    public_configs += [ ":angle_deqp_framework_debase_config" ]
1380*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_framework_debase_sources
1381*8975f5c5SAndroid Build Coastguard Worker  }
1382*8975f5c5SAndroid Build Coastguard Worker
1383*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_framework_decpp_config") {
1384*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "$deqp_path/framework/delibs/decpp" ]
1385*8975f5c5SAndroid Build Coastguard Worker  }
1386*8975f5c5SAndroid Build Coastguard Worker
1387*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_framework_decpp") {
1388*8975f5c5SAndroid Build Coastguard Worker    public_configs += [
1389*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_support",
1390*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_decpp_config",
1391*8975f5c5SAndroid Build Coastguard Worker      "//build/config/compiler:exceptions",
1392*8975f5c5SAndroid Build Coastguard Worker      "//build/config/compiler:no_chromium_code",
1393*8975f5c5SAndroid Build Coastguard Worker    ]
1394*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
1395*8975f5c5SAndroid Build Coastguard Worker      cflags_cc = [
1396*8975f5c5SAndroid Build Coastguard Worker        # Supresses self assign warnings in SharedPtr_selfTest
1397*8975f5c5SAndroid Build Coastguard Worker        # Can be removed if dEQP or clang are fixed
1398*8975f5c5SAndroid Build Coastguard Worker        "-Wno-self-assign",
1399*8975f5c5SAndroid Build Coastguard Worker      ]
1400*8975f5c5SAndroid Build Coastguard Worker    }
1401*8975f5c5SAndroid Build Coastguard Worker
1402*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1403*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_debase",
1404*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_delibs",
1405*8975f5c5SAndroid Build Coastguard Worker    ]
1406*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_framework_decpp_sources
1407*8975f5c5SAndroid Build Coastguard Worker  }
1408*8975f5c5SAndroid Build Coastguard Worker
1409*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_framework_xexml_config") {
1410*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "$deqp_path/framework/xexml" ]
1411*8975f5c5SAndroid Build Coastguard Worker  }
1412*8975f5c5SAndroid Build Coastguard Worker
1413*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_framework_xexml") {
1414*8975f5c5SAndroid Build Coastguard Worker    public_configs += [
1415*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_support",
1416*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_decpp_config",
1417*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_delibs_config",
1418*8975f5c5SAndroid Build Coastguard Worker      "//build/config/compiler:exceptions",
1419*8975f5c5SAndroid Build Coastguard Worker      "//build/config/compiler:no_chromium_code",
1420*8975f5c5SAndroid Build Coastguard Worker    ]
1421*8975f5c5SAndroid Build Coastguard Worker
1422*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1423*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_debase",
1424*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_decpp",
1425*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_delibs",
1426*8975f5c5SAndroid Build Coastguard Worker    ]
1427*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_framework_xexml_sources
1428*8975f5c5SAndroid Build Coastguard Worker  }
1429*8975f5c5SAndroid Build Coastguard Worker
1430*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_libtester_config") {
1431*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_LIBTESTER_IMPLEMENTATION" ]
1432*8975f5c5SAndroid Build Coastguard Worker
1433*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
1434*8975f5c5SAndroid Build Coastguard Worker      # TODO(jmadill): Remove this once we fix dEQP.
1435*8975f5c5SAndroid Build Coastguard Worker      cflags_cc = [
1436*8975f5c5SAndroid Build Coastguard Worker        "-Wno-delete-non-virtual-dtor",
1437*8975f5c5SAndroid Build Coastguard Worker        "-Wno-deprecated",
1438*8975f5c5SAndroid Build Coastguard Worker
1439*8975f5c5SAndroid Build Coastguard Worker        # Supresses self assign warning in setLumSat
1440*8975f5c5SAndroid Build Coastguard Worker        # Can be removed if dEQP or clang are fixed
1441*8975f5c5SAndroid Build Coastguard Worker        "-Wno-self-assign",
1442*8975f5c5SAndroid Build Coastguard Worker      ]
1443*8975f5c5SAndroid Build Coastguard Worker    }
1444*8975f5c5SAndroid Build Coastguard Worker  }
1445*8975f5c5SAndroid Build Coastguard Worker
1446*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_framework_delibs_config") {
1447*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [
1448*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/delibs/debase",
1449*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/delibs/depool",
1450*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/delibs/dethread",
1451*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/delibs/deutil",
1452*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/delibs/destream",
1453*8975f5c5SAndroid Build Coastguard Worker    ]
1454*8975f5c5SAndroid Build Coastguard Worker
1455*8975f5c5SAndroid Build Coastguard Worker    # https://github.com/KhronosGroup/VK-GL-CTS/commit/9f306457b48b3f8258ca44462003ef39b80a7515
1456*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
1457*8975f5c5SAndroid Build Coastguard Worker      if (target_cpu == "arm") {
1458*8975f5c5SAndroid Build Coastguard Worker        defines = [ "DE_FENV_ACCESS_ON=" ]
1459*8975f5c5SAndroid Build Coastguard Worker      } else {
1460*8975f5c5SAndroid Build Coastguard Worker        defines = [ "DE_FENV_ACCESS_ON=_Pragma(\"STDC FENV_ACCESS ON\")" ]
1461*8975f5c5SAndroid Build Coastguard Worker      }
1462*8975f5c5SAndroid Build Coastguard Worker    } else if (is_win) {
1463*8975f5c5SAndroid Build Coastguard Worker      defines = [ "DE_FENV_ACCESS_ON=__pragma(fenv_access (on))" ]
1464*8975f5c5SAndroid Build Coastguard Worker    }
1465*8975f5c5SAndroid Build Coastguard Worker  }
1466*8975f5c5SAndroid Build Coastguard Worker
1467*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_framework_delibs") {
1468*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_framework_delibs_sources
1469*8975f5c5SAndroid Build Coastguard Worker
1470*8975f5c5SAndroid Build Coastguard Worker    if (is_win) {
1471*8975f5c5SAndroid Build Coastguard Worker      sources += deqp_framework_delibs_sources_win
1472*8975f5c5SAndroid Build Coastguard Worker    }
1473*8975f5c5SAndroid Build Coastguard Worker    if (is_linux || is_chromeos || is_android || is_apple) {
1474*8975f5c5SAndroid Build Coastguard Worker      sources += deqp_framework_delibs_sources_unix
1475*8975f5c5SAndroid Build Coastguard Worker    }
1476*8975f5c5SAndroid Build Coastguard Worker
1477*8975f5c5SAndroid Build Coastguard Worker    public_configs = [
1478*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_delibs_config",
1479*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_support",
1480*8975f5c5SAndroid Build Coastguard Worker    ]
1481*8975f5c5SAndroid Build Coastguard Worker
1482*8975f5c5SAndroid Build Coastguard Worker    public_deps = [ ":angle_deqp_framework_debase" ]
1483*8975f5c5SAndroid Build Coastguard Worker  }
1484*8975f5c5SAndroid Build Coastguard Worker
1485*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_framework_common_config") {
1486*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [
1487*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/common",
1488*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/randomshaders",
1489*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/referencerenderer",
1490*8975f5c5SAndroid Build Coastguard Worker    ]
1491*8975f5c5SAndroid Build Coastguard Worker  }
1492*8975f5c5SAndroid Build Coastguard Worker
1493*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_framework_common") {
1494*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_framework_common_sources
1495*8975f5c5SAndroid Build Coastguard Worker    public_configs = [ ":angle_deqp_framework_common_config" ]
1496*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1497*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_decpp",
1498*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_qphelper",
1499*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_xexml",
1500*8975f5c5SAndroid Build Coastguard Worker    ]
1501*8975f5c5SAndroid Build Coastguard Worker  }
1502*8975f5c5SAndroid Build Coastguard Worker
1503*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_framework_opengl_config") {
1504*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [
1505*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/egl/wrapper",
1506*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/opengl",
1507*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/opengl/simplereference",
1508*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/opengl/wrapper",
1509*8975f5c5SAndroid Build Coastguard Worker    ]
1510*8975f5c5SAndroid Build Coastguard Worker  }
1511*8975f5c5SAndroid Build Coastguard Worker
1512*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_framework_opengl") {
1513*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_framework_opengl_sources
1514*8975f5c5SAndroid Build Coastguard Worker    public_configs = [ ":angle_deqp_framework_opengl_config" ]
1515*8975f5c5SAndroid Build Coastguard Worker    public_deps = [ ":angle_deqp_framework_common" ]
1516*8975f5c5SAndroid Build Coastguard Worker  }
1517*8975f5c5SAndroid Build Coastguard Worker
1518*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_framework_egl_config") {
1519*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [
1520*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/egl",
1521*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/framework/egl/wrapper",
1522*8975f5c5SAndroid Build Coastguard Worker    ]
1523*8975f5c5SAndroid Build Coastguard Worker  }
1524*8975f5c5SAndroid Build Coastguard Worker
1525*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_framework_egl") {
1526*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_framework_egl_sources
1527*8975f5c5SAndroid Build Coastguard Worker    public_configs = [ ":angle_deqp_framework_egl_config" ]
1528*8975f5c5SAndroid Build Coastguard Worker    public_deps = [ ":angle_deqp_framework_opengl" ]
1529*8975f5c5SAndroid Build Coastguard Worker  }
1530*8975f5c5SAndroid Build Coastguard Worker
1531*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_framework_qphelper_config") {
1532*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "$deqp_path/framework/qphelper" ]
1533*8975f5c5SAndroid Build Coastguard Worker  }
1534*8975f5c5SAndroid Build Coastguard Worker
1535*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_framework_qphelper") {
1536*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_framework_qphelper_sources
1537*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1538*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_delibs",
1539*8975f5c5SAndroid Build Coastguard Worker      "${angle_libpng_dir}:libpng",
1540*8975f5c5SAndroid Build Coastguard Worker    ]
1541*8975f5c5SAndroid Build Coastguard Worker    public_configs = [ ":angle_deqp_framework_qphelper_config" ]
1542*8975f5c5SAndroid Build Coastguard Worker  }
1543*8975f5c5SAndroid Build Coastguard Worker
1544*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_glshared_config") {
1545*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "$deqp_path/modules/glshared" ]
1546*8975f5c5SAndroid Build Coastguard Worker  }
1547*8975f5c5SAndroid Build Coastguard Worker
1548*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_glshared") {
1549*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_glshared_sources
1550*8975f5c5SAndroid Build Coastguard Worker    public_deps = [ ":angle_deqp_framework_opengl" ]
1551*8975f5c5SAndroid Build Coastguard Worker    public_configs = [ ":angle_deqp_glshared_config" ]
1552*8975f5c5SAndroid Build Coastguard Worker  }
1553*8975f5c5SAndroid Build Coastguard Worker
1554*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_framework_platform") {
1555*8975f5c5SAndroid Build Coastguard Worker    if (is_ios) {
1556*8975f5c5SAndroid Build Coastguard Worker      # shared libraries are hidden inside ios_framework_bundle, but we include headers from them
1557*8975f5c5SAndroid Build Coastguard Worker      check_includes = false
1558*8975f5c5SAndroid Build Coastguard Worker    }
1559*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_framework_platform_sources
1560*8975f5c5SAndroid Build Coastguard Worker    libs = []
1561*8975f5c5SAndroid Build Coastguard Worker    if (is_win) {
1562*8975f5c5SAndroid Build Coastguard Worker      sources += [
1563*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/win32/tcuWGL.cpp",
1564*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/win32/tcuWGLContextFactory.cpp",
1565*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/win32/tcuWin32EGLNativeDisplayFactory.cpp",
1566*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/win32/tcuWin32Window.cpp",
1567*8975f5c5SAndroid Build Coastguard Worker      ]
1568*8975f5c5SAndroid Build Coastguard Worker    }
1569*8975f5c5SAndroid Build Coastguard Worker    if (is_linux) {
1570*8975f5c5SAndroid Build Coastguard Worker      sources += [
1571*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/lnx/X11/tcuLnxX11.cpp",
1572*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/lnx/X11/tcuLnxX11.hpp",
1573*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp",
1574*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.hpp",
1575*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/lnx/tcuLnx.cpp",
1576*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/lnx/tcuLnx.hpp",
1577*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/lnx/tcuLnxEglPlatform.cpp",
1578*8975f5c5SAndroid Build Coastguard Worker        "$deqp_path/framework/platform/lnx/tcuLnxEglPlatform.hpp",
1579*8975f5c5SAndroid Build Coastguard Worker      ]
1580*8975f5c5SAndroid Build Coastguard Worker    }
1581*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1582*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_common",
1583*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_egl",
1584*8975f5c5SAndroid Build Coastguard Worker    ]
1585*8975f5c5SAndroid Build Coastguard Worker  }
1586*8975f5c5SAndroid Build Coastguard Worker
1587*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_libtester") {
1588*8975f5c5SAndroid Build Coastguard Worker    if (is_ios) {
1589*8975f5c5SAndroid Build Coastguard Worker      # shared libraries are hidden inside ios_framework_bundle, but we include headers from them
1590*8975f5c5SAndroid Build Coastguard Worker      check_includes = false
1591*8975f5c5SAndroid Build Coastguard Worker    }
1592*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1593*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_platform",
1594*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_glshared",
1595*8975f5c5SAndroid Build Coastguard Worker      "$angle_root:angle_common",
1596*8975f5c5SAndroid Build Coastguard Worker      "$angle_root/util:angle_util",
1597*8975f5c5SAndroid Build Coastguard Worker    ]
1598*8975f5c5SAndroid Build Coastguard Worker
1599*8975f5c5SAndroid Build Coastguard Worker    data_deps = [ "${angle_root}:angle" ]
1600*8975f5c5SAndroid Build Coastguard Worker
1601*8975f5c5SAndroid Build Coastguard Worker    configs += [ "${angle_root}:library_name_config" ]
1602*8975f5c5SAndroid Build Coastguard Worker    public_configs += [
1603*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_libtester_config",
1604*8975f5c5SAndroid Build Coastguard Worker      "${angle_root}:libANGLE_config",
1605*8975f5c5SAndroid Build Coastguard Worker    ]
1606*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_libtester_sources
1607*8975f5c5SAndroid Build Coastguard Worker    if (is_android) {
1608*8975f5c5SAndroid Build Coastguard Worker      libs = [ "log" ]
1609*8975f5c5SAndroid Build Coastguard Worker    }
1610*8975f5c5SAndroid Build Coastguard Worker  }
1611*8975f5c5SAndroid Build Coastguard Worker
1612*8975f5c5SAndroid Build Coastguard Worker  set_defaults("angle_deqp_gtest") {
1613*8975f5c5SAndroid Build Coastguard Worker    deps = []
1614*8975f5c5SAndroid Build Coastguard Worker    sources = []
1615*8975f5c5SAndroid Build Coastguard Worker    data = []
1616*8975f5c5SAndroid Build Coastguard Worker    data_deps = []
1617*8975f5c5SAndroid Build Coastguard Worker  }
1618*8975f5c5SAndroid Build Coastguard Worker
1619*8975f5c5SAndroid Build Coastguard Worker  template("angle_deqp_gtest") {
1620*8975f5c5SAndroid Build Coastguard Worker    _api = target_name
1621*8975f5c5SAndroid Build Coastguard Worker
1622*8975f5c5SAndroid Build Coastguard Worker    config_name = "angle_deqp_${_api}_config"
1623*8975f5c5SAndroid Build Coastguard Worker    config(config_name) {
1624*8975f5c5SAndroid Build Coastguard Worker      defines = invoker.defines
1625*8975f5c5SAndroid Build Coastguard Worker    }
1626*8975f5c5SAndroid Build Coastguard Worker
1627*8975f5c5SAndroid Build Coastguard Worker    shared_library_name = "angle_deqp_lib${_api}"
1628*8975f5c5SAndroid Build Coastguard Worker    angle_shared_library(shared_library_name) {
1629*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker,
1630*8975f5c5SAndroid Build Coastguard Worker                             [
1631*8975f5c5SAndroid Build Coastguard Worker                               "sources",
1632*8975f5c5SAndroid Build Coastguard Worker                               "deps",
1633*8975f5c5SAndroid Build Coastguard Worker                               "data",
1634*8975f5c5SAndroid Build Coastguard Worker                               "data_deps",
1635*8975f5c5SAndroid Build Coastguard Worker                             ])
1636*8975f5c5SAndroid Build Coastguard Worker
1637*8975f5c5SAndroid Build Coastguard Worker      testonly = true
1638*8975f5c5SAndroid Build Coastguard Worker
1639*8975f5c5SAndroid Build Coastguard Worker      deps += [
1640*8975f5c5SAndroid Build Coastguard Worker        ":angle_deqp_libtester",
1641*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/util:angle_test_utils",
1642*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/util:angle_util",
1643*8975f5c5SAndroid Build Coastguard Worker      ]
1644*8975f5c5SAndroid Build Coastguard Worker
1645*8975f5c5SAndroid Build Coastguard Worker      suppressed_configs += deqp_undefine_configs
1646*8975f5c5SAndroid Build Coastguard Worker      public_configs += [ ":$config_name" ]
1647*8975f5c5SAndroid Build Coastguard Worker
1648*8975f5c5SAndroid Build Coastguard Worker      sources += [
1649*8975f5c5SAndroid Build Coastguard Worker        "deqp_support/angle_deqp_libtester.h",
1650*8975f5c5SAndroid Build Coastguard Worker        "deqp_support/angle_deqp_libtester_main.cpp",
1651*8975f5c5SAndroid Build Coastguard Worker        "deqp_support/tcuANGLEPlatform.cpp",
1652*8975f5c5SAndroid Build Coastguard Worker        "deqp_support/tcuANGLEPlatform.h",
1653*8975f5c5SAndroid Build Coastguard Worker      ]
1654*8975f5c5SAndroid Build Coastguard Worker
1655*8975f5c5SAndroid Build Coastguard Worker      if ((is_mac || is_ios) && !is_component_build) {
1656*8975f5c5SAndroid Build Coastguard Worker        ldflags = [
1657*8975f5c5SAndroid Build Coastguard Worker          "-install_name",
1658*8975f5c5SAndroid Build Coastguard Worker          "@rpath/lib${shared_library_name}.dylib",
1659*8975f5c5SAndroid Build Coastguard Worker        ]
1660*8975f5c5SAndroid Build Coastguard Worker      }
1661*8975f5c5SAndroid Build Coastguard Worker    }
1662*8975f5c5SAndroid Build Coastguard Worker
1663*8975f5c5SAndroid Build Coastguard Worker    angle_test("angle_deqp_${_api}_tests") {
1664*8975f5c5SAndroid Build Coastguard Worker      deps = [
1665*8975f5c5SAndroid Build Coastguard Worker        ":${shared_library_name}",
1666*8975f5c5SAndroid Build Coastguard Worker        "$angle_root:angle_common",
1667*8975f5c5SAndroid Build Coastguard Worker        "$angle_root/util:angle_util",
1668*8975f5c5SAndroid Build Coastguard Worker      ]
1669*8975f5c5SAndroid Build Coastguard Worker
1670*8975f5c5SAndroid Build Coastguard Worker      # Must be included outside of the source set for the define
1671*8975f5c5SAndroid Build Coastguard Worker      sources = [
1672*8975f5c5SAndroid Build Coastguard Worker        "angle_deqp_tests_main.cpp",
1673*8975f5c5SAndroid Build Coastguard Worker        "deqp_support/angle_deqp_gtest.cpp",
1674*8975f5c5SAndroid Build Coastguard Worker      ]
1675*8975f5c5SAndroid Build Coastguard Worker
1676*8975f5c5SAndroid Build Coastguard Worker      expectations_file = "deqp_${_api}_test_expectations.txt"
1677*8975f5c5SAndroid Build Coastguard Worker      if (defined(invoker.expectations_file)) {
1678*8975f5c5SAndroid Build Coastguard Worker        expectations_file = invoker.expectations_file
1679*8975f5c5SAndroid Build Coastguard Worker      }
1680*8975f5c5SAndroid Build Coastguard Worker      data = [
1681*8975f5c5SAndroid Build Coastguard Worker        "deqp_support/${expectations_file}",
1682*8975f5c5SAndroid Build Coastguard Worker        "${invoker.mustpass_dir}/${invoker.mustpass_name}",
1683*8975f5c5SAndroid Build Coastguard Worker      ]
1684*8975f5c5SAndroid Build Coastguard Worker    }
1685*8975f5c5SAndroid Build Coastguard Worker  }
1686*8975f5c5SAndroid Build Coastguard Worker
1687*8975f5c5SAndroid Build Coastguard Worker  _android_mustpass = "$deqp_path/android/cts/main"
1688*8975f5c5SAndroid Build Coastguard Worker  _aosp_egl_mustpass = "$deqp_path/external/openglcts/data/gl_cts/data/mustpass/egl/aosp_mustpass/main"
1689*8975f5c5SAndroid Build Coastguard Worker  _aosp_gles_mustpass = "$deqp_path/external/openglcts/data/gl_cts/data/mustpass/gles/aosp_mustpass/main"
1690*8975f5c5SAndroid Build Coastguard Worker  _khronos_gl_mustpass = "$deqp_path/external/openglcts/data/gl_cts/data/mustpass/gl/khronos_mustpass/main"
1691*8975f5c5SAndroid Build Coastguard Worker  _khronos_gles_mustpass = "$deqp_path/external/openglcts/data/gl_cts/data/mustpass/gles/khronos_mustpass/main"
1692*8975f5c5SAndroid Build Coastguard Worker  _khronos_gles_noctx_mustpass = "$deqp_path/external/openglcts/data/gl_cts/data/mustpass/gles/khronos_mustpass_noctx/main"
1693*8975f5c5SAndroid Build Coastguard Worker  _khronos_gles_single_mustpass = "$deqp_path/external/openglcts/data/gl_cts/data/mustpass/gles/khronos_mustpass_single/main"
1694*8975f5c5SAndroid Build Coastguard Worker
1695*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_gles2_common") {
1696*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_gles2_sources
1697*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1698*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_egl",
1699*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_glshared",
1700*8975f5c5SAndroid Build Coastguard Worker    ]
1701*8975f5c5SAndroid Build Coastguard Worker  }
1702*8975f5c5SAndroid Build Coastguard Worker
1703*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_gles3_common") {
1704*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_gles3_sources
1705*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1706*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_egl",
1707*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_glshared",
1708*8975f5c5SAndroid Build Coastguard Worker    ]
1709*8975f5c5SAndroid Build Coastguard Worker  }
1710*8975f5c5SAndroid Build Coastguard Worker
1711*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_gles31_common") {
1712*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_gles31_sources
1713*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1714*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_egl",
1715*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_glshared",
1716*8975f5c5SAndroid Build Coastguard Worker    ]
1717*8975f5c5SAndroid Build Coastguard Worker  }
1718*8975f5c5SAndroid Build Coastguard Worker
1719*8975f5c5SAndroid Build Coastguard Worker  template("angle_deqp_core_gtest") {
1720*8975f5c5SAndroid Build Coastguard Worker    _api = target_name
1721*8975f5c5SAndroid Build Coastguard Worker    forward_variables_from(invoker, [ "mustpass_suffix" ])
1722*8975f5c5SAndroid Build Coastguard Worker    if (mustpass_suffix != "main") {
1723*8975f5c5SAndroid Build Coastguard Worker      target_name = "${_api}_${mustpass_suffix}"
1724*8975f5c5SAndroid Build Coastguard Worker      target_name = string_replace(target_name, "-", "_")
1725*8975f5c5SAndroid Build Coastguard Worker    }
1726*8975f5c5SAndroid Build Coastguard Worker    angle_deqp_gtest(target_name) {
1727*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker, "*")
1728*8975f5c5SAndroid Build Coastguard Worker
1729*8975f5c5SAndroid Build Coastguard Worker      mustpass_name = "${_api}-${mustpass_suffix}.txt"
1730*8975f5c5SAndroid Build Coastguard Worker
1731*8975f5c5SAndroid Build Coastguard Worker      deps += angle_deqp_data_copy_targets
1732*8975f5c5SAndroid Build Coastguard Worker
1733*8975f5c5SAndroid Build Coastguard Worker      data = []
1734*8975f5c5SAndroid Build Coastguard Worker      if (_api == "gles2") {
1735*8975f5c5SAndroid Build Coastguard Worker        data = angle_deqp_data_gles2
1736*8975f5c5SAndroid Build Coastguard Worker      } else if (_api == "gles3") {
1737*8975f5c5SAndroid Build Coastguard Worker        data = angle_deqp_data_gles3
1738*8975f5c5SAndroid Build Coastguard Worker      } else if (_api == "gles31") {
1739*8975f5c5SAndroid Build Coastguard Worker        data = angle_deqp_data_gles31
1740*8975f5c5SAndroid Build Coastguard Worker      } else {
1741*8975f5c5SAndroid Build Coastguard Worker        # Make sure we include something so that angle_deqp_libtester_main.cpp can find something.
1742*8975f5c5SAndroid Build Coastguard Worker        data = [ "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/misc.test" ]
1743*8975f5c5SAndroid Build Coastguard Worker      }
1744*8975f5c5SAndroid Build Coastguard Worker    }
1745*8975f5c5SAndroid Build Coastguard Worker  }
1746*8975f5c5SAndroid Build Coastguard Worker
1747*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_core_gtest("gles2") {
1748*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES2_TESTS" ]
1749*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles2_common" ]
1750*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
1751*8975f5c5SAndroid Build Coastguard Worker    mustpass_suffix = "main"
1752*8975f5c5SAndroid Build Coastguard Worker  }
1753*8975f5c5SAndroid Build Coastguard Worker
1754*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_core_gtest("gles3") {
1755*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES3_TESTS" ]
1756*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles3_common" ]
1757*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
1758*8975f5c5SAndroid Build Coastguard Worker    mustpass_suffix = "main"
1759*8975f5c5SAndroid Build Coastguard Worker  }
1760*8975f5c5SAndroid Build Coastguard Worker
1761*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_core_gtest("gles3") {
1762*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES3_MULTISAMPLE_TESTS" ]
1763*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles3_common" ]
1764*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
1765*8975f5c5SAndroid Build Coastguard Worker    mustpass_suffix = "multisample"
1766*8975f5c5SAndroid Build Coastguard Worker  }
1767*8975f5c5SAndroid Build Coastguard Worker
1768*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_core_gtest("gles31") {
1769*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES31_TESTS" ]
1770*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles31_common" ]
1771*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
1772*8975f5c5SAndroid Build Coastguard Worker    mustpass_suffix = "main"
1773*8975f5c5SAndroid Build Coastguard Worker  }
1774*8975f5c5SAndroid Build Coastguard Worker
1775*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_core_gtest("gles31") {
1776*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES31_MULTISAMPLE_TESTS" ]
1777*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles31_common" ]
1778*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
1779*8975f5c5SAndroid Build Coastguard Worker    mustpass_suffix = "multisample"
1780*8975f5c5SAndroid Build Coastguard Worker  }
1781*8975f5c5SAndroid Build Coastguard Worker
1782*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_core_gtest("egl") {
1783*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_EGL_TESTS" ]
1784*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_egl_sources
1785*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_egl_mustpass
1786*8975f5c5SAndroid Build Coastguard Worker    mustpass_suffix = "main"
1787*8975f5c5SAndroid Build Coastguard Worker  }
1788*8975f5c5SAndroid Build Coastguard Worker
1789*8975f5c5SAndroid Build Coastguard Worker  if (is_android) {
1790*8975f5c5SAndroid Build Coastguard Worker    angle_deqp_core_gtest("gles3") {
1791*8975f5c5SAndroid Build Coastguard Worker      defines = [ "ANGLE_DEQP_GLES3_565_NO_DEPTH_NO_STENCIL_TESTS" ]
1792*8975f5c5SAndroid Build Coastguard Worker      deps = [ ":angle_deqp_gles3_common" ]
1793*8975f5c5SAndroid Build Coastguard Worker      mustpass_dir = _aosp_gles_mustpass
1794*8975f5c5SAndroid Build Coastguard Worker      mustpass_suffix = "565-no-depth-no-stencil"
1795*8975f5c5SAndroid Build Coastguard Worker    }
1796*8975f5c5SAndroid Build Coastguard Worker
1797*8975f5c5SAndroid Build Coastguard Worker    angle_deqp_core_gtest("gles31") {
1798*8975f5c5SAndroid Build Coastguard Worker      defines = [ "ANGLE_DEQP_GLES31_565_NO_DEPTH_NO_STENCIL_TESTS" ]
1799*8975f5c5SAndroid Build Coastguard Worker      deps = [ ":angle_deqp_gles31_common" ]
1800*8975f5c5SAndroid Build Coastguard Worker      mustpass_dir = _aosp_gles_mustpass
1801*8975f5c5SAndroid Build Coastguard Worker      mustpass_suffix = "565-no-depth-no-stencil"
1802*8975f5c5SAndroid Build Coastguard Worker    }
1803*8975f5c5SAndroid Build Coastguard Worker  }
1804*8975f5c5SAndroid Build Coastguard Worker
1805*8975f5c5SAndroid Build Coastguard Worker  # The CTS also includes a set of "KHR" tests that are separate from the main body of dEQP tests.
1806*8975f5c5SAndroid Build Coastguard Worker
1807*8975f5c5SAndroid Build Coastguard Worker  config("angle_deqp_khr_common_config") {
1808*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [
1809*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/external/openglcts/modules/common",
1810*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/external/openglcts/modules/common/subgroups",
1811*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/external/openglcts/modules/gl",
1812*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/external/openglcts/modules/gles2",
1813*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/external/openglcts/modules/gles3",
1814*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/external/openglcts/modules/gles31",
1815*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/external/openglcts/modules/gles32",
1816*8975f5c5SAndroid Build Coastguard Worker      "$deqp_path/external/openglcts/modules/glesext",
1817*8975f5c5SAndroid Build Coastguard Worker    ]
1818*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
1819*8975f5c5SAndroid Build Coastguard Worker      cflags = [ "-Wno-header-hygiene" ]  # using namespace directive in global
1820*8975f5c5SAndroid Build Coastguard Worker                                          # context in header
1821*8975f5c5SAndroid Build Coastguard Worker    }
1822*8975f5c5SAndroid Build Coastguard Worker  }
1823*8975f5c5SAndroid Build Coastguard Worker
1824*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_source_set("angle_deqp_khr_common") {
1825*8975f5c5SAndroid Build Coastguard Worker    sources = deqp_khr_common_sources + deqp_khr_test_module_headers +
1826*8975f5c5SAndroid Build Coastguard Worker              deqp_khr_gl_sources + deqp_khr_gles2_sources +
1827*8975f5c5SAndroid Build Coastguard Worker              deqp_khr_gles3_sources + deqp_khr_gles31_sources +
1828*8975f5c5SAndroid Build Coastguard Worker              deqp_khr_gles32_sources + deqp_khr_glesext_sources +
1829*8975f5c5SAndroid Build Coastguard Worker              [ "deqp_support/glcTestPackageEntry_override.cpp" ]
1830*8975f5c5SAndroid Build Coastguard Worker    public_deps = [
1831*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_framework_platform",
1832*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_glshared",
1833*8975f5c5SAndroid Build Coastguard Worker      "${angle_glslang_dir}:glslang_lib_sources",
1834*8975f5c5SAndroid Build Coastguard Worker      "${angle_spirv_tools_dir}:spvtools_val",
1835*8975f5c5SAndroid Build Coastguard Worker    ]
1836*8975f5c5SAndroid Build Coastguard Worker    public_configs = [ ":angle_deqp_khr_common_config" ]
1837*8975f5c5SAndroid Build Coastguard Worker
1838*8975f5c5SAndroid Build Coastguard Worker    # This is a bit of a hack so one test can capture memory limits.
1839*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "$deqp_path/external/vulkancts/framework/vulkan" ]
1840*8975f5c5SAndroid Build Coastguard Worker  }
1841*8975f5c5SAndroid Build Coastguard Worker
1842*8975f5c5SAndroid Build Coastguard Worker  template("angle_deqp_khr_gtest") {
1843*8975f5c5SAndroid Build Coastguard Worker    angle_deqp_gtest(target_name) {
1844*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker, "*")
1845*8975f5c5SAndroid Build Coastguard Worker      deps = [ ":angle_deqp_khr_common" ]
1846*8975f5c5SAndroid Build Coastguard Worker      deps += angle_deqp_data_copy_targets
1847*8975f5c5SAndroid Build Coastguard Worker      if (api == "gles2") {
1848*8975f5c5SAndroid Build Coastguard Worker        # Make sure we include something so that angle_deqp_libtester_main.cpp can find something.
1849*8975f5c5SAndroid Build Coastguard Worker        data = [ "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/misc.test" ]
1850*8975f5c5SAndroid Build Coastguard Worker        mustpass_dir = _khronos_gles_mustpass
1851*8975f5c5SAndroid Build Coastguard Worker      } else if (api == "gles3") {
1852*8975f5c5SAndroid Build Coastguard Worker        data = angle_deqp_external_openglcts_data_gl_cts_data_gles3
1853*8975f5c5SAndroid Build Coastguard Worker        mustpass_dir = _khronos_gles_mustpass
1854*8975f5c5SAndroid Build Coastguard Worker      } else if (api == "gles31") {
1855*8975f5c5SAndroid Build Coastguard Worker        data = angle_deqp_external_openglcts_data_gl_cts_data_gles31
1856*8975f5c5SAndroid Build Coastguard Worker        mustpass_dir = _khronos_gles_mustpass
1857*8975f5c5SAndroid Build Coastguard Worker      } else if (api == "gles32") {
1858*8975f5c5SAndroid Build Coastguard Worker        data = angle_deqp_external_openglcts_data_gl_cts_data_gles32
1859*8975f5c5SAndroid Build Coastguard Worker        mustpass_dir = _khronos_gles_mustpass
1860*8975f5c5SAndroid Build Coastguard Worker      } else {
1861*8975f5c5SAndroid Build Coastguard Worker        assert(false)
1862*8975f5c5SAndroid Build Coastguard Worker      }
1863*8975f5c5SAndroid Build Coastguard Worker    }
1864*8975f5c5SAndroid Build Coastguard Worker  }
1865*8975f5c5SAndroid Build Coastguard Worker
1866*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_khr_gtest("khr_gles2") {
1867*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_KHR_GLES2_TESTS" ]
1868*8975f5c5SAndroid Build Coastguard Worker    mustpass_name = "gles2-khr-main.txt"
1869*8975f5c5SAndroid Build Coastguard Worker    api = "gles2"
1870*8975f5c5SAndroid Build Coastguard Worker  }
1871*8975f5c5SAndroid Build Coastguard Worker
1872*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_khr_gtest("khr_gles3") {
1873*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_KHR_GLES3_TESTS" ]
1874*8975f5c5SAndroid Build Coastguard Worker    mustpass_name = "gles3-khr-main.txt"
1875*8975f5c5SAndroid Build Coastguard Worker    api = "gles3"
1876*8975f5c5SAndroid Build Coastguard Worker  }
1877*8975f5c5SAndroid Build Coastguard Worker
1878*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_khr_gtest("khr_gles31") {
1879*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_KHR_GLES31_TESTS" ]
1880*8975f5c5SAndroid Build Coastguard Worker    mustpass_name = "gles31-khr-main.txt"
1881*8975f5c5SAndroid Build Coastguard Worker    api = "gles31"
1882*8975f5c5SAndroid Build Coastguard Worker  }
1883*8975f5c5SAndroid Build Coastguard Worker
1884*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_khr_gtest("khr_gles32") {
1885*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_KHR_GLES32_TESTS" ]
1886*8975f5c5SAndroid Build Coastguard Worker    mustpass_name = "gles32-khr-main.txt"
1887*8975f5c5SAndroid Build Coastguard Worker    api = "gles32"
1888*8975f5c5SAndroid Build Coastguard Worker  }
1889*8975f5c5SAndroid Build Coastguard Worker
1890*8975f5c5SAndroid Build Coastguard Worker  template("angle_deqp_khr_noctx_gtest") {
1891*8975f5c5SAndroid Build Coastguard Worker    angle_deqp_gtest(target_name) {
1892*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker, "*")
1893*8975f5c5SAndroid Build Coastguard Worker      deps = [ ":angle_deqp_khr_common" ]
1894*8975f5c5SAndroid Build Coastguard Worker      deps += angle_deqp_data_copy_targets
1895*8975f5c5SAndroid Build Coastguard Worker      if (api == "gles2") {
1896*8975f5c5SAndroid Build Coastguard Worker        data = [ "$root_gen_dir/vk_gl_cts_data/data/gles2/shaders/misc.test" ]
1897*8975f5c5SAndroid Build Coastguard Worker        mustpass_dir = _khronos_gles_noctx_mustpass
1898*8975f5c5SAndroid Build Coastguard Worker      } else if (api == "gles32") {
1899*8975f5c5SAndroid Build Coastguard Worker        data = angle_deqp_external_openglcts_data_gl_cts_data_gles32
1900*8975f5c5SAndroid Build Coastguard Worker        mustpass_dir = _khronos_gles_noctx_mustpass
1901*8975f5c5SAndroid Build Coastguard Worker      } else {
1902*8975f5c5SAndroid Build Coastguard Worker        assert(false)
1903*8975f5c5SAndroid Build Coastguard Worker      }
1904*8975f5c5SAndroid Build Coastguard Worker    }
1905*8975f5c5SAndroid Build Coastguard Worker  }
1906*8975f5c5SAndroid Build Coastguard Worker
1907*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_khr_noctx_gtest("khr_noctx_gles2") {
1908*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_KHR_NOCTX_GLES2_TESTS" ]
1909*8975f5c5SAndroid Build Coastguard Worker    mustpass_name = "gles2-khr-noctx-main.txt"
1910*8975f5c5SAndroid Build Coastguard Worker    api = "gles2"
1911*8975f5c5SAndroid Build Coastguard Worker  }
1912*8975f5c5SAndroid Build Coastguard Worker
1913*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_khr_noctx_gtest("khr_noctx_gles32") {
1914*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_KHR_NOCTX_GLES32_TESTS" ]
1915*8975f5c5SAndroid Build Coastguard Worker    mustpass_name = "gles32-khr-noctx-main.txt"
1916*8975f5c5SAndroid Build Coastguard Worker    api = "gles32"
1917*8975f5c5SAndroid Build Coastguard Worker  }
1918*8975f5c5SAndroid Build Coastguard Worker
1919*8975f5c5SAndroid Build Coastguard Worker  template("angle_deqp_khr_single_gtest") {
1920*8975f5c5SAndroid Build Coastguard Worker    angle_deqp_gtest(target_name) {
1921*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker, "*")
1922*8975f5c5SAndroid Build Coastguard Worker      deps = [ ":angle_deqp_khr_common" ]
1923*8975f5c5SAndroid Build Coastguard Worker      deps += angle_deqp_data_copy_targets
1924*8975f5c5SAndroid Build Coastguard Worker      if (api == "gles32") {
1925*8975f5c5SAndroid Build Coastguard Worker        data = angle_deqp_external_openglcts_data_gl_cts_data_gles32
1926*8975f5c5SAndroid Build Coastguard Worker        mustpass_dir = _khronos_gles_single_mustpass
1927*8975f5c5SAndroid Build Coastguard Worker      } else {
1928*8975f5c5SAndroid Build Coastguard Worker        assert(false)
1929*8975f5c5SAndroid Build Coastguard Worker      }
1930*8975f5c5SAndroid Build Coastguard Worker    }
1931*8975f5c5SAndroid Build Coastguard Worker  }
1932*8975f5c5SAndroid Build Coastguard Worker
1933*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_khr_single_gtest("khr_single_gles32") {
1934*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_KHR_SINGLE_GLES32_TESTS" ]
1935*8975f5c5SAndroid Build Coastguard Worker    mustpass_name = "gles32-khr-single.txt"
1936*8975f5c5SAndroid Build Coastguard Worker    api = "gles32"
1937*8975f5c5SAndroid Build Coastguard Worker  }
1938*8975f5c5SAndroid Build Coastguard Worker
1939*8975f5c5SAndroid Build Coastguard Worker  template("angle_deqp_rotate_gtest") {
1940*8975f5c5SAndroid Build Coastguard Worker    split_target = string_split(target_name, "_")
1941*8975f5c5SAndroid Build Coastguard Worker    _api = split_target[0]
1942*8975f5c5SAndroid Build Coastguard Worker    _rotate = split_target[1]
1943*8975f5c5SAndroid Build Coastguard Worker    angle_deqp_gtest(target_name) {
1944*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker, "*")
1945*8975f5c5SAndroid Build Coastguard Worker
1946*8975f5c5SAndroid Build Coastguard Worker      if (_rotate == "rotate90") {
1947*8975f5c5SAndroid Build Coastguard Worker        mustpass_suffix = "rotate-landscape"
1948*8975f5c5SAndroid Build Coastguard Worker      } else if (_rotate == "rotate180") {
1949*8975f5c5SAndroid Build Coastguard Worker        mustpass_suffix = "rotate-reverse-portrait"
1950*8975f5c5SAndroid Build Coastguard Worker      } else if (_rotate == "rotate270") {
1951*8975f5c5SAndroid Build Coastguard Worker        mustpass_suffix = "rotate-reverse-landscape"
1952*8975f5c5SAndroid Build Coastguard Worker      } else {
1953*8975f5c5SAndroid Build Coastguard Worker        assert(false)
1954*8975f5c5SAndroid Build Coastguard Worker      }
1955*8975f5c5SAndroid Build Coastguard Worker
1956*8975f5c5SAndroid Build Coastguard Worker      mustpass_name = "${_api}-${mustpass_suffix}.txt"
1957*8975f5c5SAndroid Build Coastguard Worker
1958*8975f5c5SAndroid Build Coastguard Worker      deps += angle_deqp_data_copy_targets
1959*8975f5c5SAndroid Build Coastguard Worker
1960*8975f5c5SAndroid Build Coastguard Worker      data = []
1961*8975f5c5SAndroid Build Coastguard Worker      if (_api == "gles3") {
1962*8975f5c5SAndroid Build Coastguard Worker        data = angle_deqp_data_gles3
1963*8975f5c5SAndroid Build Coastguard Worker      } else if (_api == "gles31") {
1964*8975f5c5SAndroid Build Coastguard Worker        data = angle_deqp_data_gles31
1965*8975f5c5SAndroid Build Coastguard Worker      } else {
1966*8975f5c5SAndroid Build Coastguard Worker        assert(false)
1967*8975f5c5SAndroid Build Coastguard Worker      }
1968*8975f5c5SAndroid Build Coastguard Worker    }
1969*8975f5c5SAndroid Build Coastguard Worker  }
1970*8975f5c5SAndroid Build Coastguard Worker
1971*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_rotate_gtest("gles3_rotate90") {
1972*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES3_ROTATE90_TESTS" ]
1973*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles3_common" ]
1974*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
1975*8975f5c5SAndroid Build Coastguard Worker    expectations_file = "deqp_gles3_rotate_test_expectations.txt"
1976*8975f5c5SAndroid Build Coastguard Worker  }
1977*8975f5c5SAndroid Build Coastguard Worker
1978*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_rotate_gtest("gles3_rotate180") {
1979*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES3_ROTATE180_TESTS" ]
1980*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles3_common" ]
1981*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
1982*8975f5c5SAndroid Build Coastguard Worker    expectations_file = "deqp_gles3_rotate_test_expectations.txt"
1983*8975f5c5SAndroid Build Coastguard Worker  }
1984*8975f5c5SAndroid Build Coastguard Worker
1985*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_rotate_gtest("gles3_rotate270") {
1986*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES3_ROTATE270_TESTS" ]
1987*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles3_common" ]
1988*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
1989*8975f5c5SAndroid Build Coastguard Worker    expectations_file = "deqp_gles3_rotate_test_expectations.txt"
1990*8975f5c5SAndroid Build Coastguard Worker  }
1991*8975f5c5SAndroid Build Coastguard Worker
1992*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_rotate_gtest("gles31_rotate90") {
1993*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES31_ROTATE90_TESTS" ]
1994*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles31_common" ]
1995*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
1996*8975f5c5SAndroid Build Coastguard Worker    expectations_file = "deqp_gles31_rotate_test_expectations.txt"
1997*8975f5c5SAndroid Build Coastguard Worker  }
1998*8975f5c5SAndroid Build Coastguard Worker
1999*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_rotate_gtest("gles31_rotate180") {
2000*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES31_ROTATE180_TESTS" ]
2001*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles31_common" ]
2002*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
2003*8975f5c5SAndroid Build Coastguard Worker    expectations_file = "deqp_gles31_rotate_test_expectations.txt"
2004*8975f5c5SAndroid Build Coastguard Worker  }
2005*8975f5c5SAndroid Build Coastguard Worker
2006*8975f5c5SAndroid Build Coastguard Worker  angle_deqp_rotate_gtest("gles31_rotate270") {
2007*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ANGLE_DEQP_GLES31_ROTATE270_TESTS" ]
2008*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":angle_deqp_gles31_common" ]
2009*8975f5c5SAndroid Build Coastguard Worker    mustpass_dir = _aosp_gles_mustpass
2010*8975f5c5SAndroid Build Coastguard Worker    expectations_file = "deqp_gles31_rotate_test_expectations.txt"
2011*8975f5c5SAndroid Build Coastguard Worker  }
2012*8975f5c5SAndroid Build Coastguard Worker}
2013*8975f5c5SAndroid Build Coastguard Worker
2014*8975f5c5SAndroid Build Coastguard Workergroup("angle_tests") {
2015*8975f5c5SAndroid Build Coastguard Worker  testonly = true
2016*8975f5c5SAndroid Build Coastguard Worker  deps = [
2017*8975f5c5SAndroid Build Coastguard Worker    ":angle_end2end_tests",
2018*8975f5c5SAndroid Build Coastguard Worker    ":angle_system_info_test",
2019*8975f5c5SAndroid Build Coastguard Worker    ":angle_unittests",
2020*8975f5c5SAndroid Build Coastguard Worker  ]
2021*8975f5c5SAndroid Build Coastguard Worker  if (angle_enable_cl_testing) {
2022*8975f5c5SAndroid Build Coastguard Worker    deps += [ ":angle_openclcts" ]
2023*8975f5c5SAndroid Build Coastguard Worker  }
2024*8975f5c5SAndroid Build Coastguard Worker  if (build_angle_perftests) {
2025*8975f5c5SAndroid Build Coastguard Worker    deps += [ ":angle_perftests" ]
2026*8975f5c5SAndroid Build Coastguard Worker  }
2027*8975f5c5SAndroid Build Coastguard Worker  if (build_angle_trace_tests) {
2028*8975f5c5SAndroid Build Coastguard Worker    deps += [ ":angle_trace_perf_tests" ]
2029*8975f5c5SAndroid Build Coastguard Worker    deps += [ "capture_tests:angle_capture_tests_multi_frame_trace" ]
2030*8975f5c5SAndroid Build Coastguard Worker    deps += [ "capture_tests:angle_capture_tests_active_textures_trace" ]
2031*8975f5c5SAndroid Build Coastguard Worker  }
2032*8975f5c5SAndroid Build Coastguard Worker  if (is_clang && angle_has_frame_capture) {
2033*8975f5c5SAndroid Build Coastguard Worker    deps += [ "capture_replay_tests" ]
2034*8975f5c5SAndroid Build Coastguard Worker  }
2035*8975f5c5SAndroid Build Coastguard Worker  if (!is_fuchsia) {
2036*8975f5c5SAndroid Build Coastguard Worker    deps += [
2037*8975f5c5SAndroid Build Coastguard Worker      ":angle_white_box_perftests",
2038*8975f5c5SAndroid Build Coastguard Worker      ":angle_white_box_tests",
2039*8975f5c5SAndroid Build Coastguard Worker    ]
2040*8975f5c5SAndroid Build Coastguard Worker  }
2041*8975f5c5SAndroid Build Coastguard Worker  if (build_angle_deqp_tests && !is_fuchsia) {
2042*8975f5c5SAndroid Build Coastguard Worker    deps += [
2043*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_egl_tests",
2044*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles2_tests",
2045*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles31_multisample_tests",
2046*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles31_rotate180_tests",
2047*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles31_rotate270_tests",
2048*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles31_rotate90_tests",
2049*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles31_tests",
2050*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles3_multisample_tests",
2051*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles3_rotate180_tests",
2052*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles3_rotate270_tests",
2053*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles3_rotate90_tests",
2054*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_gles3_tests",
2055*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_khr_gles2_tests",
2056*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_khr_gles31_tests",
2057*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_khr_gles32_tests",
2058*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_khr_gles3_tests",
2059*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_khr_noctx_gles2_tests",
2060*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_khr_noctx_gles32_tests",
2061*8975f5c5SAndroid Build Coastguard Worker      ":angle_deqp_khr_single_gles32_tests",
2062*8975f5c5SAndroid Build Coastguard Worker    ]
2063*8975f5c5SAndroid Build Coastguard Worker
2064*8975f5c5SAndroid Build Coastguard Worker    if (is_android) {
2065*8975f5c5SAndroid Build Coastguard Worker      deps += [
2066*8975f5c5SAndroid Build Coastguard Worker        ":angle_deqp_gles31_565_no_depth_no_stencil_tests",
2067*8975f5c5SAndroid Build Coastguard Worker        ":angle_deqp_gles3_565_no_depth_no_stencil_tests",
2068*8975f5c5SAndroid Build Coastguard Worker      ]
2069*8975f5c5SAndroid Build Coastguard Worker    }
2070*8975f5c5SAndroid Build Coastguard Worker  }
2071*8975f5c5SAndroid Build Coastguard Worker  if (build_angle_gles1_conform_tests) {
2072*8975f5c5SAndroid Build Coastguard Worker    deps += [
2073*8975f5c5SAndroid Build Coastguard Worker      ":angle_gles1_conformance_tests",
2074*8975f5c5SAndroid Build Coastguard Worker      ":angle_gles1_covegl_no_gtest",
2075*8975f5c5SAndroid Build Coastguard Worker      ":angle_gles1_primtest_tests",
2076*8975f5c5SAndroid Build Coastguard Worker    ]
2077*8975f5c5SAndroid Build Coastguard Worker    if (!is_win && !is_apple) {
2078*8975f5c5SAndroid Build Coastguard Worker      deps += [ ":angle_gles1_covgl_tests" ]
2079*8975f5c5SAndroid Build Coastguard Worker    }
2080*8975f5c5SAndroid Build Coastguard Worker  }
2081*8975f5c5SAndroid Build Coastguard Worker}
2082