)]}'
{
  "commit": "3c6883424b831583ed302689a1287f259ceea92e",
  "tree": "bb03284df76e2d31e8f1e7a218420ca08eca3354",
  "parents": [
    "1663d55f8ec88b0c9c629574d7c40a664197225f"
  ],
  "author": {
    "name": "Fabian Meumertzheim",
    "email": "meumertzheim@code-intelligence.com",
    "time": "Thu May 06 18:16:42 2021 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu May 06 12:16:42 2021 -0400"
  },
  "message": "Initial `java_fuzz_test` implementation (#143)\n\n* Initial java_fuzz_test implementation\r\n\r\nAdds a java_fuzz_test macro for Java fuzz tests that can be invoked with\r\nthe Java fuzzer Jazzer.\r\n\r\nMost of the existing code remains unchanged, with the following\r\nexceptions:\r\n\r\n* CcFuzzingBinaryInfo loses its cc prefix as it can also be used for\r\n  other languages without changes.\r\n\r\nA small architectural difference between Jazzer and e.g. libFuzzer fuzz\r\ntargets is that the fuzzer itself is not linked into Java fuzz targets,\r\nbut remains a separate, stand-alone binary (the \"driver\"). The\r\njava_fuzz_test macro deals with this by applying the instrumentation\r\ntransition to native library dependencies directly and creating a\r\nfuzzing_binary_uninstrumented based on a binary shim that launches the\r\ndriver.\r\n\r\n* Address review comments\r\n\r\n* Simplify JNI build\r\n\r\n* Fix nit and docs",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "56a2e6cf2e57a0f89ab8ed439b5dfed92242abe0",
      "old_mode": 33188,
      "old_path": ".bazelrc",
      "new_id": "2fb70078b34ec638e9d68a5de4ad62e655e62081",
      "new_mode": 33188,
      "new_path": ".bazelrc"
    },
    {
      "type": "modify",
      "old_id": "286f408dfa86342690a1dea5228aa1747aa0541d",
      "old_mode": 33188,
      "old_path": ".github/workflows/bazel_test.yml",
      "new_id": "281169e45c48d9c06ac6ca0cd5b701b387a04591",
      "new_mode": 33188,
      "new_path": ".github/workflows/bazel_test.yml"
    },
    {
      "type": "modify",
      "old_id": "696988ec4c2f03d516e690662d107b2bdeef3807",
      "old_mode": 33188,
      "old_path": "WORKSPACE",
      "new_id": "9836bebba81083af02b793682f281f2469a01609",
      "new_mode": 33188,
      "new_path": "WORKSPACE"
    },
    {
      "type": "modify",
      "old_id": "7c737a9263a66db967d9a20497312b66e0898707",
      "old_mode": 33188,
      "old_path": "docs/BUILD",
      "new_id": "e45111e2f1a07cd2db9c6a9c52f9eb83d2b773f0",
      "new_mode": 33188,
      "new_path": "docs/BUILD"
    },
    {
      "type": "modify",
      "old_id": "31867ca504900afcadafd2fdc5e31c77cdce8853",
      "old_mode": 33261,
      "old_path": "docs/cc-fuzzing-rules.md",
      "new_id": "51bd54b116a453f2684c155d227bcb213126e964",
      "new_mode": 33261,
      "new_path": "docs/cc-fuzzing-rules.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "40e0061eb65d23e5d112fb94c33fb5f491408e18",
      "new_mode": 33188,
      "new_path": "examples/java/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7c7002b3cbcbccf78ed9fe45bd3409cdb0ac4321",
      "new_mode": 33188,
      "new_path": "examples/java/com/example/JavaEmptyFuzzTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "012d22c0cb83a29b07de39b5e2da91b54e99892d",
      "new_mode": 33188,
      "new_path": "examples/java/com/example/JavaFuzzTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d9ce4e6cd33bceca5d5f7c2b4dc898b683cd447f",
      "new_mode": 33188,
      "new_path": "examples/java/com/example/JavaNativeFuzzTest.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e9b154e8740827bc8601250cefbdcdce606c44f6",
      "new_mode": 33188,
      "new_path": "examples/java/com/example/JavaNativeFuzzTest.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7a4ab6c3b1b413716c71e3a7988924609179e50a",
      "new_mode": 33188,
      "new_path": "examples/java/com/example/JavaNativeFuzzTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ce013625030ba8dba906f756967f9e9ca394464a",
      "new_mode": 33188,
      "new_path": "examples/java/corpus_0.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f3d360b1cf5299d2d7003f9d2c040222a30b5d9e",
      "new_mode": 33188,
      "new_path": "examples/java/corpus_1.txt"
    },
    {
      "type": "modify",
      "old_id": "c8805eb0c4b2f450211ec9bc4c574ed7c29f6724",
      "old_mode": 33188,
      "old_path": "fuzzing/BUILD",
      "new_id": "4c71516f45072d6ea922a65881f740f0ee3c5166",
      "new_mode": 33188,
      "new_path": "fuzzing/BUILD"
    },
    {
      "type": "modify",
      "old_id": "0cfdecc997df5706decc4805c3f4586c5abf0da3",
      "old_mode": 33188,
      "old_path": "fuzzing/engines/BUILD",
      "new_id": "ab38bc44e7a284e1ecee762f56b90238a3a526b3",
      "new_mode": 33188,
      "new_path": "fuzzing/engines/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8cc2fe12790693734a6032a65cca2d858635b6d1",
      "new_mode": 33261,
      "new_path": "fuzzing/engines/jazzer_launcher.sh"
    },
    {
      "type": "modify",
      "old_id": "b2c16d56b345bc9adb50c5476e76b7eda832983c",
      "old_mode": 33188,
      "old_path": "fuzzing/instrum_opts.bzl",
      "new_id": "753f40674192a29e1a8869b0106013d55ce6fbd7",
      "new_mode": 33188,
      "new_path": "fuzzing/instrum_opts.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b6179b8bc92dc793d7d1e56d1892f9c4b83782fb",
      "new_mode": 33188,
      "new_path": "fuzzing/java_defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "739f7b13a96e2c185688e886a9516a925301fa32",
      "old_mode": 33188,
      "old_path": "fuzzing/private/BUILD",
      "new_id": "6f5921896c25a5579e3552058774bc235d1143ea",
      "new_mode": 33188,
      "new_path": "fuzzing/private/BUILD"
    },
    {
      "type": "modify",
      "old_id": "721fd611e180b290956eeb0ace37c2fdbe447814",
      "old_mode": 33188,
      "old_path": "fuzzing/private/engine.bzl",
      "new_id": "9d8656d1142bd21009155ed4b9a79e168526ff52",
      "new_mode": 33188,
      "new_path": "fuzzing/private/engine.bzl"
    },
    {
      "type": "modify",
      "old_id": "9bbb5c5507f863f9d7d94ce2738dd711f0d9c384",
      "old_mode": 33188,
      "old_path": "fuzzing/private/fuzz_test.bzl",
      "new_id": "4e915e7d1c44ff33afcd1f6064f3d22d3f04bc29",
      "new_mode": 33188,
      "new_path": "fuzzing/private/fuzz_test.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b3929446fcdd6720a3cbe7b101f2ba344e8ecd93",
      "new_mode": 33188,
      "new_path": "fuzzing/private/java_utils.bzl"
    },
    {
      "type": "modify",
      "old_id": "e8f7344a19b57a17917a8198976f3b47d3ad9841",
      "old_mode": 33188,
      "old_path": "fuzzing/repositories.bzl",
      "new_id": "f55a75aa5eaabf61cfd07636b4f0d1f4f9a7eef0",
      "new_mode": 33188,
      "new_path": "fuzzing/repositories.bzl"
    }
  ]
}
