summaryrefslogtreecommitdiffstats
path: root/chrome/test/unit/unit_tests.scons
blob: 450b500ee83400af520ef5aaac2d806a58957f37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
# Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

Import('env')
Import('bdict_reader_o', 'bdict_writer_o')

env = env.Clone()

env.SConscript([
    '$BASE_DIR/gfx/using_base_gfx.scons',
    '$BASE_DIR/using_base.scons',
    '$BZIP2_DIR/using_bzip2.scons',
    '$CHROME_DIR/third_party/hunspell/using_hunspell.scons',
    '$CHROME_DIR/third_party/wtl/using_wtl.scons',
    '$CHROME_SRC_DIR/build/using_googleurl.scons',
    '$CHROME_SRC_DIR/build/using_v8.scons',
    '$GRIT_DIR/build/using_generated_resources.scons',
    '$GTEST_DIR/../using_gtest.scons',
    '$ICU38_DIR/using_icu38.scons',
    '$LIBJPEG_DIR/using_libjpeg.scons',
    '$LIBPNG_DIR/using_libpng.scons',
    '$LIBXML_DIR/using_libxml.scons',
    '$LIBXSLT_DIR/using_libxslt.scons',
    '$MODP_B64_DIR/using_modp_b64.scons',
    '$MEDIA_DIR/using_media.scons',
    '$NET_DIR/using_net.scons',
    '$NPAPI_DIR/using_npapi.scons',
    '$SDCH_DIR/using_sdch.scons',
    '$SKIA_DIR/using_skia.scons',
    '$WEBKIT_DIR/build/WebKit/using_webkit.scons',
    '$ZLIB_DIR/using_zlib.scons',
], {'env':env})

env.Prepend(
    CPPPATH = [
        '$CHROME_DIR/app/resources',
        '$CHROME_SRC_DIR',
    ],
    LIBS = [
        'browser',
        'common',
        'debugger',
        'plugin',
        'renderer',
        'sqlite',
        'util',
        'v8_snapshot',

        'WTF',
        'V8Bindings',
        'default_plugin',
        'glue',
        'JavaScriptCore_pcre',
        'port',
        'WebCore',

        'X11',
        'Xrender',
        'Xext',
    ],
)

if env.Bit('windows'):
  env.Prepend(
      CPPPATH = [
          '$CHROME_DIR/tools/build/win',
      ],
  )

if env.Bit('windows'):
  # TODO(port): Port or mark as Windows-specific.
  env.Prepend(
      LIBS = [
          # TODO(port):  to be ported to Mac and Linux, or else
          # moved to the Windows-specific list below.
          'browser_views',
          'jscre',
          'test_chrome_plugin',
          'views',

          # Windows-specific libraries.
          'activex_shim',

          'winmm',
          'rpcrt4',
          'oleacc',
          'comsupp',
      ],
      LINKFLAGS = [
          '/INCREMENTAL',

          '/safeseh',
          '/dynamicbase',
          '/ignore:4199',
          '/nxcompat',

          '/MANIFEST',
          '/DELAYLOAD:"ws2_32.dll"',
          '/DELAYLOAD:"dwmapi.dll"',
          '/DELAYLOAD:"uxtheme.dll"',

          '/DEBUG',
          '/MACHINE:X86',
          '/FIXED:No',
      ],
  )

input_files = ChromeFileList([
  MSVSFilter('browser', [
    '$CHROME_DIR/browser/autocomplete/autocomplete_unittest.cc',
    '$CHROME_DIR/browser/back_forward_menu_model_unittest.cc',
    '$CHROME_DIR/browser/safe_browsing/bloom_filter_unittest.cc',
    '$CHROME_DIR/browser/bookmarks/bookmark_context_menu_test.cc',
    '$CHROME_DIR/browser/bookmarks/bookmark_drag_data_unittest.cc',
    '$CHROME_DIR/browser/views/bookmark_editor_view_unittest.cc',
    '$CHROME_DIR/browser/bookmarks/bookmark_folder_tree_model_unittest.cc',
    '$CHROME_DIR/browser/bookmarks/bookmark_html_writer_unittest.cc',
    '$CHROME_DIR/browser/bookmarks/bookmark_model_unittest.cc',
    '$CHROME_DIR/browser/bookmarks/bookmark_table_model_unittest.cc',
    '$CHROME_DIR/browser/bookmarks/bookmark_utils_unittest.cc',
    '$CHROME_DIR/browser/browser_commands_unittest.cc',
    '$CHROME_DIR/browser/cache_manager_host_unittest.cc',
    '$CHROME_DIR/browser/chrome_thread_unittest.cc',
    '$CHROME_DIR/browser/safe_browsing/chunk_range_unittest.cc',
    '$CHROME_DIR/browser/command_updater_unittest.cc',
    '$CHROME_DIR/browser/net/dns_host_info_unittest.cc',
    '$CHROME_DIR/browser/net/dns_master_unittest.cc',
    '$CHROME_DIR/browser/download/download_manager_unittest.cc',
    '$CHROME_DIR/browser/download/download_request_manager_unittest.cc',
    '$CHROME_DIR/browser/password_manager/encryptor_unittest.cc',
    '$CHROME_DIR/browser/history/expire_history_backend_unittest.cc',
    '$CHROME_DIR/browser/extensions/extension_unittest.cc',
    '$CHROME_DIR/browser/extensions/extension_ui_unittest.cc',
    '$CHROME_DIR/browser/extensions/extensions_service_unittest.cc',
    '$CHROME_DIR/browser/importer/firefox_importer_unittest.cc',
    '$CHROME_DIR/browser/google_url_tracker_unittest.cc',
    '$CHROME_DIR/browser/history/history_backend_unittest.cc',
    '$CHROME_DIR/browser/autocomplete/history_contents_provider_unittest.cc',
    '$CHROME_DIR/browser/history/history_querying_unittest.cc',
    '$CHROME_DIR/browser/history/history_types_unittest.cc',
    '$CHROME_DIR/browser/history/history_unittest.cc',
    '$CHROME_DIR/browser/autocomplete/history_url_provider_unittest.cc',
    '$CHROME_DIR/browser/importer/importer_unittest.cc',
    '$CHROME_DIR/browser/views/keyword_editor_view_unittest.cc',
    '$CHROME_DIR/browser/autocomplete/keyword_provider_unittest.cc',
    '$CHROME_DIR/browser/login_prompt_unittest.cc',
    '$CHROME_DIR/browser/metrics/metrics_log_unittest.cc',
    '$CHROME_DIR/browser/metrics/metrics_response_unittest.cc',
    '$CHROME_DIR/browser/navigation_controller_unittest.cc',
    '$CHROME_DIR/browser/printing/page_number_unittest.cc',
    '$CHROME_DIR/browser/printing/page_overlays_unittest.cc',
    '$CHROME_DIR/browser/printing/page_range_unittest.cc',
    '$CHROME_DIR/browser/printing/page_setup_unittest.cc',
    '$CHROME_DIR/browser/password_manager/password_form_manager_unittest.cc',
    '$CHROME_DIR/browser/printing/print_job_unittest.cc',
    '$CHROME_DIR/browser/printing/printing_test.h',
    '$CHROME_DIR/browser/profile_manager_unittest.cc',
    '$CHROME_DIR/browser/safe_browsing/protocol_manager_unittest.cc',
    '$CHROME_DIR/browser/safe_browsing/protocol_parser_unittest.cc',
    '$CHROME_DIR/browser/history/query_parser_unittest.cc',
    '$CHROME_DIR/browser/renderer_host/renderer_security_policy_unittest.cc',
    '$CHROME_DIR/browser/renderer_host/resource_dispatcher_host_unittest.cc',
    '$CHROME_DIR/browser/renderer_host/test_render_view_host.cc',
    '$CHROME_DIR/browser/rlz/rlz_unittest.cc',
    '$CHROME_DIR/browser/safe_browsing/safe_browsing_database_unittest.cc',
    '$CHROME_DIR/browser/safe_browsing/safe_browsing_util_unittest.cc',
    '$CHROME_DIR/browser/download/save_package_unittest.cc',
    '$CHROME_DIR/browser/sessions/session_backend_unittest.cc',
    '$CHROME_DIR/browser/sessions/session_service_test_helper.cc',
    '$CHROME_DIR/browser/sessions/session_service_test_helper.h',
    '$CHROME_DIR/browser/sessions/session_service_unittest.cc',
    '$CHROME_DIR/browser/site_instance_unittest.cc',
    '$CHROME_DIR/browser/history/snippet_unittest.cc',
    '$CHROME_DIR/browser/spellcheck_unittest.cc',
    '$CHROME_DIR/browser/history/starred_url_database_unittest.cc',
    '$CHROME_DIR/browser/sessions/tab_restore_service_unittest.cc',
    '$CHROME_DIR/browser/tabs/tab_strip_model_unittest.cc',
    '$CHROME_DIR/browser/search_engines/template_url_model_unittest.cc',
    '$CHROME_DIR/browser/search_engines/template_url_parser_unittest.cc',
    '$CHROME_DIR/browser/search_engines/template_url_prepopulate_data_unittest.cc',
    '$CHROME_DIR/browser/search_engines/template_url_unittest.cc',
    '$CHROME_DIR/browser/history/text_database_manager_unittest.cc',
    '$CHROME_DIR/browser/history/text_database_unittest.cc',
    '$CHROME_DIR/browser/history/thumbnail_database_unittest.cc',
    '$CHROME_DIR/browser/history/url_database_unittest.cc',
    '$CHROME_DIR/browser/net/resolve_proxy_msg_helper_unittest.cc',
    '$CHROME_DIR/browser/net/url_fetcher_unittest.cc',
    '$CHROME_DIR/browser/net/url_fixer_upper_unittest.cc',
    '$CHROME_DIR/browser/extensions/user_script_master_unittest.cc',
    '$CHROME_DIR/browser/history/visit_database_unittest.cc',
    '$CHROME_DIR/browser/history/visit_tracker_unittest.cc',
    '$CHROME_DIR/browser/visitedlink_unittest.cc',
    '$CHROME_DIR/browser/tab_contents/web_contents_unittest.cc',
    '$CHROME_DIR/browser/webdata/web_database_unittest.cc',
    '$CHROME_DIR/browser/printing/win_printing_context_unittest.cc',
    '$CHROME_DIR/browser/window_sizer_unittest.cc',
    '$CHROME_DIR/browser/renderer_host/render_widget_host_unittest.cc',

    # test_infrastructure
    '$CHROME_DIR/browser/renderer_host/mock_render_process_host.cc',
    '$CHROME_DIR/browser/renderer_host/mock_render_process_host.h',
    '$CHROME_DIR/browser/tab_contents/test_web_contents.cc',
    '$CHROME_DIR/browser/tab_contents/test_web_contents.h',
    '$CHROME_DIR/test/browser_with_test_window_test.cc',
    '$CHROME_DIR/test/browser_with_test_window_test.h',
    '$CHROME_DIR/test/test_browser_window.h',
    '$CHROME_DIR/test/test_tab_contents.cc',
    '$CHROME_DIR/test/test_tab_contents.h',
  ]),
  MSVSFilter('common', [
    '$CHROME_DIR/common/animation_unittest.cc',
    '$CHROME_DIR/common/bzip2_unittest.cc',
    '$CHROME_DIR/common/chrome_plugin_unittest.cc',
    '$CHROME_DIR/common/extensions/url_pattern_unittest.cc',
    '$CHROME_DIR/common/extensions/user_script_unittest.cc',
    '$CHROME_DIR/common/gfx/emf_unittest.cc',
    '$CHROME_DIR/common/gfx/icon_util_unittest.cc',
    '$CHROME_DIR/common/ipc_message_unittest.cc',
    '$CHROME_DIR/common/ipc_sync_channel_unittest.cc',
    '$CHROME_DIR/common/ipc_sync_channel_unittest.h',
    '$CHROME_DIR/common/ipc_sync_message_unittest.cc',
    '$CHROME_DIR/common/ipc_sync_message_unittest.h',
    '$CHROME_DIR/common/json_value_serializer_unittest.cc',
    '$CHROME_DIR/common/l10n_util_unittest.cc',
    '$CHROME_DIR/common/mru_cache_unittest.cc',
    '$CHROME_DIR/common/notification_service_unittest.cc',
    '$CHROME_DIR/common/os_exchange_data_unittest.cc',
    '$CHROME_DIR/common/pref_member_unittest.cc',
    '$CHROME_DIR/common/pref_service_unittest.cc',
    '$CHROME_DIR/common/property_bag_unittest.cc',
    '$CHROME_DIR/common/resource_dispatcher_unittest.cc',
    '$CHROME_DIR/common/gfx/text_elider_unittest.cc',
    '$CHROME_DIR/common/time_format_unittest.cc',
    '$CHROME_DIR/common/unzip_unittest.cc',
    '$CHROME_DIR/common/win_util_unittest.cc',
    '$CHROME_DIR/common/worker_thread_ticker_unittest.cc',
  ]),
  MSVSFilter('googleurl', [
    '$CHROME_DIR/../googleurl/src/gurl_unittest$OBJSUFFIX',
    '$CHROME_DIR/../googleurl/src/url_canon_unittest$OBJSUFFIX',
    '$CHROME_DIR/../googleurl/src/url_parse_unittest$OBJSUFFIX',
    '$CHROME_DIR/../googleurl/src/url_util_unittest$OBJSUFFIX',
  ]),
  MSVSFilter('hunspell', [
    '$CHROME_DIR/tools/convert_dict/aff_reader$OBJSUFFIX',
    '$CHROME_DIR/tools/convert_dict/aff_reader.h',
    '$CHROME_DIR/third_party/hunspell/google/bdict.h',
    bdict_reader_o,
    '$CHROME_DIR/third_party/hunspell/google/bdict_reader.h',
    bdict_writer_o,
    '$CHROME_DIR/third_party/hunspell/google/bdict_writer.h',
    '$CHROME_DIR/tools/convert_dict/dic_reader$OBJSUFFIX',
    '$CHROME_DIR/tools/convert_dict/dic_reader.h',
    '$CHROME_DIR/tools/convert_dict/hunspell_reader$OBJSUFFIX',
    '$CHROME_DIR/tools/convert_dict/hunspell_reader.h',
    '$CHROME_DIR/third_party/hunspell/google/hunspell_tests.cc',
  ]),
  MSVSFilter('renderer', [
    '$CHROME_DIR/renderer/extensions/greasemonkey_api_unittest.cc',
    '$CHROME_DIR/renderer/net/render_dns_master_unittest.cc',
    '$CHROME_DIR/renderer/net/render_dns_queue_unittest.cc',
    '$CHROME_DIR/renderer/render_view_unittest.cc',
    '$CHROME_DIR/renderer/render_widget_unittest.cc',
    '$CHROME_DIR/renderer/render_process_unittest.cc',
    '$CHROME_DIR/renderer/render_thread_unittest.cc',
    '$CHROME_DIR/renderer/renderer_main_unittest.cc',

    # test_infrastructure
    '$CHROME_DIR/renderer/mock_render_process.h',
    '$CHROME_DIR/renderer/mock_render_thread.cc',
    '$CHROME_DIR/renderer/mock_render_thread.h',
    '$CHROME_DIR/test/v8_unit_test.h',
    '$CHROME_DIR/test/v8_unit_test.cc',
  ]),
  MSVSFilter('resources', [
    '$CHROME_DIR/browser/browser_resources.h',
    '$CHROME_DIR/browser/browser_resources.rc',
    '$CHROME_DIR/app/chrome_dll.rc',
    '$CHROME_DIR/app/chrome_dll_resource.h',
    '$CHROME_DIR/app/chrome_dll_version.rc.version',
    '$CHROME_DIR/common/common_resources.h',
    '$CHROME_DIR/common/common_resources.rc',
    '$CHROME_DIR/browser/debugger/resources/debugger_resources.h',
    '$CHROME_DIR/browser/debugger/resources/debugger_resources.rc',
    '$TARGET_ROOT/grit_derived_sources/net_resources.res',
    '$CHROME_DIR/renderer/renderer_resources.h',
    '$CHROME_DIR/renderer/renderer_resources.rc',
    '$CHROME_DIR/test/data/resource.h',
    '$CHROME_DIR/test/data/resource.rc',
    '$TARGET_ROOT/grit_derived_sources/webkit_resources.res',
  ]),
  MSVSFilter('test_infrastructure', [
    'chrome_test_suite.h',
    '$CHROME_DIR/common/ipc_test_sink.cc',
    '$CHROME_DIR/common/ipc_test_sink.h',
    '$CHROME_DIR/tools/build/win/precompiled_wtl$OBJSUFFIX',
    '$CHROME_DIR/tools/build/win/precompiled_wtl.h',
    'run_all_unittests.cc',
    '$CHROME_DIR/test/test_notification_tracker.cc',
    '$CHROME_DIR/test/test_notification_tracker.h',
    '$CHROME_DIR/test/testing_browser_process.h',
    '$CHROME_DIR/test/testing_profile.cc',
    '$CHROME_DIR/test/testing_profile.h',
    '$NET_DIR/url_request/url_request_test_job$OBJSUFFIX',
    '$NET_DIR/url_request/url_request_test_job.h',
  ]),
  MSVSFilter('views', [
    '$CHROME_DIR/views/focus_manager_unittest.cc',
    '$CHROME_DIR/views/grid_layout_unittest.cc',
    '$CHROME_DIR/views/label_unittest.cc',
    '$CHROME_DIR/views/table_view_unittest.cc',
    '$CHROME_DIR/views/tree_node_iterator_unittest.cc',
    '$CHROME_DIR/views/view_unittest.cc',
  ]),
])

if env.Bit('mac'):
  # TODO(port): Port to Mac.
  input_files.Remove(
      'run_all_unittests.cc',

      '$CHROME_DIR/browser/chrome_thread_unittest.cc',
      '$CHROME_DIR/browser/extensions/extension_unittest.cc',
      '$CHROME_DIR/browser/extensions/extensions_service_unittest.cc',
      '$CHROME_DIR/browser/history/history_types_unittest.cc',
      '$CHROME_DIR/browser/history/snippet_unittest.cc',
      '$CHROME_DIR/browser/history/text_database_unittest.cc',
      '$CHROME_DIR/browser/history/visit_tracker_unittest.cc',
      '$CHROME_DIR/browser/metrics/metrics_response_unittest.cc',
      '$CHROME_DIR/browser/net/dns_host_info_unittest.cc',
      '$CHROME_DIR/browser/net/dns_master_unittest.cc',
      '$CHROME_DIR/browser/net/url_fetcher_unittest.cc',
      '$CHROME_DIR/browser/printing/page_range_unittest.cc',
      '$CHROME_DIR/browser/printing/page_setup_unittest.cc',
      '$CHROME_DIR/browser/safe_browsing/bloom_filter_unittest.cc',
      '$CHROME_DIR/browser/safe_browsing/chunk_range_unittest.cc',
      '$CHROME_DIR/browser/safe_browsing/protocol_parser_unittest.cc',
      '$CHROME_DIR/browser/safe_browsing/safe_browsing_database_unittest.cc',
      '$CHROME_DIR/browser/safe_browsing/safe_browsing_util_unittest.cc',
      '$CHROME_DIR/browser/spellcheck_unittest.cc',
      '$CHROME_DIR/common/animation_unittest.cc',
      '$CHROME_DIR/common/bzip2_unittest.cc',
      '$CHROME_DIR/common/gfx/chrome_font_unittest.cc',
      '$CHROME_DIR/common/ipc_message_unittest.cc',
      '$CHROME_DIR/common/jpeg_codec_unittest.cc',
      '$CHROME_DIR/common/json_value_serializer_unittest.cc',
      '$CHROME_DIR/common/mru_cache_unittest.cc',
      '$CHROME_DIR/common/notification_service_unittest.cc',
      '$CHROME_DIR/common/pref_member_unittest.cc',
      '$CHROME_DIR/common/worker_thread_ticker_unittest.cc',
      '$CHROME_DIR/renderer/net/render_dns_queue_unittest.cc',
      '$CHROME_DIR/test/test_notification_tracker.cc',

      '$NET_DIR/base/ssl_test_util$OBJSUFFIX',
  )

if not env.Bit('windows'):
  # Windows-specific.
  input_files.Remove(
      '$CHROME_DIR/browser/browser_resources.h',
      '$CHROME_DIR/browser/browser_resources.rc',
      '$CHROME_DIR/app/chrome_dll.rc',
      '$CHROME_DIR/app/chrome_dll_resource.h',
      '$CHROME_DIR/app/chrome_dll_version.rc.version',
      '$CHROME_DIR/common/common_resources.h',
      '$CHROME_DIR/common/common_resources.rc',
      '$CHROME_DIR/browser/debugger/resources/debugger_resources.h',
      '$CHROME_DIR/browser/debugger/resources/debugger_resources.rc',
      '$TARGET_ROOT/grit_derived_sources/net_resources.res',
      '$CHROME_DIR/tools/build/win/precompiled_wtl$OBJSUFFIX',
      '$CHROME_DIR/tools/build/win/precompiled_wtl.h',
      '$CHROME_DIR/renderer/renderer_resources.h',
      '$CHROME_DIR/renderer/renderer_resources.rc',
      '$CHROME_DIR/test/data/resource.h',
      '$CHROME_DIR/test/data/resource.rc',
      '$TARGET_ROOT/grit_derived_sources/webkit_resources.res',
  )

if env.Bit('posix'):
  # POSIX only unittests
  input_files.Append(
      '$CHROME_DIR/common/file_descriptor_set_unittest.cc'
  )

if not env.Bit('windows'):
  # TODO(port): Port these.
  input_files.Remove(
      '$CHROME_DIR/browser/autocomplete/autocomplete_unittest.cc',
      '$CHROME_DIR/browser/bookmarks/bookmark_context_menu_test.cc',
      '$CHROME_DIR/browser/bookmarks/bookmark_drag_data_unittest.cc',
      '$CHROME_DIR/browser/bookmarks/bookmark_folder_tree_model_unittest.cc',
      '$CHROME_DIR/browser/bookmarks/bookmark_table_model_unittest.cc',
      '$CHROME_DIR/browser/bookmarks/bookmark_utils_unittest.cc',
      '$CHROME_DIR/browser/browser_commands_unittest.cc',
      # This test is mostly about renaming downloads to safe file names. As such
      # we don't need/want to port it to linux. We might want to write our own
      # tests for the download manager on linux, though.
      '$CHROME_DIR/browser/download/download_manager_unittest.cc',
      '$CHROME_DIR/browser/extensions/user_script_master_unittest.cc',
      '$CHROME_DIR/browser/importer/firefox_importer_unittest.cc',
      '$CHROME_DIR/browser/importer/importer_unittest.cc',
      '$CHROME_DIR/browser/login_prompt_unittest.cc',
      '$CHROME_DIR/browser/renderer_host/render_widget_host_unittests.cc',
      '$CHROME_DIR/browser/navigation_controller_unittest.cc',
      '$CHROME_DIR/browser/net/resolve_proxy_msg_helper_unittest.cc',
      '$CHROME_DIR/browser/password_manager/encryptor_unittest.cc',
      '$CHROME_DIR/browser/password_manager/password_form_manager_unittest.cc',
      '$CHROME_DIR/browser/printing/page_number_unittest.cc',
      '$CHROME_DIR/browser/printing/page_overlays_unittest.cc',
      '$CHROME_DIR/browser/printing/print_job_unittest.cc',
      '$CHROME_DIR/browser/printing/win_printing_context_unittest.cc',
      '$CHROME_DIR/browser/profile_manager_unittest.cc',
      '$CHROME_DIR/browser/rlz/rlz_unittest.cc',
      '$CHROME_DIR/browser/search_engines/template_url_model_unittest.cc',
      '$CHROME_DIR/browser/sessions/session_backend_unittest.cc',
      '$CHROME_DIR/browser/sessions/session_service_test_helper.cc',
      '$CHROME_DIR/browser/sessions/session_service_unittest.cc',
      '$CHROME_DIR/browser/sessions/tab_restore_service_unittest.cc',
      '$CHROME_DIR/browser/tab_contents/web_contents_unittest.cc',
      '$CHROME_DIR/browser/tabs/tab_strip_model_unittest.cc',
      '$CHROME_DIR/browser/views/bookmark_editor_view_unittest.cc',
      '$CHROME_DIR/browser/views/keyword_editor_view_unittest.cc',
      '$CHROME_DIR/browser/visitedlink_unittest.cc',
      '$CHROME_DIR/browser/webdata/web_database_unittest.cc',
      '$CHROME_DIR/browser/window_sizer_unittest.cc',
      '$CHROME_DIR/common/chrome_plugin_unittest.cc',
      '$CHROME_DIR/common/gfx/emf_unittest.cc',
      '$CHROME_DIR/common/gfx/icon_util_unittest.cc',
      '$CHROME_DIR/common/os_exchange_data_unittest.cc',
      '$CHROME_DIR/common/time_format_unittest.cc',
      '$CHROME_DIR/common/win_util_unittest.cc',
      '$CHROME_DIR/test/browser_with_test_window_test.cc',
      '$CHROME_DIR/views/focus_manager_unittest.cc',
      '$CHROME_DIR/views/grid_layout_unittest.cc',
      '$CHROME_DIR/views/label_unittest.cc',
      '$CHROME_DIR/views/table_view_unittest.cc',
      '$CHROME_DIR/views/view_unittest.cc',

      # Commented out for now because googleurl_tests doesn't build with
      # gtest; see ../build/SConscript.googleurl.
      #'$GOOGLEURL_DIR/googleurl_tests.lib',
      '$NET_DIR/url_request/url_request_test_job$OBJSUFFIX',

      '$CHROME_DIR/browser/browser_resources.res',
      '$CHROME_DIR/test/data/resource.res',
  )

if not env.Bit('mac'):
  # TODO(port): This should work on all platforms.

  unit_tests = env.ChromeTestProgram('unit_tests', input_files)

  i = env.Install('$TARGET_ROOT', unit_tests)
  Alias('chrome', i)

p = env.ChromeMSVSProject('unittests.vcproj',
                dest='$CHROME_SRC_DIR/chrome/test/unit/unittests.vcproj',
                name='unit_tests',
                dependencies = [
                    '$BASE_DIR/build/base.vcproj',
                    '$WEBKIT_DIR/build/WebCore/WebCore.vcproj',
                    '$CHROME_DIR/plugin/plugin.vcproj',
                    '$LIBJPEG_DIR/libjpeg.vcproj',
                    '$BZIP2_DIR/bzip2.vcproj',
                    '$NET_DIR/build/net.vcproj',
                    ('$WEBKIT_DIR/build/JavaScriptCore/' +
                         'JavaScriptCore_pcre.vcproj'),
                    '$WEBKIT_DIR/build/port/port.vcproj',
                    '$CHROME_DIR/browser/debugger/debugger.vcproj',
                    '$WEBKIT_DIR/default_plugin/default_plugin.vcproj',
                    '$CHROME_DIR/browser/browser.vcproj',
                    '$WEBKIT_DIR/build/V8Bindings/V8Bindings.vcproj',
                    '$SQLITE_DIR/sqlite.vcproj',
                    '$CHROME_DIR/views/views.vcproj',
                    '$MODP_B64_DIR/modp_b64.vcproj',
                    '$CHROME_DIR/app/chrome_exe.vcproj',
                    '$CHROME_DIR/test/chrome_plugin/test_chrome_plugin.vcproj',
                    '$ZLIB_DIR/zlib.vcproj',
                    '$CHROME_DIR/common/common.vcproj',
                    '$ICU38_DIR/build/icu.vcproj',
                    '$CHROME_DIR/renderer/renderer.vcproj',
                    '$BASE_DIR/build/base_gfx.vcproj',
                    '$WEBKIT_DIR/build/JavaScriptCore/WTF.vcproj',
                    '$CHROME_DIR/browser/resources/browser_resources.vcproj',
                    '$RLZ_DIR/rlz.vcproj',
                    '$TESTING_DIR/gtest.vcproj',
                    '$V8_DIR/tools/visual_studio/v8_snapshot.vcproj',
                    '$LIBPNG_DIR/libpng.vcproj',
                    '$WEBKIT_DIR/build/glue/glue.vcproj',
                    '$CHROME_DIR/app/locales/en-US.vcproj',
                    '$SKIA_DIR/skia.vcproj',
                    '$CHROME_DIR/third_party/hunspell/hunspell.vcproj',
                    '$CHROME_DIR/app/generated_resources.vcproj',
                    '$GOOGLEURL_DIR/build/googleurl.vcproj',
                    '$CHROME_DIR/installer/util/util.vcproj',
                    '$WEBKIT_DIR/activex_shim/activex_shim.vcproj',
                    '$SDCH_DIR/sdch.vcproj',
                    '$CHROME_DIR/browser/views/browser_views.vcproj',
                    '$LIBXSLT_DIR/build/libxslt.vcproj',
                    '$CHROME_DIR/app/theme/theme_dll.vcproj',
                ],
                guid='{ECFC2BEC-9FC0-4AD9-9649-5F26793F65FC}',
                # TODO(sgk):  when we can intuit the hierarchy
                # from the built targets.
                #buildtargets=TODO,
                files=input_files,
                local_directory_prefix='./',
                tools=[
                    'VCPreBuildEventTool',
                    'VCCustomBuildTool',
                    'VCXMLDataGeneratorTool',
                    'VCWebServiceProxyGeneratorTool',
                    'VCMIDLTool',
                    'VCCLCompilerTool',
                    'VCManagedResourceCompilerTool',
                    MSVSTool('VCResourceCompilerTool',
                             AdditionalIncludeDirectories=[
                               '$(SolutionDir)..',
                               '"$(IntDir)"',
                               '"$(IntDir)"',
                               '"$(SolutionDir)"',
                               '"$(IntDir)/../"',
                             ]),
                    'VCPreLinkEventTool',
                    MSVSTool('VCLinkerTool',
                             AdditionalDependencies='winmm.lib'),
                    'VCALinkTool',
                    'VCManifestTool',
                    'VCXDCMakeTool',
                    'VCBscMakeTool',
                    'VCFxCopTool',
                    'VCAppVerifierTool',
                    'VCWebDeploymentTool',
                    'VCPostBuildEventTool',
                ],
                ConfigurationType='1')

p.AddConfig('Debug|Win32',
            InheritedPropertySheets=[
                '$(SolutionDir)../build/common.vsprops',
                '$(SolutionDir)../build/debug.vsprops',
                '../../tools/build/win/precompiled_wtl.vsprops',
                '../../tools/build/win/unit_test.vsprops',
                '$(SolutionDir)../third_party/libpng/using_libpng.vsprops',
                '$(SolutionDir)../third_party/zlib/using_zlib.vsprops',
                '$(SolutionDir)../skia/using_skia.vsprops',
                '$(SolutionDir)../third_party/libxml/build/using_libxml.vsprops',
                '$(SolutionDir)../third_party/icu38/build/using_icu.vsprops',
                '$(SolutionDir)../testing/using_gtest.vsprops',
                '../../third_party/hunspell/using_hunspell.vsprops',
                '../../../third_party/npapi/using_npapi.vsprops',
            ])

p.AddConfig('Release|Win32',
            InheritedPropertySheets=[
                '$(SolutionDir)../build/common.vsprops',
                '$(SolutionDir)../build/release.vsprops',
                '../../tools/build/win/unit_test.vsprops',
                '$(SolutionDir)../third_party/libpng/using_libpng.vsprops',
                '$(SolutionDir)../third_party/zlib/using_zlib.vsprops',
                '$(SolutionDir)../skia/using_skia.vsprops',
                '$(SolutionDir)../third_party/libxml/build/using_libxml.vsprops',
                '$(SolutionDir)../third_party/icu38/build/using_icu.vsprops',
                '$(SolutionDir)../testing/using_gtest.vsprops',
                '../../third_party/hunspell/using_hunspell.vsprops',
                '../../../third_party/npapi/using_npapi.vsprops',
            ])

p.AddFileConfig('../../tools/build/win/precompiled_wtl.cc',
                'Debug|Win32',
                tools=[
                    MSVSTool('VCCLCompilerTool',
                             UsePrecompiledHeader='1'),
                ])