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