diff options
author | Håvard Pettersen <havardpe@oath.com> | 2019-01-30 15:44:08 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2019-01-30 15:44:08 +0000 |
commit | a6169d17d1b4654b7331d55abb3e0870c8770632 (patch) | |
tree | d7275a88db9bd7723a1c4d68a09048d329114ed6 /vespalib | |
parent | 51dd7ec62219a9cdc4b3325b3649dec1983b9ab9 (diff) |
improve nix equality to match Java Slime
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/tests/slime/slime_test.cpp | 9 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/data/slime/inspector.cpp | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/vespalib/src/tests/slime/slime_test.cpp b/vespalib/src/tests/slime/slime_test.cpp index fae61f4194b..7e70dc3538e 100644 --- a/vespalib/src/tests/slime/slime_test.cpp +++ b/vespalib/src/tests/slime/slime_test.cpp @@ -362,6 +362,15 @@ TEST("require that slime objects can be compared") { EXPECT_NOT_EQUAL(Slime().setArray(), Slime().setObject()); } +TEST("require that nix equality checks validity") { + const Inspector &good_nix = *vespalib::slime::NixValue::instance(); + const Inspector &bad_nix = *vespalib::slime::NixValue::invalid(); + EXPECT_EQUAL(good_nix, good_nix); + EXPECT_EQUAL(bad_nix, bad_nix); + EXPECT_NOT_EQUAL(good_nix, bad_nix); + EXPECT_NOT_EQUAL(bad_nix, good_nix); +} + TEST("require that we can resolve to symbol table from a cursor") { Slime slime; Cursor &c1 = slime.setObject(); diff --git a/vespalib/src/vespa/vespalib/data/slime/inspector.cpp b/vespalib/src/vespa/vespalib/data/slime/inspector.cpp index 1f5631accc6..fe03e2f8ed3 100644 --- a/vespalib/src/vespa/vespalib/data/slime/inspector.cpp +++ b/vespalib/src/vespa/vespalib/data/slime/inspector.cpp @@ -45,6 +45,7 @@ bool operator == (const Inspector & a, const Inspector & b) if (equal) { switch (a.type().getId()) { case NIX::ID: + equal = a.valid() == b.valid(); break; case BOOL::ID: equal = a.asBool() == b.asBool(); |