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

Unified Diff: sdch/open_vcdiff/depot/opensource/open-vcdiff/src/testing.h

Issue 5203: Transition to pulling open-vcdiff from repository, instead of using snapshot... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 12 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 side-by-side diff with in-line comments
Download patch
Index: sdch/open_vcdiff/depot/opensource/open-vcdiff/src/testing.h
===================================================================
--- sdch/open_vcdiff/depot/opensource/open-vcdiff/src/testing.h (revision 2678)
+++ sdch/open_vcdiff/depot/opensource/open-vcdiff/src/testing.h (working copy)
@@ -1,180 +0,0 @@
-// Copyright 2008 Google Inc.
-// Authors: Craig Silverstein, Lincoln Smith
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef OPEN_VCDIFF_TESTING_H_
-#define OPEN_VCDIFF_TESTING_H_
-
-#include <config.h>
-#include <stdint.h> // int64_t, uint64_t
-#include <time.h> // gettimeofday
-#include <cassert>
-#include <cstdlib> // rand
-#include "gtest/gtest.h"
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h> // struct timeval
-#endif // HAVE_SYS_TIME_H
-
-#ifdef HAVE_WINDOWS_H
-#include <windows.h> // QueryPerformanceCounter
-#endif // HAVE_WINDOWS_H
-
-// CHECK is used for assertions that verify the consistency of the test itself,
-// rather than correctness of the code that is being tested.
-//
-// It is better to use a preprocessor macro for CHECK
-// than an inline function, because assert() may report
-// the source file and line where the failure occurred.
-//
-// Putting parentheses around the macro arguments
-// (e.g. "assert((X) == (Y))") would be good practice
-// but would produce error messages that are inconsistent
-// with those expected in the unit tests.
-
-#define CHECK(CONDITION) assert(CONDITION)
-#define CHECK_EQ(X, Y) assert(X == Y)
-#define CHECK_NE(X, Y) assert(X != Y)
-#define CHECK_GE(X, Y) assert(X >= Y)
-#define CHECK_GT(X, Y) assert(X > Y)
-#define CHECK_LE(X, Y) assert(X <= Y)
-#define CHECK_LT(X, Y) assert(X < Y)
-
-namespace open_vcdiff {
-
-// Support for timing tests
-#if defined(HAVE_GETTIMEOFDAY)
-class CycleTimer {
- public:
- inline CycleTimer() {
- Reset();
- }
-
- inline void Reset() {
- start_time_.tv_sec = 0;
- start_time_.tv_usec = 0;
- cumulative_time_in_usec_ = 0;
- }
-
- inline void Start() {
- CHECK(!IsStarted());
- gettimeofday(&start_time_, NULL);
- }
-
- inline void Restart() {
- Reset();
- Start();
- }
-
- inline void Stop() {
- struct timeval end_time;
- gettimeofday(&end_time, NULL);
- CHECK(IsStarted());
- cumulative_time_in_usec_ +=
- (1000000 * (end_time.tv_sec - start_time_.tv_sec))
- + end_time.tv_usec - start_time_.tv_usec;
- start_time_.tv_sec = 0;
- start_time_.tv_usec = 0;
- }
-
- inline int64_t GetInUsec() {
- return cumulative_time_in_usec_;
- }
-
- private:
- inline bool IsStarted() {
- return (start_time_.tv_usec > 0) || (start_time_.tv_sec > 0);
- }
-
- struct timeval start_time_;
- int64_t cumulative_time_in_usec_;
-};
-#elif defined(HAVE_QUERYPERFORMANCECOUNTER)
-class CycleTimer {
- public:
- inline CycleTimer() {
- LARGE_INTEGER frequency;
- QueryPerformanceFrequency(&frequency); // counts per second
- usecs_per_count_ = 1000000.0 / static_cast<double>(frequency.QuadPart);
- Reset();
- }
-
- inline void Reset() {
- start_time_.QuadPart = 0;
- cumulative_time_in_usec_ = 0;
- }
-
- inline void Start() {
- CHECK(!IsStarted());
- QueryPerformanceCounter(&start_time_);
- }
-
- inline void Restart() {
- Reset();
- Start();
- }
-
- inline void Stop() {
- LARGE_INTEGER end_time;
- QueryPerformanceCounter(&end_time);
- CHECK(IsStarted());
- double count_diff = static_cast<double>(
- end_time.QuadPart - start_time_.QuadPart);
- cumulative_time_in_usec_ +=
- static_cast<int64_t>(count_diff * usecs_per_count_);
- start_time_.QuadPart = 0;
- }
-
- inline int64_t GetInUsec() {
- return cumulative_time_in_usec_;
- }
-
- private:
- inline bool IsStarted() {
- return start_time_.QuadPart > 0;
- }
-
- LARGE_INTEGER start_time_;
- int64_t cumulative_time_in_usec_;
- double usecs_per_count_;
-};
-#else
-#error CycleTimer needs an implementation that does not use gettimeofday or QueryPerformanceCounter
-#endif // HAVE_GETTIMEOFDAY
-
-// This function returns a pseudo-random value of type IntType between 0 and
-// limit. It uses the standard rand() function to produce the value, and makes
-// as many calls to rand() as needed to ensure that the values returned can fall
-// within the full range specified. It is slow, so don't include calls to this
-// function when calculating the execution time of tests.
-//
-template<typename IntType>
-inline IntType PortableRandomInRange(IntType limit) {
- uint64_t value = rand();
- double rand_limit = RAND_MAX; // The maximum possible value
- while (rand_limit < limit) {
- // value is multiplied by (RAND_MAX + 1) each iteration. This factor will be
- // canceled out when we divide by rand_limit to get scaled_value, below.
- value = (value * (static_cast<uint64_t>(RAND_MAX) + 1)) + rand();
- rand_limit = (rand_limit * (RAND_MAX + 1.0)) + RAND_MAX;
- }
- // Translate the random 64-bit integer into a floating-point value between
- // 0.0 (inclusive) and 1.0 (inclusive).
- const double scaled_value = value / rand_limit;
- return static_cast<IntType>(limit * scaled_value);
-}
-
-} // namespace open_vcdiff
-
-#endif // OPEN_VCDIFF_TESTING_H_

Powered by Google App Engine
This is Rietveld 408576698