blob: aa949b889edc72fd6bd37b2feaeaa6683ae3a93e [file] [log] [blame]
# Copyright 2024 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
component("persistent_cache") {
public = [
"backend.h",
"backend_params.h",
"backend_storage.h",
"entry.h",
"entry_metadata.h",
"persistent_cache.h",
"persistent_cache_collection.h",
"transaction_error.h",
]
sources = [
"backend.cc",
"backend_params.cc",
"backend_storage.cc",
"entry.cc",
"persistent_cache_collection.cc",
"sqlite/sqlite_entry_impl.cc",
"sqlite/sqlite_entry_impl.h",
]
if (is_fuchsia) {
sources += [ "persistent_cache_fuchsia.cc" ]
}
# Cross-process file locks are not available on Fuchsia.
if (!is_fuchsia) {
public += [ "sqlite/vfs/sandboxed_file.h" ]
sources += [
"persistent_cache.cc",
"sqlite/backend_storage_delegate.cc",
"sqlite/backend_storage_delegate.h",
"sqlite/constants.h",
"sqlite/sqlite_backend_impl.cc",
"sqlite/sqlite_backend_impl.h",
"sqlite/vfs/sandboxed_file.cc",
"sqlite/vfs/sandboxed_file.h",
"sqlite/vfs/sqlite_database_vfs_file_set.cc",
"sqlite/vfs/sqlite_database_vfs_file_set.h",
"sqlite/vfs/sqlite_sandboxed_vfs.cc",
"sqlite/vfs/sqlite_sandboxed_vfs.h",
]
deps = [
"//sql",
"//third_party/sqlite",
]
}
# See base/component_export.h
defines = [ "IS_PERSISTENT_CACHE_IMPL" ]
public_deps = [ "//base" ]
friend = [
":test_support",
":unit_tests",
]
}
static_library("test_support") {
testonly = true
sources = [
"mock/mock_backend_impl.cc",
"mock/mock_backend_impl.h",
"mock/mock_entry_impl.cc",
"mock/mock_entry_impl.h",
"sqlite/test_utils.cc",
"sqlite/test_utils.h",
"test_utils.h",
]
deps = [
":persistent_cache",
"//base",
"//base/test:test_support",
"//sql",
"//testing/gmock",
"//testing/gtest",
"//third_party/sqlite",
]
}
source_set("unit_tests") {
testonly = true
sources = [
"backend_storage_unittest.cc",
"entry_unittest.cc",
"sqlite/sqlite_entry_unittest.cc",
]
# Cross-process file locks are not available on Fuchsia.
if (!is_fuchsia) {
sources += [
"persistent_cache_collection_unittest.cc",
"persistent_cache_unittest.cc",
"sqlite/backend_storage_delegate_unittest.cc",
"sqlite/vfs/sandboxed_file_unittest.cc",
"sqlite/vfs/sqlite_database_vfs_file_set_unittest.cc",
"sqlite/vfs/sqlite_sandboxed_vfs_unittest.cc",
]
}
deps = [
":persistent_cache",
":test_support",
"//base",
"//base/test:test_support",
"//components/persistent_cache/mojom:unit_tests",
"//sql",
"//testing/gmock",
"//testing/gtest",
"//third_party/sqlite",
]
# TODO(crbug.com/40031409): Fix code that adds exit-time destructors and
# enable the diagnostic by removing this line.
configs += [ "//build/config/compiler:no_exit_time_destructors" ]
}