Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/metrics/metrics_log.h" | 5 #include "chrome/browser/metrics/metrics_log.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/base64.h" | 9 #include "base/base64.h" |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 467 | 467 |
| 468 // Test that we properly write profiler data to the log. | 468 // Test that we properly write profiler data to the log. |
| 469 TEST_F(MetricsLogTest, RecordProfilerData) { | 469 TEST_F(MetricsLogTest, RecordProfilerData) { |
| 470 TestMetricsLog log(kClientId, kSessionId); | 470 TestMetricsLog log(kClientId, kSessionId); |
| 471 EXPECT_EQ(0, log.uma_proto().profiler_event_size()); | 471 EXPECT_EQ(0, log.uma_proto().profiler_event_size()); |
| 472 | 472 |
| 473 { | 473 { |
| 474 ProcessDataSnapshot process_data; | 474 ProcessDataSnapshot process_data; |
| 475 process_data.process_id = 177; | 475 process_data.process_id = 177; |
| 476 process_data.tasks.push_back(TaskSnapshot()); | 476 process_data.tasks.push_back(TaskSnapshot()); |
| 477 process_data.tasks.back().birth.location.file_name = "file"; | 477 process_data.tasks.back().birth.location.file_name = "a/b/file.h"; |
| 478 process_data.tasks.back().birth.location.function_name = "function"; | 478 process_data.tasks.back().birth.location.function_name = "function"; |
| 479 process_data.tasks.back().birth.location.line_number = 1337; | 479 process_data.tasks.back().birth.location.line_number = 1337; |
| 480 process_data.tasks.back().birth.thread_name = "birth_thread"; | 480 process_data.tasks.back().birth.thread_name = "birth_thread"; |
| 481 process_data.tasks.back().death_data.count = 37; | 481 process_data.tasks.back().death_data.count = 37; |
| 482 process_data.tasks.back().death_data.run_duration_sum = 31; | 482 process_data.tasks.back().death_data.run_duration_sum = 31; |
| 483 process_data.tasks.back().death_data.run_duration_max = 17; | 483 process_data.tasks.back().death_data.run_duration_max = 17; |
| 484 process_data.tasks.back().death_data.run_duration_sample = 13; | 484 process_data.tasks.back().death_data.run_duration_sample = 13; |
| 485 process_data.tasks.back().death_data.queue_duration_sum = 8; | 485 process_data.tasks.back().death_data.queue_duration_sum = 8; |
| 486 process_data.tasks.back().death_data.queue_duration_max = 5; | 486 process_data.tasks.back().death_data.queue_duration_max = 5; |
| 487 process_data.tasks.back().death_data.queue_duration_sample = 3; | 487 process_data.tasks.back().death_data.queue_duration_sample = 3; |
| 488 process_data.tasks.back().death_thread_name = "Still_Alive"; | 488 process_data.tasks.back().death_thread_name = "Still_Alive"; |
| 489 process_data.tasks.push_back(TaskSnapshot()); | 489 process_data.tasks.push_back(TaskSnapshot()); |
| 490 process_data.tasks.back().birth.location.file_name = "file2"; | 490 process_data.tasks.back().birth.location.file_name = "c\\d\\file2"; |
| 491 process_data.tasks.back().birth.location.function_name = "function2"; | 491 process_data.tasks.back().birth.location.function_name = "function2"; |
| 492 process_data.tasks.back().birth.location.line_number = 1773; | 492 process_data.tasks.back().birth.location.line_number = 1773; |
| 493 process_data.tasks.back().birth.thread_name = "birth_thread2"; | 493 process_data.tasks.back().birth.thread_name = "birth_thread2"; |
| 494 process_data.tasks.back().death_data.count = 19; | 494 process_data.tasks.back().death_data.count = 19; |
| 495 process_data.tasks.back().death_data.run_duration_sum = 23; | 495 process_data.tasks.back().death_data.run_duration_sum = 23; |
| 496 process_data.tasks.back().death_data.run_duration_max = 11; | 496 process_data.tasks.back().death_data.run_duration_max = 11; |
| 497 process_data.tasks.back().death_data.run_duration_sample = 7; | 497 process_data.tasks.back().death_data.run_duration_sample = 7; |
| 498 process_data.tasks.back().death_data.queue_duration_sum = 0; | 498 process_data.tasks.back().death_data.queue_duration_sum = 0; |
| 499 process_data.tasks.back().death_data.queue_duration_max = 0; | 499 process_data.tasks.back().death_data.queue_duration_max = 0; |
| 500 process_data.tasks.back().death_data.queue_duration_sample = 0; | 500 process_data.tasks.back().death_data.queue_duration_sample = 0; |
| 501 process_data.tasks.back().death_thread_name = "death_thread"; | 501 process_data.tasks.back().death_thread_name = "death_thread"; |
| 502 | 502 |
| 503 log.RecordProfilerData(process_data, content::PROCESS_TYPE_BROWSER); | 503 log.RecordProfilerData(process_data, content::PROCESS_TYPE_BROWSER); |
| 504 ASSERT_EQ(1, log.uma_proto().profiler_event_size()); | 504 ASSERT_EQ(1, log.uma_proto().profiler_event_size()); |
| 505 EXPECT_EQ(ProfilerEventProto::STARTUP_PROFILE, | 505 EXPECT_EQ(ProfilerEventProto::STARTUP_PROFILE, |
| 506 log.uma_proto().profiler_event(0).profile_type()); | 506 log.uma_proto().profiler_event(0).profile_type()); |
| 507 EXPECT_EQ(ProfilerEventProto::WALL_CLOCK_TIME, | 507 EXPECT_EQ(ProfilerEventProto::WALL_CLOCK_TIME, |
| 508 log.uma_proto().profiler_event(0).time_source()); | 508 log.uma_proto().profiler_event(0).time_source()); |
| 509 | 509 |
| 510 ASSERT_EQ(2, log.uma_proto().profiler_event(0).tracked_object_size()); | 510 ASSERT_EQ(2, log.uma_proto().profiler_event(0).tracked_object_size()); |
| 511 | 511 |
| 512 const ProfilerEventProto::TrackedObject* tracked_object = | 512 const ProfilerEventProto::TrackedObject* tracked_object = |
| 513 &log.uma_proto().profiler_event(0).tracked_object(0); | 513 &log.uma_proto().profiler_event(0).tracked_object(0); |
| 514 EXPECT_EQ(GG_UINT64_C(10123486280357988687), | 514 EXPECT_EQ(GG_UINT64_C(5891889577137156145), |
| 515 tracked_object->source_file_name_hash()); | 515 tracked_object->source_file_name_hash()); |
| 516 EXPECT_EQ(GG_UINT64_C(13962325592283560029), | 516 EXPECT_EQ(GG_UINT64_C(13962325592283560029), |
| 517 tracked_object->source_function_name_hash()); | 517 tracked_object->source_function_name_hash()); |
| 518 EXPECT_EQ(1337, tracked_object->source_line_number()); | 518 EXPECT_EQ(1337, tracked_object->source_line_number()); |
| 519 EXPECT_EQ(GG_UINT64_C(3400908935414830400), | 519 EXPECT_EQ(GG_UINT64_C(3400908935414830400), |
| 520 tracked_object->birth_thread_name_hash()); | 520 tracked_object->birth_thread_name_hash()); |
| 521 EXPECT_EQ(37, tracked_object->exec_count()); | 521 EXPECT_EQ(37, tracked_object->exec_count()); |
| 522 EXPECT_EQ(31, tracked_object->exec_time_total()); | 522 EXPECT_EQ(31, tracked_object->exec_time_total()); |
| 523 EXPECT_EQ(13, tracked_object->exec_time_sampled()); | 523 EXPECT_EQ(13, tracked_object->exec_time_sampled()); |
| 524 EXPECT_EQ(8, tracked_object->queue_time_total()); | 524 EXPECT_EQ(8, tracked_object->queue_time_total()); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 558 process_data.tasks.back().birth.location.line_number = 7331; | 558 process_data.tasks.back().birth.location.line_number = 7331; |
| 559 process_data.tasks.back().birth.thread_name = "birth_thread3"; | 559 process_data.tasks.back().birth.thread_name = "birth_thread3"; |
| 560 process_data.tasks.back().death_data.count = 137; | 560 process_data.tasks.back().death_data.count = 137; |
| 561 process_data.tasks.back().death_data.run_duration_sum = 131; | 561 process_data.tasks.back().death_data.run_duration_sum = 131; |
| 562 process_data.tasks.back().death_data.run_duration_max = 117; | 562 process_data.tasks.back().death_data.run_duration_max = 117; |
| 563 process_data.tasks.back().death_data.run_duration_sample = 113; | 563 process_data.tasks.back().death_data.run_duration_sample = 113; |
| 564 process_data.tasks.back().death_data.queue_duration_sum = 108; | 564 process_data.tasks.back().death_data.queue_duration_sum = 108; |
| 565 process_data.tasks.back().death_data.queue_duration_max = 105; | 565 process_data.tasks.back().death_data.queue_duration_max = 105; |
| 566 process_data.tasks.back().death_data.queue_duration_sample = 103; | 566 process_data.tasks.back().death_data.queue_duration_sample = 103; |
| 567 process_data.tasks.back().death_thread_name = "death_thread3"; | 567 process_data.tasks.back().death_thread_name = "death_thread3"; |
| 568 process_data.tasks.push_back(TaskSnapshot()); | |
| 569 process_data.tasks.back().birth.location.file_name = ""; | |
| 570 process_data.tasks.back().birth.location.function_name = ""; | |
| 571 process_data.tasks.back().birth.location.line_number = 7331; | |
| 572 process_data.tasks.back().birth.thread_name = ""; | |
| 573 process_data.tasks.back().death_data.count = 137; | |
| 574 process_data.tasks.back().death_data.run_duration_sum = 131; | |
| 575 process_data.tasks.back().death_data.run_duration_max = 117; | |
| 576 process_data.tasks.back().death_data.run_duration_sample = 113; | |
| 577 process_data.tasks.back().death_data.queue_duration_sum = 108; | |
| 578 process_data.tasks.back().death_data.queue_duration_max = 105; | |
| 579 process_data.tasks.back().death_data.queue_duration_sample = 103; | |
|
Ilya Sherman
2014/03/29 01:06:49
I would prefer if you did not repeat the constants
vadimt
2014/03/31 18:10:14
Yeah, I could add a separate test. But everything
| |
| 580 process_data.tasks.back().death_thread_name = ""; | |
| 568 | 581 |
| 569 log.RecordProfilerData(process_data, content::PROCESS_TYPE_RENDERER); | 582 log.RecordProfilerData(process_data, content::PROCESS_TYPE_RENDERER); |
| 570 ASSERT_EQ(1, log.uma_proto().profiler_event_size()); | 583 ASSERT_EQ(1, log.uma_proto().profiler_event_size()); |
| 571 EXPECT_EQ(ProfilerEventProto::STARTUP_PROFILE, | 584 EXPECT_EQ(ProfilerEventProto::STARTUP_PROFILE, |
| 572 log.uma_proto().profiler_event(0).profile_type()); | 585 log.uma_proto().profiler_event(0).profile_type()); |
| 573 EXPECT_EQ(ProfilerEventProto::WALL_CLOCK_TIME, | 586 EXPECT_EQ(ProfilerEventProto::WALL_CLOCK_TIME, |
| 574 log.uma_proto().profiler_event(0).time_source()); | 587 log.uma_proto().profiler_event(0).time_source()); |
| 575 ASSERT_EQ(3, log.uma_proto().profiler_event(0).tracked_object_size()); | 588 ASSERT_EQ(4, log.uma_proto().profiler_event(0).tracked_object_size()); |
| 576 | 589 |
| 577 const ProfilerEventProto::TrackedObject* tracked_object = | 590 const ProfilerEventProto::TrackedObject* tracked_object = |
| 578 &log.uma_proto().profiler_event(0).tracked_object(2); | 591 &log.uma_proto().profiler_event(0).tracked_object(2); |
| 579 EXPECT_EQ(GG_UINT64_C(2686523203278102732), | 592 EXPECT_EQ(GG_UINT64_C(2686523203278102732), |
| 580 tracked_object->source_file_name_hash()); | 593 tracked_object->source_file_name_hash()); |
| 581 EXPECT_EQ(GG_UINT64_C(5081672290546182009), | 594 EXPECT_EQ(GG_UINT64_C(5081672290546182009), |
| 582 tracked_object->source_function_name_hash()); | 595 tracked_object->source_function_name_hash()); |
| 583 EXPECT_EQ(7331, tracked_object->source_line_number()); | 596 EXPECT_EQ(7331, tracked_object->source_line_number()); |
| 584 EXPECT_EQ(GG_UINT64_C(1518842999910132863), | 597 EXPECT_EQ(GG_UINT64_C(1518842999910132863), |
| 585 tracked_object->birth_thread_name_hash()); | 598 tracked_object->birth_thread_name_hash()); |
| 586 EXPECT_EQ(137, tracked_object->exec_count()); | 599 EXPECT_EQ(137, tracked_object->exec_count()); |
| 587 EXPECT_EQ(131, tracked_object->exec_time_total()); | 600 EXPECT_EQ(131, tracked_object->exec_time_total()); |
| 588 EXPECT_EQ(113, tracked_object->exec_time_sampled()); | 601 EXPECT_EQ(113, tracked_object->exec_time_sampled()); |
| 589 EXPECT_EQ(108, tracked_object->queue_time_total()); | 602 EXPECT_EQ(108, tracked_object->queue_time_total()); |
| 590 EXPECT_EQ(103, tracked_object->queue_time_sampled()); | 603 EXPECT_EQ(103, tracked_object->queue_time_sampled()); |
| 591 EXPECT_EQ(GG_UINT64_C(2203893603452504755), | 604 EXPECT_EQ(GG_UINT64_C(2203893603452504755), |
| 592 tracked_object->exec_thread_name_hash()); | 605 tracked_object->exec_thread_name_hash()); |
| 593 EXPECT_EQ(1177U, tracked_object->process_id()); | 606 EXPECT_EQ(1177U, tracked_object->process_id()); |
| 594 EXPECT_EQ(ProfilerEventProto::TrackedObject::RENDERER, | 607 EXPECT_EQ(ProfilerEventProto::TrackedObject::RENDERER, |
| 595 tracked_object->process_type()); | 608 tracked_object->process_type()); |
| 609 | |
| 610 tracked_object = &log.uma_proto().profiler_event(0).tracked_object(3); | |
| 611 EXPECT_EQ(GG_UINT64_C(15284527576400310788), | |
| 612 tracked_object->source_file_name_hash()); | |
| 613 EXPECT_EQ(GG_UINT64_C(15284527576400310788), | |
| 614 tracked_object->source_function_name_hash()); | |
| 615 EXPECT_EQ(7331, tracked_object->source_line_number()); | |
| 616 EXPECT_EQ(GG_UINT64_C(15284527576400310788), | |
| 617 tracked_object->birth_thread_name_hash()); | |
| 618 EXPECT_EQ(137, tracked_object->exec_count()); | |
| 619 EXPECT_EQ(131, tracked_object->exec_time_total()); | |
| 620 EXPECT_EQ(113, tracked_object->exec_time_sampled()); | |
| 621 EXPECT_EQ(108, tracked_object->queue_time_total()); | |
| 622 EXPECT_EQ(103, tracked_object->queue_time_sampled()); | |
| 623 EXPECT_EQ(GG_UINT64_C(15284527576400310788), | |
| 624 tracked_object->exec_thread_name_hash()); | |
| 625 EXPECT_EQ(1177U, tracked_object->process_id()); | |
| 626 EXPECT_EQ(ProfilerEventProto::TrackedObject::RENDERER, | |
| 627 tracked_object->process_type()); | |
| 596 } | 628 } |
| 597 } | 629 } |
| 598 | 630 |
| 599 #if defined(OS_CHROMEOS) | 631 #if defined(OS_CHROMEOS) |
| 600 TEST_F(MetricsLogTest, MultiProfileUserCount) { | 632 TEST_F(MetricsLogTest, MultiProfileUserCount) { |
| 601 std::string user1("user1@example.com"); | 633 std::string user1("user1@example.com"); |
| 602 std::string user2("user2@example.com"); | 634 std::string user2("user2@example.com"); |
| 603 std::string user3("user3@example.com"); | 635 std::string user3("user3@example.com"); |
| 604 | 636 |
| 605 // |scoped_enabler| takes over the lifetime of |user_manager|. | 637 // |scoped_enabler| takes over the lifetime of |user_manager|. |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 727 PairedDevice device2 = | 759 PairedDevice device2 = |
| 728 log.system_profile().hardware().bluetooth().paired_device(1); | 760 log.system_profile().hardware().bluetooth().paired_device(1); |
| 729 | 761 |
| 730 EXPECT_EQ(FakeBluetoothDeviceClient::kConfirmPasskeyClass, | 762 EXPECT_EQ(FakeBluetoothDeviceClient::kConfirmPasskeyClass, |
| 731 device2.bluetooth_class()); | 763 device2.bluetooth_class()); |
| 732 EXPECT_EQ(PairedDevice::DEVICE_PHONE, device2.type()); | 764 EXPECT_EQ(PairedDevice::DEVICE_PHONE, device2.type()); |
| 733 EXPECT_EQ(0x207D74U, device2.vendor_prefix()); | 765 EXPECT_EQ(0x207D74U, device2.vendor_prefix()); |
| 734 EXPECT_EQ(PairedDevice::VENDOR_ID_UNKNOWN, device2.vendor_id_source()); | 766 EXPECT_EQ(PairedDevice::VENDOR_ID_UNKNOWN, device2.vendor_id_source()); |
| 735 } | 767 } |
| 736 #endif // OS_CHROMEOS | 768 #endif // OS_CHROMEOS |
| OLD | NEW |