blob: 8d0514a33aab93d46991e71d1f8d4e46cff76881 [file] [log] [blame]
// Copyright 2023 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef LIBHWSEC_FUZZED_STORAGE_H_
#define LIBHWSEC_FUZZED_STORAGE_H_
#include <type_traits>
#include <fuzzer/FuzzedDataProvider.h>
#include "libhwsec/backend/storage.h"
#include "libhwsec/fuzzed/basic_objects.h"
namespace hwsec {
template <>
struct FuzzedObject<Storage::ReadyState> {
Storage::ReadyState operator()(FuzzedDataProvider& provider) const {
return Storage::ReadyState{
.preparable = provider.ConsumeBool(),
.readable = provider.ConsumeBool(),
.writable = provider.ConsumeBool(),
.destroyable = provider.ConsumeBool(),
};
}
};
template <>
struct FuzzedObject<Storage::LockOptions> {
Storage::LockOptions operator()(FuzzedDataProvider& provider) const {
return Storage::LockOptions{
.read_lock = provider.ConsumeBool(),
.write_lock = provider.ConsumeBool(),
};
}
};
} // namespace hwsec
#endif // LIBHWSEC_FUZZED_STORAGE_H_