Beispiel #1
0
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  DynamicJsonBuffer jsonBuffer;
  memstream json(data, size);
  JsonVariant variant = jsonBuffer.parse(json);
  if (variant.success()) {
    variant.as<std::string>();  // <- serialize to JSON
  }
  return 0;
}
TEST_F(JsonVariant_Comparison_Tests, String) {
  DynamicJsonBuffer jsonBuffer;
  JsonVariant variant = jsonBuffer.parse("\"hello\"");

  ASSERT_TRUE(variant == std::string("hello"));
  ASSERT_FALSE(variant != std::string("hello"));

  ASSERT_TRUE(variant != std::string("world"));
  ASSERT_FALSE(variant == std::string("world"));

  ASSERT_TRUE(std::string("hello") == variant);
  ASSERT_FALSE(std::string("hello") != variant);

  ASSERT_TRUE(std::string("world") != variant);
  ASSERT_FALSE(std::string("world") == variant);
}
TEST_F(JsonVariant_Comparison_Tests, StringLiteral) {
  DynamicJsonBuffer jsonBuffer;
  JsonVariant variant = jsonBuffer.parse("\"hello\"");

  ASSERT_TRUE(variant == "hello");
  ASSERT_FALSE(variant != "hello");

  ASSERT_TRUE(variant != "world");
  ASSERT_FALSE(variant == "world");

  ASSERT_TRUE("hello" == variant);
  ASSERT_FALSE("hello" != variant);

  ASSERT_TRUE("world" != variant);
  ASSERT_FALSE("world" == variant);
}
Beispiel #4
0
// MIT License
//
// Arduino JSON library
// https://bblanchon.github.io/ArduinoJson/
// If you like this project, please add a star!

#include <ArduinoJson.h>
#include <catch.hpp>

using namespace Catch::Matchers;

TEST_CASE("JsonBuffer::parse()") {
  DynamicJsonBuffer jb;

  SECTION("EmptyObject") {
    JsonVariant variant = jb.parse("{}");
    REQUIRE(variant.success());
    REQUIRE(variant.is<JsonObject>());
  }

  SECTION("EmptyArray") {
    JsonVariant variant = jb.parse("[]");
    REQUIRE(variant.success());
    REQUIRE(variant.is<JsonArray>());
  }

  SECTION("Integer") {
    JsonVariant variant = jb.parse("-42");
    REQUIRE(variant.success());
    REQUIRE(variant.is<int>());
    REQUIRE_FALSE(variant.is<bool>());