blob: a22c0f452496d47a47fb9860364bd712e3cd3a61 [file] [log] [blame] [edit]
/*
* SPDX-FileCopyrightText: Copyright (c) 2023-2024 NVIDIA CORPORATION &
* AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0
*
* 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.
*/
#include "base.h"
#include "debug-token.h"
#include "device-configuration.h"
#include "diagnostics.h"
#include "firmware-utils.h"
#include "network-ports.h"
#include "pci-links.h"
#include "platform-environmental.h"
#include "powersmoothing-powerprofile-api-v2.h"
#include "common/event.hpp"
#include "utils.hpp"
#include <cstdio>
#include <fstream>
#include <functional>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
using ::testing::Test;
#define private public
#define protected public
#include "mockupResponder.hpp"
// =============================================================================
// Test fixture - verbose GPU
// =============================================================================
class MockupResponderBranch4Test : public Test
{
protected:
MockupResponderBranch4Test()
{
init(41, NSM_DEV_ID_GPU, 4);
}
uint8_t instanceId = 0;
common::Event event;
boost::asio::io_context io;
std::shared_ptr<sdbusplus::asio::connection> systemBus;
std::shared_ptr<sdbusplus::asio::object_server> objServer;
std::shared_ptr<MockupResponder::MockupResponder> mockupResponder;
void init(eid_t eid, uint8_t deviceType, uint8_t instId)
{
this->instanceId = instId;
systemBus = std::make_shared<sdbusplus::asio::connection>(io);
objServer = std::make_shared<sdbusplus::asio::object_server>(systemBus);
mockupResponder = std::make_shared<MockupResponder::MockupResponder>(
true, event, *objServer, eid, deviceType, instId);
}
};
// Fixture for non-verbose GPU
class MockupResponderBranch4QuietTest : public Test
{
protected:
MockupResponderBranch4QuietTest()
{
instanceId = 0;
systemBus = std::make_shared<sdbusplus::asio::connection>(io);
objServer = std::make_shared<sdbusplus::asio::object_server>(systemBus);
mockupResponder = std::make_shared<MockupResponder::MockupResponder>(
false, event, *objServer, 43, NSM_DEV_ID_GPU, 5);
}
uint8_t instanceId;
common::Event event;
boost::asio::io_context io;
std::shared_ptr<sdbusplus::asio::connection> systemBus;
std::shared_ptr<sdbusplus::asio::object_server> objServer;
std::shared_ptr<MockupResponder::MockupResponder> mockupResponder;
};
// Fixture for Switch device type
class MockupResponderBranch4SwitchTest : public Test
{
protected:
MockupResponderBranch4SwitchTest()
{
instanceId = 0;
systemBus = std::make_shared<sdbusplus::asio::connection>(io);
objServer = std::make_shared<sdbusplus::asio::object_server>(systemBus);
mockupResponder = std::make_shared<MockupResponder::MockupResponder>(
true, event, *objServer, 44, NSM_DEV_ID_SWITCH, 0);
}
uint8_t instanceId;
common::Event event;
boost::asio::io_context io;
std::shared_ptr<sdbusplus::asio::connection> systemBus;
std::shared_ptr<sdbusplus::asio::object_server> objServer;
std::shared_ptr<MockupResponder::MockupResponder> mockupResponder;
};
// =============================================================================
// getHistogramFormatHandler - verbose mode
// =============================================================================
TEST_F(MockupResponderBranch4Test, GetHistogramFormatVerbose)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_get_histogram_format_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_get_histogram_format_req(instanceId, 0, 0, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getHistogramFormatHandler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
// getHistogramDataHandler - verbose mode
TEST_F(MockupResponderBranch4Test, GetHistogramDataVerbose)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_get_histogram_data_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_get_histogram_data_req(instanceId, 0, 0, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getHistogramDataHandler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
// getGpioStateHandler - verbose mode
TEST_F(MockupResponderBranch4Test, GetGpioStateVerbose)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_get_gpio_state_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_get_gpio_state_req(instanceId, 0, 16, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getGpioStateHandler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
// getDeviceCapabilitiesV2Handler - verbose mode
TEST_F(MockupResponderBranch4Test, GetDeviceCapabilitiesV2Verbose)
{
Request request(sizeof(nsm_msg_hdr) +
sizeof(nsm_get_device_capabilities_v2_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_nsm_get_device_capabilities_v2_req(instanceId, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getDeviceCapabilitiesV2Handler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
// getListAvailablePciePortsHandler - verbose mode
TEST_F(MockupResponderBranch4Test, GetListAvailablePciePortsVerbose)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_common_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_list_available_pcie_ports_req(instanceId, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getListAvailablePciePortsHandler(
requestMsg, request.size());
EXPECT_TRUE(resp.has_value());
}
// resetNetworkDeviceHandler - verbose mode
TEST_F(MockupResponderBranch4Test, ResetNetworkDeviceVerbose)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_reset_network_device_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_reset_network_device_req(instanceId, 0, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->resetNetworkDeviceHandler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
// getEgmModeHandler - verbose mode
TEST_F(MockupResponderBranch4Test, GetEgmModeVerbose)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_common_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_common_req(instanceId, NSM_TYPE_PLATFORM_ENVIRONMENTAL,
NSM_GET_EGM_MODE, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getEgmModeHandler(requestMsg, request.size());
EXPECT_TRUE(resp.has_value());
}
// =============================================================================
// Non-verbose mode tests (hits the verbose=false branches)
// =============================================================================
TEST_F(MockupResponderBranch4QuietTest, GetHistogramFormatQuiet)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_get_histogram_format_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_get_histogram_format_req(instanceId, 0, 0, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getHistogramFormatHandler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4QuietTest, GetHistogramDataQuiet)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_get_histogram_data_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_get_histogram_data_req(instanceId, 0, 0, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getHistogramDataHandler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4QuietTest, GetGpioStateQuiet)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_get_gpio_state_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_get_gpio_state_req(instanceId, 0, 8, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getGpioStateHandler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4QuietTest, GetDeviceCapabilitiesV2Quiet)
{
Request request(sizeof(nsm_msg_hdr) +
sizeof(nsm_get_device_capabilities_v2_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_nsm_get_device_capabilities_v2_req(instanceId, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getDeviceCapabilitiesV2Handler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4QuietTest, GetListAvailablePciePortsQuiet)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_common_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_list_available_pcie_ports_req(instanceId, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getListAvailablePciePortsHandler(
requestMsg, request.size());
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4QuietTest, ResetNetworkDeviceQuiet)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_reset_network_device_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_reset_network_device_req(instanceId, 0, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->resetNetworkDeviceHandler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4QuietTest, GetEgmModeQuiet)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_common_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_common_req(instanceId, NSM_TYPE_PLATFORM_ENVIRONMENTAL,
NSM_GET_EGM_MODE, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getEgmModeHandler(requestMsg, request.size());
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4QuietTest, GetMigModeVerboseFalse)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_common_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_common_req(instanceId, NSM_TYPE_PLATFORM_ENVIRONMENTAL,
NSM_GET_MIG_MODE, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
std::optional<Request> longRunning;
auto resp = mockupResponder->getMigModeHandler(requestMsg, request.size(),
false, longRunning);
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4QuietTest, GetDeviceDebugParametersQuiet)
{
struct nsm_debug_parameter_id paramId = {
.reserved = 0, .port_number = 0, .index = NSM_DEBUG_PARAMETER_ID_MLPC};
nsm_debug_parameter_sub_id_bitfield subId = {.value = 0};
Request request(sizeof(nsm_msg_hdr) +
sizeof(nsm_get_device_debug_parameters_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_get_device_debug_parameters_req(instanceId, 0, paramId,
subId, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getDeviceDebugParametersHandler(
requestMsg, request.size());
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4QuietTest, SetDeviceDebugParametersQuiet)
{
struct nsm_debug_parameter_id paramId = {
.reserved = 0, .port_number = 0, .index = NSM_DEBUG_PARAMETER_ID_MLPC};
nsm_debug_parameter_sub_id_bitfield subId = {.value = 0};
std::vector<uint8_t> data = {0x01, 0x02, 0x03, 0x04};
uint8_t dataSize = data.size();
Request request(sizeof(nsm_msg_hdr) +
sizeof(nsm_set_device_debug_parameters_req) - 1 + dataSize);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_set_device_debug_parameters_req(
instanceId, 0, paramId, subId, dataSize, data.data(), requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->setDeviceDebugParametersHandler(
requestMsg, request.size());
EXPECT_TRUE(resp.has_value());
}
// =============================================================================
// Switch device type - triggers different behavior in some handlers
// =============================================================================
TEST_F(MockupResponderBranch4SwitchTest, PingSwitchDevice)
{
Request request(sizeof(nsm_msg_hdr) + sizeof(nsm_common_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_ping_req(instanceId, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->pingHandler(requestMsg, request.size());
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4SwitchTest, GetSupportedMessageTypesSwitch)
{
Request request(sizeof(nsm_msg_hdr) +
sizeof(nsm_get_supported_nvidia_message_types_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_get_supported_nvidia_message_types_req(instanceId,
requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getSupportNvidiaMessageTypesHandler(
requestMsg, request.size());
EXPECT_TRUE(resp.has_value());
}
TEST_F(MockupResponderBranch4SwitchTest, GetSupportedCommandCodesSwitch)
{
Request request(sizeof(nsm_msg_hdr) +
sizeof(nsm_get_supported_command_codes_req));
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto rc = encode_get_supported_command_codes_req(
instanceId, NSM_TYPE_DEVICE_CAPABILITY_DISCOVERY, requestMsg);
ASSERT_EQ(rc, NSM_SW_SUCCESS);
auto resp = mockupResponder->getSupportCommandCodeHandler(requestMsg,
request.size());
EXPECT_TRUE(resp.has_value());
}
// =============================================================================
// Bad decode tests for handlers not covered elsewhere
// =============================================================================
TEST_F(MockupResponderBranch4Test, GetHistogramFormatBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getHistogramFormatHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, GetHistogramDataBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getHistogramDataHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, GetGpioStateBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getGpioStateHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, GetDeviceCapabilitiesV2BadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getDeviceCapabilitiesV2Handler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, GetListAvailablePciePortsBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getListAvailablePciePortsHandler(
requestMsg, request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, ResetNetworkDeviceBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->resetNetworkDeviceHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, GetLeakDetectionInfoBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getLeakDetectionInfoHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, GetEthPortTelemetryCounterBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getEthPortTelemetryCounterHandler(
requestMsg, request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, GetPortNetworkAddressesBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getPortNetworkAddressesHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, GetPortEccCountersBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getPortEccCountersHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, GetPciePortConfigBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getPciePortConfigHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, SetPciePortConfigBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->setPciePortConfigHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, GetFpgaDiagnosticsSettingsBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getFpgaDiagnosticsSettingsHandler(
requestMsg, request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test,
DISABLED_EnableDisableWriteProtectedBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->enableDisableWriteProtectedHandler(
requestMsg, request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_EnableDisableGpuIstModeBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->enableDisableGpuIstModeHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_GetConfidentialComputeModeBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getConfidentialComputeModeHandler(
requestMsg, request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_SetConfidentialComputeModeBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->setConfidentialComputeModeHandler(
requestMsg, request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_GetReconfigPermsBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getReconfigurationPermissionsV1Handler(
requestMsg, request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_SetReconfigPermsBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->setReconfigurationPermissionsV1Handler(
requestMsg, request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_GetDevicemodeSettingsBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getDevicemodeSettingsHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_SetDevicemodeSettingsBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->setDevicemodeSettingsHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_GetDeviceDiagnosticsBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getDeviceDiagnosticsHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_GetNetworkDeviceDebugInfoBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getNetworkDeviceDebugInfoHandler(
requestMsg, request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_EraseTraceBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->eraseTraceHandler(requestMsg, request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_GetNetworkDeviceLogInfoBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->getNetworkDeviceLogInfoHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}
TEST_F(MockupResponderBranch4Test, DISABLED_EraseDebugInfoBadDecode)
{
Request request(sizeof(nsm_msg_hdr), 0);
auto requestMsg = reinterpret_cast<nsm_msg*>(request.data());
auto resp = mockupResponder->eraseDebugInfoHandler(requestMsg,
request.size());
EXPECT_FALSE(resp.has_value());
}