Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/media/libcubeb/gtest/test_utils.cpp
Line
Count
Source (jump to first uncovered line)
1
#include "gtest/gtest.h"
2
#include "cubeb_utils.h"
3
4
TEST(cubeb, auto_array)
5
0
{
6
0
  auto_array<uint32_t> array;
7
0
  auto_array<uint32_t> array2(10);
8
0
  uint32_t a[10];
9
0
10
0
  ASSERT_EQ(array2.length(), 0u);
11
0
  ASSERT_EQ(array2.capacity(), 10u);
12
0
13
0
14
0
  for (uint32_t i = 0; i < 10; i++) {
15
0
    a[i] = i;
16
0
  }
17
0
18
0
  ASSERT_EQ(array.capacity(), 0u);
19
0
  ASSERT_EQ(array.length(), 0u);
20
0
21
0
  array.push(a, 10);
22
0
23
0
  ASSERT_TRUE(!array.reserve(9));
24
0
25
0
  for (uint32_t i = 0; i < 10; i++) {
26
0
    ASSERT_EQ(array.data()[i], i);
27
0
  }
28
0
29
0
  ASSERT_EQ(array.capacity(), 10u);
30
0
  ASSERT_EQ(array.length(), 10u);
31
0
32
0
  uint32_t b[10];
33
0
34
0
  array.pop(b, 5);
35
0
36
0
  ASSERT_EQ(array.capacity(), 10u);
37
0
  ASSERT_EQ(array.length(), 5u);
38
0
  for (uint32_t i = 0; i < 5; i++) {
39
0
    ASSERT_EQ(b[i], i);
40
0
    ASSERT_EQ(array.data()[i], 5 + i);
41
0
  }
42
0
  uint32_t* bb = b + 5;
43
0
  array.pop(bb, 5);
44
0
45
0
  ASSERT_EQ(array.capacity(), 10u);
46
0
  ASSERT_EQ(array.length(), 0u);
47
0
  for (uint32_t i = 0; i < 5; i++) {
48
0
    ASSERT_EQ(bb[i], 5 + i);
49
0
  }
50
0
51
0
  ASSERT_TRUE(!array.pop(nullptr, 1));
52
0
53
0
  array.push(a, 10);
54
0
  array.push(a, 10);
55
0
56
0
  for (uint32_t j = 0; j < 2; j++) {
57
0
    for (uint32_t i = 0; i < 10; i++) {
58
0
      ASSERT_EQ(array.data()[10 * j + i], i);
59
0
    }
60
0
  }
61
0
  ASSERT_EQ(array.length(), 20u);
62
0
  ASSERT_EQ(array.capacity(), 20u);
63
0
  array.pop(nullptr, 5);
64
0
65
0
  for (uint32_t i = 0; i < 5; i++) {
66
0
    ASSERT_EQ(array.data()[i], 5 + i);
67
0
  }
68
0
69
0
  ASSERT_EQ(array.length(), 15u);
70
0
  ASSERT_EQ(array.capacity(), 20u);
71
0
}
72