Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 /*
2 * Copyright 2011 The LibYuv Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
11 #ifndef UNIT_TEST_UNIT_TEST_H_ // NOLINT
12 #define UNIT_TEST_UNIT_TEST_H_
14 #ifdef WIN32
15 #include <windows.h>
16 #else
17 #include <sys/time.h>
18 #include <sys/resource.h>
19 #endif
21 #include <gtest/gtest.h>
23 #include "libyuv/basic_types.h"
25 static __inline int Abs(int v) {
26 return v >= 0 ? v : -v;
27 }
29 #define align_buffer_page_end(var, size) \
30 uint8* var; \
31 uint8* var##_mem; \
32 var##_mem = reinterpret_cast<uint8*>(malloc(((size) + 4095) & ~4095)); \
33 var = var##_mem + (-(size) & 4095);
35 #define free_aligned_buffer_page_end(var) \
36 free(var##_mem); \
37 var = 0;
39 #ifdef WIN32
40 static inline double get_time() {
41 LARGE_INTEGER t, f;
42 QueryPerformanceCounter(&t);
43 QueryPerformanceFrequency(&f);
44 return static_cast<double>(t.QuadPart) / static_cast<double>(f.QuadPart);
45 }
47 #define random rand
48 #define srandom srand
49 #else
50 static inline double get_time() {
51 struct timeval t;
52 struct timezone tzp;
53 gettimeofday(&t, &tzp);
54 return t.tv_sec + t.tv_usec * 1e-6;
55 }
56 #endif
58 static inline void MemRandomize(uint8* dst, int len) {
59 int i;
60 for (i = 0; i < len - 1; i += 2) {
61 *reinterpret_cast<uint16*>(dst) = random();
62 dst += 2;
63 }
64 for (; i < len; ++i) {
65 *dst++ = random();
66 }
67 }
69 class libyuvTest : public ::testing::Test {
70 protected:
71 libyuvTest();
73 const int rotate_max_w_;
74 const int rotate_max_h_;
76 int benchmark_iterations_; // Default 1. Use 1000 for benchmarking.
77 int benchmark_width_; // Default 1280. Use 640 for benchmarking VGA.
78 int benchmark_height_; // Default 720. Use 360 for benchmarking VGA.
79 int benchmark_pixels_div256_; // Total pixels to benchmark / 256.
80 int benchmark_pixels_div1280_; // Total pixels to benchmark / 1280.
81 };
83 #endif // UNIT_TEST_UNIT_TEST_H_ NOLINT