tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_utils.cpp (1428B)


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