mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
Set up wpiformat
This commit is contained in:
committed by
Peter Johnson
parent
4514ff8071
commit
19f7a5f108
@@ -1,20 +1,19 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2015. All Rights Reserved. */
|
||||
/* Copyright (c) FIRST 2015-2017. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "WireEncoder.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "TestPrinters.h"
|
||||
|
||||
#include <cfloat>
|
||||
#include <climits>
|
||||
#include <string>
|
||||
|
||||
#include "llvm/StringRef.h"
|
||||
#include <llvm/StringRef.h>
|
||||
|
||||
#include "TestPrinters.h"
|
||||
#include "WireEncoder.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#define BUFSIZE 1024
|
||||
|
||||
@@ -39,8 +38,7 @@ class WireEncoderTest : public ::testing::Test {
|
||||
v_string_array = Value::MakeStringArray(std::move(sa));
|
||||
|
||||
sa.clear();
|
||||
for (int i=0; i<256; ++i)
|
||||
sa.push_back("h");
|
||||
for (int i = 0; i < 256; ++i) sa.push_back("h");
|
||||
v_string_array_big = Value::MakeStringArray(std::move(sa));
|
||||
|
||||
s_normal = "hello";
|
||||
@@ -77,85 +75,83 @@ TEST_F(WireEncoderTest, SetProtoRev) {
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, Write8) {
|
||||
std::size_t off = BUFSIZE-1;
|
||||
size_t off = BUFSIZE - 1;
|
||||
WireEncoder e(0x0300u);
|
||||
for(std::size_t i=0; i<off; ++i) e.Write8(0u); // test across Reserve()
|
||||
for (size_t i = 0; i < off; ++i) e.Write8(0u); // test across Reserve()
|
||||
e.Write8(5u);
|
||||
e.Write8(0x101u); // should be truncated
|
||||
e.Write8(0u);
|
||||
ASSERT_EQ(3u, e.size()-off);
|
||||
ASSERT_EQ(3u, e.size() - off);
|
||||
ASSERT_EQ(llvm::StringRef("\x05\x01\x00", 3),
|
||||
llvm::StringRef(e.data(), e.size()).substr(off));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, Write16) {
|
||||
std::size_t off = BUFSIZE-2;
|
||||
size_t off = BUFSIZE - 2;
|
||||
WireEncoder e(0x0300u);
|
||||
for(std::size_t i=0; i<off; ++i) e.Write8(0u); // test across Reserve()
|
||||
for (size_t i = 0; i < off; ++i) e.Write8(0u); // test across Reserve()
|
||||
e.Write16(5u);
|
||||
e.Write16(0x10001u); // should be truncated
|
||||
e.Write16(0x4567u);
|
||||
e.Write16(0u);
|
||||
ASSERT_EQ(8u, e.size()-off);
|
||||
ASSERT_EQ(8u, e.size() - off);
|
||||
ASSERT_EQ(llvm::StringRef("\x00\x05\x00\x01\x45\x67\x00\x00", 8),
|
||||
llvm::StringRef(e.data(), e.size()).substr(off));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, Write32) {
|
||||
std::size_t off = BUFSIZE-4;
|
||||
size_t off = BUFSIZE - 4;
|
||||
WireEncoder e(0x0300u);
|
||||
for(std::size_t i=0; i<off; ++i) e.Write8(0u); // test across Reserve()
|
||||
for (size_t i = 0; i < off; ++i) e.Write8(0u); // test across Reserve()
|
||||
e.Write32(5ul);
|
||||
e.Write32(1ul);
|
||||
e.Write32(0xabcdul);
|
||||
e.Write32(0x12345678ul);
|
||||
e.Write32(0ul);
|
||||
ASSERT_EQ(20u, e.size()-off);
|
||||
ASSERT_EQ(llvm::StringRef(
|
||||
"\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\xab\xcd"
|
||||
"\x12\x34\x56\x78\x00\x00\x00\x00",
|
||||
20),
|
||||
ASSERT_EQ(20u, e.size() - off);
|
||||
ASSERT_EQ(llvm::StringRef("\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\xab\xcd"
|
||||
"\x12\x34\x56\x78\x00\x00\x00\x00",
|
||||
20),
|
||||
llvm::StringRef(e.data(), e.size()).substr(off));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, WriteDouble) {
|
||||
std::size_t off = BUFSIZE-8;
|
||||
size_t off = BUFSIZE - 8;
|
||||
WireEncoder e(0x0300u);
|
||||
for(std::size_t i=0; i<off; ++i) e.Write8(0u); // test across Reserve()
|
||||
for (size_t i = 0; i < off; ++i) e.Write8(0u); // test across Reserve()
|
||||
e.WriteDouble(0.0);
|
||||
e.WriteDouble(2.3e5);
|
||||
e.WriteDouble(std::numeric_limits<double>::infinity());
|
||||
e.WriteDouble(DBL_MIN);
|
||||
e.WriteDouble(DBL_MAX);
|
||||
ASSERT_EQ(40u, e.size()-off);
|
||||
ASSERT_EQ(40u, e.size() - off);
|
||||
// golden values except min and max from
|
||||
// http://www.binaryconvert.com/result_double.html
|
||||
ASSERT_EQ(llvm::StringRef(
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x41\x0c\x13\x80\x00\x00\x00\x00"
|
||||
"\x7f\xf0\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x10\x00\x00\x00\x00\x00\x00"
|
||||
"\x7f\xef\xff\xff\xff\xff\xff\xff",
|
||||
40),
|
||||
ASSERT_EQ(llvm::StringRef("\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x41\x0c\x13\x80\x00\x00\x00\x00"
|
||||
"\x7f\xf0\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x10\x00\x00\x00\x00\x00\x00"
|
||||
"\x7f\xef\xff\xff\xff\xff\xff\xff",
|
||||
40),
|
||||
llvm::StringRef(e.data(), e.size()).substr(off));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, WriteUleb128) {
|
||||
std::size_t off = BUFSIZE-2;
|
||||
size_t off = BUFSIZE - 2;
|
||||
WireEncoder e(0x0300u);
|
||||
for(std::size_t i=0; i<off; ++i) e.Write8(0u); // test across Reserve()
|
||||
for (size_t i = 0; i < off; ++i) e.Write8(0u); // test across Reserve()
|
||||
e.WriteUleb128(0ul);
|
||||
e.WriteUleb128(0x7ful);
|
||||
e.WriteUleb128(0x80ul);
|
||||
ASSERT_EQ(4u, e.size()-off);
|
||||
ASSERT_EQ(4u, e.size() - off);
|
||||
ASSERT_EQ(llvm::StringRef("\x00\x7f\x80\x01", 4),
|
||||
llvm::StringRef(e.data(), e.size()).substr(off));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, WriteType) {
|
||||
std::size_t off = BUFSIZE-1;
|
||||
size_t off = BUFSIZE - 1;
|
||||
WireEncoder e(0x0300u);
|
||||
for(std::size_t i=0; i<off; ++i) e.Write8(0u); // test across Reserve()
|
||||
for (size_t i = 0; i < off; ++i) e.Write8(0u); // test across Reserve()
|
||||
e.WriteType(NT_BOOLEAN);
|
||||
e.WriteType(NT_DOUBLE);
|
||||
e.WriteType(NT_STRING);
|
||||
@@ -165,7 +161,7 @@ TEST_F(WireEncoderTest, WriteType) {
|
||||
e.WriteType(NT_STRING_ARRAY);
|
||||
e.WriteType(NT_RPC);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(8u, e.size()-off);
|
||||
ASSERT_EQ(8u, e.size() - off);
|
||||
ASSERT_EQ(llvm::StringRef("\x00\x01\x02\x03\x10\x11\x12\x20", 8),
|
||||
llvm::StringRef(e.data(), e.size()).substr(off));
|
||||
}
|
||||
@@ -208,17 +204,17 @@ TEST_F(WireEncoderTest, GetValueSize2) {
|
||||
EXPECT_EQ(7u, e.GetValueSize(*v_string));
|
||||
EXPECT_EQ(0u, e.GetValueSize(*v_raw)); // not supported
|
||||
|
||||
EXPECT_EQ(1u+3u, e.GetValueSize(*v_boolean_array));
|
||||
EXPECT_EQ(1u + 3u, e.GetValueSize(*v_boolean_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u, e.GetValueSize(*v_boolean_array_big));
|
||||
EXPECT_EQ(1u + 255u, e.GetValueSize(*v_boolean_array_big));
|
||||
|
||||
EXPECT_EQ(1u+2u*8u, e.GetValueSize(*v_double_array));
|
||||
EXPECT_EQ(1u + 2u * 8u, e.GetValueSize(*v_double_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u*8u, e.GetValueSize(*v_double_array_big));
|
||||
EXPECT_EQ(1u + 255u * 8u, e.GetValueSize(*v_double_array_big));
|
||||
|
||||
EXPECT_EQ(1u+7u+9u, e.GetValueSize(*v_string_array));
|
||||
EXPECT_EQ(1u + 7u + 9u, e.GetValueSize(*v_string_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u*3u, e.GetValueSize(*v_string_array_big));
|
||||
EXPECT_EQ(1u + 255u * 3u, e.GetValueSize(*v_string_array_big));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, WriteBooleanValue2) {
|
||||
@@ -254,7 +250,7 @@ TEST_F(WireEncoderTest, WriteBooleanArrayValue2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteValue(*v_boolean_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+3u, e.size());
|
||||
ASSERT_EQ(1u + 3u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x03\x00\x01\x00", 4),
|
||||
llvm::StringRef(e.data(), e.size()));
|
||||
|
||||
@@ -262,7 +258,7 @@ TEST_F(WireEncoderTest, WriteBooleanArrayValue2) {
|
||||
e.Reset();
|
||||
e.WriteValue(*v_boolean_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u, e.size());
|
||||
ASSERT_EQ(1u + 255u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x00", 2), llvm::StringRef(e.data(), 2));
|
||||
}
|
||||
|
||||
@@ -270,16 +266,17 @@ TEST_F(WireEncoderTest, WriteDoubleArrayValue2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteValue(*v_double_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+2u*8u, e.size());
|
||||
ASSERT_EQ(1u + 2u * 8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x02\x3f\xe0\x00\x00\x00\x00\x00\x00"
|
||||
"\x3f\xd0\x00\x00\x00\x00\x00\x00", 17),
|
||||
"\x3f\xd0\x00\x00\x00\x00\x00\x00",
|
||||
17),
|
||||
llvm::StringRef(e.data(), e.size()));
|
||||
|
||||
// truncated
|
||||
e.Reset();
|
||||
e.WriteValue(*v_double_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u*8u, e.size());
|
||||
ASSERT_EQ(1u + 255u * 8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x00", 2), llvm::StringRef(e.data(), 2));
|
||||
}
|
||||
|
||||
@@ -287,7 +284,7 @@ TEST_F(WireEncoderTest, WriteStringArrayValue2) {
|
||||
WireEncoder e(0x0200u);
|
||||
e.WriteValue(*v_string_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+7u+9u, e.size());
|
||||
ASSERT_EQ(1u + 7u + 9u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x02\x00\x05hello\x00\x07goodbye", 17),
|
||||
llvm::StringRef(e.data(), e.size()));
|
||||
|
||||
@@ -295,7 +292,7 @@ TEST_F(WireEncoderTest, WriteStringArrayValue2) {
|
||||
e.Reset();
|
||||
e.WriteValue(*v_string_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u*3u, e.size());
|
||||
ASSERT_EQ(1u + 255u * 3u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x00\x01", 3), llvm::StringRef(e.data(), 3));
|
||||
}
|
||||
|
||||
@@ -319,17 +316,17 @@ TEST_F(WireEncoderTest, GetValueSize3) {
|
||||
EXPECT_EQ(6u, e.GetValueSize(*v_string));
|
||||
EXPECT_EQ(6u, e.GetValueSize(*v_raw));
|
||||
|
||||
EXPECT_EQ(1u+3u, e.GetValueSize(*v_boolean_array));
|
||||
EXPECT_EQ(1u + 3u, e.GetValueSize(*v_boolean_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u, e.GetValueSize(*v_boolean_array_big));
|
||||
EXPECT_EQ(1u + 255u, e.GetValueSize(*v_boolean_array_big));
|
||||
|
||||
EXPECT_EQ(1u+2u*8u, e.GetValueSize(*v_double_array));
|
||||
EXPECT_EQ(1u + 2u * 8u, e.GetValueSize(*v_double_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u*8u, e.GetValueSize(*v_double_array_big));
|
||||
EXPECT_EQ(1u + 255u * 8u, e.GetValueSize(*v_double_array_big));
|
||||
|
||||
EXPECT_EQ(1u+6u+8u, e.GetValueSize(*v_string_array));
|
||||
EXPECT_EQ(1u + 6u + 8u, e.GetValueSize(*v_string_array));
|
||||
// truncated
|
||||
EXPECT_EQ(1u+255u*2u, e.GetValueSize(*v_string_array_big));
|
||||
EXPECT_EQ(1u + 255u * 2u, e.GetValueSize(*v_string_array_big));
|
||||
}
|
||||
|
||||
TEST_F(WireEncoderTest, WriteBooleanValue3) {
|
||||
@@ -374,7 +371,7 @@ TEST_F(WireEncoderTest, WriteBooleanArrayValue3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(*v_boolean_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+3u, e.size());
|
||||
ASSERT_EQ(1u + 3u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x03\x00\x01\x00", 4),
|
||||
llvm::StringRef(e.data(), e.size()));
|
||||
|
||||
@@ -382,7 +379,7 @@ TEST_F(WireEncoderTest, WriteBooleanArrayValue3) {
|
||||
e.Reset();
|
||||
e.WriteValue(*v_boolean_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u, e.size());
|
||||
ASSERT_EQ(1u + 255u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x00", 2), llvm::StringRef(e.data(), 2));
|
||||
}
|
||||
|
||||
@@ -390,16 +387,17 @@ TEST_F(WireEncoderTest, WriteDoubleArrayValue3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(*v_double_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+2u*8u, e.size());
|
||||
ASSERT_EQ(1u + 2u * 8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x02\x3f\xe0\x00\x00\x00\x00\x00\x00"
|
||||
"\x3f\xd0\x00\x00\x00\x00\x00\x00", 17),
|
||||
"\x3f\xd0\x00\x00\x00\x00\x00\x00",
|
||||
17),
|
||||
llvm::StringRef(e.data(), e.size()));
|
||||
|
||||
// truncated
|
||||
e.Reset();
|
||||
e.WriteValue(*v_double_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u*8u, e.size());
|
||||
ASSERT_EQ(1u + 255u * 8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x00", 2), llvm::StringRef(e.data(), 2));
|
||||
}
|
||||
|
||||
@@ -407,7 +405,7 @@ TEST_F(WireEncoderTest, WriteStringArrayValue3) {
|
||||
WireEncoder e(0x0300u);
|
||||
e.WriteValue(*v_string_array);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+6u+8u, e.size());
|
||||
ASSERT_EQ(1u + 6u + 8u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\x02\x05hello\x07goodbye", 15),
|
||||
llvm::StringRef(e.data(), e.size()));
|
||||
|
||||
@@ -415,7 +413,7 @@ TEST_F(WireEncoderTest, WriteStringArrayValue3) {
|
||||
e.Reset();
|
||||
e.WriteValue(*v_string_array_big);
|
||||
ASSERT_EQ(nullptr, e.error());
|
||||
ASSERT_EQ(1u+255u*2u, e.size());
|
||||
ASSERT_EQ(1u + 255u * 2u, e.size());
|
||||
ASSERT_EQ(llvm::StringRef("\xff\x01", 2), llvm::StringRef(e.data(), 2));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user