Add FakeAvbOpsDelegateWithDefaults am: 0954359207 am: db0f2e554a
am: 049498e8ca
Change-Id: I562b0d8ea3392bf91d93028f1fff85911fc5387f
diff --git a/test/avb_atx_slot_verify_unittest.cc b/test/avb_atx_slot_verify_unittest.cc
index 79c1cfd..8992c72 100644
--- a/test/avb_atx_slot_verify_unittest.cc
+++ b/test/avb_atx_slot_verify_unittest.cc
@@ -49,7 +49,7 @@
// relevant locations).
class AvbAtxSlotVerifyExampleTest
: public BaseAvbToolTest,
- public FakeAvbOpsDelegate,
+ public FakeAvbOpsDelegateWithDefaults,
public ::testing::WithParamInterface<uint64_t> {
public:
~AvbAtxSlotVerifyExampleTest() override = default;
@@ -63,33 +63,7 @@
ops_.set_stored_is_device_unlocked(false);
}
- // FakeAvbOpsDelegate methods. All forward to FakeAvbOps default except for
- // validate_vbmeta_public_key().
- AvbIOResult read_from_partition(const char* partition,
- int64_t offset,
- size_t num_bytes,
- void* buffer,
- size_t* out_num_read) override {
- return ops_.read_from_partition(
- partition, offset, num_bytes, buffer, out_num_read);
- }
-
- AvbIOResult get_preloaded_partition(
- const char* partition,
- size_t num_bytes,
- uint8_t** out_pointer,
- size_t* out_num_bytes_preloaded) override {
- return ops_.get_preloaded_partition(
- partition, num_bytes, out_pointer, out_num_bytes_preloaded);
- }
-
- AvbIOResult write_to_partition(const char* partition,
- int64_t offset,
- size_t num_bytes,
- const void* buffer) override {
- return ops_.write_to_partition(partition, offset, num_bytes, buffer);
- }
-
+ // FakeAvbOpsDelegate overrides.
AvbIOResult validate_vbmeta_public_key(AvbOps* ops,
const uint8_t* public_key_data,
size_t public_key_length,
@@ -106,13 +80,6 @@
out_key_is_trusted);
}
- AvbIOResult read_rollback_index(AvbOps* ops,
- size_t rollback_index_slot,
- uint64_t* out_rollback_index) override {
- return ops_.read_rollback_index(
- ops, rollback_index_slot, out_rollback_index);
- }
-
AvbIOResult write_rollback_index(AvbOps* ops,
size_t rollback_index_slot,
uint64_t rollback_index) override {
@@ -120,35 +87,6 @@
return ops_.write_rollback_index(ops, rollback_index_slot, rollback_index);
}
- AvbIOResult read_is_device_unlocked(AvbOps* ops,
- bool* out_is_device_unlocked) override {
- return ops_.read_is_device_unlocked(ops, out_is_device_unlocked);
- }
-
- AvbIOResult get_unique_guid_for_partition(AvbOps* ops,
- const char* partition,
- char* guid_buf,
- size_t guid_buf_size) override {
- return ops_.get_unique_guid_for_partition(
- ops, partition, guid_buf, guid_buf_size);
- }
-
- AvbIOResult get_size_of_partition(AvbOps* ops,
- const char* partition,
- uint64_t* out_size) override {
- return ops_.get_size_of_partition(ops, partition, out_size);
- }
-
- AvbIOResult read_permanent_attributes(
- AvbAtxPermanentAttributes* attributes) override {
- return ops_.read_permanent_attributes(attributes);
- }
-
- AvbIOResult read_permanent_attributes_hash(
- uint8_t hash[AVB_SHA256_DIGEST_SIZE]) override {
- return ops_.read_permanent_attributes_hash(hash);
- }
-
void set_key_version(size_t rollback_index_location,
uint64_t key_version) override {
num_key_version_calls_++;
@@ -229,7 +167,6 @@
}
protected:
- FakeAvbOps ops_;
AvbAtxPermanentAttributes attributes_;
int num_atx_calls_ = 0;
int num_key_version_calls_ = 0;
diff --git a/test/avb_atx_validate_unittest.cc b/test/avb_atx_validate_unittest.cc
index 254048a..0299b51 100644
--- a/test/avb_atx_validate_unittest.cc
+++ b/test/avb_atx_validate_unittest.cc
@@ -82,7 +82,8 @@
namespace avb {
-class AvbAtxValidateTest : public ::testing::Test, public FakeAvbOpsDelegate {
+class AvbAtxValidateTest : public ::testing::Test,
+ public FakeAvbOpsDelegateWithDefaults {
public:
~AvbAtxValidateTest() override {}
@@ -105,8 +106,11 @@
}
AvbIOResult get_preloaded_partition(
- const char* partition, size_t num_bytes, uint8_t** out_pointer,
+ const char* partition,
+ size_t num_bytes,
+ uint8_t** out_pointer,
size_t* out_num_bytes_preloaded) override {
+ // Expect method not used.
return AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION;
}
@@ -185,11 +189,6 @@
return ops_.read_permanent_attributes_hash(hash);
}
- void set_key_version(size_t rollback_index_location,
- uint64_t key_version) override {
- ops_.set_key_version(rollback_index_location, key_version);
- }
-
protected:
virtual AvbIOResult Validate(bool* is_trusted) {
return avb_atx_validate_vbmeta_public_key(
@@ -222,7 +221,6 @@
metadata_.product_signing_key_certificate.signature));
}
- FakeAvbOps ops_;
AvbAtxPermanentAttributes attributes_;
AvbAtxPublicKeyMetadata metadata_;
bool fail_read_permanent_attributes_{false};
@@ -551,7 +549,8 @@
}
// A fixture for testing avb_slot_verify() with ATX.
-class AvbAtxSlotVerifyTest : public BaseAvbToolTest, public FakeAvbOpsDelegate {
+class AvbAtxSlotVerifyTest : public BaseAvbToolTest,
+ public FakeAvbOpsDelegateWithDefaults {
public:
~AvbAtxSlotVerifyTest() override = default;
@@ -570,32 +569,7 @@
ops_.set_stored_is_device_unlocked(false);
}
- // FakeAvbOpsDelegate methods. All forward to FakeAvbOps default except for
- // validate_vbmeta_public_key().
- AvbIOResult read_from_partition(const char* partition,
- int64_t offset,
- size_t num_bytes,
- void* buffer,
- size_t* out_num_read) override {
- return ops_.read_from_partition(
- partition, offset, num_bytes, buffer, out_num_read);
- }
-
- AvbIOResult get_preloaded_partition(
- const char* partition, size_t num_bytes, uint8_t** out_pointer,
- size_t* out_num_bytes_preloaded) override {
- *out_num_bytes_preloaded = 0;
- *out_pointer = NULL;
- return AVB_IO_RESULT_OK;
- }
-
- AvbIOResult write_to_partition(const char* partition,
- int64_t offset,
- size_t num_bytes,
- const void* buffer) override {
- return ops_.write_to_partition(partition, offset, num_bytes, buffer);
- }
-
+ // FakeAvbOpsDelegate override.
AvbIOResult validate_vbmeta_public_key(AvbOps* ops,
const uint8_t* public_key_data,
size_t public_key_length,
@@ -612,55 +586,7 @@
out_key_is_trusted);
}
- AvbIOResult read_rollback_index(AvbOps* ops,
- size_t rollback_index_slot,
- uint64_t* out_rollback_index) override {
- return ops_.read_rollback_index(
- ops, rollback_index_slot, out_rollback_index);
- }
-
- AvbIOResult write_rollback_index(AvbOps* ops,
- size_t rollback_index_slot,
- uint64_t rollback_index) override {
- return ops_.write_rollback_index(ops, rollback_index_slot, rollback_index);
- }
-
- AvbIOResult read_is_device_unlocked(AvbOps* ops,
- bool* out_is_device_unlocked) override {
- return ops_.read_is_device_unlocked(ops, out_is_device_unlocked);
- }
-
- AvbIOResult get_unique_guid_for_partition(AvbOps* ops,
- const char* partition,
- char* guid_buf,
- size_t guid_buf_size) override {
- return ops_.get_unique_guid_for_partition(
- ops, partition, guid_buf, guid_buf_size);
- }
-
- AvbIOResult get_size_of_partition(AvbOps* ops,
- const char* partition,
- uint64_t* out_size) override {
- return ops_.get_size_of_partition(ops, partition, out_size);
- }
-
- AvbIOResult read_permanent_attributes(
- AvbAtxPermanentAttributes* attributes) override {
- return ops_.read_permanent_attributes(attributes);
- }
-
- AvbIOResult read_permanent_attributes_hash(
- uint8_t hash[AVB_SHA256_DIGEST_SIZE]) override {
- return ops_.read_permanent_attributes_hash(hash);
- }
-
- void set_key_version(size_t rollback_index_location,
- uint64_t key_version) override {
- return ops_.set_key_version(rollback_index_location, key_version);
- }
-
protected:
- FakeAvbOps ops_;
AvbAtxPermanentAttributes attributes_;
int num_atx_calls_ = 0;
diff --git a/test/fake_avb_ops.h b/test/fake_avb_ops.h
index a2bb473..93c7ee9 100644
--- a/test/fake_avb_ops.h
+++ b/test/fake_avb_ops.h
@@ -36,7 +36,8 @@
namespace avb {
// A delegate interface for ops callbacks. This allows tests to override default
-// fake implementations.
+// fake implementations. For convenience, test fixtures can inherit
+// FakeAvbOpsDelegateWithDefaults and only override as needed.
class FakeAvbOpsDelegate {
public:
virtual ~FakeAvbOpsDelegate() {}
@@ -47,7 +48,9 @@
size_t* out_num_read) = 0;
virtual AvbIOResult get_preloaded_partition(
- const char* partition, size_t num_bytes, uint8_t** out_pointer,
+ const char* partition,
+ size_t num_bytes,
+ uint8_t** out_pointer,
size_t* out_num_bytes_preloaded) = 0;
virtual AvbIOResult write_to_partition(const char* partition,
@@ -182,9 +185,10 @@
void* buffer,
size_t* out_num_read) override;
- AvbIOResult get_preloaded_partition(
- const char* partition, size_t num_bytes, uint8_t** out_pointer,
- size_t* out_num_bytes_preloaded) override;
+ AvbIOResult get_preloaded_partition(const char* partition,
+ size_t num_bytes,
+ uint8_t** out_pointer,
+ size_t* out_num_bytes_preloaded) override;
AvbIOResult write_to_partition(const char* partition,
int64_t offset,
@@ -251,6 +255,99 @@
std::map<std::string, uint8_t*> preloaded_partitions_;
};
+// A delegate implementation that calls FakeAvbOps by default.
+class FakeAvbOpsDelegateWithDefaults : public FakeAvbOpsDelegate {
+ public:
+ AvbIOResult read_from_partition(const char* partition,
+ int64_t offset,
+ size_t num_bytes,
+ void* buffer,
+ size_t* out_num_read) override {
+ return ops_.read_from_partition(
+ partition, offset, num_bytes, buffer, out_num_read);
+ }
+
+ AvbIOResult get_preloaded_partition(
+ const char* partition,
+ size_t num_bytes,
+ uint8_t** out_pointer,
+ size_t* out_num_bytes_preloaded) override {
+ return ops_.get_preloaded_partition(
+ partition, num_bytes, out_pointer, out_num_bytes_preloaded);
+ }
+
+ AvbIOResult write_to_partition(const char* partition,
+ int64_t offset,
+ size_t num_bytes,
+ const void* buffer) override {
+ return ops_.write_to_partition(partition, offset, num_bytes, buffer);
+ }
+
+ AvbIOResult validate_vbmeta_public_key(AvbOps* ops,
+ const uint8_t* public_key_data,
+ size_t public_key_length,
+ const uint8_t* public_key_metadata,
+ size_t public_key_metadata_length,
+ bool* out_key_is_trusted) override {
+ return ops_.validate_vbmeta_public_key(ops,
+ public_key_data,
+ public_key_length,
+ public_key_metadata,
+ public_key_metadata_length,
+ out_key_is_trusted);
+ }
+
+ AvbIOResult read_rollback_index(AvbOps* ops,
+ size_t rollback_index_slot,
+ uint64_t* out_rollback_index) override {
+ return ops_.read_rollback_index(
+ ops, rollback_index_slot, out_rollback_index);
+ }
+
+ AvbIOResult write_rollback_index(AvbOps* ops,
+ size_t rollback_index_slot,
+ uint64_t rollback_index) override {
+ return ops_.write_rollback_index(ops, rollback_index_slot, rollback_index);
+ }
+
+ AvbIOResult read_is_device_unlocked(AvbOps* ops,
+ bool* out_is_device_unlocked) override {
+ return ops_.read_is_device_unlocked(ops, out_is_device_unlocked);
+ }
+
+ AvbIOResult get_unique_guid_for_partition(AvbOps* ops,
+ const char* partition,
+ char* guid_buf,
+ size_t guid_buf_size) override {
+ return ops_.get_unique_guid_for_partition(
+ ops, partition, guid_buf, guid_buf_size);
+ }
+
+ AvbIOResult get_size_of_partition(AvbOps* ops,
+ const char* partition,
+ uint64_t* out_size) override {
+ return ops_.get_size_of_partition(ops, partition, out_size);
+ }
+
+ AvbIOResult read_permanent_attributes(
+ AvbAtxPermanentAttributes* attributes) override {
+ return ops_.read_permanent_attributes(attributes);
+ }
+
+ AvbIOResult read_permanent_attributes_hash(
+ uint8_t hash[AVB_SHA256_DIGEST_SIZE]) override {
+ return ops_.read_permanent_attributes_hash(hash);
+ }
+
+ void set_key_version(size_t rollback_index_location,
+ uint64_t key_version) override {
+ ops_.set_key_version(rollback_index_location, key_version);
+ }
+
+ protected:
+ FakeAvbOps ops_;
+};
+
} // namespace avb
#endif /* FAKE_AVB_OPS_H_ */