summaryrefslogtreecommitdiff
path: root/utf/tst/test_utf32.cc
diff options
context:
space:
mode:
Diffstat (limited to 'utf/tst/test_utf32.cc')
-rw-r--r--utf/tst/test_utf32.cc85
1 files changed, 39 insertions, 46 deletions
diff --git a/utf/tst/test_utf32.cc b/utf/tst/test_utf32.cc
index 796b4cd..447b541 100644
--- a/utf/tst/test_utf32.cc
+++ b/utf/tst/test_utf32.cc
@@ -2,144 +2,137 @@
#include "utf_error.hh"
+#include <array>
#include <gtest/gtest.h>
TEST(utf32be, sanity) {
- std::string_view str("\x00\x00\x00\x24", 4);
size_t offset = 0;
- auto ret = utf::read32be(str, offset);
+ auto ret = utf::read32be(
+ std::array<uint8_t, 4>({0x00, 0x00, 0x00, 0x24}), offset);
EXPECT_EQ('$', ret);
EXPECT_EQ(4, offset);
- str = std::string_view("\x00\x00\x20\xAC", 4);
offset = 0;
- ret = utf::read32be(str, offset);
+ ret = utf::read32be(
+ std::array<uint8_t, 4>({0x00, 0x00, 0x20, 0xAC}), offset);
EXPECT_EQ(0x20AC, ret);
EXPECT_EQ(4, offset);
- str = std::string_view("\x00\x01\x04\x37", 4);
offset = 0;
- ret = utf::read32be(str, offset);
+ ret = utf::read32be(
+ std::array<uint8_t, 4>({0x00, 0x01, 0x04, 0x37}), offset);
EXPECT_EQ(0x10437, ret);
EXPECT_EQ(4, offset);
}
TEST(utf32le, sanity) {
- std::string_view str("\x24\x00\x00\x00", 4);
size_t offset = 0;
- auto ret = utf::read32le(str, offset);
+ auto ret = utf::read32le(
+ std::array<uint8_t, 4>({0x24, 0x00, 0x00, 0x00}), offset);
EXPECT_EQ('$', ret);
EXPECT_EQ(4, offset);
- str = std::string_view("\xAC\x20\x00\x00", 4);
offset = 0;
- ret = utf::read32le(str, offset);
+ ret = utf::read32le(
+ std::array<uint8_t, 4>({0xAC, 0x20, 0x00, 0x00}), offset);
EXPECT_EQ(0x20AC, ret);
EXPECT_EQ(4, offset);
- str = std::string_view("\x37\x04\x01\x00", 4);
offset = 0;
- ret = utf::read32le(str, offset);
+ ret = utf::read32le(
+ std::array<uint8_t, 4>({0x37, 0x04, 0x01, 0x00}), offset);
EXPECT_EQ(0x10437, ret);
EXPECT_EQ(4, offset);
}
TEST(utf32be, invalid) {
- std::string_view str("\xFF\xFF\xFF\xFF");
size_t offset = 0;
- auto ret = utf::read32be(str, offset);
+ auto ret = utf::read32be(
+ std::array<uint8_t, 4>({0xFF, 0xFF, 0xFF, 0xFF}), offset);
EXPECT_EQ(utf::INVALID, ret);
EXPECT_EQ(0, offset);
- str = std::string_view("\x00\x00\xD8\x00", 4);
offset = 0;
- ret = utf::read32be(str, offset);
+ ret = utf::read32be(
+ std::array<uint8_t, 4>({0x00, 0x00, 0xD8, 0x00}), offset);
EXPECT_EQ(utf::INVALID, ret);
EXPECT_EQ(0, offset);
- str = "";
offset = 0;
- ret = utf::read32be(str, offset);
+ ret = utf::read32be(std::array<uint8_t, 1>({}), offset);
EXPECT_EQ(utf::NEED_MORE, ret);
EXPECT_EQ(0, offset);
- str = std::string_view("\x00", 1);
offset = 0;
- ret = utf::read32be(str, offset);
+ ret = utf::read32be(std::array<uint8_t, 1>({0x00}), offset);
EXPECT_EQ(utf::NEED_MORE, ret);
EXPECT_EQ(0, offset);
- str = std::string_view("\x00\x00", 2);
offset = 0;
- ret = utf::read32be(str, offset);
+ ret = utf::read32be(std::array<uint8_t, 2>({0x00, 0x00}), offset);
EXPECT_EQ(utf::NEED_MORE, ret);
EXPECT_EQ(0, offset);
- str = std::string_view("\x00\x00\x00", 3);
offset = 0;
- ret = utf::read32be(str, offset);
+ ret = utf::read32be(std::array<uint8_t, 3>({0x00, 0x00, 0x00}), offset);
EXPECT_EQ(utf::NEED_MORE, ret);
EXPECT_EQ(0, offset);
}
TEST(utf32le, invalid) {
- std::string_view str("\xFF\xFF\xFF\xFF");
size_t offset = 0;
- auto ret = utf::read32le(str, offset);
+ auto ret = utf::read32le(
+ std::array<uint8_t, 4>({0xFF, 0xFF, 0xFF, 0xFF}), offset);
EXPECT_EQ(utf::INVALID, ret);
EXPECT_EQ(0, offset);
- str = std::string_view("\x00\xD8\x00\x00", 4);
offset = 0;
- ret = utf::read32le(str, offset);
+ ret = utf::read32le(
+ std::array<uint8_t, 4>({0x00, 0xD8, 0x00, 0x00}), offset);
EXPECT_EQ(utf::INVALID, ret);
EXPECT_EQ(0, offset);
- str = "";
offset = 0;
- ret = utf::read32le(str, offset);
+ ret = utf::read32le(std::array<uint8_t, 0>(), offset);
EXPECT_EQ(utf::NEED_MORE, ret);
EXPECT_EQ(0, offset);
- str = std::string_view("\x00", 1);
offset = 0;
- ret = utf::read32le(str, offset);
+ ret = utf::read32le(std::array<uint8_t, 1>({0x00}), offset);
EXPECT_EQ(utf::NEED_MORE, ret);
EXPECT_EQ(0, offset);
- str = std::string_view("\x00\x00", 2);
offset = 0;
- ret = utf::read32le(str, offset);
+ ret = utf::read32le(std::array<uint8_t, 2>({0x00, 0x00}), offset);
EXPECT_EQ(utf::NEED_MORE, ret);
EXPECT_EQ(0, offset);
- str = std::string_view("\x00\x00\x00", 3);
offset = 0;
- ret = utf::read32le(str, offset);
+ ret = utf::read32le(std::array<uint8_t, 3>({0x00, 0x00, 0x00}), offset);
EXPECT_EQ(utf::NEED_MORE, ret);
EXPECT_EQ(0, offset);
}
TEST(utf32be, bom) {
- std::string_view str("\x00\x00\xFF\xFE\x00\x00\x20\xAC", 8);
+ std::array<uint8_t, 8> data({0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x20, 0xAC});
size_t offset = 0;
- auto ret = utf::read32be(str, offset);
+ auto ret = utf::read32be(data, offset);
EXPECT_EQ(0xFFFE, ret);
- ret = utf::read32be(str, offset);
+ ret = utf::read32be(data, offset);
EXPECT_EQ(0x20AC, ret);
- ret = utf::read32be(str, offset);
+ ret = utf::read32be(data, offset);
EXPECT_EQ(utf::NEED_MORE, ret);
- EXPECT_EQ(str.size(), offset);
+ EXPECT_EQ(data.size(), offset);
}
TEST(utf32le, bom) {
- std::string_view str("\xFE\xFF\x00\x00\xAC\x20\x00\x00", 8);
+ std::array<uint8_t, 8> data({0xFE, 0xFF, 0x00, 0x00, 0xAC, 0x20, 0x00, 0x00});
size_t offset = 0;
- auto ret = utf::read32le(str, offset);
+ auto ret = utf::read32le(data, offset);
EXPECT_EQ(0xFFFE, ret);
- ret = utf::read32le(str, offset);
+ ret = utf::read32le(data, offset);
EXPECT_EQ(0x20AC, ret);
- ret = utf::read32le(str, offset);
+ ret = utf::read32le(data, offset);
EXPECT_EQ(utf::NEED_MORE, ret);
- EXPECT_EQ(str.size(), offset);
+ EXPECT_EQ(data.size(), offset);
}