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

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

Powered by Google App Engine
This is Rietveld 408576698