Skip to content

Commit 728d009

Browse files
committed
unit test instead of lit test
1 parent 386d080 commit 728d009

File tree

3 files changed

+90
-77
lines changed

3 files changed

+90
-77
lines changed

sycl/test/basic_tests/sycl_string.cpp

Lines changed: 0 additions & 77 deletions
This file was deleted.

sycl/unittests/misc/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ add_sycl_unittest(MiscTests SHARED
66
CircularBuffer.cpp
77
OsUtils.cpp
88
PropertyUtils.cpp
9+
SYCLString.cpp
910
)
1011
endif()
1112
add_subdirectory(LinkGraph)

sycl/unittests/misc/SYCLString.cpp

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
#include <gtest/gtest.h>
2+
#include <sycl/sycl.hpp>
3+
4+
class SYCLDetailStringTest : public ::testing::Test {};
5+
6+
TEST_F(SYCLDetailStringTest, DefaultConstructor) {
7+
sycl::detail::string empty_s;
8+
EXPECT_TRUE(empty_s.empty());
9+
EXPECT_STREQ(empty_s.c_str(), "");
10+
}
11+
12+
TEST_F(SYCLDetailStringTest, StringViewConstructor) {
13+
std::string_view sv = "Hello, World!";
14+
sycl::detail::string s1(sv);
15+
EXPECT_STREQ(s1.c_str(), "Hello, World!");
16+
}
17+
18+
TEST_F(SYCLDetailStringTest, CopyConstructor) {
19+
sycl::detail::string s1("Hello, World!");
20+
sycl::detail::string s2(s1);
21+
EXPECT_STREQ(s2.c_str(), "Hello, World!");
22+
23+
// Check for deep copy: modifying the original should not affect the copy.
24+
s1 = "Changed";
25+
EXPECT_STREQ(s2.c_str(), "Hello, World!");
26+
}
27+
28+
TEST_F(SYCLDetailStringTest, MoveConstructor) {
29+
sycl::detail::string s1("Changed");
30+
sycl::detail::string s2(std::move(s1));
31+
EXPECT_STREQ(s2.c_str(), "Changed");
32+
}
33+
34+
TEST_F(SYCLDetailStringTest, StringViewAssignment) {
35+
sycl::detail::string s;
36+
s = "New String";
37+
EXPECT_STREQ(s.c_str(), "New String");
38+
}
39+
40+
TEST_F(SYCLDetailStringTest, CopyAssignment) {
41+
sycl::detail::string s1("Hello, World!");
42+
sycl::detail::string s2;
43+
s2 = s1;
44+
EXPECT_STREQ(s2.c_str(), "Hello, World!");
45+
46+
// Check for deep copy.
47+
s1 = "Changed";
48+
EXPECT_STREQ(s2.c_str(), "Hello, World!");
49+
}
50+
51+
TEST_F(SYCLDetailStringTest, MoveAssignment) {
52+
sycl::detail::string s1("Changed");
53+
sycl::detail::string s2;
54+
s2 = std::move(s1);
55+
EXPECT_STREQ(s2.c_str(), "Changed");
56+
}
57+
58+
TEST_F(SYCLDetailStringTest, Methods) {
59+
sycl::detail::string s_not_empty("not empty");
60+
sycl::detail::string s_empty;
61+
// Test c_str() and data().
62+
EXPECT_STREQ(s_not_empty.data(), "not empty");
63+
EXPECT_STREQ(s_not_empty.c_str(), "not empty");
64+
EXPECT_EQ(s_not_empty.data(), s_not_empty.c_str());
65+
66+
// Test empty(). Like really.
67+
EXPECT_FALSE(s_not_empty.empty());
68+
EXPECT_TRUE(sycl::detail::string("").empty());
69+
EXPECT_TRUE(sycl::detail::string().empty());
70+
EXPECT_TRUE(s_empty.empty());
71+
}
72+
73+
TEST_F(SYCLDetailStringTest, Swap) {
74+
sycl::detail::string s1("first");
75+
sycl::detail::string s2("second");
76+
swap(s1, s2);
77+
EXPECT_STREQ(s1.c_str(), "second");
78+
EXPECT_STREQ(s2.c_str(), "first");
79+
}
80+
81+
TEST_F(SYCLDetailStringTest, ComparisonOperators) {
82+
sycl::detail::string s("match");
83+
std::string_view sv_match("match");
84+
std::string_view sv_no_match("no match");
85+
86+
EXPECT_EQ(s, sv_match);
87+
EXPECT_EQ(sv_match, s);
88+
EXPECT_FALSE(s == sv_no_match);
89+
}

0 commit comments

Comments
 (0)