mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
Don't base Value on NT_Value.
Also use std::string instead of NT_String. Conversions to/from the internal structures will be done at the interface.
This commit is contained in:
committed by
Peter Johnson
parent
555725a05b
commit
9906116d23
@@ -7,9 +7,6 @@
|
||||
|
||||
#include "WireEncoder.h"
|
||||
|
||||
#include "StringValueTest.h"
|
||||
#include "ValueTest.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#include <cfloat>
|
||||
@@ -25,46 +22,44 @@ namespace ntimpl {
|
||||
class WireEncoderTest : public ::testing::Test {
|
||||
protected:
|
||||
virtual void SetUp() {
|
||||
Value v;
|
||||
v_boolean.SetBoolean(true);
|
||||
v_double.SetDouble(1.0);
|
||||
v_string.SetString("hello");
|
||||
v_raw.SetRaw("hello");
|
||||
v_boolean_array.SetBooleanArray(std::vector<int>{0, 1, 0});
|
||||
v_boolean_array_big.SetBooleanArray(std::vector<int>(256));
|
||||
v_double_array.SetDoubleArray(std::vector<double>{0.5, 0.25});
|
||||
v_double_array_big.SetDoubleArray(std::vector<double>(256));
|
||||
v_empty = std::make_shared<Value>();
|
||||
v_boolean = Value::MakeBoolean(true);
|
||||
v_double = Value::MakeDouble(1.0);
|
||||
v_string = Value::MakeString(llvm::StringRef("hello"));
|
||||
v_raw = Value::MakeRaw(llvm::StringRef("hello"));
|
||||
v_boolean_array = Value::MakeBooleanArray(std::vector<int>{0, 1, 0});
|
||||
v_boolean_array_big = Value::MakeBooleanArray(std::vector<int>(256));
|
||||
v_double_array = Value::MakeDoubleArray(std::vector<double>{0.5, 0.25});
|
||||
v_double_array_big = Value::MakeDoubleArray(std::vector<double>(256));
|
||||
|
||||
std::vector<StringValue> sa;
|
||||
sa.push_back(StringValue("hello"));
|
||||
sa.push_back(StringValue("goodbye"));
|
||||
v_string_array.SetStringArray(sa);
|
||||
std::vector<std::string> sa;
|
||||
sa.push_back("hello");
|
||||
sa.push_back("goodbye");
|
||||
v_string_array = Value::MakeStringArray(std::move(sa));
|
||||
|
||||
sa.clear();
|
||||
for (int i=0; i<256; ++i)
|
||||
sa.push_back(StringValue("h"));
|
||||
v_string_array_big.SetStringArray(sa);
|
||||
sa.push_back("h");
|
||||
v_string_array_big = Value::MakeStringArray(std::move(sa));
|
||||
|
||||
sv_normal = StringValue("hello");
|
||||
s_normal = "hello";
|
||||
|
||||
std::string longstr;
|
||||
longstr.append(127, '*');
|
||||
longstr.push_back('x');
|
||||
sv_long = StringValue(longstr);
|
||||
s_long.clear();
|
||||
s_long.append(127, '*');
|
||||
s_long.push_back('x');
|
||||
|
||||
longstr.clear();
|
||||
longstr.append(65534, '*');
|
||||
longstr.append(3, 'x');
|
||||
sv_big = StringValue(longstr);
|
||||
s_big.clear();
|
||||
s_big.append(65534, '*');
|
||||
s_big.append(3, 'x');
|
||||
}
|
||||
|
||||
Value v_empty;
|
||||
Value v_boolean, v_double, v_string, v_raw;
|
||||
Value v_boolean_array, v_boolean_array_big;
|
||||
Value v_double_array, v_double_array_big;
|
||||
Value v_string_array, v_string_array_big;
|
||||
std::shared_ptr<Value> v_empty;
|
||||
std::shared_ptr<Value> v_boolean, v_double, v_string, v_raw;
|
||||
std::shared_ptr<Value> v_boolean_array, v_boolean_array_big;
|
||||
std::shared_ptr<Value> v_double_array, v_double_array_big;
|
||||
std::shared_ptr<Value> v_string_array, v_string_array_big;
|
||||
|
||||
StringValue sv_normal, sv_long, sv_big;
|
||||
std::string s_normal, s_long, s_big;
|
||||
};
|
||||
|
||||
TEST_F(WireEncoderTest, Construct) {
|
||||
@@ -206,31 +201,30 @@ TEST_F(WireEncoderTest, Reset) {
|
||||
|
||||
TEST_F(WireEncoderTest, GetValueSize2) {
|
||||
WireEncoder e(0x0200u);
|
||||
EXPECT_EQ(0u, e.GetValueSize(ValueTest::ToNT(v_empty))); // empty
|
||||
EXPECT_EQ(1u, e.GetValueSize(ValueTest::ToNT(v_boolean)));
|
||||
EXPECT_EQ(8u, e.GetValueSize(ValueTest::ToNT(v_double)));
|
||||
EXPECT_EQ(7u, e.GetValueSize(ValueTest::ToNT(v_string)));
|
||||
EXPECT_EQ(0u, e.GetValueSize(ValueTest::ToNT(v_raw))); // not supported
|
||||
EXPECT_EQ(0u, e.GetValueSize(*v_empty)); // empty
|
||||
EXPECT_EQ(1u, e.GetValueSize(*v_boolean));
|
||||
EXPECT_EQ(8u, e.GetValueSize(*v_double));
|
||||
EXPECT_EQ(7u, e.GetValueSize(*v_string));
|
||||
EXPECT_EQ(0u, e.GetValueSize(*v_raw)); // not supported
|
||||
|
||||
EXPECT_EQ(1u+3u, e.GetValueSize(ValueTest::ToNT(v_boolean_array)));
|
||||
EXPECT_EQ(1u+3u, e.GetValueSize(*v_boolean_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u, e.GetValueSize(ValueTest::ToNT(v_boolean_array_big)));
|
||||
EXPECT_EQ(1u+255u, e.GetValueSize(*v_boolean_array_big));
|
||||
|
||||
EXPECT_EQ(1u+2u*8u, e.GetValueSize(ValueTest::ToNT(v_double_array)));
|
||||
EXPECT_EQ(1u+2u*8u, e.GetValueSize(*v_double_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u*8u, e.GetValueSize(ValueTest::ToNT(v_double_array_big)));
|
||||
EXPECT_EQ(1u+255u*8u, e.GetValueSize(*v_double_array_big));
|
||||
|
||||
EXPECT_EQ(1u+7u+9u, e.GetValueSize(ValueTest::ToNT(v_string_array)));
|
||||
EXPECT_EQ(1u+7u+9u, e.GetValueSize(*v_string_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u*3u, e.GetValueSize(ValueTest::ToNT(v_string_array_big)));
|
||||
EXPECT_EQ(1u+255u*3u, e.GetValueSize(*v_string_array_big));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, WriteBooleanValue2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteValue(ValueTest::ToNT(v_boolean));
|
||||
Value v_false;
|
||||
v_false.SetBoolean(false);
|
||||
e.WriteValue(ValueTest::ToNT(v_false));
|
||||
e.WriteValue(*v_boolean);
|
||||
auto v_false = Value::MakeBoolean(false);
|
||||
e.WriteValue(*v_false);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(2u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x01\x00", 2),
|
||||
@@ -239,7 +233,7 @@ TEST_F(WireEncoderTest, WriteBooleanValue2) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteDoubleValue2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteValue(ValueTest::ToNT(v_double));
|
||||
e.WriteValue(*v_double);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x3f\xf0\x00\x00\x00\x00\x00\x00", 8),
|
||||
@@ -248,7 +242,7 @@ TEST_F(WireEncoderTest, WriteDoubleValue2) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteStringValue2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteValue(ValueTest::ToNT(v_string));
|
||||
e.WriteValue(*v_string);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(7u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x00\x05hello", 7),
|
||||
@@ -257,7 +251,7 @@ TEST_F(WireEncoderTest, WriteStringValue2) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteBooleanArrayValue2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteValue(ValueTest::ToNT(v_boolean_array));
|
||||
e.WriteValue(*v_boolean_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+3u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x03\x00\x01\x00", 4),
|
||||
@@ -265,7 +259,7 @@ TEST_F(WireEncoderTest, WriteBooleanArrayValue2) {
|
||||
|
||||
// truncated
|
||||
e.Reset();
|
||||
e.WriteValue(ValueTest::ToNT(v_boolean_array_big));
|
||||
e.WriteValue(*v_boolean_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x00", 2), llvm::StringRef(e.data(), 2));
|
||||
@@ -273,7 +267,7 @@ TEST_F(WireEncoderTest, WriteBooleanArrayValue2) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteDoubleArrayValue2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteValue(ValueTest::ToNT(v_double_array));
|
||||
e.WriteValue(*v_double_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+2u*8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x02\x3f\xe0\x00\x00\x00\x00\x00\x00"
|
||||
@@ -282,7 +276,7 @@ TEST_F(WireEncoderTest, WriteDoubleArrayValue2) {
|
||||
|
||||
// truncated
|
||||
e.Reset();
|
||||
e.WriteValue(ValueTest::ToNT(v_double_array_big));
|
||||
e.WriteValue(*v_double_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u*8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x00", 2), llvm::StringRef(e.data(), 2));
|
||||
@@ -290,7 +284,7 @@ TEST_F(WireEncoderTest, WriteDoubleArrayValue2) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteStringArrayValue2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteValue(ValueTest::ToNT(v_string_array));
|
||||
e.WriteValue(*v_string_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+7u+9u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x02\x00\x05hello\x00\x07goodbye", 17),
|
||||
@@ -298,7 +292,7 @@ TEST_F(WireEncoderTest, WriteStringArrayValue2) {
|
||||
|
||||
// truncated
|
||||
e.Reset();
|
||||
e.WriteValue(ValueTest::ToNT(v_string_array_big));
|
||||
e.WriteValue(*v_string_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u*3u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x00\x01", 3), llvm::StringRef(e.data(), 3));
|
||||
@@ -306,43 +300,42 @@ TEST_F(WireEncoderTest, WriteStringArrayValue2) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteValueError2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteValue(ValueTest::ToNT(v_empty)); // empty
|
||||
e.WriteValue(*v_empty); // empty
|
||||
ASSERT_EQ(0u, e.size());
|
||||
ASSERT_NE(nullptr, e.error());
|
||||
|
||||
e.Reset();
|
||||
e.WriteValue(ValueTest::ToNT(v_raw)); // not supported
|
||||
e.WriteValue(*v_raw); // not supported
|
||||
ASSERT_EQ(0u, e.size());
|
||||
ASSERT_NE(nullptr, e.error());
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, GetValueSize3) {
|
||||
WireEncoder e(0x0300u);
|
||||
EXPECT_EQ(0u, e.GetValueSize(ValueTest::ToNT(v_empty))); // empty
|
||||
EXPECT_EQ(1u, e.GetValueSize(ValueTest::ToNT(v_boolean)));
|
||||
EXPECT_EQ(8u, e.GetValueSize(ValueTest::ToNT(v_double)));
|
||||
EXPECT_EQ(6u, e.GetValueSize(ValueTest::ToNT(v_string)));
|
||||
EXPECT_EQ(6u, e.GetValueSize(ValueTest::ToNT(v_raw)));
|
||||
EXPECT_EQ(0u, e.GetValueSize(*v_empty)); // empty
|
||||
EXPECT_EQ(1u, e.GetValueSize(*v_boolean));
|
||||
EXPECT_EQ(8u, e.GetValueSize(*v_double));
|
||||
EXPECT_EQ(6u, e.GetValueSize(*v_string));
|
||||
EXPECT_EQ(6u, e.GetValueSize(*v_raw));
|
||||
|
||||
EXPECT_EQ(1u+3u, e.GetValueSize(ValueTest::ToNT(v_boolean_array)));
|
||||
EXPECT_EQ(1u+3u, e.GetValueSize(*v_boolean_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u, e.GetValueSize(ValueTest::ToNT(v_boolean_array_big)));
|
||||
EXPECT_EQ(1u+255u, e.GetValueSize(*v_boolean_array_big));
|
||||
|
||||
EXPECT_EQ(1u+2u*8u, e.GetValueSize(ValueTest::ToNT(v_double_array)));
|
||||
EXPECT_EQ(1u+2u*8u, e.GetValueSize(*v_double_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u*8u, e.GetValueSize(ValueTest::ToNT(v_double_array_big)));
|
||||
EXPECT_EQ(1u+255u*8u, e.GetValueSize(*v_double_array_big));
|
||||
|
||||
EXPECT_EQ(1u+6u+8u, e.GetValueSize(ValueTest::ToNT(v_string_array)));
|
||||
EXPECT_EQ(1u+6u+8u, e.GetValueSize(*v_string_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u*2u, e.GetValueSize(ValueTest::ToNT(v_string_array_big)));
|
||||
EXPECT_EQ(1u+255u*2u, e.GetValueSize(*v_string_array_big));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, WriteBooleanValue3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(ValueTest::ToNT(v_boolean));
|
||||
Value v_false;
|
||||
v_false.SetBoolean(false);
|
||||
e.WriteValue(ValueTest::ToNT(v_false));
|
||||
e.WriteValue(*v_boolean);
|
||||
auto v_false = Value::MakeBoolean(false);
|
||||
e.WriteValue(*v_false);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(2u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x01\x00", 2),
|
||||
@@ -351,7 +344,7 @@ TEST_F(WireEncoderTest, WriteBooleanValue3) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteDoubleValue3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(ValueTest::ToNT(v_double));
|
||||
e.WriteValue(*v_double);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x3f\xf0\x00\x00\x00\x00\x00\x00", 8),
|
||||
@@ -360,7 +353,7 @@ TEST_F(WireEncoderTest, WriteDoubleValue3) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteStringValue3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(ValueTest::ToNT(v_string));
|
||||
e.WriteValue(*v_string);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(6u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x05hello", 6),
|
||||
@@ -369,7 +362,7 @@ TEST_F(WireEncoderTest, WriteStringValue3) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteRawValue3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(ValueTest::ToNT(v_raw));
|
||||
e.WriteValue(*v_raw);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(6u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x05hello", 6),
|
||||
@@ -378,7 +371,7 @@ TEST_F(WireEncoderTest, WriteRawValue3) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteBooleanArrayValue3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(ValueTest::ToNT(v_boolean_array));
|
||||
e.WriteValue(*v_boolean_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+3u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x03\x00\x01\x00", 4),
|
||||
@@ -386,7 +379,7 @@ TEST_F(WireEncoderTest, WriteBooleanArrayValue3) {
|
||||
|
||||
// truncated
|
||||
e.Reset();
|
||||
e.WriteValue(ValueTest::ToNT(v_boolean_array_big));
|
||||
e.WriteValue(*v_boolean_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x00", 2), llvm::StringRef(e.data(), 2));
|
||||
@@ -394,7 +387,7 @@ TEST_F(WireEncoderTest, WriteBooleanArrayValue3) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteDoubleArrayValue3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(ValueTest::ToNT(v_double_array));
|
||||
e.WriteValue(*v_double_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+2u*8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x02\x3f\xe0\x00\x00\x00\x00\x00\x00"
|
||||
@@ -403,7 +396,7 @@ TEST_F(WireEncoderTest, WriteDoubleArrayValue3) {
|
||||
|
||||
// truncated
|
||||
e.Reset();
|
||||
e.WriteValue(ValueTest::ToNT(v_double_array_big));
|
||||
e.WriteValue(*v_double_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u*8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x00", 2), llvm::StringRef(e.data(), 2));
|
||||
@@ -411,7 +404,7 @@ TEST_F(WireEncoderTest, WriteDoubleArrayValue3) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteStringArrayValue3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(ValueTest::ToNT(v_string_array));
|
||||
e.WriteValue(*v_string_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+6u+8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x02\x05hello\x07goodbye", 15),
|
||||
@@ -419,7 +412,7 @@ TEST_F(WireEncoderTest, WriteStringArrayValue3) {
|
||||
|
||||
// truncated
|
||||
e.Reset();
|
||||
e.WriteValue(ValueTest::ToNT(v_string_array_big));
|
||||
e.WriteValue(*v_string_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u*2u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x01", 2), llvm::StringRef(e.data(), 2));
|
||||
@@ -427,7 +420,7 @@ TEST_F(WireEncoderTest, WriteStringArrayValue3) {
|
||||
|
||||
TEST_F(WireEncoderTest, WriteValueError3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(ValueTest::ToNT(v_empty)); // empty
|
||||
e.WriteValue(*v_empty); // empty
|
||||
ASSERT_EQ(0u, e.size());
|
||||
ASSERT_NE(nullptr, e.error());
|
||||
}
|
||||
@@ -435,22 +428,22 @@ TEST_F(WireEncoderTest, WriteValueError3) {
|
||||
TEST_F(WireEncoderTest, GetStringSize2) {
|
||||
// 2-byte length
|
||||
WireEncoder e(0x0200u);
|
||||
EXPECT_EQ(7u, e.GetStringSize(StringValueTest::ToNT(sv_normal)));
|
||||
EXPECT_EQ(130u, e.GetStringSize(StringValueTest::ToNT(sv_long)));
|
||||
EXPECT_EQ(7u, e.GetStringSize(s_normal));
|
||||
EXPECT_EQ(130u, e.GetStringSize(s_long));
|
||||
// truncated
|
||||
EXPECT_EQ(65537u, e.GetStringSize(StringValueTest::ToNT(sv_big)));
|
||||
EXPECT_EQ(65537u, e.GetStringSize(s_big));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, WriteString2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteString(StringValueTest::ToNT(sv_normal));
|
||||
e.WriteString(s_normal);
|
||||
EXPECT_EQ(nullptr, e.error());
|
||||
EXPECT_EQ(7u, e.size());
|
||||
EXPECT_EQ(llvm::StringRef("\x00\x05hello", 7),
|
||||
llvm::StringRef(e.data(), e.size()));
|
||||
|
||||
e.Reset();
|
||||
e.WriteString(StringValueTest::ToNT(sv_long));
|
||||
e.WriteString(s_long);
|
||||
EXPECT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(130u, e.size());
|
||||
EXPECT_EQ(llvm::StringRef("\x00\x80**", 4), llvm::StringRef(e.data(), 4));
|
||||
@@ -459,7 +452,7 @@ TEST_F(WireEncoderTest, WriteString2) {
|
||||
|
||||
// truncated
|
||||
e.Reset();
|
||||
e.WriteString(StringValueTest::ToNT(sv_big));
|
||||
e.WriteString(s_big);
|
||||
EXPECT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(65537u, e.size());
|
||||
EXPECT_EQ(llvm::StringRef("\xff\xff**", 4), llvm::StringRef(e.data(), 4));
|
||||
@@ -470,21 +463,21 @@ TEST_F(WireEncoderTest, WriteString2) {
|
||||
TEST_F(WireEncoderTest, GetStringSize3) {
|
||||
// leb128-encoded length
|
||||
WireEncoder e(0x0300u);
|
||||
EXPECT_EQ(6u, e.GetStringSize(StringValueTest::ToNT(sv_normal)));
|
||||
EXPECT_EQ(130u, e.GetStringSize(StringValueTest::ToNT(sv_long)));
|
||||
EXPECT_EQ(65540u, e.GetStringSize(StringValueTest::ToNT(sv_big)));
|
||||
EXPECT_EQ(6u, e.GetStringSize(s_normal));
|
||||
EXPECT_EQ(130u, e.GetStringSize(s_long));
|
||||
EXPECT_EQ(65540u, e.GetStringSize(s_big));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, WriteString3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteString(StringValueTest::ToNT(sv_normal));
|
||||
e.WriteString(s_normal);
|
||||
EXPECT_EQ(nullptr, e.error());
|
||||
EXPECT_EQ(6u, e.size());
|
||||
EXPECT_EQ(llvm::StringRef("\x05hello", 6),
|
||||
llvm::StringRef(e.data(), e.size()));
|
||||
|
||||
e.Reset();
|
||||
e.WriteString(StringValueTest::ToNT(sv_long));
|
||||
e.WriteString(s_long);
|
||||
EXPECT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(130u, e.size());
|
||||
EXPECT_EQ(llvm::StringRef("\x80\x01**", 4), llvm::StringRef(e.data(), 4));
|
||||
@@ -493,7 +486,7 @@ TEST_F(WireEncoderTest, WriteString3) {
|
||||
|
||||
// NOT truncated
|
||||
e.Reset();
|
||||
e.WriteString(StringValueTest::ToNT(sv_big));
|
||||
e.WriteString(s_big);
|
||||
EXPECT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(65540u, e.size());
|
||||
EXPECT_EQ(llvm::StringRef("\x81\x80\x04*", 4), llvm::StringRef(e.data(), 4));
|
||||
|
||||
Reference in New Issue
Block a user