Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / test / data / nacl / nacl_test_data.gyp
blobb68e381133dc8dc93b4d73f4f26fc9f1927a8471
1 # Copyright (c) 2012 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.
6   'includes': [
7     '../../../../ppapi/ppapi_nacl_test_common.gypi',
8   ],
9   'targets': [
10     {
11       # TODO bug 512902 this needs to be ported to GN.
12       'target_name': 'shared_test_files',
13       'type': 'none',
14       'variables': {
15         'build_newlib': 1,
16         'build_glibc': 1,
17         'build_pnacl_newlib': 1,
18         'nexe_destination_dir': 'nacl_test_data',
19         'test_files': [
20           # TODO(ncbray) move into chrome/test/data/nacl when all tests are
21           # converted.
22           '<(DEPTH)/ppapi/native_client/tools/browser_tester/browserdata/nacltest.js',
24           # Files that aren't assosiated with any particular executable.
25           'bad/ppapi_bad.html',
26           'bad/ppapi_bad.js',
27           'bad/ppapi_bad_native.html',
28           'bad/ppapi_bad_doesnotexist.nmf',
29           'bad/ppapi_bad_magic.nmf',
30           'bad/ppapi_bad_manifest_uses_nexes.nmf',
31           'bad/ppapi_bad_manifest_bad_files.nmf',
32           'bad/ppapi_bad_manifest_nexe_arch.nmf',
33           'crash/ppapi_crash.js',
34           'crash/ppapi_crash_via_check_failure.html',
35           'crash/ppapi_crash_via_exit_call.html',
36           'crash/ppapi_crash_in_callback.html',
37           'crash/ppapi_crash_ppapi_off_main_thread.html',
38           'crash/ppapi_crash_off_main_thread.html',
39           'load_util.js',
40           'manifest_file/test_file.txt',
41           'progress_event_listener.js',
42           'simple_cc.js',
43         ],
44       },
45       'conditions': [
46         ['(target_arch=="ia32" or target_arch=="x64") and OS=="linux"', {
47           # Enable nonsfi testing on ia32-linux environment.
48           # This flag causes test_files to be copied into nonsfi directory,
49           # too.
50           'variables': {
51             'enable_x86_32_nonsfi': 1,
52           },
53         }],
54         ['target_arch=="arm" and OS=="linux"', {
55           # Enable nonsfi testing on arm-linux environment.
56           # This flag causes test_files to be copied into nonsfi directory,
57           # too.
58           'variables': {
59             'enable_arm_nonsfi': 1,
60           },
61         }],
62       ],
63     },
64     {
65       'target_name': 'simple_test',
66       'type': 'none',
67       'variables': {
68         'nexe_target': 'simple',
69         'build_newlib': 1,
70         'build_glibc': 1,
71         'build_pnacl_newlib': 1,
72         'nexe_destination_dir': 'nacl_test_data',
73         'sources': [
74           'simple.cc',
75         ],
76         'test_files': [
77           'nacl_load_test.html',
78         ],
79       },
80     },
81     {
82       'target_name': 'exit_status_test',
83       'type': 'none',
84       'variables': {
85         'nexe_target': 'pm_exit_status_test',
86         'build_newlib': 1,
87         'build_glibc': 1,
88         'build_pnacl_newlib': 1,
89         'nexe_destination_dir': 'nacl_test_data',
90         'sources': [
91           'exit_status/pm_exit_status_test.cc',
92         ],
93         'test_files': [
94           'exit_status/pm_exit_status_test.html',
95         ],
96       },
97     },
98     {
99       'target_name': 'extension_validation_cache',
100       'type': 'none',
101       'variables': {
102         'nexe_target': 'extension_validation_cache',
103         # The test currently only has the test expectations for the
104         # newlib and glibc cases (# validation queries/settings), and has also
105         # hardcoded the newlib and glibc variants' directory path for the
106         # unpacked ext.
107         'build_newlib': 1,
108         'build_glibc': 1,
109         'build_pnacl_newlib': 0,
110         # Need a new directory to not clash with with other extension
111         # tests's files (e.g., manifest.json).
112         'nexe_destination_dir': 'nacl_test_data/extension_vcache_test',
113         'sources': [
114           'simple.cc',
115         ],
116         'test_files': [
117           # TODO(ncbray) move into chrome/test/data/nacl when all tests are
118           # converted.
119           '<(DEPTH)/ppapi/native_client/tools/browser_tester/browserdata/nacltest.js',
120           'extension_validation_cache/extension_validation_cache.html',
121           'extension_validation_cache/extension_validation_cache.js',
122           # Turns the test data directory into an extension.
123           # Use a different nexe_destination_dir to isolate the files.
124           # Note that the .nexe names are embedded in this file.
125           'extension_validation_cache/manifest.json',
126           'load_util.js',
127           'simple_cc.js',
128         ],
129       },
130     },
131     {
132       'target_name': 'sysconf_nprocessors_onln_test',
133       'type': 'none',
134       'variables': {
135         'nexe_target': 'sysconf_nprocessors_onln_test',
136         'build_newlib': 1,
137         'build_glibc': 1,
138         'build_pnacl_newlib': 1,
139         'nexe_destination_dir': 'nacl_test_data',
140         'sources': [
141           'sysconf_nprocessors_onln/sysconf_nprocessors_onln_test.cc',
142         ],
143         'test_files': [
144           'sysconf_nprocessors_onln/sysconf_nprocessors_onln_test.html',
145         ],
146       },
147     },
148     {
149       'target_name': 'ppapi_test_lib',
150       'type': 'none',
151       'variables': {
152         'nlib_target': 'libppapi_test_lib.a',
153         'nso_target': 'libppapi_test_lib.so',
154         'build_newlib': 1,
155         'build_glibc': 1,
156         'build_pnacl_newlib': 1,
157         'nexe_destination_dir': 'nacl_test_data',
158         'sources': [
159           # TODO(ncbray) move these files once SCons no longer depends on them.
160           '../../../../ppapi/native_client/tests/ppapi_test_lib/get_browser_interface.cc',
161           '../../../../ppapi/native_client/tests/ppapi_test_lib/internal_utils.cc',
162           '../../../../ppapi/native_client/tests/ppapi_test_lib/module_instance.cc',
163           '../../../../ppapi/native_client/tests/ppapi_test_lib/test_interface.cc',
164           '../../../../ppapi/native_client/tests/ppapi_test_lib/testable_callback.cc',
165         ]
166       },
167     },
168     {
169       'target_name': 'ppapi_progress_events',
170       'type': 'none',
171       'variables': {
172         'nexe_target': 'ppapi_progress_events',
173         'build_newlib': 1,
174         'build_glibc': 1,
175         'build_pnacl_newlib': 1,
176         'nexe_destination_dir': 'nacl_test_data',
177         'link_flags': [
178           '-lppapi',
179           '-lppapi_test_lib',
180           '-lplatform',
181           '-lgio',
182         ],
183         'sources': [
184           'progress_events/ppapi_progress_events.cc',
185         ],
186         'test_files': [
187           'progress_events/ppapi_progress_events.html',
188         ],
189       },
190       'dependencies': [
191         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
192         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
193         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
194         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
195         'ppapi_test_lib',
196       ],
197     },
198     {
199       'target_name': 'ppapi_bad_ppp_initialize',
200       'type': 'none',
201       'variables': {
202         'nexe_target': 'ppapi_bad_ppp_initialize',
203         'build_newlib': 1,
204         'build_glibc': 0,
205         'build_pnacl_newlib': 0,
206         'nexe_destination_dir': 'nacl_test_data',
207         'link_flags': [
208           '-lppapi',
209           '-lplatform',
210           '-lgio',
211         ],
212         'sources': [
213           'bad/ppapi_bad_ppp_initialize.cc',
214         ],
215       },
216       'dependencies': [
217         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
218         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
219         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
220       ],
221     },
222     {
223       'target_name': 'ppapi_bad_ppp_initialize_crash',
224       'type': 'none',
225       'variables': {
226         'nexe_target': 'ppapi_bad_ppp_initialize_crash',
227         'build_newlib': 1,
228         'build_glibc': 0,
229         'build_pnacl_newlib': 0,
230         'nexe_destination_dir': 'nacl_test_data',
231         'link_flags': [
232           '-lppapi',
233           '-lplatform',
234           '-lgio',
235         ],
236         'sources': [
237           'bad/ppapi_bad_ppp_initialize_crash.cc',
238         ],
239       },
240       'dependencies': [
241         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
242         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
243         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
244       ],
245     },
246     {
247       'target_name': 'ppapi_bad_no_ppp_instance',
248       'type': 'none',
249       'variables': {
250         'nexe_target': 'ppapi_bad_no_ppp_instance',
251         'build_newlib': 1,
252         'build_glibc': 0,
253         'build_pnacl_newlib': 0,
254         'nexe_destination_dir': 'nacl_test_data',
255         'link_flags': [
256           '-lppapi',
257           '-lplatform',
258           '-lgio',
259         ],
260         'sources': [
261           'bad/ppapi_bad_no_ppp_instance.cc',
262         ],
263       },
264       'dependencies': [
265         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
266         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
267         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
268       ],
269     },
270     {
271       'target_name': 'ppapi_bad_get_ppp_instance_crash',
272       'type': 'none',
273       'variables': {
274         'nexe_target': 'ppapi_bad_get_ppp_instance_crash',
275         'build_newlib': 1,
276         'build_glibc': 0,
277         'build_pnacl_newlib': 0,
278         'nexe_destination_dir': 'nacl_test_data',
279         'link_flags': [
280           '-lppapi',
281           '-lplatform',
282           '-lgio',
283         ],
284         'sources': [
285           'bad/ppapi_bad_get_ppp_instance_crash.cc',
286         ],
287       },
288       'dependencies': [
289         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
290         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
291         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
292       ],
293     },
294     {
295       'target_name': 'ppapi_bad_ppp_instance_didcreate',
296       'type': 'none',
297       'variables': {
298         'nexe_target': 'ppapi_bad_ppp_instance_didcreate',
299         'build_newlib': 1,
300         'build_glibc': 0,
301         'build_pnacl_newlib': 0,
302         'nexe_destination_dir': 'nacl_test_data',
303         'link_flags': [
304           '-lppapi',
305           '-lplatform',
306           '-lgio',
307         ],
308         'sources': [
309           'bad/ppapi_bad_ppp_instance_didcreate.cc',
310         ],
311       },
312       'dependencies': [
313         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
314         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
315         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
316       ],
317     },
318     {
319       'target_name': 'ppapi_bad_ppp_instance_didcreate_crash',
320       'type': 'none',
321       'variables': {
322         'nexe_target': 'ppapi_bad_ppp_instance_didcreate_crash',
323         'build_newlib': 1,
324         'build_glibc': 0,
325         'build_pnacl_newlib': 0,
326         'nexe_destination_dir': 'nacl_test_data',
327         'link_flags': [
328           '-lppapi',
329           '-lplatform',
330           '-lgio',
331         ],
332         'sources': [
333           'bad/ppapi_bad_ppp_instance_didcreate_crash.cc',
334         ],
335       },
336       'dependencies': [
337         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
338         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
339         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
340       ],
341     },
342     {
343       'target_name': 'ppapi_crash_via_check_failure',
344       'type': 'none',
345       'variables': {
346         'nexe_target': 'ppapi_crash_via_check_failure',
347         'build_newlib': 1,
348         'build_glibc': 1,
349         'build_pnacl_newlib': 1,
350         'nexe_destination_dir': 'nacl_test_data',
351         'link_flags': [
352           '-lppapi',
353           '-lppapi_test_lib',
354           '-lplatform',
355           '-lgio',
356         ],
357         'sources': [
358           'crash/ppapi_crash_via_check_failure.cc',
359         ],
360       },
361       'dependencies': [
362         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
363         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
364         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
365         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
366         'ppapi_test_lib',
367       ],
368     },
369     {
370       'target_name': 'ppapi_crash_via_exit_call',
371       'type': 'none',
372       'variables': {
373         'nexe_target': 'ppapi_crash_via_exit_call',
374         'build_newlib': 1,
375         'build_glibc': 1,
376         'build_pnacl_newlib': 1,
377         'nexe_destination_dir': 'nacl_test_data',
378         'link_flags': [
379           '-lppapi',
380           '-lppapi_test_lib',
381           '-lplatform',
382           '-lgio',
383         ],
384         'sources': [
385           'crash/ppapi_crash_via_exit_call.cc',
386         ],
387       },
388       'dependencies': [
389         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
390         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
391         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
392         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
393         'ppapi_test_lib',
394       ],
395     },
396     {
397       'target_name': 'ppapi_crash_in_callback',
398       'type': 'none',
399       'variables': {
400         'nexe_target': 'ppapi_crash_in_callback',
401         'build_newlib': 1,
402         'build_glibc': 1,
403         'build_pnacl_newlib': 1,
404         'nexe_destination_dir': 'nacl_test_data',
405         'link_flags': [
406           '-lppapi',
407           '-lppapi_test_lib',
408           '-lplatform',
409           '-lgio',
410         ],
411         'sources': [
412           'crash/ppapi_crash_in_callback.cc',
413         ],
414       },
415       'dependencies': [
416         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
417         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
418         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
419         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
420         'ppapi_test_lib',
421       ],
422     },
423     {
424       'target_name': 'ppapi_crash_off_main_thread',
425       'type': 'none',
426       'variables': {
427         'nexe_target': 'ppapi_crash_off_main_thread',
428         'build_newlib': 1,
429         'build_glibc': 1,
430         'build_pnacl_newlib': 1,
431         'nexe_destination_dir': 'nacl_test_data',
432         'link_flags': [
433           '-lppapi',
434           '-lppapi_test_lib',
435           '-lplatform',
436           '-lgio',
437         ],
438         'sources': [
439           'crash/ppapi_crash_off_main_thread.cc',
440         ],
441       },
442       'dependencies': [
443         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
444         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
445         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
446         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
447         'ppapi_test_lib',
448       ],
449     },
450     {
451       'target_name': 'ppapi_crash_ppapi_off_main_thread',
452       'type': 'none',
453       'variables': {
454         'nexe_target': 'ppapi_crash_ppapi_off_main_thread',
455         'build_newlib': 1,
456         'build_glibc': 1,
457         'build_pnacl_newlib': 1,
458         'nexe_destination_dir': 'nacl_test_data',
459         'link_flags': [
460           '-lppapi',
461           '-lppapi_test_lib',
462           '-lplatform',
463           '-lgio',
464         ],
465         'sources': [
466           'crash/ppapi_crash_ppapi_off_main_thread.cc',
467         ],
468       },
469       'dependencies': [
470         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
471         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
472         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
473         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
474         'ppapi_test_lib',
475       ],
476     },
477     {
478       'target_name': 'irt_manifest_file',
479       'type': 'none',
480       'variables': {
481         'nexe_target': 'irt_manifest_file',
482         'build_newlib': 1,
483         # Linking problems - can't find __nacl_irt_query.
484         'build_glibc': 0,
485         # TODO(ncbray) support file injection into PNaCl manifest.
486         'build_pnacl_newlib': 0,
487         'nexe_destination_dir': 'nacl_test_data',
488         'link_flags': [
489           '-lppapi_cpp',
490           '-lppapi',
491           '-lplatform',
492           '-lgio',
493           '-lnacl',
494         ],
495         'sources': [
496           'manifest_file/irt_manifest_file_test.cc',
497         ],
498         'create_nmf_args_portable': [
499           '-xtest_file:test_file.txt',
500           '-xnmf says hello world:test_file.txt',
501           # There is no dummy_test_file.txt file intentionally. This is just for
502           # a test case where there is a manifest entry, but no actual file.
503           '-xdummy_test_file:dummy_test_file.txt',
504         ],
505         'test_files': [
506           'manifest_file/irt_manifest_file_test.html',
507         ],
508       },
509       'dependencies': [
510         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
511         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
512         '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:aot',
513         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
514         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
515         '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_lib',
516       ],
517       'conditions': [
518         # These are needed to build a non-SFI nexe binary.
519         # Note that these trigger building nexe files for other
520         # architectures, such as x86-32 (based on enable_XXX variables).
521         # As described above, although the tests for pnacl are currently
522         # disabled, but building the binary should work.
523         # We cannot disable building, as enable_XXX variables are also used
524         # to build newlib linked nexes.
525         ['(target_arch=="ia32" or target_arch=="x64") and OS=="linux"', {
526           # Enable nonsfi testing on ia32-linux environment.
527           'variables': {
528             'build_pnacl_newlib': 1,
529             'translate_pexe_with_build': 1,
530             'enable_x86_32_nonsfi': 1,
531           },
532         }],
533         ['target_arch=="arm" and OS=="linux"', {
534           # Enable nonsfi testing on arm-linux environment.
535           'variables': {
536             'build_pnacl_newlib': 1,
537             'translate_pexe_with_build': 1,
538             'enable_arm_nonsfi': 1,
539           },
540         }],
541       ],
542     },
543     {
544       'target_name': 'irt_exception_test',
545       'type': 'none',
546       'variables': {
547         'nexe_target': 'irt_exception_test',
548         'build_newlib': 1,
549         'generate_nmf': 1,
550         'nexe_destination_dir': 'nacl_test_data',
551         'build_pnacl_newlib': 1,
552         'link_flags': [
553           '-lppapi',
554           '-lppapi_test_lib',
555           '-lplatform',
556           '-lgio',
557           '-lnacl_exception',
558         ],
559         'sources': [
560           'irt_exception/irt_exception_test.cc',
561         ],
562         'test_files': [
563           # TODO(ncbray) move into chrome/test/data/nacl when all tests are
564           # converted.
565           'irt_exception/irt_exception_test.html',
566         ],
567       },
568       'dependencies': [
569         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
570         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
571         '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_exception_lib',
572         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
573         '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:aot',
574         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
575         'ppapi_test_lib',
576       ],
577       'conditions': [
578         ['(target_arch=="ia32" or target_arch=="x64") and OS=="linux"', {
579           # Enable nonsfi testing on ia32-linux environment.
580           'variables': {
581             'enable_x86_32_nonsfi': 1,
582             'translate_pexe_with_build': 1,
583           },
584         }],
585         ['target_arch=="arm" and OS=="linux"', {
586           # Enable nonsfi testing on arm-linux environment.
587           'variables': {
588             'enable_arm_nonsfi': 1,
589             'translate_pexe_with_build': 1,
590           },
591         }],
592       ],
593     },
594     {
595       'target_name': 'ppapi_extension_mime_handler',
596       'type': 'none',
597       'variables': {
598         'nexe_target': 'ppapi_extension_mime_handler',
599         'build_newlib': 1,
600         'build_glibc': 0,
601         'build_pnacl_newlib': 0,
602         'nexe_destination_dir': 'nacl_test_data',
603         'link_flags': [
604           '-lppapi',
605           '-lppapi_test_lib',
606           '-lplatform',
607           '-lgio',
608         ],
609         'sources': [
610           'extension_mime_handler/ppapi_extension_mime_handler.cc',
611         ],
612         'test_files': [
613           'extension_mime_handler/ppapi_extension_mime_handler.html',
614           'extension_mime_handler/mime_test_data.dat',
615           # For faking the file's MIME type.
616           'extension_mime_handler/mime_test_data.dat.mock-http-headers',
617           # Turns the test data directory into an extension.  Hackish.
618           # Note that the .nexe names are embedded in this file.
619           'extension_mime_handler/manifest.json',
620         ],
621       },
622       'dependencies': [
623         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
624         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
625         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
626         'ppapi_test_lib',
627       ],
628     },
629     {
630       'target_name': 'pnacl_debug_url_test',
631       'type': 'none',
632       'variables': {
633         'nexe_target': 'pnacl_debug_url',
634         'build_pnacl_newlib': 1,
635         'nexe_destination_dir': 'nacl_test_data',
636         'generate_nmf': 0,
637         'sources': [
638           'simple.cc',
639         ],
640         'test_files': [
641           'pnacl_debug_url/pnacl_debug_url.html',
642           'pnacl_debug_url/pnacl_has_debug.nmf',
643           'pnacl_debug_url/pnacl_has_debug_flag_off.nmf',
644           'pnacl_debug_url/pnacl_no_debug.nmf',
645         ],
646       },
647     },
648     {
649       'target_name': 'pnacl_error_handling_test',
650       'type': 'none',
651       'variables': {
652         'nexe_target': 'pnacl_errors',
653         'extra_args': ['--nonstable-pnacl'],
654         'build_pnacl_newlib': 1,
655         'nexe_destination_dir': 'nacl_test_data',
656         'sources': [
657           'simple.cc',
658         ],
659         'generate_nmf': 0,
660         'test_files': [
661           'pnacl_error_handling/pnacl_error_handling.html',
662           'pnacl_error_handling/bad.pexe',
663           'pnacl_error_handling/pnacl_bad_pexe.nmf',
664           'pnacl_error_handling/pnacl_bad_pexe_O0.nmf',
665           'pnacl_error_handling/pnacl_bad_doesnotexist.nmf',
666           'pnacl_error_handling/pnacl_illformed_manifest.nmf',
667           'pnacl_error_handling/pnacl_nonfinal_pexe_O0.nmf',
668         ],
669       },
670     },
671     {
672       'target_name': 'pnacl_mime_type_test',
673       'type': 'none',
674       'variables': {
675         'build_newlib': 1,
676         'build_glibc': 1,
677         'build_pnacl_newlib': 1,
678         'nexe_destination_dir': 'nacl_test_data',
679         'test_files': [
680           'pnacl_mime_type/pnacl_mime_type.html',
681         ],
682       },
683     },
684     {
685       'target_name': 'pnacl_options_test',
686       'type': 'none',
687       'variables': {
688         'nexe_target': 'pnacl_options',
689         'build_pnacl_newlib': 1,
690         'nexe_destination_dir': 'nacl_test_data',
691         'generate_nmf': 0,
692         'sources': [
693           'simple.cc',
694         ],
695         'test_files': [
696           'pnacl_nmf_options/pnacl_options.html',
697           'pnacl_nmf_options/pnacl_o_0.nmf',
698           'pnacl_nmf_options/pnacl_o_2.nmf',
699           'pnacl_nmf_options/pnacl_o_large.nmf',
700         ],
701       },
702     },
703     {
704       'target_name': 'pnacl_dyncode_syscall_disabled_test',
705       'type': 'none',
706       'variables': {
707         'nexe_target': 'pnacl_dyncode_syscall_disabled',
708         'build_pnacl_newlib': 1,
709         'nexe_destination_dir': 'nacl_test_data',
710         'link_flags': [
711           '-lppapi',
712           '-lppapi_test_lib',
713           '-lplatform',
714           '-lgio',
715           # The "_private" variant of the library calls the syscalls
716           # directly, which allows us to test the syscalls directly,
717           # even when the dyncode IRT interface is also disabled under
718           # PNaCl.
719           '-lnacl_dyncode_private',
720         ],
721         'sources': [
722           'pnacl_dyncode_syscall_disabled/pnacl_dyncode_syscall_disabled.cc',
723         ],
724         'test_files': [
725           'pnacl_dyncode_syscall_disabled/pnacl_dyncode_syscall_disabled.html',
726         ],
727       },
728       'dependencies': [
729         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
730         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
731         '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_dyncode_private_lib',
732         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
733         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
734         'ppapi_test_lib',
735       ],
736     },
737     {
738       'target_name': 'pnacl_hw_eh_disabled_test',
739       'type': 'none',
740       'variables': {
741         'nexe_target': 'pnacl_hw_eh_disabled',
742         'build_pnacl_newlib': 1,
743         'nexe_destination_dir': 'nacl_test_data',
744         'link_flags': [
745           '-lppapi',
746           '-lppapi_test_lib',
747           '-lplatform',
748           '-lgio',
749           # The "_private" variant of the library calls the syscalls
750           # directly, which allows us to test the syscalls directly,
751           # even when the exception-handling IRT interface is also
752           # disabled under PNaCl.
753           '-lnacl_exception_private',
754         ],
755         'sources': [
756           'pnacl_hw_eh_disabled/pnacl_hw_eh_disabled.cc',
757         ],
758         'test_files': [
759           'pnacl_hw_eh_disabled/pnacl_hw_eh_disabled.html',
760         ],
761       },
762       'dependencies': [
763         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
764         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
765         '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_exception_private_lib',
766         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
767         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
768         'ppapi_test_lib',
769       ],
770     },
771     # Legacy NaCl PPAPI interface tests being here.
772     {
773       'target_name': 'ppapi_ppb_core',
774       'type': 'none',
775       'variables': {
776         'nexe_target': 'ppapi_ppb_core',
777         'build_newlib': 1,
778         'build_glibc': 1,
779         'build_pnacl_newlib': 1,
780         'nexe_destination_dir': 'nacl_test_data',
781         'link_flags': [
782           '-lppapi',
783           '-lppapi_test_lib',
784           '-lplatform',
785           '-lgio',
786         ],
787         'sources': [
788           'ppapi/ppb_core/ppapi_ppb_core.cc',
789         ],
790         'test_files': [
791           'ppapi/ppb_core/ppapi_ppb_core.html',
792         ],
793       },
794       'dependencies': [
795         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
796         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
797         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
798         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
799         'ppapi_test_lib',
800       ],
801     },
802     {
803       'target_name': 'ppapi_ppb_instance',
804       'type': 'none',
805       'variables': {
806         'nexe_target': 'ppapi_ppb_instance',
807         'build_newlib': 1,
808         'build_glibc': 1,
809         'build_pnacl_newlib': 1,
810         'nexe_destination_dir': 'nacl_test_data',
811         'link_flags': [
812           '-lppapi',
813           '-lppapi_test_lib',
814           '-lplatform',
815           '-lgio',
816         ],
817         'sources': [
818           'ppapi/ppb_instance/ppapi_ppb_instance.cc',
819         ],
820         'test_files': [
821           'ppapi/ppb_instance/ppapi_ppb_instance.html',
822         ],
823       },
824       'dependencies': [
825         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
826         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
827         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
828         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
829         'ppapi_test_lib',
830       ],
831     },
832     {
833       'target_name': 'ppapi_ppp_instance',
834       'type': 'none',
835       'variables': {
836         'nexe_target': 'ppapi_ppp_instance',
837         'build_newlib': 1,
838         'build_glibc': 1,
839         'build_pnacl_newlib': 1,
840         'nexe_destination_dir': 'nacl_test_data',
841         'link_flags': [
842           '-lppapi',
843           '-lppapi_test_lib',
844           '-lplatform',
845           '-lgio',
846         ],
847         'sources': [
848           'ppapi/ppp_instance/ppapi_ppp_instance.cc',
849         ],
850         'test_files': [
851           'ppapi/ppp_instance/ppapi_ppp_instance.html',
852           'ppapi/ppp_instance/ppapi_ppp_instance.js',
853         ],
854       },
855       'dependencies': [
856         '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
857         '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
858         '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
859         '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
860         'ppapi_test_lib',
861       ],
862     },
863   ],
864   'conditions': [
865     ['target_arch!="arm" and disable_newlib==0', {
866       # Source file does not have asm for ARM.
867       'targets': [
868         {
869           'target_name': 'partly_invalid',
870           'type': 'none',
871           'variables': {
872             'nexe_target': 'partly_invalid',
873             'build_newlib': 1,
874             'build_glibc': 0,
875             'build_pnacl_newlib': 0,
876             'nexe_destination_dir': 'nacl_test_data',
877             'sources': [
878               '<(DEPTH)/native_client/tests/stubout_mode/partly_invalid.c',
879             ],
880             'conditions': [
881               ['target_arch=="mipsel"', {
882                 'compile_flags': [
883                   '--pnacl-mips-bias',
884                   '-arch', 'mips32',
885                   '--pnacl-allow-translate',
886                 ],
887                 'link_flags': [
888                   '--pnacl-allow-native',
889                 ],
890               }],
891             ],
892           },
893         },
894       ],
895     }],
897     # Tests for non-SFI mode.
898     ['OS=="linux"', {
899       'targets': [
900         {
901           'target_name': 'nonsfi_libc_free_nexe',
902           'type': 'executable',
903           'product_name': '>(nexe_destination_dir)/libc_free_>(arch_suffix)',
904           'product_extension': 'nexe',
905           'variables': {
906             'arch_suffix': '<(target_arch)',
907             # This is needed, because NaCl's target_default rule is
908             # automatically applied to all the targets in this file, and it
909             # requires nexe_destination_dir, even if it is not important.
910             'nexe_destination_dir': 'nacl_test_data/libc-free',
911           },
912           'sources': [
913             'nonsfi/libc_free.c',
914           ],
915           # Here, we would like to link a relocatable, libc-free executable.
916           # -shared/-fPIC make this binary relocatable. -nostdlib ensures
917           # this is libc-free.
918           # The program does not apply any dynamic relocations at start up,
919           # so it cannot rely on relocations having been applied.
920           # In addition, -fvisibility=hidden avoids creating some types
921           # of relocation.
922           'cflags': [
923             '-fPIC',
924             '-fvisibility=hidden',
926             # Stack-Smashing protector does not work with libc-free context.
927             '-fno-stack-protector',
928             # Optimizers may translate the original code to code which
929             # requires builtin functions and/or relocations. Specifically,
930             # the LLVM's optimizer translates for-loop based zero
931             # clear to memset.
932             '-O0',
933           ],
934           'cflags!': [
935             # We filter these out because release_extra_cflags or another
936             # such thing might be adding them in, and those options wind up
937             # coming after the -fno-stack-protector we added above.
938             '-fstack-protector',
939             '-fstack-protector-all',
940             '-fprofile-generate',
941             '-finstrument-functions',
942             # ARM GCC emits symbols like __aeabi_unwind_cpp_pr0 in
943             # .exidx sections with this flag.
944             '-funwind-tables',
945           ],
946           'ldflags': [
947             '-nostdlib',
948             '-shared',
949             # This binary cannot relocate itself, so we should have no
950             # undefined references left.
951             '-Wl,--no-undefined',
952           ],
953           'ldflags!': [
954             # Explicitly remove the -pthread flag to avoid a link time warning.
955             '-pthread',
956           ],
957           # Do not use any sanitizers tools, which require a few symbols.
958           'cflags/': [
959             ['exclude', '-fsanitize'],
960             ['exclude', '^-O'],  # Strip -O2, -Os etc.
961           ],
962           'ldflags/': [
963             ['exclude', '-fsanitize'],
964           ],
965           'defines': [
966             # The code depends on NaCl's headers. This is a macro for them.
967             'NACL_LINUX=1',
968           ],
969           # For native_client/src/include/...
970           'include_dirs': [
971             '../../../..',
972           ],
973           'conditions': [
974             # Overwrite suffix for x64 and ia32 to align NaCl's naming
975             # convention.
976             ['target_arch=="x64"', {
977               'variables': {
978                 'arch_suffix': 'x86_64',
979               }
980             }],
981             ['target_arch=="ia32"', {
982               'variables': {
983                 'arch_suffix': 'x86_32',
984               }
985             }],
986           ],
987         },
988         {
989           'target_name': 'nonsfi_libc_free',
990           'type': 'none',
991           'variables': {
992             'nexe_destination_dir': 'nacl_test_data',
993             'destination_dir': '<(PRODUCT_DIR)/>(nexe_destination_dir)/libc-free',
994             'test_files': [
995               # TODO(ncbray) move into chrome/test/data/nacl when all tests are
996               # converted.
997               '<(DEPTH)/ppapi/native_client/tools/browser_tester/browserdata/nacltest.js',
998               'nonsfi/libc_free.html',
999               'nonsfi/libc_free.nmf',
1000               'nonsfi/irt_test.html',
1001             ],
1002           },
1003           'dependencies': [
1004             'nonsfi_libc_free_nexe',
1005           ],
1006           # Because we are still under development for non-SFI mode, the
1007           # toolchain is not yet ready, which means ppapi_nacl_common does not
1008           # work well for non-SFI mode yet. Instead, we manually set up the
1009           # testing environment here.
1010           'copies': [
1011             {
1012               'destination': '>(destination_dir)',
1013               'files': [
1014                 '>@(test_files)',
1015               ],
1016             },
1017           ],
1018         },
1019       ],
1020     }],
1021   ],