89 lines
2.8 KiB
C++
89 lines
2.8 KiB
C++
/*
|
|
* Copyright (c) 2023 Fancy Code.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
#ifndef UART_DEVICE_TEST_TOOL_H
|
|
#define UART_DEVICE_TEST_TOOL_H
|
|
#include "LinuxApiMock.h"
|
|
#include "UartDevice.h"
|
|
#include <map>
|
|
constexpr int UART_DEVICE_READ_NOTHING = 0;
|
|
class UartDeviceTestTool
|
|
{
|
|
public:
|
|
UartDeviceTestTool() = default;
|
|
virtual ~UartDeviceTestTool() = default;
|
|
/**
|
|
* @brief Enable the UartDevice module to run and debug on Ubuntu
|
|
*
|
|
* @param mock
|
|
* @param uart
|
|
* @return int Return a virtual handle, and the simulated test code uses this handle to bind the device.
|
|
*/
|
|
int RegisterUartDevice(std::shared_ptr<LinuxTest> &mock, const UartInfo &uart);
|
|
/**
|
|
* @brief Get the Device Mock Fd object
|
|
*
|
|
* @param uart
|
|
* @return int fd of uart device.
|
|
*/
|
|
int GetDeviceMockFd(const UartInfo &uart);
|
|
/**
|
|
* @brief
|
|
*
|
|
* @param uart
|
|
*/
|
|
void UnregisterUartDevice(const UartInfo &uart);
|
|
/**
|
|
* @brief Set the Send Api object
|
|
* Set the length of a successful send.
|
|
* @param mock
|
|
* @param uart
|
|
* @param length The length of a successful send.
|
|
*/
|
|
void SetSendApiOnce(std::shared_ptr<LinuxTest> &mock, const UartInfo &uart, const ssize_t &length);
|
|
/**
|
|
* @brief Set the Recv Api Once object
|
|
* Set the data received at once.
|
|
* @param mock
|
|
* @param uart
|
|
* @param recvBuff The data that will be received.
|
|
* @param length The length of data that will be received.
|
|
*/
|
|
void SetRecvApiOnce(std::shared_ptr<LinuxTest> &mock, const UartInfo &uart, void *recvBuff, const ssize_t &length);
|
|
/**
|
|
* @brief Set the Uart Device Open Failed object
|
|
*
|
|
* @param mock
|
|
* @param uart
|
|
*/
|
|
void SetUartDeviceOpenFailed(std::shared_ptr<LinuxTest> &mock, const UartInfo &uart);
|
|
/**
|
|
* @brief Set the Uart Device Read Nothing object
|
|
*
|
|
* @param mock
|
|
* @param uart
|
|
*/
|
|
void SetUartDeviceReadNothing(std::shared_ptr<LinuxTest> &mock, const UartInfo &uart);
|
|
/**
|
|
* @brief Set the Uart Device Time Out object
|
|
*
|
|
* @param mock
|
|
* @param uart
|
|
*/
|
|
void SetUartDeviceTimeOut(std::shared_ptr<LinuxTest> &mock, const UartInfo &uart);
|
|
|
|
private:
|
|
std::map<const char *, int> mDeviceMap;
|
|
};
|
|
#endif |