blob: f21888137926a34c44a3a6f0d32ce90c1cfe1f18 [file]
// 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.
// WARNING: THIS FILE IS MACHINE GENERATED. DO NOT EDIT.
// Generated from the banjo.examples.protocolbase banjo file
#pragma once
#include <tuple>
#include <banjo/examples/protocolbase/cpp/banjo.h>
#include <lib/mock-function/mock-function.h>
namespace ddk {
// This class mocks a device by providing a synchronous_base_protocol_t.
// Users can set expectations on how the protocol ops are called and what values they return. After
// the test, use VerifyAndClear to reset the object and verify that all expectations were satisfied.
// See the following example test:
//
// ddk::MockSynchronousBase synchronous_base;
//
// /* Set some expectations on the device by calling synchronous_base.Expect... methods. */
//
// SomeDriver dut(synchronous_base.GetProto());
//
// EXPECT_OK(dut.SomeMethod());
// ASSERT_NO_FATAL_FAILURES(synchronous_base.VerifyAndClear());
//
// Note that users must provide the equality operator for struct types, for example:
// bool operator==(const a_struct_type& lhs, const a_struct_type& rhs)
class MockSynchronousBase : ddk::SynchronousBaseProtocol<MockSynchronousBase> {
public:
MockSynchronousBase() : proto_{&synchronous_base_protocol_ops_, this} {}
virtual ~MockSynchronousBase() {}
const synchronous_base_protocol_t* GetProto() const { return &proto_; }
virtual MockSynchronousBase& ExpectStatus(zx_status_t out_status, zx_status_t status, zx_status_t out_status_2) {
mock_status_.ExpectCall({out_status, out_status_2}, status);
return *this;
}
virtual MockSynchronousBase& ExpectTime(zx_time_t out_time, zx_time_t time, zx_time_t out_time_2) {
mock_time_.ExpectCall({out_time, out_time_2}, time);
return *this;
}
virtual MockSynchronousBase& ExpectDuration(zx_duration_t out_duration, zx_duration_t duration, zx_duration_t out_duration_2) {
mock_duration_.ExpectCall({out_duration, out_duration_2}, duration);
return *this;
}
virtual MockSynchronousBase& ExpectKoid(zx_koid_t out_koid, zx_koid_t koid, zx_koid_t out_koid_2) {
mock_koid_.ExpectCall({out_koid, out_koid_2}, koid);
return *this;
}
virtual MockSynchronousBase& ExpectVaddr(zx_vaddr_t out_vaddr, zx_vaddr_t vaddr, zx_vaddr_t out_vaddr_2) {
mock_vaddr_.ExpectCall({out_vaddr, out_vaddr_2}, vaddr);
return *this;
}
virtual MockSynchronousBase& ExpectPaddr(zx_paddr_t out_paddr, zx_paddr_t paddr, zx_paddr_t out_paddr_2) {
mock_paddr_.ExpectCall({out_paddr, out_paddr_2}, paddr);
return *this;
}
virtual MockSynchronousBase& ExpectPaddr32(zx_paddr32_t out_paddr32, zx_paddr32_t paddr32, zx_paddr32_t out_paddr32_2) {
mock_paddr32_.ExpectCall({out_paddr32, out_paddr32_2}, paddr32);
return *this;
}
virtual MockSynchronousBase& ExpectGpaddr(zx_gpaddr_t out_gpaddr, zx_gpaddr_t gpaddr, zx_gpaddr_t out_gpaddr_2) {
mock_gpaddr_.ExpectCall({out_gpaddr, out_gpaddr_2}, gpaddr);
return *this;
}
virtual MockSynchronousBase& ExpectOff(zx_off_t out_off, zx_off_t off, zx_off_t out_off_2) {
mock_off_.ExpectCall({out_off, out_off_2}, off);
return *this;
}
void VerifyAndClear() {
mock_status_.VerifyAndClear();
mock_time_.VerifyAndClear();
mock_duration_.VerifyAndClear();
mock_koid_.VerifyAndClear();
mock_vaddr_.VerifyAndClear();
mock_paddr_.VerifyAndClear();
mock_paddr32_.VerifyAndClear();
mock_gpaddr_.VerifyAndClear();
mock_off_.VerifyAndClear();
}
virtual zx_status_t SynchronousBaseStatus(zx_status_t status, zx_status_t* out_status_2) {
std::tuple<zx_status_t, zx_status_t> ret = mock_status_.Call(status);
*out_status_2 = std::get<1>(ret);
return std::get<0>(ret);
}
virtual zx_time_t SynchronousBaseTime(zx_time_t time, zx_time_t* out_time_2) {
std::tuple<zx_time_t, zx_time_t> ret = mock_time_.Call(time);
*out_time_2 = std::get<1>(ret);
return std::get<0>(ret);
}
virtual zx_duration_t SynchronousBaseDuration(zx_duration_t duration, zx_duration_t* out_duration_2) {
std::tuple<zx_duration_t, zx_duration_t> ret = mock_duration_.Call(duration);
*out_duration_2 = std::get<1>(ret);
return std::get<0>(ret);
}
virtual zx_koid_t SynchronousBaseKoid(zx_koid_t koid, zx_koid_t* out_koid_2) {
std::tuple<zx_koid_t, zx_koid_t> ret = mock_koid_.Call(koid);
*out_koid_2 = std::get<1>(ret);
return std::get<0>(ret);
}
virtual zx_vaddr_t SynchronousBaseVaddr(zx_vaddr_t vaddr, zx_vaddr_t* out_vaddr_2) {
std::tuple<zx_vaddr_t, zx_vaddr_t> ret = mock_vaddr_.Call(vaddr);
*out_vaddr_2 = std::get<1>(ret);
return std::get<0>(ret);
}
virtual zx_paddr_t SynchronousBasePaddr(zx_paddr_t paddr, zx_paddr_t* out_paddr_2) {
std::tuple<zx_paddr_t, zx_paddr_t> ret = mock_paddr_.Call(paddr);
*out_paddr_2 = std::get<1>(ret);
return std::get<0>(ret);
}
virtual zx_paddr32_t SynchronousBasePaddr32(zx_paddr32_t paddr32, zx_paddr32_t* out_paddr32_2) {
std::tuple<zx_paddr32_t, zx_paddr32_t> ret = mock_paddr32_.Call(paddr32);
*out_paddr32_2 = std::get<1>(ret);
return std::get<0>(ret);
}
virtual zx_gpaddr_t SynchronousBaseGpaddr(zx_gpaddr_t gpaddr, zx_gpaddr_t* out_gpaddr_2) {
std::tuple<zx_gpaddr_t, zx_gpaddr_t> ret = mock_gpaddr_.Call(gpaddr);
*out_gpaddr_2 = std::get<1>(ret);
return std::get<0>(ret);
}
virtual zx_off_t SynchronousBaseOff(zx_off_t off, zx_off_t* out_off_2) {
std::tuple<zx_off_t, zx_off_t> ret = mock_off_.Call(off);
*out_off_2 = std::get<1>(ret);
return std::get<0>(ret);
}
mock_function::MockFunction<std::tuple<zx_status_t, zx_status_t>, zx_status_t>& mock_status() { return mock_status_; }
mock_function::MockFunction<std::tuple<zx_time_t, zx_time_t>, zx_time_t>& mock_time() { return mock_time_; }
mock_function::MockFunction<std::tuple<zx_duration_t, zx_duration_t>, zx_duration_t>& mock_duration() { return mock_duration_; }
mock_function::MockFunction<std::tuple<zx_koid_t, zx_koid_t>, zx_koid_t>& mock_koid() { return mock_koid_; }
mock_function::MockFunction<std::tuple<zx_vaddr_t, zx_vaddr_t>, zx_vaddr_t>& mock_vaddr() { return mock_vaddr_; }
mock_function::MockFunction<std::tuple<zx_paddr_t, zx_paddr_t>, zx_paddr_t>& mock_paddr() { return mock_paddr_; }
mock_function::MockFunction<std::tuple<zx_paddr32_t, zx_paddr32_t>, zx_paddr32_t>& mock_paddr32() { return mock_paddr32_; }
mock_function::MockFunction<std::tuple<zx_gpaddr_t, zx_gpaddr_t>, zx_gpaddr_t>& mock_gpaddr() { return mock_gpaddr_; }
mock_function::MockFunction<std::tuple<zx_off_t, zx_off_t>, zx_off_t>& mock_off() { return mock_off_; }
protected:
mock_function::MockFunction<std::tuple<zx_status_t, zx_status_t>, zx_status_t> mock_status_;
mock_function::MockFunction<std::tuple<zx_time_t, zx_time_t>, zx_time_t> mock_time_;
mock_function::MockFunction<std::tuple<zx_duration_t, zx_duration_t>, zx_duration_t> mock_duration_;
mock_function::MockFunction<std::tuple<zx_koid_t, zx_koid_t>, zx_koid_t> mock_koid_;
mock_function::MockFunction<std::tuple<zx_vaddr_t, zx_vaddr_t>, zx_vaddr_t> mock_vaddr_;
mock_function::MockFunction<std::tuple<zx_paddr_t, zx_paddr_t>, zx_paddr_t> mock_paddr_;
mock_function::MockFunction<std::tuple<zx_paddr32_t, zx_paddr32_t>, zx_paddr32_t> mock_paddr32_;
mock_function::MockFunction<std::tuple<zx_gpaddr_t, zx_gpaddr_t>, zx_gpaddr_t> mock_gpaddr_;
mock_function::MockFunction<std::tuple<zx_off_t, zx_off_t>, zx_off_t> mock_off_;
private:
const synchronous_base_protocol_t proto_;
};
// This class mocks a device by providing a async_base_protocol_t.
// Users can set expectations on how the protocol ops are called and what values they return. After
// the test, use VerifyAndClear to reset the object and verify that all expectations were satisfied.
// See the following example test:
//
// ddk::MockAsyncBase async_base;
//
// /* Set some expectations on the device by calling async_base.Expect... methods. */
//
// SomeDriver dut(async_base.GetProto());
//
// EXPECT_OK(dut.SomeMethod());
// ASSERT_NO_FATAL_FAILURES(async_base.VerifyAndClear());
//
// Note that users must provide the equality operator for struct types, for example:
// bool operator==(const a_struct_type& lhs, const a_struct_type& rhs)
class MockAsyncBase : ddk::AsyncBaseProtocol<MockAsyncBase> {
public:
MockAsyncBase() : proto_{&async_base_protocol_ops_, this} {}
virtual ~MockAsyncBase() {}
const async_base_protocol_t* GetProto() const { return &proto_; }
virtual MockAsyncBase& ExpectStatus(zx_status_t status, zx_status_t out_status, zx_status_t out_status_2) {
mock_status_.ExpectCall({out_status, out_status_2}, status);
return *this;
}
virtual MockAsyncBase& ExpectTime(zx_time_t time, zx_time_t out_time, zx_time_t out_time_2) {
mock_time_.ExpectCall({out_time, out_time_2}, time);
return *this;
}
virtual MockAsyncBase& ExpectDuration(zx_duration_t duration, zx_duration_t out_duration, zx_duration_t out_duration_2) {
mock_duration_.ExpectCall({out_duration, out_duration_2}, duration);
return *this;
}
virtual MockAsyncBase& ExpectKoid(zx_koid_t koid, zx_koid_t out_koid, zx_koid_t out_koid_2) {
mock_koid_.ExpectCall({out_koid, out_koid_2}, koid);
return *this;
}
virtual MockAsyncBase& ExpectVaddr(zx_vaddr_t vaddr, zx_vaddr_t out_vaddr, zx_vaddr_t out_vaddr_2) {
mock_vaddr_.ExpectCall({out_vaddr, out_vaddr_2}, vaddr);
return *this;
}
virtual MockAsyncBase& ExpectPaddr(zx_paddr_t paddr, zx_paddr_t out_paddr, zx_paddr_t out_paddr_2) {
mock_paddr_.ExpectCall({out_paddr, out_paddr_2}, paddr);
return *this;
}
virtual MockAsyncBase& ExpectPaddr32(zx_paddr32_t paddr32, zx_paddr32_t out_paddr32, zx_paddr32_t out_paddr32_2) {
mock_paddr32_.ExpectCall({out_paddr32, out_paddr32_2}, paddr32);
return *this;
}
virtual MockAsyncBase& ExpectGpaddr(zx_gpaddr_t gpaddr, zx_gpaddr_t out_gpaddr, zx_gpaddr_t out_gpaddr_2) {
mock_gpaddr_.ExpectCall({out_gpaddr, out_gpaddr_2}, gpaddr);
return *this;
}
virtual MockAsyncBase& ExpectOff(zx_off_t off, zx_off_t out_off, zx_off_t out_off_2) {
mock_off_.ExpectCall({out_off, out_off_2}, off);
return *this;
}
void VerifyAndClear() {
mock_status_.VerifyAndClear();
mock_time_.VerifyAndClear();
mock_duration_.VerifyAndClear();
mock_koid_.VerifyAndClear();
mock_vaddr_.VerifyAndClear();
mock_paddr_.VerifyAndClear();
mock_paddr32_.VerifyAndClear();
mock_gpaddr_.VerifyAndClear();
mock_off_.VerifyAndClear();
}
virtual void AsyncBaseStatus(zx_status_t status, async_base_status_callback callback, void* cookie) {
std::tuple<zx_status_t, zx_status_t> ret = mock_status_.Call(status);
callback(cookie, std::get<0>(ret), std::get<1>(ret));
}
virtual void AsyncBaseTime(zx_time_t time, async_base_time_callback callback, void* cookie) {
std::tuple<zx_time_t, zx_time_t> ret = mock_time_.Call(time);
callback(cookie, std::get<0>(ret), std::get<1>(ret));
}
virtual void AsyncBaseDuration(zx_duration_t duration, async_base_duration_callback callback, void* cookie) {
std::tuple<zx_duration_t, zx_duration_t> ret = mock_duration_.Call(duration);
callback(cookie, std::get<0>(ret), std::get<1>(ret));
}
virtual void AsyncBaseKoid(zx_koid_t koid, async_base_koid_callback callback, void* cookie) {
std::tuple<zx_koid_t, zx_koid_t> ret = mock_koid_.Call(koid);
callback(cookie, std::get<0>(ret), std::get<1>(ret));
}
virtual void AsyncBaseVaddr(zx_vaddr_t vaddr, async_base_vaddr_callback callback, void* cookie) {
std::tuple<zx_vaddr_t, zx_vaddr_t> ret = mock_vaddr_.Call(vaddr);
callback(cookie, std::get<0>(ret), std::get<1>(ret));
}
virtual void AsyncBasePaddr(zx_paddr_t paddr, async_base_paddr_callback callback, void* cookie) {
std::tuple<zx_paddr_t, zx_paddr_t> ret = mock_paddr_.Call(paddr);
callback(cookie, std::get<0>(ret), std::get<1>(ret));
}
virtual void AsyncBasePaddr32(zx_paddr32_t paddr32, async_base_paddr32_callback callback, void* cookie) {
std::tuple<zx_paddr32_t, zx_paddr32_t> ret = mock_paddr32_.Call(paddr32);
callback(cookie, std::get<0>(ret), std::get<1>(ret));
}
virtual void AsyncBaseGpaddr(zx_gpaddr_t gpaddr, async_base_gpaddr_callback callback, void* cookie) {
std::tuple<zx_gpaddr_t, zx_gpaddr_t> ret = mock_gpaddr_.Call(gpaddr);
callback(cookie, std::get<0>(ret), std::get<1>(ret));
}
virtual void AsyncBaseOff(zx_off_t off, async_base_off_callback callback, void* cookie) {
std::tuple<zx_off_t, zx_off_t> ret = mock_off_.Call(off);
callback(cookie, std::get<0>(ret), std::get<1>(ret));
}
mock_function::MockFunction<std::tuple<zx_status_t, zx_status_t>, zx_status_t>& mock_status() { return mock_status_; }
mock_function::MockFunction<std::tuple<zx_time_t, zx_time_t>, zx_time_t>& mock_time() { return mock_time_; }
mock_function::MockFunction<std::tuple<zx_duration_t, zx_duration_t>, zx_duration_t>& mock_duration() { return mock_duration_; }
mock_function::MockFunction<std::tuple<zx_koid_t, zx_koid_t>, zx_koid_t>& mock_koid() { return mock_koid_; }
mock_function::MockFunction<std::tuple<zx_vaddr_t, zx_vaddr_t>, zx_vaddr_t>& mock_vaddr() { return mock_vaddr_; }
mock_function::MockFunction<std::tuple<zx_paddr_t, zx_paddr_t>, zx_paddr_t>& mock_paddr() { return mock_paddr_; }
mock_function::MockFunction<std::tuple<zx_paddr32_t, zx_paddr32_t>, zx_paddr32_t>& mock_paddr32() { return mock_paddr32_; }
mock_function::MockFunction<std::tuple<zx_gpaddr_t, zx_gpaddr_t>, zx_gpaddr_t>& mock_gpaddr() { return mock_gpaddr_; }
mock_function::MockFunction<std::tuple<zx_off_t, zx_off_t>, zx_off_t>& mock_off() { return mock_off_; }
protected:
mock_function::MockFunction<std::tuple<zx_status_t, zx_status_t>, zx_status_t> mock_status_;
mock_function::MockFunction<std::tuple<zx_time_t, zx_time_t>, zx_time_t> mock_time_;
mock_function::MockFunction<std::tuple<zx_duration_t, zx_duration_t>, zx_duration_t> mock_duration_;
mock_function::MockFunction<std::tuple<zx_koid_t, zx_koid_t>, zx_koid_t> mock_koid_;
mock_function::MockFunction<std::tuple<zx_vaddr_t, zx_vaddr_t>, zx_vaddr_t> mock_vaddr_;
mock_function::MockFunction<std::tuple<zx_paddr_t, zx_paddr_t>, zx_paddr_t> mock_paddr_;
mock_function::MockFunction<std::tuple<zx_paddr32_t, zx_paddr32_t>, zx_paddr32_t> mock_paddr32_;
mock_function::MockFunction<std::tuple<zx_gpaddr_t, zx_gpaddr_t>, zx_gpaddr_t> mock_gpaddr_;
mock_function::MockFunction<std::tuple<zx_off_t, zx_off_t>, zx_off_t> mock_off_;
private:
const async_base_protocol_t proto_;
};
} // namespace ddk