blob: 516342513bccb9387c5235f02a728a8e48dd3e41 [file] [log] [blame]
[email protected]75cd8f02014-05-29 20:56:021# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/features.gni")
phosek636bceb32015-10-27 03:36:486import("//build/config/nacl/config.gni")
qsrfb5251d12015-01-21 15:57:227import("//testing/test.gni")
[email protected]75cd8f02014-05-29 20:56:028
pkotwiczbbe8d902015-10-29 17:10:079if (is_android) {
10 import("//build/config/android/rules.gni")
11}
12
[email protected]75cd8f02014-05-29 20:56:0213declare_args() {
14 compile_suid_client = is_linux
15
16 compile_credentials = is_linux
17
jln01954fd2015-05-15 06:19:3318 # On Android, use plain GTest.
19 use_base_test_suite = is_linux
[email protected]75cd8f02014-05-29 20:56:0220}
21
phosek636bceb32015-10-27 03:36:4822if (is_nacl_nonsfi) {
23 config("nacl_nonsfi_warnings") {
24 # There are number of platform specific functions in
25 # seccomp-bpf syscall helpers, which are not being used.
26 cflags = [ "-Wno-unused-function" ]
27 }
28}
29
[email protected]75cd8f02014-05-29 20:56:0230# We have two principal targets: sandbox and sandbox_linux_unittests
31# All other targets are listed as dependencies.
32# There is one notable exception: for historical reasons, chrome_sandbox is
33# the setuid sandbox and is its own target.
34
35group("sandbox") {
brettw00709df2015-12-02 01:40:5036 public_deps = [
[email protected]75cd8f02014-05-29 20:56:0237 ":sandbox_services",
38 ]
39
phosek636bceb32015-10-27 03:36:4840 if (compile_suid_client || is_nacl_nonsfi) {
brettw00709df2015-12-02 01:40:5041 public_deps += [ ":suid_sandbox_client" ]
[email protected]75cd8f02014-05-29 20:56:0242 }
phosek636bceb32015-10-27 03:36:4843 if (use_seccomp_bpf || is_nacl_nonsfi) {
brettw00709df2015-12-02 01:40:5044 public_deps += [
[email protected]75cd8f02014-05-29 20:56:0245 ":seccomp_bpf",
46 ":seccomp_bpf_helpers",
47 ]
48 }
49}
50
51source_set("sandbox_linux_test_utils") {
Brett Wilson0c8745a2014-09-08 22:59:4952 testonly = true
[email protected]75cd8f02014-05-29 20:56:0253 sources = [
54 "tests/sandbox_test_runner.cc",
55 "tests/sandbox_test_runner.h",
56 "tests/sandbox_test_runner_function_pointer.cc",
57 "tests/sandbox_test_runner_function_pointer.h",
58 "tests/test_utils.cc",
59 "tests/test_utils.h",
60 "tests/unit_tests.cc",
61 "tests/unit_tests.h",
62 ]
63
64 deps = [
65 "//testing/gtest",
66 ]
67
68 if (use_seccomp_bpf) {
69 sources += [
70 "seccomp-bpf/bpf_tester_compatibility_delegate.h",
71 "seccomp-bpf/bpf_tests.h",
72 "seccomp-bpf/sandbox_bpf_test_runner.cc",
73 "seccomp-bpf/sandbox_bpf_test_runner.h",
74 ]
scottmg34fb7e52014-12-03 23:27:2475 deps += [ ":seccomp_bpf" ]
[email protected]75cd8f02014-05-29 20:56:0276 }
jln01954fd2015-05-15 06:19:3377
78 if (use_base_test_suite) {
79 deps += [ "//base/test:test_support" ]
80 defines = [ "SANDBOX_USES_BASE_TEST_SUITE" ]
81 }
[email protected]75cd8f02014-05-29 20:56:0282}
83
pkotwicz41889e32015-10-28 22:17:4884# Sources for sandbox_linux_unittests.
rockot86da06c7f2015-02-21 00:40:5885source_set("sandbox_linux_unittests_sources") {
86 testonly = true
87
[email protected]75cd8f02014-05-29 20:56:0288 sources = [
jlnb14fc802015-02-12 05:32:1189 "services/proc_util_unittest.cc",
jln977185982015-02-13 20:58:4190 "services/resource_limits_unittests.cc",
[email protected]75cd8f02014-05-29 20:56:0291 "services/scoped_process_unittest.cc",
jlnc420f0d2014-11-22 01:12:0992 "services/syscall_wrappers_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:0293 "services/thread_helpers_unittests.cc",
94 "services/yama_unittests.cc",
leecamad78f422014-11-26 22:08:4595 "syscall_broker/broker_file_permission_unittest.cc",
jln70c42c202014-11-01 00:59:5796 "syscall_broker/broker_process_unittest.cc",
[email protected]232f6e112014-06-27 07:51:3897 "tests/main.cc",
98 "tests/scoped_temporary_file.cc",
99 "tests/scoped_temporary_file.h",
100 "tests/scoped_temporary_file_unittest.cc",
jlnc420f0d2014-11-22 01:12:09101 "tests/test_utils_unittest.cc",
[email protected]232f6e112014-06-27 07:51:38102 "tests/unit_tests_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02103 ]
104
105 deps = [
106 ":sandbox",
107 ":sandbox_linux_test_utils",
108 "//base",
[email protected]75cd8f02014-05-29 20:56:02109 "//testing/gtest",
110 ]
111
jln01954fd2015-05-15 06:19:33112 if (use_base_test_suite) {
113 deps += [ "//base/test:test_support" ]
114 defines = [ "SANDBOX_USES_BASE_TEST_SUITE" ]
115 }
116
Brett Wilson73067532014-09-12 22:24:14117 if (is_linux) {
118 # Don't use this on Android.
119 libs = [ "rt" ]
120 }
Brett Wilsone39344352014-09-12 21:07:26121
[email protected]75cd8f02014-05-29 20:56:02122 if (compile_suid_client) {
mdempsky3cc942a2015-02-05 03:29:25123 sources += [
124 "suid/client/setuid_sandbox_client_unittest.cc",
125 "suid/client/setuid_sandbox_host_unittest.cc",
126 ]
[email protected]75cd8f02014-05-29 20:56:02127 }
128 if (use_seccomp_bpf) {
129 sources += [
[email protected]fb75e2a2014-07-17 07:24:58130 "bpf_dsl/bpf_dsl_unittest.cc",
mdempskyb80b1f52015-02-05 00:54:35131 "bpf_dsl/codegen_unittest.cc",
[email protected]fb75e2a2014-07-17 07:24:58132 "bpf_dsl/cons_unittest.cc",
mdempsky937389d2015-08-31 22:27:23133 "bpf_dsl/dump_bpf.cc",
134 "bpf_dsl/dump_bpf.h",
mdempskyce4c9f12015-02-05 06:23:05135 "bpf_dsl/syscall_set_unittest.cc",
mdempsky3909ebf2015-08-20 23:18:18136 "bpf_dsl/test_trap_registry.cc",
137 "bpf_dsl/test_trap_registry.h",
138 "bpf_dsl/test_trap_registry_unittest.cc",
mdempsky937389d2015-08-31 22:27:23139 "bpf_dsl/verifier.cc",
140 "bpf_dsl/verifier.h",
jlnaedcc3e2015-02-12 03:18:10141 "integration_tests/bpf_dsl_seccomp_unittest.cc",
142 "integration_tests/seccomp_broker_process_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02143 "seccomp-bpf-helpers/baseline_policy_unittest.cc",
jlnfcdfb102014-09-12 02:47:44144 "seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc",
[email protected]75cd8f02014-05-29 20:56:02145 "seccomp-bpf/bpf_tests_unittest.cc",
jlna29d0a32014-11-26 22:38:35146 "seccomp-bpf/sandbox_bpf_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02147 "seccomp-bpf/syscall_unittest.cc",
hidehikoa926d0b2015-04-24 21:55:21148 "seccomp-bpf/trap_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02149 ]
mdempskya3fd0ec2015-08-26 00:45:52150 deps += [ ":bpf_dsl_golden" ]
[email protected]75cd8f02014-05-29 20:56:02151 }
152 if (compile_credentials) {
153 sources += [
jlnaedcc3e2015-02-12 03:18:10154 "integration_tests/namespace_unix_domain_socket_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02155 "services/credentials_unittest.cc",
rickyz41fb1452015-01-27 03:57:58156 "services/namespace_utils_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02157 ]
rickyz966f039d2015-03-17 07:23:43158
jln01954fd2015-05-15 06:19:33159 if (use_base_test_suite) {
160 # Tests that use advanced features not available in stock GTest.
161 sources += [ "services/namespace_sandbox_unittest.cc" ]
162 }
163
rickyz966f039d2015-03-17 07:23:43164 # For credentials_unittest.cc
165 configs += [ "//build/config/linux:libcap" ]
[email protected]75cd8f02014-05-29 20:56:02166 }
167}
168
mdempskya3fd0ec2015-08-26 00:45:52169action("bpf_dsl_golden") {
170 script = "bpf_dsl/golden/generate.py"
171 inputs = [
172 "bpf_dsl/golden/i386/ArgSizePolicy.txt",
173 "bpf_dsl/golden/i386/BasicPolicy.txt",
174 "bpf_dsl/golden/i386/ElseIfPolicy.txt",
175 "bpf_dsl/golden/i386/MaskingPolicy.txt",
176 "bpf_dsl/golden/i386/MoreBooleanLogicPolicy.txt",
177 "bpf_dsl/golden/i386/NegativeConstantsPolicy.txt",
178 "bpf_dsl/golden/i386/SwitchPolicy.txt",
179 "bpf_dsl/golden/x86-64/ArgSizePolicy.txt",
180 "bpf_dsl/golden/x86-64/BasicPolicy.txt",
181 "bpf_dsl/golden/x86-64/BooleanLogicPolicy.txt",
182 "bpf_dsl/golden/x86-64/ElseIfPolicy.txt",
183 "bpf_dsl/golden/x86-64/MaskingPolicy.txt",
184 "bpf_dsl/golden/x86-64/MoreBooleanLogicPolicy.txt",
185 "bpf_dsl/golden/x86-64/NegativeConstantsPolicy.txt",
186 "bpf_dsl/golden/x86-64/SwitchPolicy.txt",
187 ]
188 outputs = [
189 "$target_gen_dir/bpf_dsl/golden/golden_files.h",
190 ]
191 args =
192 rebase_path(outputs, root_build_dir) + rebase_path(inputs, root_build_dir)
193}
194
dpranke177c1e22015-07-22 23:07:43195# TODO(GYP): Delete this after we've converted everything to GN.
196# The _run targets exist only for compatibility w/ GYP.
197group("sandbox_linux_unittests_run") {
198 testonly = true
199 deps = [
200 ":sandbox_linux_unittests",
201 ]
202}
203
pkotwiczbbe8d902015-10-29 17:10:07204# The main sandboxing test target. "sandbox_linux_unittests" cannot use the
205# test() template because the test is run as an executable not as an APK on
206# Android.
207executable("sandbox_linux_unittests") {
208 testonly = true
rockot86da06c7f2015-02-21 00:40:58209 deps = [
210 ":sandbox_linux_unittests_sources",
pkotwiczbbe8d902015-10-29 17:10:07211 "//build/config/sanitizers:deps",
rockot86da06c7f2015-02-21 00:40:58212 ]
213}
214
[email protected]75cd8f02014-05-29 20:56:02215component("seccomp_bpf") {
216 sources = [
[email protected]fb75e2a2014-07-17 07:24:58217 "bpf_dsl/bpf_dsl.cc",
218 "bpf_dsl/bpf_dsl.h",
mdempskyc60a1c52014-10-24 23:07:10219 "bpf_dsl/bpf_dsl_forward.h",
mdempskyfb10cce2014-10-14 17:56:44220 "bpf_dsl/bpf_dsl_impl.h",
mdempskyb80b1f52015-02-05 00:54:35221 "bpf_dsl/codegen.cc",
222 "bpf_dsl/codegen.h",
[email protected]fb75e2a2014-07-17 07:24:58223 "bpf_dsl/cons.h",
mdempsky3909ebf2015-08-20 23:18:18224 "bpf_dsl/errorcode.h",
jlna65ffca2015-02-13 04:12:43225 "bpf_dsl/linux_syscall_ranges.h",
mdempskyc60a1c52014-10-24 23:07:10226 "bpf_dsl/policy.cc",
227 "bpf_dsl/policy.h",
mdempsky27e78ad72014-10-16 16:49:54228 "bpf_dsl/policy_compiler.cc",
229 "bpf_dsl/policy_compiler.h",
jlna65ffca2015-02-13 04:12:43230 "bpf_dsl/seccomp_macros.h",
mdempskyce4c9f12015-02-05 06:23:05231 "bpf_dsl/syscall_set.cc",
232 "bpf_dsl/syscall_set.h",
mdempsky27e78ad72014-10-16 16:49:54233 "bpf_dsl/trap_registry.h",
[email protected]75cd8f02014-05-29 20:56:02234 "seccomp-bpf/die.cc",
235 "seccomp-bpf/die.h",
[email protected]75cd8f02014-05-29 20:56:02236 "seccomp-bpf/sandbox_bpf.cc",
237 "seccomp-bpf/sandbox_bpf.h",
[email protected]75cd8f02014-05-29 20:56:02238 "seccomp-bpf/syscall.cc",
239 "seccomp-bpf/syscall.h",
[email protected]75cd8f02014-05-29 20:56:02240 "seccomp-bpf/trap.cc",
241 "seccomp-bpf/trap.h",
[email protected]75cd8f02014-05-29 20:56:02242 ]
243 defines = [ "SANDBOX_IMPLEMENTATION" ]
244
245 deps = [
jlnbd4df41c2014-11-25 02:32:30246 ":sandbox_services",
[email protected]75cd8f02014-05-29 20:56:02247 ":sandbox_services_headers",
248 "//base",
249 ]
phosek636bceb32015-10-27 03:36:48250
251 if (is_nacl_nonsfi) {
252 cflags = [ "-fgnu-inline-asm" ]
253 sources -= [
254 "bpf_dsl/bpf_dsl_forward.h",
255 "bpf_dsl/bpf_dsl_impl.h",
256 "bpf_dsl/cons.h",
257 "bpf_dsl/errorcode.h",
258 "bpf_dsl/linux_syscall_ranges.h",
259 "bpf_dsl/seccomp_macros.h",
260 "bpf_dsl/trap_registry.h",
261 ]
262 }
[email protected]75cd8f02014-05-29 20:56:02263}
264
265component("seccomp_bpf_helpers") {
266 sources = [
267 "seccomp-bpf-helpers/baseline_policy.cc",
268 "seccomp-bpf-helpers/baseline_policy.h",
269 "seccomp-bpf-helpers/sigsys_handlers.cc",
270 "seccomp-bpf-helpers/sigsys_handlers.h",
271 "seccomp-bpf-helpers/syscall_parameters_restrictions.cc",
272 "seccomp-bpf-helpers/syscall_parameters_restrictions.h",
273 "seccomp-bpf-helpers/syscall_sets.cc",
274 "seccomp-bpf-helpers/syscall_sets.h",
275 ]
276 defines = [ "SANDBOX_IMPLEMENTATION" ]
277
278 deps = [
jamesr4359db72015-01-21 12:40:00279 ":sandbox_services",
[email protected]75cd8f02014-05-29 20:56:02280 ":seccomp_bpf",
agrieved7a71c882015-11-20 19:53:28281 "//base",
[email protected]75cd8f02014-05-29 20:56:02282 ]
phosek636bceb32015-10-27 03:36:48283
284 if (is_nacl_nonsfi) {
285 sources -= [
286 "seccomp-bpf-helpers/baseline_policy.cc",
287 "seccomp-bpf-helpers/baseline_policy.h",
288 "seccomp-bpf-helpers/syscall_sets.cc",
289 "seccomp-bpf-helpers/syscall_sets.h",
290 ]
291 configs += [ ":nacl_nonsfi_warnings" ]
292 }
[email protected]75cd8f02014-05-29 20:56:02293}
294
James Robinson060f2e32014-09-10 22:31:37295if (is_linux) {
scottmg34fb7e52014-12-03 23:27:24296 # The setuid sandbox for Linux.
James Robinson060f2e32014-09-10 22:31:37297 executable("chrome_sandbox") {
298 sources = [
299 "suid/common/sandbox.h",
300 "suid/common/suid_unsafe_environment_variables.h",
James Robinson060f2e32014-09-10 22:31:37301 "suid/process_util.h",
302 "suid/process_util_linux.c",
303 "suid/sandbox.c",
304 ]
[email protected]75cd8f02014-05-29 20:56:02305
James Robinson060f2e32014-09-10 22:31:37306 cflags = [
307 # For ULLONG_MAX
308 "-std=gnu99",
scottmg34fb7e52014-12-03 23:27:24309
James Robinson060f2e32014-09-10 22:31:37310 # These files have a suspicious comparison.
311 # TODO fix this and re-enable this warning.
312 "-Wno-sign-compare",
313 ]
brettwba7a73d2015-08-31 22:17:39314
315 deps = [
316 "//build/config/sanitizers:deps",
317 ]
James Robinson060f2e32014-09-10 22:31:37318 }
[email protected]75cd8f02014-05-29 20:56:02319}
320
321component("sandbox_services") {
322 sources = [
[email protected]75cd8f02014-05-29 20:56:02323 "services/init_process_reaper.cc",
324 "services/init_process_reaper.h",
jlnb14fc802015-02-12 05:32:11325 "services/proc_util.cc",
326 "services/proc_util.h",
jln977185982015-02-13 20:58:41327 "services/resource_limits.cc",
328 "services/resource_limits.h",
[email protected]75cd8f02014-05-29 20:56:02329 "services/scoped_process.cc",
330 "services/scoped_process.h",
jln610a4a612014-11-20 18:58:21331 "services/syscall_wrappers.cc",
332 "services/syscall_wrappers.h",
[email protected]75cd8f02014-05-29 20:56:02333 "services/thread_helpers.cc",
334 "services/thread_helpers.h",
[email protected]75cd8f02014-05-29 20:56:02335 "services/yama.cc",
jlnb14fc802015-02-12 05:32:11336 "services/yama.h",
jln878dca32014-11-11 07:43:57337 "syscall_broker/broker_channel.cc",
338 "syscall_broker/broker_channel.h",
jln70c42c202014-11-01 00:59:57339 "syscall_broker/broker_client.cc",
340 "syscall_broker/broker_client.h",
341 "syscall_broker/broker_common.h",
leecamad78f422014-11-26 22:08:45342 "syscall_broker/broker_file_permission.cc",
343 "syscall_broker/broker_file_permission.h",
jln70c42c202014-11-01 00:59:57344 "syscall_broker/broker_host.cc",
345 "syscall_broker/broker_host.h",
346 "syscall_broker/broker_policy.cc",
347 "syscall_broker/broker_policy.h",
348 "syscall_broker/broker_process.cc",
349 "syscall_broker/broker_process.h",
[email protected]75cd8f02014-05-29 20:56:02350 ]
351
352 defines = [ "SANDBOX_IMPLEMENTATION" ]
353
rickyz966f039d2015-03-17 07:23:43354 deps = [
355 "//base",
356 ]
357
phosek636bceb32015-10-27 03:36:48358 if (compile_credentials || is_nacl_nonsfi) {
[email protected]75cd8f02014-05-29 20:56:02359 sources += [
360 "services/credentials.cc",
361 "services/credentials.h",
rickyz8f235da2015-02-03 07:26:19362 "services/namespace_sandbox.cc",
363 "services/namespace_sandbox.h",
rickyz41fb1452015-01-27 03:57:58364 "services/namespace_utils.cc",
365 "services/namespace_utils.h",
[email protected]75cd8f02014-05-29 20:56:02366 ]
scottmg34fb7e52014-12-03 23:27:24367
rickyz966f039d2015-03-17 07:23:43368 deps += [ ":sandbox_services_headers" ]
[email protected]75cd8f02014-05-29 20:56:02369 }
phosek636bceb32015-10-27 03:36:48370
371 if (is_nacl_nonsfi) {
mcgrathr87cb1c072015-11-20 21:47:40372 cflags = [ "-fgnu-inline-asm" ]
373
phosek636bceb32015-10-27 03:36:48374 sources -= [
375 "services/init_process_reaper.cc",
376 "services/init_process_reaper.h",
377 "services/scoped_process.cc",
378 "services/scoped_process.h",
379 "services/yama.cc",
380 "services/yama.h",
381 "syscall_broker/broker_channel.cc",
382 "syscall_broker/broker_channel.h",
383 "syscall_broker/broker_client.cc",
384 "syscall_broker/broker_client.h",
385 "syscall_broker/broker_common.h",
386 "syscall_broker/broker_file_permission.cc",
387 "syscall_broker/broker_file_permission.h",
388 "syscall_broker/broker_host.cc",
389 "syscall_broker/broker_host.h",
390 "syscall_broker/broker_policy.cc",
391 "syscall_broker/broker_policy.h",
392 "syscall_broker/broker_process.cc",
393 "syscall_broker/broker_process.h",
394 ]
395 }
[email protected]75cd8f02014-05-29 20:56:02396}
397
398source_set("sandbox_services_headers") {
399 sources = [
jlnaedcc3e2015-02-12 03:18:10400 "system_headers/arm64_linux_syscalls.h",
hidehikoa926d0b2015-04-24 21:55:21401 "system_headers/arm64_linux_ucontext.h",
jlna65ffca2015-02-13 04:12:43402 "system_headers/arm_linux_syscalls.h",
hidehikoa926d0b2015-04-24 21:55:21403 "system_headers/arm_linux_ucontext.h",
404 "system_headers/i386_linux_ucontext.h",
dnicoara97178052015-04-15 17:44:04405 "system_headers/linux_futex.h",
jlna65ffca2015-02-13 04:12:43406 "system_headers/linux_seccomp.h",
hidehikoa926d0b2015-04-24 21:55:21407 "system_headers/linux_signal.h",
jlnaedcc3e2015-02-12 03:18:10408 "system_headers/linux_syscalls.h",
ben7598f462015-05-22 23:19:51409 "system_headers/linux_time.h",
hidehikoa926d0b2015-04-24 21:55:21410 "system_headers/linux_ucontext.h",
jlnaedcc3e2015-02-12 03:18:10411 "system_headers/x86_32_linux_syscalls.h",
412 "system_headers/x86_64_linux_syscalls.h",
[email protected]75cd8f02014-05-29 20:56:02413 ]
414}
415
phosek636bceb32015-10-27 03:36:48416if (compile_suid_client || is_nacl_nonsfi) {
James Robinson060f2e32014-09-10 22:31:37417 component("suid_sandbox_client") {
418 sources = [
James Robinson060f2e32014-09-10 22:31:37419 "suid/client/setuid_sandbox_client.cc",
420 "suid/client/setuid_sandbox_client.h",
mdempsky3cc942a2015-02-05 03:29:25421 "suid/client/setuid_sandbox_host.cc",
422 "suid/client/setuid_sandbox_host.h",
scottmg7c7296f42015-02-28 02:23:09423 "suid/common/sandbox.h",
424 "suid/common/suid_unsafe_environment_variables.h",
James Robinson060f2e32014-09-10 22:31:37425 ]
426 defines = [ "SANDBOX_IMPLEMENTATION" ]
[email protected]75cd8f02014-05-29 20:56:02427
James Robinson060f2e32014-09-10 22:31:37428 deps = [
429 ":sandbox_services",
430 "//base",
431 ]
phosek636bceb32015-10-27 03:36:48432
433 if (is_nacl_nonsfi) {
434 sources -= [
435 "suid/client/setuid_sandbox_host.cc",
436 "suid/client/setuid_sandbox_host.h",
437 "suid/common/sandbox.h",
438 "suid/common/suid_unsafe_environment_variables.h",
439 ]
440 }
James Robinson060f2e32014-09-10 22:31:37441 }
[email protected]75cd8f02014-05-29 20:56:02442}
443
444if (is_android) {
pkotwiczbbe8d902015-10-29 17:10:07445 create_native_executable_dist("sandbox_linux_unittests_deps") {
446 testonly = true
447 dist_dir = "$root_out_dir/sandbox_linux_unittests_deps"
448 binary = "$root_out_dir/sandbox_linux_unittests"
449 deps = [
450 ":sandbox_linux_unittests",
451 ]
452
453 if (is_component_build) {
454 deps += [ "//build/android:cpplib_stripped" ]
455 }
456 }
457
458 test_runner_script("sandbox_linux_unittests__test_runner_script") {
459 test_name = "sandbox_linux_unittests"
460 test_type = "gtest"
461 test_suite = "sandbox_linux_unittests"
462 isolate_file = "//sandbox/sandbox_linux_unittests_android.isolate"
463 }
[email protected]75cd8f02014-05-29 20:56:02464}