| # Copyright 2019 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/components.gni") |
| import("//build/fuzz.gni") |
| import("//build/test.gni") |
| |
| static_library("journal") { |
| friend = [ ":*" ] |
| |
| public = [ |
| "background_executor.h", |
| "data_streamer.h", |
| "format.h", |
| "header_view.h", |
| "initializer.h", |
| "journal.h", |
| "journal_writer.h", |
| "replay.h", |
| "superblock.h", |
| ] |
| |
| sources = [ |
| "header_view.cc", |
| "initializer.cc", |
| ] |
| |
| public_deps = [ |
| "//sdk/lib/fit", |
| "//sdk/lib/fit-promise", |
| "//src/storage/lib/vfs/cpp/transaction", |
| "//zircon/system/ulib/storage/buffer", |
| "//zircon/system/ulib/storage/operation", |
| "//zircon/system/ulib/zx", |
| ] |
| |
| deps = [ "//zircon/third_party/ulib/cksum" ] |
| |
| configs += [ "//build/config:all_source" ] |
| |
| if (is_fuchsia) { |
| sources += [ |
| "background_executor.cc", |
| "data_streamer.cc", |
| "entry_view.cc", |
| "entry_view.h", |
| "format_assertions.h", |
| "journal.cc", |
| "journal_writer.cc", |
| "replay.cc", |
| "replay_tree.cc", |
| "replay_tree.h", |
| "superblock.cc", |
| ] |
| public_deps += [ "//zircon/system/ulib/range" ] |
| deps += [ |
| "//sdk/lib/syslog/cpp", |
| "//zircon/system/public", |
| "//zircon/system/ulib/sync", |
| "//zircon/system/ulib/zx", |
| "//zircon/third_party/ulib/safemath", |
| ] |
| } |
| } |
| |
| group("tests") { |
| testonly = true |
| deps = [ |
| ":journal-fuzzers", |
| ":journal-unit-tests", |
| ] |
| } |
| |
| test("journal-unit") { |
| if (is_fuchsia) { |
| fdio_config = [ "//build/config/fuchsia:fdio_config" ] |
| if (configs + fdio_config - fdio_config != configs) { |
| configs -= fdio_config |
| } |
| } |
| sources = [ |
| "background_executor_test.cc", |
| "data_streamer_test.cc", |
| "entry_view_test.cc", |
| "header_view_test.cc", |
| "journal_test.cc", |
| "replay_test.cc", |
| "replay_tree_test.cc", |
| "superblock_test.cc", |
| ] |
| deps = [ |
| ":journal", |
| "//sdk/fidl/fuchsia.hardware.block.driver:fuchsia.hardware.block.driver_banjo_c", |
| "//sdk/lib/fit", |
| "//sdk/lib/fit-promise", |
| "//src/lib/fxl/test:gtest_main", |
| "//src/storage/lib/block_client/cpp:fake_device", |
| "//src/storage/lib/block_client/cpp:interface", |
| "//src/storage/lib/vfs/cpp/transaction", |
| "//third_party/googletest:gmock", |
| "//third_party/googletest:gtest", |
| "//zircon/system/ulib/fzl", |
| "//zircon/system/ulib/storage/buffer", |
| "//zircon/system/ulib/storage/operation", |
| "//zircon/system/ulib/sync", |
| "//zircon/system/ulib/zx", |
| "//zircon/third_party/ulib/cksum", |
| "//zircon/third_party/ulib/safemath", |
| ] |
| } |
| |
| source_set("fuzz-utils") { |
| public = [ "fuzzer_utils.h" ] |
| sources = [ "fuzzer_utils.cc" ] |
| public_deps = [ |
| ":journal", |
| "//sdk/fidl/fuchsia.hardware.block.driver:fuchsia.hardware.block.driver_banjo_c", |
| "//src/storage/lib/vfs/cpp/transaction", |
| "//zircon/system/ulib/storage/buffer", |
| "//zircon/system/ulib/storage/operation", |
| "//zircon/system/ulib/zx", |
| ] |
| } |
| |
| fuchsia_component("journal-unit-tests-component") { |
| component_name = "journal-unit-tests" |
| testonly = true |
| manifest = "meta/journal-unit-tests.cml" |
| deps = [ ":journal-unit" ] |
| } |
| |
| fuchsia_test_package("journal-unit-tests") { |
| test_specs = { |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| test_components = [ ":journal-unit-tests-component" ] |
| } |
| |
| fuchsia_library_fuzzer("journal-fuzzer") { |
| sources = [ "journal_fuzztest.cc" ] |
| deps = [ ":fuzz-utils" ] |
| } |
| |
| fuchsia_library_fuzzer("journal-entry-fuzzer") { |
| sources = [ "entry_parse_fuzztest.cc" ] |
| deps = [ ":fuzz-utils" ] |
| } |
| |
| fuchsia_library_fuzzer("journal-replay-fuzzer") { |
| sources = [ "replay_fuzztest.cc" ] |
| deps = [ ":fuzz-utils" ] |
| } |
| |
| fuchsia_fuzzer_component("journal-fuzzer-component") { |
| manifest = "meta/journal-fuzzer.cml" |
| deps = [ ":journal-fuzzer" ] |
| } |
| |
| fuchsia_fuzzer_component("journal-entry-fuzzer-component") { |
| manifest = "meta/journal-entry-fuzzer.cml" |
| deps = [ ":journal-entry-fuzzer" ] |
| } |
| |
| fuchsia_fuzzer_component("journal-replay-fuzzer-component") { |
| manifest = "meta/journal-replay-fuzzer.cml" |
| deps = [ ":journal-replay-fuzzer" ] |
| } |
| |
| fuchsia_fuzzer_package("journal-fuzzers") { |
| cpp_fuzzer_components = [ |
| ":journal-fuzzer-component", |
| ":journal-entry-fuzzer-component", |
| ":journal-replay-fuzzer-component", |
| ] |
| } |