Add a stub "vertex routine" fuzzer
Bug: swiftshader:86
Change-Id: I351e433123abfaf010e3b1641383054e77dc6383
Reviewed-on: https://swiftshader-review.googlesource.com/13228
Tested-by: Corentin Wallez <cwallez@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 0ef68d9..db96bae 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -97,6 +97,18 @@
}
}
+source_set("vertex_routine_fuzzer") {
+ sources = [
+ "tests/fuzzers/VertexRoutineFuzzer.cpp"
+ ]
+ include_dirs = [
+ "src/",
+ ]
+ deps = [
+ "src/OpenGL/libGLESv2:swiftshader_libGLESv2_static",
+ ]
+}
+
group("swiftshader") {
data_deps = [
"src/OpenGL/libGLESv2:swiftshader_libGLESv2",
diff --git a/src/OpenGL/libGLESv2/BUILD.gn b/src/OpenGL/libGLESv2/BUILD.gn
index f29df3e..2e97c10 100644
--- a/src/OpenGL/libGLESv2/BUILD.gn
+++ b/src/OpenGL/libGLESv2/BUILD.gn
@@ -50,17 +50,11 @@
}
}
-swiftshader_shared_library("swiftshader_libGLESv2") {
- if (!is_mac) {
- output_name = "libGLESv2"
- output_dir = "$root_out_dir/swiftshader"
- }
-
+swiftshader_static_library("swiftshader_libGLESv2_static") {
deps = [
"../../OpenGL/compiler:swiftshader_opengl_compiler",
"../../Reactor:swiftshader_reactor",
"../../Renderer:swiftshader_renderer",
- "//build/config:exe_and_shlib_deps",
]
sources = [
@@ -80,14 +74,37 @@
"VertexArray.cpp",
"VertexDataManager.cpp",
"libGLESv2.cpp",
- "libGLESv2.def",
- "libGLESv2.rc",
"libGLESv3.cpp",
"main.cpp",
"resource.h",
"utilities.cpp",
]
+ configs = [ ":swiftshader_libGLESv2_private_config" ]
+
+ include_dirs = [
+ "../../../include",
+ "../..",
+ "..",
+ ]
+}
+
+swiftshader_shared_library("swiftshader_libGLESv2") {
+ if (!is_mac) {
+ output_name = "libGLESv2"
+ output_dir = "$root_out_dir/swiftshader"
+ }
+
+ deps = [
+ ":swiftshader_libGLESv2_static",
+ "//build/config:exe_and_shlib_deps",
+ ]
+
+ sources = [
+ "libGLESv2.def",
+ "libGLESv2.rc",
+ ]
+
if (is_win) {
ldflags = [ "/DEF:" + rebase_path("libGLESv2.def", root_build_dir) ]
} else if (is_mac) {
diff --git a/src/swiftshader.gni b/src/swiftshader.gni
index 9148762..01efa20 100644
--- a/src/swiftshader.gni
+++ b/src/swiftshader.gni
@@ -45,3 +45,14 @@
}
}
}
+
+template("swiftshader_static_library") {
+ static_library(target_name) {
+ configs -= configs_to_delete
+ configs += configs_to_add
+ forward_variables_from(invoker, "*", [ "configs" ])
+ if (defined(invoker.configs)) {
+ configs += invoker.configs
+ }
+ }
+}
diff --git a/tests/fuzzers/VertexRoutineFuzzer.cpp b/tests/fuzzers/VertexRoutineFuzzer.cpp
new file mode 100644
index 0000000..43d05ad
--- /dev/null
+++ b/tests/fuzzers/VertexRoutineFuzzer.cpp
@@ -0,0 +1,7 @@
+#include "OpenGL/libGLESv2/Device.hpp"
+
+#include <cstdint>
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ return 0;
+}