diff options
author | Shawn Willden <swillden@google.com> | 2022-06-02 17:17:20 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-06-02 17:17:20 +0000 |
commit | c80ee967fa3c893798e35e2979499b0a0b4bbec3 (patch) | |
tree | 8820d4d5866230240d3ea082b52df58e381c1500 | |
parent | b8b6bd82dbb1a24173d9b7dbb3c7d0b8f61b5175 (diff) | |
parent | c151d597471285a123dee0c163f3a90e3c543b40 (diff) | |
download | libcppbor-android13-qpr3-c-s11-release.tar.gz |
Make bool and null easier to use. am: 4268a60b05 am: c151d59747android-13.0.0_r83android-13.0.0_r82android-13.0.0_r81android-13.0.0_r80android-13.0.0_r79android-13.0.0_r78android-13.0.0_r77android-13.0.0_r76android-13.0.0_r75android-13.0.0_r74android-13.0.0_r73android-13.0.0_r72android-13.0.0_r71android-13.0.0_r70android-13.0.0_r69android-13.0.0_r68android-13.0.0_r67android-13.0.0_r66android-13.0.0_r65android-13.0.0_r64android-13.0.0_r63android-13.0.0_r62android-13.0.0_r61android-13.0.0_r60android-13.0.0_r59android-13.0.0_r58android-13.0.0_r56android-13.0.0_r54android-13.0.0_r53android-13.0.0_r52android-13.0.0_r51android-13.0.0_r50android-13.0.0_r49android-13.0.0_r48android-13.0.0_r47android-13.0.0_r46android-13.0.0_r45android-13.0.0_r44android-13.0.0_r43android-13.0.0_r42android-13.0.0_r41android-13.0.0_r40android-13.0.0_r39android-13.0.0_r38android-13.0.0_r37android-13.0.0_r36android-13.0.0_r35android-13.0.0_r34android-13.0.0_r33android-13.0.0_r32android13-qpr3-s9-releaseandroid13-qpr3-s8-releaseandroid13-qpr3-s7-releaseandroid13-qpr3-s6-releaseandroid13-qpr3-s5-releaseandroid13-qpr3-s4-releaseandroid13-qpr3-s3-releaseandroid13-qpr3-s2-releaseandroid13-qpr3-s14-releaseandroid13-qpr3-s13-releaseandroid13-qpr3-s12-releaseandroid13-qpr3-s11-releaseandroid13-qpr3-s10-releaseandroid13-qpr3-s1-releaseandroid13-qpr3-releaseandroid13-qpr3-c-s8-releaseandroid13-qpr3-c-s7-releaseandroid13-qpr3-c-s6-releaseandroid13-qpr3-c-s5-releaseandroid13-qpr3-c-s4-releaseandroid13-qpr3-c-s3-releaseandroid13-qpr3-c-s2-releaseandroid13-qpr3-c-s12-releaseandroid13-qpr3-c-s11-releaseandroid13-qpr3-c-s10-releaseandroid13-qpr3-c-s1-releaseandroid13-qpr2-s9-releaseandroid13-qpr2-s8-releaseandroid13-qpr2-s7-releaseandroid13-qpr2-s6-releaseandroid13-qpr2-s5-releaseandroid13-qpr2-s3-releaseandroid13-qpr2-s2-releaseandroid13-qpr2-s12-releaseandroid13-qpr2-s11-releaseandroid13-qpr2-s10-releaseandroid13-qpr2-s1-releaseandroid13-qpr2-releaseandroid13-qpr2-b-s1-releaseandroid13-d4-s2-releaseandroid13-d4-s1-releaseandroid13-d4-release
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/libcppbor/+/18638884
Change-Id: I4001b9acfb6a58a5627f45363677115cb66bfaea
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | include/cppbor/cppbor.h | 12 | ||||
-rw-r--r-- | tests/cppbor_test.cpp | 32 |
2 files changed, 39 insertions, 5 deletions
diff --git a/include/cppbor/cppbor.h b/include/cppbor/cppbor.h index 8338441..f7a2af0 100644 --- a/include/cppbor/cppbor.h +++ b/include/cppbor/cppbor.h @@ -142,6 +142,11 @@ class Item { const Bstr* asBstr() const { return const_cast<Item*>(this)->asBstr(); } virtual Simple* asSimple() { return nullptr; } const Simple* asSimple() const { return const_cast<Item*>(this)->asSimple(); } + virtual Bool* asBool() { return nullptr; } + const Bool* asBool() const { return const_cast<Item*>(this)->asBool(); } + virtual Null* asNull() { return nullptr; } + const Null* asNull() const { return const_cast<Item*>(this)->asNull(); } + virtual Map* asMap() { return nullptr; } const Map* asMap() const { return const_cast<Item*>(this)->asMap(); } virtual Array* asArray() { return nullptr; } @@ -859,9 +864,6 @@ class Simple : public Item { MajorType type() const override { return kMajorType; } Simple* asSimple() override { return this; } - - virtual const Bool* asBool() const { return nullptr; }; - virtual const Null* asNull() const { return nullptr; }; }; /** @@ -877,7 +879,7 @@ class Bool : public Simple { bool operator==(const Bool& other) const& { return mValue == other.mValue; } SimpleType simpleType() const override { return kSimpleType; } - const Bool* asBool() const override { return this; } + Bool* asBool() override { return this; } size_t encodedSize() const override { return 1; } @@ -907,7 +909,7 @@ class Null : public Simple { explicit Null() {} SimpleType simpleType() const override { return kSimpleType; } - const Null* asNull() const override { return this; } + Null* asNull() override { return this; } size_t encodedSize() const override { return 1; } diff --git a/tests/cppbor_test.cpp b/tests/cppbor_test.cpp index 68778dc..b9a2f35 100644 --- a/tests/cppbor_test.cpp +++ b/tests/cppbor_test.cpp @@ -721,6 +721,8 @@ TEST(ConvertTest, Uint) { EXPECT_EQ(nullptr, item->asTstr()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_EQ(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); @@ -740,6 +742,8 @@ TEST(ConvertTest, Nint) { EXPECT_EQ(nullptr, item->asTstr()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_EQ(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); @@ -759,6 +763,8 @@ TEST(ConvertTest, Tstr) { EXPECT_NE(nullptr, item->asTstr()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_EQ(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); @@ -778,6 +784,8 @@ TEST(ConvertTest, Bstr) { EXPECT_EQ(nullptr, item->asTstr()); EXPECT_NE(nullptr, item->asBstr()); EXPECT_EQ(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); @@ -796,15 +804,20 @@ TEST(ConvertTest, Bool) { EXPECT_EQ(nullptr, item->asTstr()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_NE(nullptr, item->asSimple()); + EXPECT_NE(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); EXPECT_EQ(nullptr, item->asViewBstr()); EXPECT_EQ(cppbor::BOOLEAN, item->asSimple()->simpleType()); + EXPECT_NE(nullptr, item->asBool()); EXPECT_NE(nullptr, item->asSimple()->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asSimple()->asNull()); + EXPECT_FALSE(item->asBool()->value()); EXPECT_FALSE(item->asSimple()->asBool()->value()); } @@ -818,6 +831,8 @@ TEST(ConvertTest, Map) { EXPECT_EQ(nullptr, item->asTstr()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_EQ(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_NE(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); @@ -836,6 +851,8 @@ TEST(ConvertTest, Array) { EXPECT_EQ(nullptr, item->asTstr()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_EQ(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_NE(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); @@ -853,6 +870,8 @@ TEST(ConvertTest, SemanticTag) { EXPECT_EQ(nullptr, item->asNint()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_EQ(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); @@ -881,6 +900,8 @@ TEST(ConvertTest, NestedSemanticTag) { EXPECT_EQ(nullptr, item->asNint()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_EQ(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); @@ -912,13 +933,17 @@ TEST(ConvertTest, Null) { EXPECT_EQ(nullptr, item->asTstr()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_NE(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_NE(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); EXPECT_EQ(nullptr, item->asViewBstr()); EXPECT_EQ(NULL_T, item->asSimple()->simpleType()); + EXPECT_EQ(nullptr, item->asBool()); EXPECT_EQ(nullptr, item->asSimple()->asBool()); + EXPECT_NE(nullptr, item->asNull()); EXPECT_NE(nullptr, item->asSimple()->asNull()); } @@ -932,6 +957,8 @@ TEST(ConvertTest, ViewTstr) { EXPECT_EQ(nullptr, item->asTstr()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_EQ(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_NE(nullptr, item->asViewTstr()); @@ -952,6 +979,8 @@ TEST(ConvertTest, ViewBstr) { EXPECT_EQ(nullptr, item->asTstr()); EXPECT_EQ(nullptr, item->asBstr()); EXPECT_EQ(nullptr, item->asSimple()); + EXPECT_EQ(nullptr, item->asBool()); + EXPECT_EQ(nullptr, item->asNull()); EXPECT_EQ(nullptr, item->asMap()); EXPECT_EQ(nullptr, item->asArray()); EXPECT_EQ(nullptr, item->asViewTstr()); @@ -1024,8 +1053,11 @@ TEST(CloningTest, Bool) { EXPECT_EQ(clone->type(), SIMPLE); EXPECT_NE(clone->asSimple(), nullptr); EXPECT_EQ(clone->asSimple()->simpleType(), cppbor::BOOLEAN); + EXPECT_NE(clone->asBool(), nullptr); EXPECT_NE(clone->asSimple()->asBool(), nullptr); + EXPECT_EQ(item, *clone->asBool()); EXPECT_EQ(item, *clone->asSimple()->asBool()); + EXPECT_EQ(*clone->asBool(), Bool(true)); EXPECT_EQ(*clone->asSimple()->asBool(), Bool(true)); } |