blob: 8396a661add07b27cbaaf324162db3bce4ae5651 [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",
[email protected]75cd8f02014-05-29 20:56:0258 "tests/unit_tests.cc",
59 "tests/unit_tests.h",
60 ]
61
62 deps = [
63 "//testing/gtest",
64 ]
65
phosekca8571a92015-12-17 16:35:4266 if (!is_nacl_nonsfi) {
67 sources += [
68 "tests/test_utils.cc",
69 "tests/test_utils.h",
70 ]
71 }
72
73 if (use_seccomp_bpf || is_nacl_nonsfi) {
[email protected]75cd8f02014-05-29 20:56:0274 sources += [
75 "seccomp-bpf/bpf_tester_compatibility_delegate.h",
76 "seccomp-bpf/bpf_tests.h",
77 "seccomp-bpf/sandbox_bpf_test_runner.cc",
78 "seccomp-bpf/sandbox_bpf_test_runner.h",
79 ]
scottmg34fb7e52014-12-03 23:27:2480 deps += [ ":seccomp_bpf" ]
[email protected]75cd8f02014-05-29 20:56:0281 }
jln01954fd2015-05-15 06:19:3382
83 if (use_base_test_suite) {
84 deps += [ "//base/test:test_support" ]
85 defines = [ "SANDBOX_USES_BASE_TEST_SUITE" ]
86 }
[email protected]75cd8f02014-05-29 20:56:0287}
88
pkotwicz41889e32015-10-28 22:17:4889# Sources for sandbox_linux_unittests.
rockot86da06c7f2015-02-21 00:40:5890source_set("sandbox_linux_unittests_sources") {
91 testonly = true
92
[email protected]75cd8f02014-05-29 20:56:0293 sources = [
jlnb14fc802015-02-12 05:32:1194 "services/proc_util_unittest.cc",
jln977185982015-02-13 20:58:4195 "services/resource_limits_unittests.cc",
[email protected]75cd8f02014-05-29 20:56:0296 "services/scoped_process_unittest.cc",
jlnc420f0d2014-11-22 01:12:0997 "services/syscall_wrappers_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:0298 "services/thread_helpers_unittests.cc",
99 "services/yama_unittests.cc",
leecamad78f422014-11-26 22:08:45100 "syscall_broker/broker_file_permission_unittest.cc",
jln70c42c202014-11-01 00:59:57101 "syscall_broker/broker_process_unittest.cc",
[email protected]232f6e112014-06-27 07:51:38102 "tests/main.cc",
103 "tests/scoped_temporary_file.cc",
104 "tests/scoped_temporary_file.h",
105 "tests/scoped_temporary_file_unittest.cc",
jlnc420f0d2014-11-22 01:12:09106 "tests/test_utils_unittest.cc",
[email protected]232f6e112014-06-27 07:51:38107 "tests/unit_tests_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02108 ]
109
110 deps = [
111 ":sandbox",
112 ":sandbox_linux_test_utils",
113 "//base",
[email protected]75cd8f02014-05-29 20:56:02114 "//testing/gtest",
115 ]
116
jln01954fd2015-05-15 06:19:33117 if (use_base_test_suite) {
118 deps += [ "//base/test:test_support" ]
119 defines = [ "SANDBOX_USES_BASE_TEST_SUITE" ]
120 }
121
Brett Wilson73067532014-09-12 22:24:14122 if (is_linux) {
123 # Don't use this on Android.
124 libs = [ "rt" ]
125 }
Brett Wilsone39344352014-09-12 21:07:26126
[email protected]75cd8f02014-05-29 20:56:02127 if (compile_suid_client) {
mdempsky3cc942a2015-02-05 03:29:25128 sources += [
129 "suid/client/setuid_sandbox_client_unittest.cc",
130 "suid/client/setuid_sandbox_host_unittest.cc",
131 ]
[email protected]75cd8f02014-05-29 20:56:02132 }
133 if (use_seccomp_bpf) {
134 sources += [
[email protected]fb75e2a2014-07-17 07:24:58135 "bpf_dsl/bpf_dsl_unittest.cc",
mdempskyb80b1f52015-02-05 00:54:35136 "bpf_dsl/codegen_unittest.cc",
[email protected]fb75e2a2014-07-17 07:24:58137 "bpf_dsl/cons_unittest.cc",
mdempsky937389d2015-08-31 22:27:23138 "bpf_dsl/dump_bpf.cc",
139 "bpf_dsl/dump_bpf.h",
mdempskyce4c9f12015-02-05 06:23:05140 "bpf_dsl/syscall_set_unittest.cc",
mdempsky3909ebf2015-08-20 23:18:18141 "bpf_dsl/test_trap_registry.cc",
142 "bpf_dsl/test_trap_registry.h",
143 "bpf_dsl/test_trap_registry_unittest.cc",
mdempsky937389d2015-08-31 22:27:23144 "bpf_dsl/verifier.cc",
145 "bpf_dsl/verifier.h",
jlnaedcc3e2015-02-12 03:18:10146 "integration_tests/bpf_dsl_seccomp_unittest.cc",
147 "integration_tests/seccomp_broker_process_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02148 "seccomp-bpf-helpers/baseline_policy_unittest.cc",
jlnfcdfb102014-09-12 02:47:44149 "seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc",
[email protected]75cd8f02014-05-29 20:56:02150 "seccomp-bpf/bpf_tests_unittest.cc",
jlna29d0a32014-11-26 22:38:35151 "seccomp-bpf/sandbox_bpf_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02152 "seccomp-bpf/syscall_unittest.cc",
hidehikoa926d0b2015-04-24 21:55:21153 "seccomp-bpf/trap_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02154 ]
mdempskya3fd0ec2015-08-26 00:45:52155 deps += [ ":bpf_dsl_golden" ]
[email protected]75cd8f02014-05-29 20:56:02156 }
157 if (compile_credentials) {
158 sources += [
jlnaedcc3e2015-02-12 03:18:10159 "integration_tests/namespace_unix_domain_socket_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02160 "services/credentials_unittest.cc",
rickyz41fb1452015-01-27 03:57:58161 "services/namespace_utils_unittest.cc",
[email protected]75cd8f02014-05-29 20:56:02162 ]
rickyz966f039d2015-03-17 07:23:43163
jln01954fd2015-05-15 06:19:33164 if (use_base_test_suite) {
165 # Tests that use advanced features not available in stock GTest.
166 sources += [ "services/namespace_sandbox_unittest.cc" ]
167 }
168
rickyz966f039d2015-03-17 07:23:43169 # For credentials_unittest.cc
170 configs += [ "//build/config/linux:libcap" ]
[email protected]75cd8f02014-05-29 20:56:02171 }
172}
173
mdempskya3fd0ec2015-08-26 00:45:52174action("bpf_dsl_golden") {
175 script = "bpf_dsl/golden/generate.py"
176 inputs = [
177 "bpf_dsl/golden/i386/ArgSizePolicy.txt",
178 "bpf_dsl/golden/i386/BasicPolicy.txt",
179 "bpf_dsl/golden/i386/ElseIfPolicy.txt",
180 "bpf_dsl/golden/i386/MaskingPolicy.txt",
181 "bpf_dsl/golden/i386/MoreBooleanLogicPolicy.txt",
182 "bpf_dsl/golden/i386/NegativeConstantsPolicy.txt",
183 "bpf_dsl/golden/i386/SwitchPolicy.txt",
184 "bpf_dsl/golden/x86-64/ArgSizePolicy.txt",
185 "bpf_dsl/golden/x86-64/BasicPolicy.txt",
186 "bpf_dsl/golden/x86-64/BooleanLogicPolicy.txt",
187 "bpf_dsl/golden/x86-64/ElseIfPolicy.txt",
188 "bpf_dsl/golden/x86-64/MaskingPolicy.txt",
189 "bpf_dsl/golden/x86-64/MoreBooleanLogicPolicy.txt",
190 "bpf_dsl/golden/x86-64/NegativeConstantsPolicy.txt",
191 "bpf_dsl/golden/x86-64/SwitchPolicy.txt",
192 ]
193 outputs = [
194 "$target_gen_dir/bpf_dsl/golden/golden_files.h",
195 ]
196 args =
197 rebase_path(outputs, root_build_dir) + rebase_path(inputs, root_build_dir)
198}
199
dpranke177c1e22015-07-22 23:07:43200# TODO(GYP): Delete this after we've converted everything to GN.
201# The _run targets exist only for compatibility w/ GYP.
202group("sandbox_linux_unittests_run") {
203 testonly = true
204 deps = [
205 ":sandbox_linux_unittests",
206 ]
207}
208
pkotwiczbbe8d902015-10-29 17:10:07209# The main sandboxing test target. "sandbox_linux_unittests" cannot use the
210# test() template because the test is run as an executable not as an APK on
211# Android.
212executable("sandbox_linux_unittests") {
213 testonly = true
rockot86da06c7f2015-02-21 00:40:58214 deps = [
215 ":sandbox_linux_unittests_sources",
pkotwiczbbe8d902015-10-29 17:10:07216 "//build/config/sanitizers:deps",
rockot86da06c7f2015-02-21 00:40:58217 ]
218}
219
[email protected]75cd8f02014-05-29 20:56:02220component("seccomp_bpf") {
221 sources = [
[email protected]fb75e2a2014-07-17 07:24:58222 "bpf_dsl/bpf_dsl.cc",
223 "bpf_dsl/bpf_dsl.h",
mdempskyc60a1c52014-10-24 23:07:10224 "bpf_dsl/bpf_dsl_forward.h",
mdempskyfb10cce2014-10-14 17:56:44225 "bpf_dsl/bpf_dsl_impl.h",
mdempskyb80b1f52015-02-05 00:54:35226 "bpf_dsl/codegen.cc",
227 "bpf_dsl/codegen.h",
[email protected]fb75e2a2014-07-17 07:24:58228 "bpf_dsl/cons.h",
mdempsky3909ebf2015-08-20 23:18:18229 "bpf_dsl/errorcode.h",
jlna65ffca2015-02-13 04:12:43230 "bpf_dsl/linux_syscall_ranges.h",
mdempskyc60a1c52014-10-24 23:07:10231 "bpf_dsl/policy.cc",
232 "bpf_dsl/policy.h",
mdempsky27e78ad72014-10-16 16:49:54233 "bpf_dsl/policy_compiler.cc",
234 "bpf_dsl/policy_compiler.h",
jlna65ffca2015-02-13 04:12:43235 "bpf_dsl/seccomp_macros.h",
mdempskyce4c9f12015-02-05 06:23:05236 "bpf_dsl/syscall_set.cc",
237 "bpf_dsl/syscall_set.h",
mdempsky27e78ad72014-10-16 16:49:54238 "bpf_dsl/trap_registry.h",
[email protected]75cd8f02014-05-29 20:56:02239 "seccomp-bpf/die.cc",
240 "seccomp-bpf/die.h",
[email protected]75cd8f02014-05-29 20:56:02241 "seccomp-bpf/sandbox_bpf.cc",
242 "seccomp-bpf/sandbox_bpf.h",
[email protected]75cd8f02014-05-29 20:56:02243 "seccomp-bpf/syscall.cc",
244 "seccomp-bpf/syscall.h",
[email protected]75cd8f02014-05-29 20:56:02245 "seccomp-bpf/trap.cc",
246 "seccomp-bpf/trap.h",
[email protected]75cd8f02014-05-29 20:56:02247 ]
248 defines = [ "SANDBOX_IMPLEMENTATION" ]
249
250 deps = [
jlnbd4df41c2014-11-25 02:32:30251 ":sandbox_services",
[email protected]75cd8f02014-05-29 20:56:02252 ":sandbox_services_headers",
253 "//base",
254 ]
phosek636bceb32015-10-27 03:36:48255
256 if (is_nacl_nonsfi) {
257 cflags = [ "-fgnu-inline-asm" ]
258 sources -= [
259 "bpf_dsl/bpf_dsl_forward.h",
260 "bpf_dsl/bpf_dsl_impl.h",
261 "bpf_dsl/cons.h",
262 "bpf_dsl/errorcode.h",
263 "bpf_dsl/linux_syscall_ranges.h",
264 "bpf_dsl/seccomp_macros.h",
265 "bpf_dsl/trap_registry.h",
266 ]
267 }
[email protected]75cd8f02014-05-29 20:56:02268}
269
270component("seccomp_bpf_helpers") {
271 sources = [
272 "seccomp-bpf-helpers/baseline_policy.cc",
273 "seccomp-bpf-helpers/baseline_policy.h",
274 "seccomp-bpf-helpers/sigsys_handlers.cc",
275 "seccomp-bpf-helpers/sigsys_handlers.h",
276 "seccomp-bpf-helpers/syscall_parameters_restrictions.cc",
277 "seccomp-bpf-helpers/syscall_parameters_restrictions.h",
278 "seccomp-bpf-helpers/syscall_sets.cc",
279 "seccomp-bpf-helpers/syscall_sets.h",
280 ]
281 defines = [ "SANDBOX_IMPLEMENTATION" ]
282
283 deps = [
jamesr4359db72015-01-21 12:40:00284 ":sandbox_services",
[email protected]75cd8f02014-05-29 20:56:02285 ":seccomp_bpf",
agrieved7a71c882015-11-20 19:53:28286 "//base",
[email protected]75cd8f02014-05-29 20:56:02287 ]
phosek636bceb32015-10-27 03:36:48288
289 if (is_nacl_nonsfi) {
290 sources -= [
291 "seccomp-bpf-helpers/baseline_policy.cc",
292 "seccomp-bpf-helpers/baseline_policy.h",
293 "seccomp-bpf-helpers/syscall_sets.cc",
294 "seccomp-bpf-helpers/syscall_sets.h",
295 ]
296 configs += [ ":nacl_nonsfi_warnings" ]
297 }
[email protected]75cd8f02014-05-29 20:56:02298}
299
James Robinson060f2e32014-09-10 22:31:37300if (is_linux) {
scottmg34fb7e52014-12-03 23:27:24301 # The setuid sandbox for Linux.
James Robinson060f2e32014-09-10 22:31:37302 executable("chrome_sandbox") {
303 sources = [
304 "suid/common/sandbox.h",
305 "suid/common/suid_unsafe_environment_variables.h",
James Robinson060f2e32014-09-10 22:31:37306 "suid/process_util.h",
307 "suid/process_util_linux.c",
308 "suid/sandbox.c",
309 ]
[email protected]75cd8f02014-05-29 20:56:02310
James Robinson060f2e32014-09-10 22:31:37311 cflags = [
312 # For ULLONG_MAX
313 "-std=gnu99",
scottmg34fb7e52014-12-03 23:27:24314
James Robinson060f2e32014-09-10 22:31:37315 # These files have a suspicious comparison.
316 # TODO fix this and re-enable this warning.
317 "-Wno-sign-compare",
318 ]
brettwba7a73d2015-08-31 22:17:39319
320 deps = [
321 "//build/config/sanitizers:deps",
322 ]
James Robinson060f2e32014-09-10 22:31:37323 }
[email protected]75cd8f02014-05-29 20:56:02324}
325
326component("sandbox_services") {
327 sources = [
[email protected]75cd8f02014-05-29 20:56:02328 "services/init_process_reaper.cc",
329 "services/init_process_reaper.h",
jlnb14fc802015-02-12 05:32:11330 "services/proc_util.cc",
331 "services/proc_util.h",
jln977185982015-02-13 20:58:41332 "services/resource_limits.cc",
333 "services/resource_limits.h",
[email protected]75cd8f02014-05-29 20:56:02334 "services/scoped_process.cc",
335 "services/scoped_process.h",
jln610a4a612014-11-20 18:58:21336 "services/syscall_wrappers.cc",
337 "services/syscall_wrappers.h",
[email protected]75cd8f02014-05-29 20:56:02338 "services/thread_helpers.cc",
339 "services/thread_helpers.h",
[email protected]75cd8f02014-05-29 20:56:02340 "services/yama.cc",
jlnb14fc802015-02-12 05:32:11341 "services/yama.h",
jln878dca32014-11-11 07:43:57342 "syscall_broker/broker_channel.cc",
343 "syscall_broker/broker_channel.h",
jln70c42c202014-11-01 00:59:57344 "syscall_broker/broker_client.cc",
345 "syscall_broker/broker_client.h",
346 "syscall_broker/broker_common.h",
leecamad78f422014-11-26 22:08:45347 "syscall_broker/broker_file_permission.cc",
348 "syscall_broker/broker_file_permission.h",
jln70c42c202014-11-01 00:59:57349 "syscall_broker/broker_host.cc",
350 "syscall_broker/broker_host.h",
351 "syscall_broker/broker_policy.cc",
352 "syscall_broker/broker_policy.h",
353 "syscall_broker/broker_process.cc",
354 "syscall_broker/broker_process.h",
[email protected]75cd8f02014-05-29 20:56:02355 ]
356
357 defines = [ "SANDBOX_IMPLEMENTATION" ]
358
rickyz966f039d2015-03-17 07:23:43359 deps = [
360 "//base",
361 ]
362
phosek636bceb32015-10-27 03:36:48363 if (compile_credentials || is_nacl_nonsfi) {
[email protected]75cd8f02014-05-29 20:56:02364 sources += [
365 "services/credentials.cc",
366 "services/credentials.h",
rickyz8f235da2015-02-03 07:26:19367 "services/namespace_sandbox.cc",
368 "services/namespace_sandbox.h",
rickyz41fb1452015-01-27 03:57:58369 "services/namespace_utils.cc",
370 "services/namespace_utils.h",
[email protected]75cd8f02014-05-29 20:56:02371 ]
scottmg34fb7e52014-12-03 23:27:24372
rickyz966f039d2015-03-17 07:23:43373 deps += [ ":sandbox_services_headers" ]
[email protected]75cd8f02014-05-29 20:56:02374 }
phosek636bceb32015-10-27 03:36:48375
376 if (is_nacl_nonsfi) {
mcgrathr87cb1c072015-11-20 21:47:40377 cflags = [ "-fgnu-inline-asm" ]
378
phosek636bceb32015-10-27 03:36:48379 sources -= [
380 "services/init_process_reaper.cc",
381 "services/init_process_reaper.h",
382 "services/scoped_process.cc",
383 "services/scoped_process.h",
384 "services/yama.cc",
385 "services/yama.h",
386 "syscall_broker/broker_channel.cc",
387 "syscall_broker/broker_channel.h",
388 "syscall_broker/broker_client.cc",
389 "syscall_broker/broker_client.h",
390 "syscall_broker/broker_common.h",
391 "syscall_broker/broker_file_permission.cc",
392 "syscall_broker/broker_file_permission.h",
393 "syscall_broker/broker_host.cc",
394 "syscall_broker/broker_host.h",
395 "syscall_broker/broker_policy.cc",
396 "syscall_broker/broker_policy.h",
397 "syscall_broker/broker_process.cc",
398 "syscall_broker/broker_process.h",
399 ]
400 }
[email protected]75cd8f02014-05-29 20:56:02401}
402
403source_set("sandbox_services_headers") {
404 sources = [
jlnaedcc3e2015-02-12 03:18:10405 "system_headers/arm64_linux_syscalls.h",
hidehikoa926d0b2015-04-24 21:55:21406 "system_headers/arm64_linux_ucontext.h",
jlna65ffca2015-02-13 04:12:43407 "system_headers/arm_linux_syscalls.h",
hidehikoa926d0b2015-04-24 21:55:21408 "system_headers/arm_linux_ucontext.h",
409 "system_headers/i386_linux_ucontext.h",
dnicoara97178052015-04-15 17:44:04410 "system_headers/linux_futex.h",
jlna65ffca2015-02-13 04:12:43411 "system_headers/linux_seccomp.h",
hidehikoa926d0b2015-04-24 21:55:21412 "system_headers/linux_signal.h",
jlnaedcc3e2015-02-12 03:18:10413 "system_headers/linux_syscalls.h",
ben7598f462015-05-22 23:19:51414 "system_headers/linux_time.h",
hidehikoa926d0b2015-04-24 21:55:21415 "system_headers/linux_ucontext.h",
jlnaedcc3e2015-02-12 03:18:10416 "system_headers/x86_32_linux_syscalls.h",
417 "system_headers/x86_64_linux_syscalls.h",
[email protected]75cd8f02014-05-29 20:56:02418 ]
419}
420
phosek636bceb32015-10-27 03:36:48421if (compile_suid_client || is_nacl_nonsfi) {
James Robinson060f2e32014-09-10 22:31:37422 component("suid_sandbox_client") {
423 sources = [
James Robinson060f2e32014-09-10 22:31:37424 "suid/client/setuid_sandbox_client.cc",
425 "suid/client/setuid_sandbox_client.h",
mdempsky3cc942a2015-02-05 03:29:25426 "suid/client/setuid_sandbox_host.cc",
427 "suid/client/setuid_sandbox_host.h",
scottmg7c7296f42015-02-28 02:23:09428 "suid/common/sandbox.h",
429 "suid/common/suid_unsafe_environment_variables.h",
James Robinson060f2e32014-09-10 22:31:37430 ]
431 defines = [ "SANDBOX_IMPLEMENTATION" ]
[email protected]75cd8f02014-05-29 20:56:02432
James Robinson060f2e32014-09-10 22:31:37433 deps = [
434 ":sandbox_services",
435 "//base",
436 ]
phosek636bceb32015-10-27 03:36:48437
438 if (is_nacl_nonsfi) {
439 sources -= [
440 "suid/client/setuid_sandbox_host.cc",
441 "suid/client/setuid_sandbox_host.h",
442 "suid/common/sandbox.h",
443 "suid/common/suid_unsafe_environment_variables.h",
444 ]
445 }
James Robinson060f2e32014-09-10 22:31:37446 }
[email protected]75cd8f02014-05-29 20:56:02447}
448
449if (is_android) {
pkotwiczbbe8d902015-10-29 17:10:07450 create_native_executable_dist("sandbox_linux_unittests_deps") {
451 testonly = true
452 dist_dir = "$root_out_dir/sandbox_linux_unittests_deps"
453 binary = "$root_out_dir/sandbox_linux_unittests"
454 deps = [
455 ":sandbox_linux_unittests",
456 ]
457
458 if (is_component_build) {
459 deps += [ "//build/android:cpplib_stripped" ]
460 }
461 }
462
463 test_runner_script("sandbox_linux_unittests__test_runner_script") {
464 test_name = "sandbox_linux_unittests"
465 test_type = "gtest"
466 test_suite = "sandbox_linux_unittests"
467 isolate_file = "//sandbox/sandbox_linux_unittests_android.isolate"
468 }
[email protected]75cd8f02014-05-29 20:56:02469}