Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(813)

Side by Side Diff: chrome/test/data/nacl/BUILD.gn

Issue 1434823002: Build NaCl browser tests with GN (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/test/BUILD.gn ('k') | ppapi/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2015 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
5 import("//build/config/features.gni")
6 import("//build/config/nacl/config.gni")
7 import("//build/config/nacl/rules.gni")
8
9 group("nacl") {
10 newlib = "//build/toolchain/nacl:clang_newlib_${target_cpu}"
11 glibc = "//build/toolchain/nacl:glibc_${target_cpu}"
12 pnacl = "//build/toolchain/nacl:newlib_pnacl"
13 deps = [
14 ":exit_status_test($glibc)",
15 ":exit_status_test($newlib)",
16 ":exit_status_test($pnacl)",
17 ":extension_validation_cache($glibc)",
18 ":extension_validation_cache($newlib)",
19 ":irt_exception_test($glibc)",
20 ":irt_exception_test($newlib)",
21 ":irt_exception_test($pnacl)",
22 ":irt_manifest_file($newlib)",
23 ":partly_invalid($newlib)",
24 ":pnacl_debug_url_test($pnacl)",
25 ":pnacl_dyncode_syscall_disabled_test($pnacl)",
26 ":pnacl_error_handling_test($pnacl)",
27 ":pnacl_hw_eh_disabled_test($pnacl)",
28 ":pnacl_mime_type_test($glibc)",
29 ":pnacl_mime_type_test($newlib)",
30 ":pnacl_mime_type_test($pnacl)",
31 ":pnacl_options_test($pnacl)",
32 ":ppapi_bad_get_ppp_instance_crash($newlib)",
33 ":ppapi_bad_no_ppp_instance($newlib)",
34 ":ppapi_bad_ppp_initialize($newlib)",
35 ":ppapi_bad_ppp_initialize_crash($newlib)",
36 ":ppapi_bad_ppp_instance_didcreate($newlib)",
37 ":ppapi_bad_ppp_instance_didcreate_crash($newlib)",
38 ":ppapi_crash_in_callback($glibc)",
39 ":ppapi_crash_in_callback($newlib)",
40 ":ppapi_crash_in_callback($pnacl)",
41 ":ppapi_crash_off_main_thread($glibc)",
42 ":ppapi_crash_off_main_thread($newlib)",
43 ":ppapi_crash_off_main_thread($pnacl)",
44 ":ppapi_crash_ppapi_off_main_thread($glibc)",
45 ":ppapi_crash_ppapi_off_main_thread($newlib)",
46 ":ppapi_crash_ppapi_off_main_thread($pnacl)",
47 ":ppapi_crash_via_check_failure($glibc)",
48 ":ppapi_crash_via_check_failure($newlib)",
49 ":ppapi_crash_via_check_failure($pnacl)",
50 ":ppapi_crash_via_exit_call($glibc)",
51 ":ppapi_crash_via_exit_call($newlib)",
52 ":ppapi_crash_via_exit_call($pnacl)",
53 ":ppapi_extension_mime_handler($newlib)",
54 ":ppapi_ppb_core($glibc)",
55 ":ppapi_ppb_core($newlib)",
56 ":ppapi_ppb_core($pnacl)",
57 ":ppapi_ppb_instance($glibc)",
58 ":ppapi_ppb_instance($newlib)",
59 ":ppapi_ppb_instance($pnacl)",
60 ":ppapi_ppp_instance($glibc)",
61 ":ppapi_ppp_instance($newlib)",
62 ":ppapi_ppp_instance($pnacl)",
63 ":ppapi_progress_events($glibc)",
64 ":ppapi_progress_events($newlib)",
65 ":ppapi_progress_events($pnacl)",
66 ":shared_test_files($glibc)",
67 ":shared_test_files($newlib)",
68 ":shared_test_files($pnacl)",
69 ":simple_test($glibc)",
70 ":simple_test($newlib)",
71 ":simple_test($pnacl)",
72 ":sysconf_nprocessors_onln_test($glibc)",
73 ":sysconf_nprocessors_onln_test($newlib)",
74 ":sysconf_nprocessors_onln_test($pnacl)",
75 ]
76 }
77
78 if (is_nacl) {
79 template("nacl_test_data") {
80 if (current_cpu == "pnacl") {
81 variant = "pnacl"
82 } else if (is_nacl_glibc) {
83 variant = "glibc"
84 } else {
85 variant = "newlib"
86 }
87
88 if (defined(invoker.sources)) {
89 if (defined(invoker.output_name)) {
90 base_target_name = invoker.output_name
91 } else {
92 base_target_name = target_name
93 }
94
95 if (current_cpu == "x64") {
96 nmf_cpu = "x86_64"
97 } else if (current_cpu == "x86") {
98 nmf_cpu = "x86_32"
99 } else {
100 nmf_cpu = current_cpu
101 }
102 if (is_nacl_glibc) {
103 suffix = "glibc_${nmf_cpu}"
104 } else {
105 suffix = "newlib_${nmf_cpu}"
106 }
107 suffixed_target_name = "${base_target_name}_${suffix}"
108
109 if (defined(invoker.generate_nmf)) {
110 generate_nmf = invoker.generate_nmf
111 } else {
112 generate_nmf = true
113 }
114
115 nexe_target_name = target_name + "_nexe"
116 nexe_copy_target_name = target_name + "_copy_nexe"
117 if (generate_nmf) {
118 nmf_target_name = target_name + "_nmf"
119 }
120 }
121
122 if (defined(invoker.test_files)) {
123 test_files_target_name = target_name + "_test_files"
124 }
125
126 destination_dir = "nacl_test_data"
127 if (defined(invoker.destination_dir)) {
128 destination_dir += "/${invoker.destination_dir}"
129 }
130
131 if (defined(invoker.sources)) {
132 executable(nexe_target_name) {
133 output_name = suffixed_target_name
134 sources = invoker.sources
135 forward_variables_from(invoker,
136 [
137 "cflags",
138 "ldflags",
139 ])
140 deps = [
141 "//ppapi:ppapi_cpp_lib",
142 "//ppapi/native_client:ppapi_lib",
143 ]
144 if (is_nacl_glibc) {
145 ldflags = [ "-pthread" ]
146 } else {
147 deps += [
148 "//native_client/src/untrusted/nacl",
149 "//native_client/src/untrusted/pthread",
150 ]
151 }
152 if (defined(invoker.deps)) {
153 deps += invoker.deps
154 }
155 }
156
157 copy(nexe_copy_target_name) {
158 if (current_cpu == "pnacl") {
159 if (defined(invoker.nonstable_pexe) && invoker.nonstable_pexe) {
160 sources = [
161 "${root_out_dir}/exe.unstripped/${suffixed_target_name}.pexe",
162 ]
163 } else {
164 sources = [
165 "${root_out_dir}/${suffixed_target_name}.pexe",
166 ]
167 }
168 } else {
169 sources = [
170 "${root_out_dir}/${suffixed_target_name}.nexe",
171 ]
172 }
173 outputs = [
174 "${root_build_dir}/${destination_dir}/${variant}/{{source_file_part}}" ,
175 ]
176 deps = [
177 ":${nexe_target_name}",
178 ]
179 }
180 }
181
182 if (defined(invoker.sources) && generate_nmf) {
183 generate_nmf(nmf_target_name) {
184 nmf = "${root_build_dir}/${destination_dir}/${variant}/${base_target_nam e}.nmf"
185 if (current_cpu == "pnacl") {
186 executables = [ "${root_build_dir}/${destination_dir}/${variant}/${suf fixed_target_name}.pexe" ]
187 } else {
188 executables = [ "${root_build_dir}/${destination_dir}/${variant}/${suf fixed_target_name}.nexe" ]
189 }
190 if (is_nacl_glibc) {
191 lib_prefix = "${base_target_name}_libs"
192 stage_dependencies = "${root_build_dir}/${destination_dir}/${variant}"
193 }
194 if (defined(invoker.nmfflags)) {
195 nmfflags = invoker.nmfflags
196 }
197 deps = [
198 ":${nexe_copy_target_name}",
199 ]
200 }
201 }
202
203 if (defined(invoker.test_files)) {
204 copy(test_files_target_name) {
205 sources = invoker.test_files
206 outputs = [
207 "${root_build_dir}/${destination_dir}/${variant}/{{source_file_part}}" ,
208 ]
209 if (defined(invoker.sources)) {
210 deps = [
211 ":${nexe_target_name}",
212 ]
213 }
214 }
215 }
216
217 group(target_name) {
218 data_deps = []
219 if (defined(invoker.sources)) {
220 data_deps += [ ":${nexe_copy_target_name}" ]
221 if (generate_nmf) {
222 data_deps += [ ":${nmf_target_name}" ]
223 }
224 }
225 if (defined(invoker.test_files)) {
226 data_deps += [ ":${test_files_target_name}" ]
227 }
228 }
229 }
230
231 nacl_test_data("shared_test_files") {
232 test_files = [
233 # TODO(ncbray) move into chrome/test/data/nacl when all tests are
234 # converted.
235 "//ppapi/native_client/tools/browser_tester/browserdata/nacltest.js",
236
237 # Files that aren't associated with any particular executable.
238 "bad/ppapi_bad.html",
239 "bad/ppapi_bad.js",
240 "bad/ppapi_bad_native.html",
241 "bad/ppapi_bad_doesnotexist.nmf",
242 "bad/ppapi_bad_magic.nmf",
243 "bad/ppapi_bad_manifest_uses_nexes.nmf",
244 "bad/ppapi_bad_manifest_bad_files.nmf",
245 "bad/ppapi_bad_manifest_nexe_arch.nmf",
246 "crash/ppapi_crash.js",
247 "crash/ppapi_crash_via_check_failure.html",
248 "crash/ppapi_crash_via_exit_call.html",
249 "crash/ppapi_crash_in_callback.html",
250 "crash/ppapi_crash_ppapi_off_main_thread.html",
251 "crash/ppapi_crash_off_main_thread.html",
252 "load_util.js",
253 "manifest_file/test_file.txt",
254 "progress_event_listener.js",
255 "simple_cc.js",
256 ]
257 }
258
259 nacl_test_data("simple_test") {
260 output_name = "simple"
261 sources = [
262 "simple.cc",
263 ]
264 test_files = [ "nacl_load_test.html" ]
265 }
266
267 nacl_test_data("exit_status_test") {
268 output_name = "pm_exit_status_test"
269 sources = [
270 "exit_status/pm_exit_status_test.cc",
271 ]
272 test_files = [ "exit_status/pm_exit_status_test.html" ]
273 }
274
275 nacl_test_data("extension_validation_cache") {
276 sources = [
277 "simple.cc",
278 ]
279
280 # Need a new directory to not clash with with other extension
281 # tests's files (e.g., manifest.json).
282 destination_dir = "extension_vcache_test"
283 test_files = [
284 # TODO(ncbray) move into chrome/test/data/nacl when all tests are
285 # converted.
286 "//ppapi/native_client/tools/browser_tester/browserdata/nacltest.js",
287 "extension_validation_cache/extension_validation_cache.html",
288 "extension_validation_cache/extension_validation_cache.js",
289
290 # Turns the test data directory into an extension.
291 # Use a different nexe_destination_dir to isolate the files.
292 # Note that the .nexe names are embedded in this file.
293 "extension_validation_cache/manifest.json",
294 "load_util.js",
295 "simple_cc.js",
296 ]
297 }
298
299 nacl_test_data("sysconf_nprocessors_onln_test") {
300 sources = [
301 "sysconf_nprocessors_onln/sysconf_nprocessors_onln_test.cc",
302 ]
303 test_files =
304 [ "sysconf_nprocessors_onln/sysconf_nprocessors_onln_test.html" ]
305 }
306
307 source_set("ppapi_test_lib") {
308 sources = [
309 # TODO(ncbray) move these files once SCons no longer depends on them.
310 "//ppapi/native_client/tests/ppapi_test_lib/get_browser_interface.cc",
311 "//ppapi/native_client/tests/ppapi_test_lib/get_browser_interface.h",
312 "//ppapi/native_client/tests/ppapi_test_lib/internal_utils.cc",
313 "//ppapi/native_client/tests/ppapi_test_lib/internal_utils.h",
314 "//ppapi/native_client/tests/ppapi_test_lib/module_instance.cc",
315 "//ppapi/native_client/tests/ppapi_test_lib/test_interface.cc",
316 "//ppapi/native_client/tests/ppapi_test_lib/test_interface.h",
317 "//ppapi/native_client/tests/ppapi_test_lib/testable_callback.cc",
318 "//ppapi/native_client/tests/ppapi_test_lib/testable_callback.h",
319 ]
320 deps = [
321 "//native_client/src/shared/gio",
322 "//native_client/src/shared/platform",
323 "//ppapi/native_client:ppapi_lib",
324 ]
325 }
326
327 nacl_test_data("ppapi_progress_events") {
328 sources = [
329 "progress_events/ppapi_progress_events.cc",
330 ]
331 test_files = [ "progress_events/ppapi_progress_events.html" ]
332 deps = [
333 ":ppapi_test_lib",
334 ]
335 }
336
337 nacl_test_data("ppapi_bad_ppp_initialize") {
338 sources = [
339 "bad/ppapi_bad_ppp_initialize.cc",
340 ]
341 }
342
343 nacl_test_data("ppapi_bad_ppp_initialize_crash") {
344 sources = [
345 "bad/ppapi_bad_ppp_initialize_crash.cc",
346 ]
347 }
348
349 nacl_test_data("ppapi_bad_no_ppp_instance") {
350 sources = [
351 "bad/ppapi_bad_no_ppp_instance.cc",
352 ]
353 deps = [
354 "//native_client/src/shared/platform",
355 ]
356 }
357
358 nacl_test_data("ppapi_bad_get_ppp_instance_crash") {
359 sources = [
360 "bad/ppapi_bad_get_ppp_instance_crash.cc",
361 ]
362 }
363
364 nacl_test_data("ppapi_bad_ppp_instance_didcreate") {
365 sources = [
366 "bad/ppapi_bad_ppp_instance_didcreate.cc",
367 ]
368 }
369
370 nacl_test_data("ppapi_bad_ppp_instance_didcreate_crash") {
371 sources = [
372 "bad/ppapi_bad_ppp_instance_didcreate_crash.cc",
373 ]
374 }
375
376 nacl_test_data("ppapi_crash_via_check_failure") {
377 sources = [
378 "crash/ppapi_crash_via_check_failure.cc",
379 ]
380 deps = [
381 ":ppapi_test_lib",
382 ]
383 }
384
385 nacl_test_data("ppapi_crash_via_exit_call") {
386 sources = [
387 "crash/ppapi_crash_via_exit_call.cc",
388 ]
389 deps = [
390 ":ppapi_test_lib",
391 ]
392 }
393
394 nacl_test_data("ppapi_crash_in_callback") {
395 sources = [
396 "crash/ppapi_crash_in_callback.cc",
397 ]
398 deps = [
399 ":ppapi_test_lib",
400 ]
401 }
402
403 nacl_test_data("ppapi_crash_off_main_thread") {
404 sources = [
405 "crash/ppapi_crash_off_main_thread.cc",
406 ]
407 deps = [
408 ":ppapi_test_lib",
409 ]
410 }
411
412 nacl_test_data("ppapi_crash_ppapi_off_main_thread") {
413 sources = [
414 "crash/ppapi_crash_ppapi_off_main_thread.cc",
415 ]
416 deps = [
417 ":ppapi_test_lib",
418 ]
419 }
420
421 nacl_test_data("irt_manifest_file") {
422 sources = [
423 "manifest_file/irt_manifest_file_test.cc",
424 ]
425 nmfflags = [
426 "-xtest_file:test_file.txt",
427 "-xnmf says hello world:test_file.txt",
428
429 # There is no dummy_test_file.txt file intentionally. This is just for
430 # a test case where there is a manifest entry, but no actual file.
431 "-xdummy_test_file:dummy_test_file.txt",
432 ]
433 test_files = [ "manifest_file/irt_manifest_file_test.html" ]
434 }
435
436 nacl_test_data("irt_exception_test") {
437 sources = [
438 "irt_exception/irt_exception_test.cc",
439 ]
440 deps = [
441 ":ppapi_test_lib",
442 "//native_client/src/untrusted/nacl:nacl_exception",
443 ]
444 test_files = [ "irt_exception/irt_exception_test.html" ]
445 }
446
447 nacl_test_data("ppapi_extension_mime_handler") {
448 sources = [
449 "extension_mime_handler/ppapi_extension_mime_handler.cc",
450 ]
451 deps = [
452 ":ppapi_test_lib",
453 ]
454 test_files = [
455 "extension_mime_handler/ppapi_extension_mime_handler.html",
456 "extension_mime_handler/mime_test_data.dat",
457
458 # For faking the file's MIME type.
459 "extension_mime_handler/mime_test_data.dat.mock-http-headers",
460
461 # Turns the test data directory into an extension. Hackish.
462 # Note that the .nexe names are embedded in this file.
463 "extension_mime_handler/manifest.json",
464 ]
465 }
466
467 nacl_test_data("pnacl_debug_url_test") {
468 output_name = "pnacl_debug_url"
469 sources = [
470 "simple.cc",
471 ]
472 generate_nmf = false
473 test_files = [
474 "pnacl_debug_url/pnacl_debug_url.html",
475 "pnacl_debug_url/pnacl_has_debug.nmf",
476 "pnacl_debug_url/pnacl_has_debug_flag_off.nmf",
477 "pnacl_debug_url/pnacl_no_debug.nmf",
478 ]
479 }
480
481 nacl_test_data("pnacl_error_handling_test") {
482 output_name = "pnacl_errors"
483 sources = [
484 "simple.cc",
485 ]
486 generate_nmf = false
487 if (current_cpu == "pnacl") {
488 nonstable_pexe = true
489 }
490 test_files = [
491 "pnacl_error_handling/pnacl_error_handling.html",
492 "pnacl_error_handling/bad.pexe",
493 "pnacl_error_handling/pnacl_bad_pexe.nmf",
494 "pnacl_error_handling/pnacl_bad_pexe_O0.nmf",
495 "pnacl_error_handling/pnacl_bad_doesnotexist.nmf",
496 "pnacl_error_handling/pnacl_illformed_manifest.nmf",
497 "pnacl_error_handling/pnacl_nonfinal_pexe_O0.nmf",
498 ]
499 }
500
501 nacl_test_data("pnacl_mime_type_test") {
502 test_files = [ "pnacl_mime_type/pnacl_mime_type.html" ]
503 }
504
505 nacl_test_data("pnacl_options_test") {
506 output_name = "pnacl_options"
507 sources = [
508 "simple.cc",
509 ]
510 generate_nmf = false
511 test_files = [
512 "pnacl_nmf_options/pnacl_options.html",
513 "pnacl_nmf_options/pnacl_o_0.nmf",
514 "pnacl_nmf_options/pnacl_o_2.nmf",
515 "pnacl_nmf_options/pnacl_o_large.nmf",
516 ]
517 }
518
519 nacl_test_data("pnacl_dyncode_syscall_disabled_test") {
520 output_name = "pnacl_dyncode_syscall_disabled"
521 sources = [
522 "pnacl_dyncode_syscall_disabled/pnacl_dyncode_syscall_disabled.cc",
523 ]
524 deps = [
525 ":ppapi_test_lib",
526 "//native_client/src/untrusted/nacl:nacl_dyncode_private",
527 ]
528 test_files =
529 [ "pnacl_dyncode_syscall_disabled/pnacl_dyncode_syscall_disabled.html" ]
530 }
531
532 nacl_test_data("pnacl_hw_eh_disabled_test") {
533 output_name = "pnacl_hw_eh_disabled"
534 sources = [
535 "pnacl_hw_eh_disabled/pnacl_hw_eh_disabled.cc",
536 ]
537 deps = [
538 ":ppapi_test_lib",
539 "//native_client/src/untrusted/nacl:nacl_exception_private",
540 ]
541 test_files = [ "pnacl_hw_eh_disabled/pnacl_hw_eh_disabled.html" ]
542 }
543
544 # Legacy NaCl PPAPI interface tests being here.
545 nacl_test_data("ppapi_ppb_core") {
546 sources = [
547 "ppapi/ppb_core/ppapi_ppb_core.cc",
548 ]
549 deps = [
550 ":ppapi_test_lib",
551 ]
552 test_files = [ "ppapi/ppb_core/ppapi_ppb_core.html" ]
553 }
554
555 nacl_test_data("ppapi_ppb_instance") {
556 sources = [
557 "ppapi/ppb_instance/ppapi_ppb_instance.cc",
558 ]
559 deps = [
560 ":ppapi_test_lib",
561 ]
562 test_files = [ "ppapi/ppb_instance/ppapi_ppb_instance.html" ]
563 }
564
565 nacl_test_data("ppapi_ppp_instance") {
566 sources = [
567 "ppapi/ppp_instance/ppapi_ppp_instance.cc",
568 ]
569 deps = [
570 ":ppapi_test_lib",
571 ]
572 test_files = [
573 "ppapi/ppp_instance/ppapi_ppp_instance.html",
574 "ppapi/ppp_instance/ppapi_ppp_instance.js",
575 ]
576 }
577
578 if (target_cpu != "arm") {
579 # Source file does not have asm for ARM.
580 nacl_test_data("partly_invalid") {
581 sources = [
582 "//native_client/tests/stubout_mode/partly_invalid.c",
583 ]
584 if (target_cpu == "mipsel") {
585 cflags = [
586 "--pnacl-mips-bias",
587 "-arch",
588 "mips32",
589 "--pnacl-allow-translate",
590 ]
591 ldflags = [ "--pnacl-allow-native" ]
592 }
593 }
594 }
595
596 # TODO(phosek): convert the non-SFI tests.
597 }
OLDNEW
« no previous file with comments | « chrome/test/BUILD.gn ('k') | ppapi/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698