]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/sdk/test/common/circular_buffer_range_test.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / sdk / test / common / circular_buffer_range_test.cc
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3
4 #include "opentelemetry/sdk/common/circular_buffer_range.h"
5
6 #include <iterator>
7
8 #include <gtest/gtest.h>
9 using opentelemetry::sdk::common::CircularBufferRange;
10
11 TEST(CircularBufferRangeTest, ForEach)
12 {
13 int array1[] = {1, 2, 3, 4};
14 int array2[] = {5, 6, 7};
15 CircularBufferRange<int> range{array1, array2};
16
17 int x = 0;
18 range.ForEach([&](int y) {
19 EXPECT_EQ(++x, y);
20 return true;
21 });
22 EXPECT_EQ(x, 7);
23 }
24
25 TEST(CircularBufferRangeTest, ForEachWithExit)
26 {
27 int array1[] = {1, 2, 3, 4};
28 int array2[] = {5, 6, 7};
29 CircularBufferRange<int> range{array1, array2};
30
31 int x = 0;
32 range.ForEach([&](int y) {
33 EXPECT_EQ(++x, y);
34 return false;
35 });
36 EXPECT_EQ(x, 1);
37
38 x = 0;
39 range.ForEach([&](int y) {
40 EXPECT_EQ(++x, y);
41 return y != 5;
42 });
43 EXPECT_EQ(x, 5);
44 }
45
46 TEST(CircularBufferRangeTest, Conversion)
47 {
48 int array1[] = {1, 2, 3, 4};
49 int array2[] = {5, 6, 7};
50 CircularBufferRange<int> range{array1, array2};
51
52 CircularBufferRange<const int> range2{range};
53 int x = 0;
54 range2.ForEach([&](int y) {
55 EXPECT_EQ(++x, y);
56 return true;
57 });
58 EXPECT_EQ(x, 7);
59 }