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

Side by Side Diff: scripts/slave/recipe_modules/isolate/resources/compare_build_artifacts.py

Issue 1325823004: Add more known non-deterministic files to Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Compare the artifacts from two builds.""" 6 """Compare the artifacts from two builds."""
7 7
8 import difflib 8 import difflib
9 import json 9 import json
10 import optparse 10 import optparse
11 import os 11 import os
12 import struct 12 import struct
13 import sys 13 import sys
14 import time 14 import time
15 15
16 from infra.libs.infra_types import freeze 16 from infra.libs.infra_types import freeze
17 17
18 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) 18 BASE_DIR = os.path.dirname(os.path.abspath(__file__))
19 19
20 20
21 # List of files that are known to be non deterministic. This is a "temporary" 21 # List of files that are known to be non deterministic. This is a "temporary"
22 # workaround to find regression on the deterministic builders. 22 # workaround to find regression on the deterministic builders.
23 # 23 #
24 # PNaCl general bug: http://crbug.com/429358 24 # PNaCl general bug: https://crbug.com/429358
25 # 25 #
26 # TODO(sebmarchand): Remove this once all the files are deterministic. 26 # TODO(sebmarchand): Remove this once all the files are deterministic.
27 WHITELIST = freeze({ 27 WHITELIST = freeze({
28 # http://crbug.com/383340 28 # https://crbug.com/383340
29 'android': { 29 'android': {
30 'd8', 30 'd8',
31 'mksnapshot', 31 'mksnapshot',
32 }, 32 },
33 33
34 # http://crbug.com/330263 34 # https://crbug.com/330263
35 'linux': { 35 'linux': {
36 # Completed. 36 # Completed.
37 }, 37 },
38 38
39 # http://crbug.com/330262 39 # https://crbug.com/330262
40 'mac': { 40 'mac': {
41 'accessibility_unittests', 41 'accessibility_unittests',
42 'accessibility_unittests.isolated', 42 'accessibility_unittests.isolated',
43 'angle_unittests', 43 'angle_unittests',
44 'app_list_demo', 44 'app_list_demo',
45 'app_list_unittests', 45 'app_list_unittests',
46 'app_list_unittests.isolated', 46 'app_list_unittests.isolated',
47 'app_shell_unittests', 47 'app_shell_unittests',
48 'app_shell_unittests.isolated', 48 'app_shell_unittests.isolated',
49 'ar_sample_test_driver', 49 'ar_sample_test_driver',
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 'views_examples_with_content_exe', 308 'views_examples_with_content_exe',
309 'views_unittests', 309 'views_unittests',
310 'webkit_unit_tests', 310 'webkit_unit_tests',
311 'wifi_test', 311 'wifi_test',
312 'wtf_unittests', 312 'wtf_unittests',
313 'xz', 313 'xz',
314 'xzdec', 314 'xzdec',
315 'yasm', 315 'yasm',
316 }, 316 },
317 317
318 # http://crbug.com/330260 318 # https://crbug.com/330260
319 'win': { 319 'win': {
320 'accessibility_unittests.exe', 320 'accessibility_unittests.exe',
321 'accessibility_unittests.isolated', 321 'accessibility_unittests.isolated',
322 'angle_end2end_tests.exe',
322 'angle_unittests.exe', 323 'angle_unittests.exe',
323 'app_list_demo.exe', 324 'app_list_demo.exe',
325 'app_list_unittests.exe',
326 'app_list_unittests.isolated',
327 'app_shell.exe',
324 'app_shell_unittests.exe', 328 'app_shell_unittests.exe',
325 'app_shell_unittests.isolated', 329 'app_shell_unittests.isolated',
326 'app_shell.exe', 330 'ar_sample_test_driver.exe',
327 'ash_shell.exe', 331 'ash_shell.exe',
332 'ash_unittests.exe',
328 'ash_unittests.isolated', 333 'ash_unittests.isolated',
329 'audio_unittests.exe', 334 'audio_unittests.exe',
330 'audio_unittests.isolated', 335 'audio_unittests.isolated',
336 'base_i18n_perftests.exe',
337 'base_perftests.exe',
331 'base_unittests.exe', 338 'base_unittests.exe',
332 'base_unittests.isolated', 339 'base_unittests.isolated',
333 'blink_heap_unittests.exe', 340 'blink_heap_unittests.exe',
334 'blink_platform_unittests.exe', 341 'blink_platform_unittests.exe',
335 'browser_tests.exe', 342 'browser_tests.exe',
336 'browser_tests.isolated', 343 'browser_tests.isolated',
337 'cast_unittests.exe', 344 'cast_unittests.exe',
338 'cast_unittests.isolated', 345 'cast_unittests.isolated',
339 'cc_blink_unittests.exe', 346 'cc_blink_unittests.exe',
340 'cc_perftests.exe', 347 'cc_perftests.exe',
341 'cc_unittests.exe', 348 'cc_unittests.exe',
342 'cc_unittests.isolated', 349 'cc_unittests.isolated',
343 'chrome_child.dll',
344 'chrome_watcher.dll',
345 'chrome.dll', 350 'chrome.dll',
346 'chrome.exe', 351 'chrome.exe',
347 'chrome.isolated', 352 'chrome.isolated',
353 'chrome_child.dll',
354 'chrome_elf_unittests.exe',
355 'chrome_watcher.dll',
356 'chromedriver.exe',
357 'chromedriver_tests.exe',
358 'chromoting_test_driver.exe',
348 'clearkeycdm.dll', 359 'clearkeycdm.dll',
360 'cloud_print_service.exe',
361 'cloud_print_service_config.exe',
362 'cloud_print_unittests.exe',
349 'components_browsertests.exe', 363 'components_browsertests.exe',
350 'components_browsertests.isolated', 364 'components_browsertests.isolated',
351 'components_unittests.exe', 365 'components_unittests.exe',
352 'components_unittests.isolated', 366 'components_unittests.isolated',
353 'compositor_unittests.exe', 367 'compositor_unittests.exe',
354 'compositor_unittests.isolated', 368 'compositor_unittests.isolated',
355 'content_browsertests.exe', 369 'content_browsertests.exe',
356 'content_browsertests.isolated', 370 'content_browsertests.isolated',
357 'content_gl_benchmark.exe', 371 'content_gl_benchmark.exe',
358 'content_gl_tests.exe', 372 'content_gl_tests.exe',
359 'content_perftests.exe', 373 'content_perftests.exe',
360 'content_shell.exe', 374 'content_shell.exe',
361 'content_unittests.exe', 375 'content_unittests.exe',
362 'content_unittests.isolated', 376 'content_unittests.isolated',
363 'courgette64.exe', 377 'courgette64.exe',
364 'crash_service64.exe', 378 'crash_service64.exe',
379 'crypto_unittests.exe',
365 'crypto_unittests.isolated', 380 'crypto_unittests.isolated',
366 'd8.exe', 381 'd8.exe',
382 'delegate_execute.exe',
367 'delegate_execute_unittests.exe', 383 'delegate_execute_unittests.exe',
368 'delegate_execute.exe',
369 'device_unittests.exe', 384 'device_unittests.exe',
370 'device_unittests.isolated', 385 'device_unittests.isolated',
371 'events_unittests.exe', 386 'events_unittests.exe',
372 'events_unittests.isolated', 387 'events_unittests.isolated',
373 'extensions_browsertests.exe', 388 'extensions_browsertests.exe',
374 'extensions_browsertests.isolated', 389 'extensions_browsertests.isolated',
375 'extensions_unittests.exe', 390 'extensions_unittests.exe',
376 'extensions_unittests.isolated', 391 'extensions_unittests.isolated',
377 'gcm_unit_tests.exe', 392 'gcm_unit_tests.exe',
378 'gcm_unit_tests.isolated', 393 'gcm_unit_tests.isolated',
394 'gcp20_device.exe',
395 'gcp20_device_unittests.exe',
379 'gcp_portmon64.dll', 396 'gcp_portmon64.dll',
397 'get_server_time.exe',
380 'gfx_unittests.exe', 398 'gfx_unittests.exe',
381 'gin_shell.exe', 399 'gin_shell.exe',
382 'gin_unittests.exe', 400 'gin_unittests.exe',
383 'gl_unittests.exe', 401 'gl_unittests.exe',
384 'gl_unittests.isolated', 402 'gl_unittests.isolated',
385 'google_apis_unittests.exe', 403 'google_apis_unittests.exe',
386 'google_apis_unittests.isolated', 404 'google_apis_unittests.isolated',
405 'gpu_perftests.exe',
387 'gpu_unittests.exe', 406 'gpu_unittests.exe',
388 'gpu_unittests.isolated', 407 'gpu_unittests.isolated',
389 'interactive_ui_tests.exe', 408 'interactive_ui_tests.exe',
390 'interactive_ui_tests.isolated', 409 'interactive_ui_tests.isolated',
391 'ipc_mojo_perftests.exe', 410 'ipc_mojo_perftests.exe',
392 'ipc_mojo_unittests.exe', 411 'ipc_mojo_unittests.exe',
393 'ipc_perftests.exe', 412 'ipc_perftests.exe',
413 'ipc_tests.exe',
414 'ipc_tests.isolated',
394 'jingle_unittests.exe', 415 'jingle_unittests.exe',
395 'jingle_unittests.isolated', 416 'jingle_unittests.isolated',
417 'keyboard_unittests.exe',
396 'libaddressinput_unittests.exe', 418 'libaddressinput_unittests.exe',
397 'media_unittests.exe', 419 'media_unittests.exe',
398 'media_unittests.isolated', 420 'media_unittests.isolated',
399 'metro_driver.dll', 421 'metro_driver.dll',
400 'midi_unittests.exe', 422 'midi_unittests.exe',
401 'midi_unittests.isolated', 423 'midi_unittests.isolated',
402 'mini_installer.exe', 424 'mini_installer.exe',
403 'mksnapshot.exe', 425 'mksnapshot.exe',
404 'mock_nacl_gdb.exe', 426 'mock_nacl_gdb.exe',
405 'mojo_js_integration_tests.exe', 427 'mojo_js_integration_tests.exe',
406 'mojo_js_unittests.exe', 428 'mojo_js_unittests.exe',
429 'mojo_message_pipe_perftests.exe',
430 'mojo_public_bindings_perftests.exe',
431 'mojo_public_bindings_unittests.exe',
432 'mojo_public_bindings_unittests.isolated',
433 'mojo_public_environment_unittests.exe',
434 'mojo_public_environment_unittests.isolated',
435 'mojo_public_system_perftests.exe',
436 'mojo_public_system_unittests.exe',
437 'mojo_public_system_unittests.isolated',
438 'mojo_public_utility_unittests.exe',
439 'mojo_public_utility_unittests.isolated',
440 'mojo_system_unittests.exe',
441 'nacl_loader_unittests.exe',
442 'nacl_loader_unittests.isolated',
407 'net_perftests.exe', 443 'net_perftests.exe',
408 'net_unittests.exe', 444 'net_unittests.exe',
409 'net_unittests.isolated', 445 'net_unittests.isolated',
410 'np_test_netscape_plugin.dll', 446 'np_test_netscape_plugin.dll',
411 'npapi_test_plugin.dll', 447 'npapi_test_plugin.dll',
448 'pdfium_test.exe',
412 'peerconnection_server.exe', 449 'peerconnection_server.exe',
413 'performance_browser_tests.exe', 450 'performance_browser_tests.exe',
451 'ppapi_perftests.exe',
414 'ppapi_unittests.exe', 452 'ppapi_unittests.exe',
453 'printing_unittests.exe',
454 'printing_unittests.isolated',
415 'remoting_core.dll', 455 'remoting_core.dll',
456 'remoting_start_host.exe',
457 'remoting_unittests.exe',
458 'remoting_unittests.isolated',
416 'sbox_integration_tests.isolated', 459 'sbox_integration_tests.isolated',
460 'setup_unittests.exe',
461 'setup_unittests.isolated',
462 'skia_unittests.exe',
417 'skia_unittests.isolated', 463 'skia_unittests.isolated',
418 'sql_unittests.exe', 464 'sql_unittests.exe',
419 'sql_unittests.isolated', 465 'sql_unittests.isolated',
466 'sync_client.exe',
420 'sync_integration_tests.exe', 467 'sync_integration_tests.exe',
421 'sync_integration_tests.isolated', 468 'sync_integration_tests.isolated',
422 'sync_performance_tests.exe', 469 'sync_performance_tests.exe',
423 'sync_unit_tests.exe', 470 'sync_unit_tests.exe',
424 'sync_unit_tests.isolated', 471 'sync_unit_tests.isolated',
425 'test_registrar.exe', 472 'test_registrar.exe',
426 'ui_base_unittests.exe', 473 'ui_base_unittests.exe',
427 'unit_tests.exe', 474 'unit_tests.exe',
428 'unit_tests.isolated', 475 'unit_tests.isolated',
429 'url_unittests.exe', 476 'url_unittests.exe',
430 'url_unittests.isolated', 477 'url_unittests.isolated',
431 'views_examples_with_content_exe.exe', 478 'views_examples_with_content_exe.exe',
432 'views_unittests.exe', 479 'views_unittests.exe',
433 'webkit_unit_tests.exe', 480 'webkit_unit_tests.exe',
481 'wtf_unittests.exe',
434 }, 482 },
435 }) 483 })
436 484
437 def get_files_to_compare(build_dir, recursive=False): 485 def get_files_to_compare(build_dir, recursive=False):
438 """Get the list of files to compare.""" 486 """Get the list of files to compare."""
439 allowed = frozenset( 487 allowed = frozenset(
440 ('', '.apk', '.app', '.dll', '.dylib', '.exe', '.nexe', '.so')) 488 ('', '.apk', '.app', '.dll', '.dylib', '.exe', '.nexe', '.so'))
441 non_x_ok_exts = frozenset(('.apk', '.isolated')) 489 non_x_ok_exts = frozenset(('.apk', '.isolated'))
442 def check(f): 490 def check(f):
443 if not os.path.isfile(f): 491 if not os.path.isfile(f):
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 result = 'DIFFERENT (%s): %s' % (tag, result) 642 result = 'DIFFERENT (%s): %s' % (tag, result)
595 print('%-*s: %s' % (max_filepath_len, f, result)) 643 print('%-*s: %s' % (max_filepath_len, f, result))
596 unexpected_diffs.sort() 644 unexpected_diffs.sort()
597 645
598 print('Equals: %d' % len(equals)) 646 print('Equals: %d' % len(equals))
599 print('Expected diffs: %d' % len(expected_diffs)) 647 print('Expected diffs: %d' % len(expected_diffs))
600 print('Unexpected diffs: %d' % len(unexpected_diffs)) 648 print('Unexpected diffs: %d' % len(unexpected_diffs))
601 if unexpected_diffs: 649 if unexpected_diffs:
602 print('Unexpected files with diffs:\n') 650 print('Unexpected files with diffs:\n')
603 for u in unexpected_diffs: 651 for u in unexpected_diffs:
604 print(' %s\n' % u) 652 print(' %s' % u)
605 if unexpected_equals: 653 if unexpected_equals:
606 print('Unexpected files with no diffs:\n') 654 print('Unexpected files with no diffs:\n')
607 for u in unexpected_equals: 655 for u in unexpected_equals:
608 print(' %s\n' % u) 656 print(' %s' % u)
609 657
610 return int(bool(unexpected_diffs)) 658 return int(bool(unexpected_diffs))
611 659
612 660
613 def main(): 661 def main():
614 parser = optparse.OptionParser(usage='%prog [options]') 662 parser = optparse.OptionParser(usage='%prog [options]')
615 parser.add_option( 663 parser.add_option(
616 '-f', '--first-build-dir', help='The first build directory.') 664 '-f', '--first-build-dir', help='The first build directory.')
617 parser.add_option( 665 parser.add_option(
618 '-s', '--second-build-dir', help='The second build directory.') 666 '-s', '--second-build-dir', help='The second build directory.')
(...skipping 10 matching lines...) Expand all
629 parser.error('--target-platform is required') 677 parser.error('--target-platform is required')
630 678
631 return compare_build_artifacts(os.path.abspath(options.first_build_dir), 679 return compare_build_artifacts(os.path.abspath(options.first_build_dir),
632 os.path.abspath(options.second_build_dir), 680 os.path.abspath(options.second_build_dir),
633 options.target_platform, 681 options.target_platform,
634 options.recursive) 682 options.recursive)
635 683
636 684
637 if __name__ == '__main__': 685 if __name__ == '__main__':
638 sys.exit(main()) 686 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698