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

Side by Side Diff: test/cctest/test-profile-generator.cc

Issue 2811021: Make SampleRateCalculator test resilient to float precision issues. (Closed)
Patch Set: Created 10 years, 6 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
« 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 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 the V8 project authors. All rights reserved.
2 // 2 //
3 // Tests of profiles generator and utilities. 3 // Tests of profiles generator and utilities.
4 4
5 #ifdef ENABLE_LOGGING_AND_PROFILING 5 #ifdef ENABLE_LOGGING_AND_PROFILING
6 6
7 #include "v8.h" 7 #include "v8.h"
8 #include "profile-generator-inl.h" 8 #include "profile-generator-inl.h"
9 #include "cctest.h" 9 #include "cctest.h"
10 #include "../include/v8-profiler.h" 10 #include "../include/v8-profiler.h"
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 CHECK_EQ(kSamplingIntervalMs, calc2.ticks_per_ms()); 646 CHECK_EQ(kSamplingIntervalMs, calc2.ticks_per_ms());
647 calc2.UpdateMeasurements(time); 647 calc2.UpdateMeasurements(time);
648 CHECK_EQ(kSamplingIntervalMs, calc2.ticks_per_ms()); 648 CHECK_EQ(kSamplingIntervalMs, calc2.ticks_per_ms());
649 time += SampleRateCalculator::kWallTimeQueryIntervalMs * 0.5; 649 time += SampleRateCalculator::kWallTimeQueryIntervalMs * 0.5;
650 calc2.UpdateMeasurements(time); 650 calc2.UpdateMeasurements(time);
651 // (1.0 + 2.0) / 2 651 // (1.0 + 2.0) / 2
652 CHECK_EQ(kSamplingIntervalMs * 1.5, calc2.ticks_per_ms()); 652 CHECK_EQ(kSamplingIntervalMs * 1.5, calc2.ticks_per_ms());
653 time += SampleRateCalculator::kWallTimeQueryIntervalMs * 0.75; 653 time += SampleRateCalculator::kWallTimeQueryIntervalMs * 0.75;
654 calc2.UpdateMeasurements(time); 654 calc2.UpdateMeasurements(time);
655 // (1.0 + 2.0 + 2.0) / 3 655 // (1.0 + 2.0 + 2.0) / 3
656 CHECK_EQ(kSamplingIntervalMs * 1.66666, calc2.ticks_per_ms()); 656 CHECK_EQ(kSamplingIntervalMs * 5.0, round(calc2.ticks_per_ms() * 3.0));
657 657
658 SampleRateCalculator calc3; 658 SampleRateCalculator calc3;
659 time = 0.0; 659 time = 0.0;
660 CHECK_EQ(kSamplingIntervalMs, calc3.ticks_per_ms()); 660 CHECK_EQ(kSamplingIntervalMs, calc3.ticks_per_ms());
661 calc3.UpdateMeasurements(time); 661 calc3.UpdateMeasurements(time);
662 CHECK_EQ(kSamplingIntervalMs, calc3.ticks_per_ms()); 662 CHECK_EQ(kSamplingIntervalMs, calc3.ticks_per_ms());
663 time += SampleRateCalculator::kWallTimeQueryIntervalMs * 2; 663 time += SampleRateCalculator::kWallTimeQueryIntervalMs * 2;
664 calc3.UpdateMeasurements(time); 664 calc3.UpdateMeasurements(time);
665 // (1.0 + 0.5) / 2 665 // (1.0 + 0.5) / 2
666 CHECK_EQ(kSamplingIntervalMs * 0.75, calc3.ticks_per_ms()); 666 CHECK_EQ(kSamplingIntervalMs * 0.75, calc3.ticks_per_ms());
667 time += SampleRateCalculator::kWallTimeQueryIntervalMs * 1.5; 667 time += SampleRateCalculator::kWallTimeQueryIntervalMs * 1.5;
668 calc3.UpdateMeasurements(time); 668 calc3.UpdateMeasurements(time);
669 // (1.0 + 0.5 + 0.5) / 3 669 // (1.0 + 0.5 + 0.5) / 3
670 CHECK_EQ(kSamplingIntervalMs * 0.66666, calc3.ticks_per_ms()); 670 CHECK_EQ(kSamplingIntervalMs * 2.0, round(calc3.ticks_per_ms() * 3.0));
671 } 671 }
672 672
673 673
674 // --- P r o f i l e r E x t e n s i o n --- 674 // --- P r o f i l e r E x t e n s i o n ---
675 675
676 class ProfilerExtension : public v8::Extension { 676 class ProfilerExtension : public v8::Extension {
677 public: 677 public:
678 ProfilerExtension() : v8::Extension("v8/profiler", kSource) { } 678 ProfilerExtension() : v8::Extension("v8/profiler", kSource) { }
679 virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction( 679 virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction(
680 v8::Handle<v8::String> name); 680 v8::Handle<v8::String> name);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 current = PickChild(current, "a"); 769 current = PickChild(current, "a");
770 CHECK_NE(NULL, const_cast<ProfileNode*>(current)); 770 CHECK_NE(NULL, const_cast<ProfileNode*>(current));
771 current = PickChild(current, "b"); 771 current = PickChild(current, "b");
772 CHECK_NE(NULL, const_cast<ProfileNode*>(current)); 772 CHECK_NE(NULL, const_cast<ProfileNode*>(current));
773 current = PickChild(current, "c"); 773 current = PickChild(current, "c");
774 CHECK_NE(NULL, const_cast<ProfileNode*>(current)); 774 CHECK_NE(NULL, const_cast<ProfileNode*>(current));
775 CHECK_EQ(0, current->children()->length()); 775 CHECK_EQ(0, current->children()->length());
776 } 776 }
777 777
778 #endif // ENABLE_LOGGING_AND_PROFILING 778 #endif // ENABLE_LOGGING_AND_PROFILING
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