TEST(ParseNarrowSignedIntegers, Sample) {
int16_t i16;
+ EXPECT_FALSE(ParseNumber(nullptr, &i16));
EXPECT_FALSE(ParseNumber("", &i16));
EXPECT_FALSE(ParseNumber("0=", &i16));
TEST(ParseNarrowUnsignedIntegers, Sample) {
uint16_t u16;
+ EXPECT_FALSE(ParseNumber(nullptr, &u16));
EXPECT_FALSE(ParseNumber("", &u16));
EXPECT_FALSE(ParseNumber("0=", &u16));
int32_t i32;
// Invalid parse.
+ EXPECT_FALSE(ParseNumber(nullptr, &i32));
EXPECT_FALSE(ParseNumber("", &i32));
EXPECT_FALSE(ParseNumber("0=", &i32));
uint32_t u32;
// Invalid parse.
+ EXPECT_FALSE(ParseNumber(nullptr, &u32));
EXPECT_FALSE(ParseNumber("", &u32));
EXPECT_FALSE(ParseNumber("0=", &u32));
TEST(ParseWideSignedIntegers, Sample) {
int64_t i64;
+ EXPECT_FALSE(ParseNumber(nullptr, &i64));
EXPECT_FALSE(ParseNumber("", &i64));
EXPECT_FALSE(ParseNumber("0=", &i64));
EXPECT_TRUE(ParseNumber("0", &i64));
TEST(ParseWideUnsignedIntegers, Sample) {
uint64_t u64;
+ EXPECT_FALSE(ParseNumber(nullptr, &u64));
EXPECT_FALSE(ParseNumber("", &u64));
EXPECT_FALSE(ParseNumber("0=", &u64));
EXPECT_TRUE(ParseNumber("0", &u64));
TEST(ParseFloat, Sample) {
float f;
+ EXPECT_FALSE(ParseNumber(nullptr, &f));
EXPECT_FALSE(ParseNumber("", &f));
EXPECT_FALSE(ParseNumber("0=", &f));
TEST(ParseDouble, Sample) {
double f;
+ EXPECT_FALSE(ParseNumber(nullptr, &f));
EXPECT_FALSE(ParseNumber("", &f));
EXPECT_FALSE(ParseNumber("0=", &f));
// on floating point.
spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>> f(0);
+ EXPECT_FALSE(ParseNumber(nullptr, &f));
EXPECT_TRUE(ParseNumber("-0.0", &f));
EXPECT_EQ(uint16_t{0x8000}, f.value().getAsFloat().get_value());
EXPECT_TRUE(ParseNumber("1.0", &f));
std::string err_msg;
NumberType type = {16, SPV_NUMBER_SIGNED_INT};
+ rc = ParseAndEncodeIntegerNumber(nullptr, type, AssertEmitFunc, &err_msg);
+ EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
+ EXPECT_EQ("The given text is a nullptr", err_msg);
rc = ParseAndEncodeIntegerNumber("", type, AssertEmitFunc, &err_msg);
EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
EXPECT_EQ("Invalid unsigned integer literal: ", err_msg);
std::string err_msg;
NumberType type = {16, SPV_NUMBER_UNSIGNED_INT};
+ rc = ParseAndEncodeIntegerNumber(nullptr, type, AssertEmitFunc, &err_msg);
+ EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
+ EXPECT_EQ("The given text is a nullptr", err_msg);
rc = ParseAndEncodeIntegerNumber("", type, AssertEmitFunc, &err_msg);
EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
EXPECT_EQ("Invalid unsigned integer literal: ", err_msg);
std::string err_msg;
NumberType type = {32, SPV_NUMBER_SIGNED_INT};
+ rc = ParseAndEncodeIntegerNumber(nullptr, type, AssertEmitFunc, &err_msg);
+ EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
+ EXPECT_EQ("The given text is a nullptr", err_msg);
rc = ParseAndEncodeIntegerNumber("", type, AssertEmitFunc, &err_msg);
EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
EXPECT_EQ("Invalid unsigned integer literal: ", err_msg);
std::string err_msg;
NumberType type = {32, SPV_NUMBER_UNSIGNED_INT};
+ rc = ParseAndEncodeIntegerNumber(nullptr, type, AssertEmitFunc, &err_msg);
+ EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
+ EXPECT_EQ("The given text is a nullptr", err_msg);
rc = ParseAndEncodeIntegerNumber("", type, AssertEmitFunc, &err_msg);
EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
EXPECT_EQ("Invalid unsigned integer literal: ", err_msg);
std::string err_msg;
NumberType type = {64, SPV_NUMBER_SIGNED_INT};
+ rc = ParseAndEncodeIntegerNumber(nullptr, type, AssertEmitFunc, &err_msg);
+ EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
+ EXPECT_EQ("The given text is a nullptr", err_msg);
rc = ParseAndEncodeIntegerNumber("", type, AssertEmitFunc, &err_msg);
EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
EXPECT_EQ("Invalid unsigned integer literal: ", err_msg);
NumberType type = {64, SPV_NUMBER_UNSIGNED_INT};
// Invalid
+ rc = ParseAndEncodeIntegerNumber(nullptr, type, AssertEmitFunc, &err_msg);
+ EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
+ EXPECT_EQ("The given text is a nullptr", err_msg);
rc = ParseAndEncodeIntegerNumber("", type, AssertEmitFunc, &err_msg);
EXPECT_EQ(EncodeNumberStatus::kInvalidText, rc);
EXPECT_EQ("Invalid unsigned integer literal: ", err_msg);