Files
allwpilib/test/unit/StringValueTest.cpp

46 lines
1.1 KiB
C++
Raw Normal View History

#include "StringValueTest.h"
namespace ntimpl {
TEST_F(StringValueTest, ConstructEmpty) {
StringValue v;
ASSERT_EQ(nullptr, ToNT(v).str);
ASSERT_EQ(0u, ToNT(v).len);
}
TEST_F(StringValueTest, ConstructStringRef) {
StringValue v("hello");
ASSERT_EQ("hello", llvm::StringRef(v));
ASSERT_EQ(llvm::StringRef("hello"), ToNT(v).str);
ASSERT_EQ(5u, ToNT(v).len);
}
TEST_F(StringValueTest, ConstructMove) {
StringValue v("hello");
char* orig = ToNT(v).str;
ASSERT_NE(orig, nullptr);
ASSERT_EQ(5u, ToNT(v).len);
StringValue v2(std::move(v));
ASSERT_EQ(nullptr, ToNT(v).str);
ASSERT_EQ(0u, ToNT(v).len);
ASSERT_EQ(orig, ToNT(v2).str);
ASSERT_EQ(5u, ToNT(v2).len);
}
TEST_F(StringValueTest, AssignMove) {
StringValue v("hello");
char* orig = ToNT(v).str;
ASSERT_NE(orig, nullptr);
ASSERT_EQ(5u, ToNT(v).len);
StringValue v2("goodbye");
ASSERT_NE(ToNT(v2).str, nullptr);
ASSERT_EQ(7u, ToNT(v2).len);
v2 = std::move(v);
ASSERT_EQ(nullptr, ToNT(v).str);
ASSERT_EQ(0u, ToNT(v).len);
ASSERT_EQ(orig, ToNT(v2).str);
ASSERT_EQ(5u, ToNT(v2).len);
}
} // namespace ntimpl