Skip to content

Commit b32dea3

Browse files
committed
Add some tests
1 parent 4e1ca05 commit b32dea3

File tree

3 files changed

+82
-0
lines changed

3 files changed

+82
-0
lines changed

test/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ if(NOT CPPTRACE_SKIP_UNIT)
8888
unit/internals/result.cpp
8989
unit/internals/string_utils.cpp
9090
unit/internals/general.cpp
91+
unit/internals/span.cpp
92+
unit/internals/string_view.cpp
9193
unit/lib/formatting.cpp
9294
unit/lib/nullable.cpp
9395
)

test/unit/internals/span.cpp

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include <gtest/gtest.h>
2+
#include <gtest/gtest-matchers.h>
3+
#include <gmock/gmock.h>
4+
#include <gmock/gmock-matchers.h>
5+
6+
#include "utils/span.hpp"
7+
8+
using cpptrace::detail::span;
9+
using cpptrace::detail::make_span;
10+
using cpptrace::detail::make_bspan;
11+
12+
namespace {
13+
14+
TEST(SpanTest, Basic) {
15+
std::array<int, 5> arr{1, 2, 3, 4, 5};
16+
auto span = make_span(arr.begin(), arr.end());
17+
EXPECT_EQ(span.data(), arr.data());
18+
EXPECT_EQ(span.size(), 5);
19+
EXPECT_EQ(span.data()[0], 1);
20+
EXPECT_EQ(span.data()[1], 2);
21+
EXPECT_EQ(span.data()[2], 3);
22+
EXPECT_EQ(span.data()[3], 4);
23+
EXPECT_EQ(span.data()[4], 5);
24+
}
25+
26+
TEST(SpanTest, PtrSize) {
27+
std::array<int, 5> arr{1, 2, 3, 4, 5};
28+
auto span = make_span(arr.begin(), arr.size());
29+
EXPECT_EQ(span.data(), arr.data());
30+
EXPECT_EQ(span.size(), 5);
31+
EXPECT_EQ(span.data()[0], 1);
32+
EXPECT_EQ(span.data()[1], 2);
33+
EXPECT_EQ(span.data()[2], 3);
34+
EXPECT_EQ(span.data()[3], 4);
35+
EXPECT_EQ(span.data()[4], 5);
36+
}
37+
38+
TEST(SpanTest, Bspan) {
39+
struct S {
40+
std::array<char, 4> data;
41+
};
42+
S s{{'a', 'b', 'c', 'd'}};
43+
auto span = make_bspan(s);
44+
EXPECT_EQ(span.data(), s.data.data());
45+
EXPECT_EQ(span.size(), 4);
46+
EXPECT_EQ(span.data()[0], 'a');
47+
EXPECT_EQ(span.data()[1], 'b');
48+
EXPECT_EQ(span.data()[2], 'c');
49+
EXPECT_EQ(span.data()[3], 'd');
50+
}
51+
52+
}

test/unit/internals/string_view.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#include <gtest/gtest.h>
2+
#include <gtest/gtest-matchers.h>
3+
#include <gmock/gmock.h>
4+
#include <gmock/gmock-matchers.h>
5+
6+
#include <string>
7+
8+
#include "utils/string_view.hpp"
9+
10+
using cpptrace::detail::string_view;
11+
using cpptrace::detail::cstring_view;
12+
13+
namespace {
14+
15+
TEST(StringViewTest, Basic) {
16+
string_view sv = "foo";
17+
EXPECT_EQ(sv.size(), 3);
18+
EXPECT_EQ(sv.data(), std::string("foo"));
19+
EXPECT_EQ(sv[0], 'f');
20+
EXPECT_EQ(sv[1], 'o');
21+
EXPECT_EQ(sv.find_last_of("f"), 0);
22+
EXPECT_EQ(sv.find_last_of("o"), 2);
23+
EXPECT_EQ(sv.find_last_of("asfd"), 0);
24+
EXPECT_EQ(sv.find_last_of("asod"), 2);
25+
EXPECT_EQ(sv.find_last_of("bar"), sv.npos);
26+
}
27+
28+
}

0 commit comments

Comments
 (0)