Fold SkJSON into Skia/utils
It's a tiny, core-ish component -- might as well treat as such to
simplify dependencies.
Change-Id: I6f31ce2d151f9a629d88bfc7f15d64891d5150c0
Reviewed-on: https://skia-review.googlesource.com/135780
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 529a74f..26cd616 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1392,7 +1392,6 @@
]
public_deps = [
":gpu_tool_utils", # Test.h #includes headers from this target.
- "modules/skjson:tests",
]
}
@@ -1407,9 +1406,6 @@
":skia",
":tool_utils",
]
- public_deps = [
- "modules/skjson:bench",
- ]
}
test_lib("experimental_svg_model") {
@@ -1736,6 +1732,7 @@
"fuzz/oss_fuzz/FuzzAnimatedImage.cpp",
"fuzz/oss_fuzz/FuzzImage.cpp",
"fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp",
+ "fuzz/oss_fuzz/FuzzJSON.cpp",
"fuzz/oss_fuzz/FuzzPathDeserialize.cpp",
"fuzz/oss_fuzz/FuzzRegionDeserialize.cpp",
"fuzz/oss_fuzz/FuzzRegionSetPath.cpp",
@@ -1750,7 +1747,6 @@
":flags",
":gpu_tool_utils",
":skia",
- "modules/skjson:fuzz",
"modules/skottie:fuzz",
"//third_party/jsoncpp",
"//third_party/libpng",
diff --git a/modules/skjson/src/SkJSONBench.cpp b/bench/JSONBench.cpp
similarity index 100%
rename from modules/skjson/src/SkJSONBench.cpp
rename to bench/JSONBench.cpp
diff --git a/fuzz/fuzz.cpp b/fuzz/fuzz.cpp
index 96d2a25..a71a386 100644
--- a/fuzz/fuzz.cpp
+++ b/fuzz/fuzz.cpp
@@ -53,13 +53,11 @@
"image_decode\n"
"image_mode\n"
"image_scale\n"
+ "json\n"
"path_deserialize\n"
"pipe\n"
"region_deserialize\n"
"region_set_path\n"
-#if defined(SK_ENABLE_SKJSON)
- "skjson\n"
-#endif
"skp\n"
"sksl2glsl\n"
#if defined(SK_ENABLE_SKOTTIE)
@@ -79,6 +77,7 @@
static void fuzz_img2(sk_sp<SkData>);
static void fuzz_animated_img(sk_sp<SkData>);
static void fuzz_img(sk_sp<SkData>, uint8_t, uint8_t);
+static void fuzz_json(sk_sp<SkData>);
static void fuzz_path_deserialize(sk_sp<SkData>);
static void fuzz_region_deserialize(sk_sp<SkData>);
static void fuzz_region_set_path(sk_sp<SkData>);
@@ -92,10 +91,6 @@
static void fuzz_sksl2glsl(sk_sp<SkData>);
#endif
-#if defined(SK_ENABLE_SKJSON)
-static void fuzz_skjson(sk_sp<SkData>);
-#endif
-
#if defined(SK_ENABLE_SKOTTIE)
static void fuzz_skottie_json(sk_sp<SkData>);
#endif
@@ -156,6 +151,10 @@
fuzz_color_deserialize(bytes);
return 0;
}
+ if (type.equals("filter_fuzz")) {
+ fuzz_filter_fuzz(bytes);
+ return 0;
+ }
if (type.equals("image_decode")) {
fuzz_img2(bytes);
return 0;
@@ -170,8 +169,8 @@
fuzz_img(bytes, 0, option);
return 0;
}
- if (type.equals("filter_fuzz")) {
- fuzz_filter_fuzz(bytes);
+ if (type.equals("json")) {
+ fuzz_json(bytes);
return 0;
}
if (type.equals("path_deserialize")) {
@@ -190,12 +189,6 @@
fuzz_skpipe(bytes);
return 0;
}
-#if defined(SK_ENABLE_SKJSON)
- if (type.equals("skjson")) {
- fuzz_skjson(bytes);
- return 0;
- }
-#endif
#if defined(SK_ENABLE_SKOTTIE)
if (type.equals("skottie_json")) {
fuzz_skottie_json(bytes);
@@ -281,14 +274,12 @@
return SkString("");
}
-#if defined(SK_ENABLE_SKJSON)
-void FuzzSkJSON(sk_sp<SkData> bytes);
+void FuzzJSON(sk_sp<SkData> bytes);
-static void fuzz_skjson(sk_sp<SkData> bytes){
- FuzzSkJSON(bytes);
+static void fuzz_json(sk_sp<SkData> bytes){
+ FuzzJSON(bytes);
SkDebugf("[terminated] Done parsing!\n");
}
-#endif
#if defined(SK_ENABLE_SKOTTIE)
void FuzzSkottieJSON(sk_sp<SkData> bytes);
diff --git a/modules/skjson/src/FuzzSkJSON.cpp b/fuzz/oss_fuzz/FuzzJSON.cpp
similarity index 89%
rename from modules/skjson/src/FuzzSkJSON.cpp
rename to fuzz/oss_fuzz/FuzzJSON.cpp
index 2e971ce..d6d3cf8 100644
--- a/modules/skjson/src/FuzzSkJSON.cpp
+++ b/fuzz/oss_fuzz/FuzzJSON.cpp
@@ -9,7 +9,7 @@
#include "SkJSON.h"
#include "SkStream.h"
-void FuzzSkJSON(sk_sp<SkData> bytes) {
+void FuzzJSON(sk_sp<SkData> bytes) {
skjson::DOM dom(static_cast<const char*>(bytes->data()), bytes->size());
SkDynamicMemoryWStream wstream;
dom.write(&wstream);
@@ -18,7 +18,7 @@
#if defined(IS_FUZZING_WITH_LIBFUZZER)
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
auto bytes = SkData::MakeWithoutCopy(data, size);
- FuzzSkJSON(bytes);
+ FuzzJSON(bytes);
return 0;
}
#endif
diff --git a/gn/bench.gni b/gn/bench.gni
index e73a973..ab18703 100644
--- a/gn/bench.gni
+++ b/gn/bench.gni
@@ -63,6 +63,7 @@
"$_bench/ImageFilterCollapse.cpp",
"$_bench/ImageFilterDAGBench.cpp",
"$_bench/InterpBench.cpp",
+ "$_bench/JSONBench.cpp",
"$_bench/LightingBench.cpp",
"$_bench/LineBench.cpp",
"$_bench/MagnifierBench.cpp",
diff --git a/gn/tests.gni b/gn/tests.gni
index 5f028e8..32c3337 100644
--- a/gn/tests.gni
+++ b/gn/tests.gni
@@ -123,6 +123,7 @@
"$_tests/InterpolatorTest.cpp",
"$_tests/InvalidIndexedPngTest.cpp",
"$_tests/IsClosedSingleContourTest.cpp",
+ "$_tests/JSONTest.cpp",
"$_tests/LayerDrawLooperTest.cpp",
"$_tests/LazyProxyTest.cpp",
"$_tests/LListTest.cpp",
diff --git a/gn/utils.gni b/gn/utils.gni
index ff8f60a..63b063b 100644
--- a/gn/utils.gni
+++ b/gn/utils.gni
@@ -38,6 +38,8 @@
"$_src/utils/SkFloatToDecimal.h",
"$_src/utils/SkFloatUtils.h",
"$_src/utils/SkInterpolator.cpp",
+ "$_src/utils/SkJSON.cpp",
+ "$_src/utils/SkJSON.h",
"$_src/utils/SkJSONWriter.cpp",
"$_src/utils/SkJSONWriter.h",
"$_src/utils/SkMatrix22.cpp",
diff --git a/modules/skjson/BUILD.gn b/modules/skjson/BUILD.gn
deleted file mode 100644
index dd8ca65..0000000
--- a/modules/skjson/BUILD.gn
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 2018 Google Inc.
-#
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-declare_args() {
- skia_enable_skjson = true
-}
-
-config("public_config") {
- if (skia_enable_skjson) {
- defines = [ "SK_ENABLE_SKJSON" ]
- include_dirs = [ "include" ]
- }
-}
-
-source_set("skjson") {
- if (skia_enable_skjson) {
- public_configs = [ ":public_config" ]
- public = [
- "include/SkJSON.h",
- ]
- sources = [
- "src/SkJSON.cpp",
- ]
- configs += [ "../../:skia_private" ]
- deps = [
- "../..:skia",
- ]
- }
-}
-
-source_set("tests") {
- if (skia_enable_skjson) {
- testonly = true
-
- configs += [
- "../..:skia_private",
- "../..:tests_config",
- ]
- sources = [
- "src/SkJSONTest.cpp",
- ]
-
- deps = [
- ":skjson",
- "../..:gpu_tool_utils",
- "../..:skia",
- ]
- }
-}
-
-source_set("bench") {
- if (skia_enable_skjson) {
- testonly = true
-
- configs += [
- "../..:bench_config",
- "../..:skia_private",
- ]
- sources = [
- "src/SkJSONBench.cpp",
- ]
-
- deps = [
- ":skjson",
- "../..:skia",
- ]
- }
-}
-
-source_set("fuzz") {
- if (skia_enable_skjson) {
- testonly = true
-
- configs += [ "../..:skia_private" ]
- sources = [
- "src/FuzzSkJSON.cpp",
- ]
-
- deps = [
- ":skjson",
- "../..:skia",
- ]
- }
-}
diff --git a/modules/skottie/BUILD.gn b/modules/skottie/BUILD.gn
index 9442592..afa2769 100644
--- a/modules/skottie/BUILD.gn
+++ b/modules/skottie/BUILD.gn
@@ -34,7 +34,6 @@
configs += [ "../../:skia_private" ]
deps = [
"../..:skia",
- "../skjson",
"../sksg",
]
}
diff --git a/modules/skjson/src/SkJSON.cpp b/src/utils/SkJSON.cpp
similarity index 100%
rename from modules/skjson/src/SkJSON.cpp
rename to src/utils/SkJSON.cpp
diff --git a/modules/skjson/include/SkJSON.h b/src/utils/SkJSON.h
similarity index 100%
rename from modules/skjson/include/SkJSON.h
rename to src/utils/SkJSON.h
diff --git a/modules/skjson/src/SkJSONTest.cpp b/tests/JSONTest.cpp
similarity index 98%
rename from modules/skjson/src/SkJSONTest.cpp
rename to tests/JSONTest.cpp
index df04ac3..72c71e3 100644
--- a/modules/skjson/src/SkJSONTest.cpp
+++ b/tests/JSONTest.cpp
@@ -14,7 +14,7 @@
using namespace skjson;
-DEF_TEST(SkJSON_Parse, reporter) {
+DEF_TEST(JSON_Parse, reporter) {
static constexpr struct {
const char* in;
const char* out;
@@ -155,7 +155,7 @@
}
}
-DEF_TEST(SkJSON_DOM_visit, reporter) {
+DEF_TEST(JSON_DOM_visit, reporter) {
static constexpr char json[] = "{ \n\
\"k1\": null, \n\
\"k2\": false, \n\
@@ -302,7 +302,7 @@
REPORTER_ASSERT(reporter, 0 == strcmp(expected_string, vstr.c_str()));
}
-DEF_TEST(SkJSON_DOM_build, reporter) {
+DEF_TEST(JSON_DOM_build, reporter) {
SkArenaAlloc alloc(4096);
const auto v0 = NullValue();