692 lines
37 KiB
C++
692 lines
37 KiB
C++
#include <gtest/gtest.h>
|
|
#include <icsneo/icsneoc2.h>
|
|
#include <icsneo/icsneoc2settings.h>
|
|
#include <icsneo/icsneoc2messages.h>
|
|
#include <icsneo/device/devicetype.h>
|
|
|
|
|
|
#include <vector>
|
|
#include <tuple>
|
|
|
|
// Forward declare the safe_str_copy function for testing
|
|
extern bool safe_str_copy(char* dest, size_t* dest_size, std::string_view src);
|
|
|
|
TEST(icsneoc2, test_safe_str_copy)
|
|
{
|
|
char buffer[10] = {0};
|
|
size_t buffer_size = sizeof(buffer);
|
|
|
|
// Test normal copy
|
|
ASSERT_TRUE(safe_str_copy(buffer, &buffer_size, "test"));
|
|
ASSERT_STREQ(buffer, "test");
|
|
ASSERT_EQ(buffer_size, 4);
|
|
|
|
// Test copy with string too long - buffer should be null terminated, buffer_size should reflect truncated length
|
|
buffer_size = sizeof(buffer);
|
|
ASSERT_FALSE(safe_str_copy(buffer, &buffer_size, "this is a very long string")) << buffer << ": " << buffer_size;
|
|
ASSERT_EQ(buffer[sizeof(buffer) - 1], '\0');
|
|
ASSERT_STREQ(buffer, "this is a");
|
|
ASSERT_EQ(buffer_size, 9); // truncated to buffer capacity - 1
|
|
ASSERT_EQ(buffer[sizeof(buffer) - 1], '\0');
|
|
|
|
// Test null parameters - buffer_size should be unmodified on failure
|
|
buffer_size = sizeof(buffer);
|
|
ASSERT_FALSE(safe_str_copy(NULL, &buffer_size, "test"));
|
|
ASSERT_EQ(buffer_size, sizeof(buffer));
|
|
ASSERT_FALSE(safe_str_copy(buffer, NULL, "test"));
|
|
ASSERT_FALSE(safe_str_copy(NULL, NULL, "test"));
|
|
|
|
// Test empty string
|
|
buffer_size = sizeof(buffer);
|
|
memset(buffer, 0xCA, sizeof(buffer));
|
|
ASSERT_TRUE(safe_str_copy(buffer, &buffer_size, ""));
|
|
ASSERT_STREQ(buffer, "");
|
|
ASSERT_EQ(buffer_size, 0);
|
|
// Make sure the rest of the buffer is untouched (should be 0xCA)
|
|
for (size_t i = buffer_size + 1; i < sizeof(buffer) - 1; ++i)
|
|
{
|
|
ASSERT_EQ(buffer[i], '\xCA') << i << ") '" << buffer << "': " << buffer_size;
|
|
}
|
|
|
|
// Test string that fits exactly
|
|
buffer_size = sizeof(buffer);
|
|
ASSERT_TRUE(safe_str_copy(buffer, &buffer_size, "123456789"));
|
|
ASSERT_STREQ(buffer, "123456789");
|
|
ASSERT_EQ(buffer_size, 9);
|
|
ASSERT_EQ(buffer[sizeof(buffer) - 1], '\0');
|
|
|
|
// Test zero-size buffer - should always fail and write nothing
|
|
char tiny0[1] = {0};
|
|
buffer_size = 0;
|
|
ASSERT_FALSE(safe_str_copy(tiny0, &buffer_size, "test"));
|
|
ASSERT_FALSE(safe_str_copy(tiny0, &buffer_size, ""));
|
|
|
|
// Test single-byte buffer (room for null terminator only)
|
|
char tiny1[1];
|
|
buffer_size = sizeof(tiny1);
|
|
memset(tiny1, 0xFF, sizeof(tiny1));
|
|
ASSERT_FALSE(safe_str_copy(tiny1, &buffer_size, "test")); // non-empty: truncates to just '\0'
|
|
ASSERT_EQ(tiny1[0], '\0');
|
|
|
|
// Test single-byte buffer with empty string - should succeed and write just the null terminator
|
|
buffer_size = sizeof(tiny1);
|
|
memset(tiny1, 0xFF, sizeof(tiny1));
|
|
ASSERT_TRUE(safe_str_copy(tiny1, &buffer_size, "")); // empty string fits exactly
|
|
ASSERT_EQ(tiny1[0], '\0');
|
|
ASSERT_EQ(buffer_size, 0);
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_device_enumerate)
|
|
{
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_enumerate(0, NULL));
|
|
|
|
icsneoc2_device_info_t* devices = nullptr;
|
|
ASSERT_EQ(icsneoc2_error_success, icsneoc2_device_enumerate(0, &devices));
|
|
icsneoc2_enumeration_free(devices);
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_device_is_valid)
|
|
{
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_is_valid(NULL));
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_error_invalid_parameters_and_invalid_device)
|
|
{
|
|
bool placeholderBool = false;
|
|
uint8_t placeholderInteger8 = 0;
|
|
uint32_t placeholderInteger32 = 0;
|
|
int64_t placeholderInteger64 = 0;
|
|
uint64_t placeholderUnsignedInteger64 = 0;
|
|
size_t placeholderSizeT = 0;
|
|
char placeholderStr[255] = {0};
|
|
icsneoc2_event_t *eventPlaceHolder = nullptr;
|
|
icsneoc2_lin_mode_t placeholderLinMode = 0;
|
|
icsneoc2_ae_link_mode_t placeholderAeLinkMode = 0;
|
|
icsneoc2_eth_phy_link_mode_t placeholderEthPhyLinkMode = 0;
|
|
icsneoc2_eth_phy_link_mode_t* placeholderEthPhyLinkModePtr = nullptr;
|
|
icsneoc2_misc_io_analog_voltage_t placeholderMiscIoAnalogVoltage = 0;
|
|
|
|
// All of these don't have a device parameter
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_enumerate(0, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_network_type_name_get(0, NULL, NULL));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_event_description_get(eventPlaceHolder, placeholderStr, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_event_get(NULL, NULL));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_type_name_get(0, NULL, NULL));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_error_code_get(0, NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_netid_name_get(0, NULL, NULL));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_message_can_create(NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_message_free(NULL));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_message_data_get(NULL, NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_message_data_set(NULL, NULL, 0));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_message_netid_get(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_message_netid_set(NULL, 0));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_message_network_type_get(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_message_is_transmit(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_message_is_valid(NULL, NULL));
|
|
|
|
// Test utility functions with NULL parameters
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_version_get(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_serial_num_to_string(0, NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_serial_string_to_num(NULL, 0, NULL));
|
|
|
|
// Test new enumeration/info accessors with NULL parameters
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_info_serial_get(NULL, placeholderStr, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_info_type_get(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_info_type_name_get(NULL, placeholderStr, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_info_description_get(NULL, placeholderStr, &placeholderSizeT));
|
|
|
|
// Test open/close with NULL parameters
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_create(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_free(NULL));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_open(NULL, 0));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_open_serial(NULL, 0, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_open_first(0, 0, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_close(NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_description_get(NULL, placeholderStr, &placeholderSizeT));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_go_online(NULL, false));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_is_online(NULL, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_is_online_supported(NULL, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_is_valid(NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_is_open(NULL, &placeholderBool));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_rtc_get(NULL, (int64_t *)&placeholderUnsignedInteger64));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_rtc_set(NULL, 0));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_serial_get(NULL, placeholderStr, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_pcb_serial_get(NULL, &placeholderInteger8, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_mac_address_get(NULL, &placeholderInteger8, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_supports_tc10(NULL, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_timestamp_resolution_get(NULL, &placeholderInteger32));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_digital_io_get(NULL, 0, 0, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_digital_io_set(NULL, 0, 0, false));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_type_get(NULL, NULL));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_message_polling_limit_get(NULL, &placeholderInteger32));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_message_polling_limit_set(NULL, 0));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_message_get(NULL, NULL, 0));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_message_transmit(NULL, NULL));
|
|
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_apply_defaults(NULL, false));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_apply(NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_refresh(NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_baudrate_get(NULL, 0, &placeholderInteger64));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_baudrate_set(NULL, 0, placeholderInteger64));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_canfd_baudrate_get(NULL, 0, &placeholderInteger64));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_canfd_baudrate_set(NULL, 0, placeholderInteger64));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_termination_is_supported(NULL, 0, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_termination_can_enable(NULL, 0, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_termination_is_enabled(NULL, 0, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_termination_set(NULL, 0, false));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_commander_resistor_enabled(NULL, 0, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_commander_resistor_set(NULL, 0, false));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_lin_mode_get(NULL, 0, &placeholderLinMode));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_lin_mode_set(NULL, 0, placeholderLinMode));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_lin_commander_response_time_get(NULL, 0, &placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_lin_commander_response_time_set(NULL, 0, placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_enable_get(NULL, 0, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_enable_set(NULL, 0, false));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_mode_get(NULL, 0, &placeholderAeLinkMode));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_mode_set(NULL, 0, placeholderAeLinkMode));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_speed_get(NULL, 0, &placeholderEthPhyLinkMode));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_speed_set(NULL, 0, placeholderEthPhyLinkMode));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_role_for_get(NULL, 0, &placeholderAeLinkMode));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_role_for_set(NULL, 0, placeholderAeLinkMode));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_link_mode_for_get(NULL, 0, &placeholderEthPhyLinkMode));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_link_mode_for_set(NULL, 0, placeholderEthPhyLinkMode));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_enable_for_get(NULL, 0, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_phy_enable_for_set(NULL, 0, false));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_supported_phy_link_modes_for(NULL, 0, &placeholderEthPhyLinkModePtr, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_t1s_is_plca_enabled_for(NULL, 0, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_t1s_plca_enabled_for_set(NULL, 0, false));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_t1s_local_id_get(NULL, 0, &placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_t1s_local_id_set(NULL, 0, placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_t1s_max_nodes_get(NULL, 0, &placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_t1s_max_nodes_set(NULL, 0, placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_t1s_tx_opp_timer_get(NULL, 0, &placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_t1s_tx_opp_timer_set(NULL, 0, placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_t1s_max_burst_timer_for_get(NULL, 0, &placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_t1s_max_burst_timer_for_set(NULL, 0, placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_misc_io_analog_output_enabled_set(NULL, 0, placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_misc_io_analog_output_set(NULL, 0, placeholderMiscIoAnalogVoltage));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_disabled_get(NULL, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_settings_readonly_get(NULL, &placeholderBool));
|
|
|
|
// Disk formatting functions
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_disk_count_get(NULL, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_supports_disk_formatting(NULL, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_disk_details_get(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_format_disk(NULL, NULL, NULL, NULL));
|
|
|
|
// Disk details accessors with NULL details
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_count_get(NULL, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_count_get(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_layout_get(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_layout_set(NULL, 0));
|
|
icsneoc2_disk_format_flags_t placeholderFlags = 0;
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_flags_get(NULL, 0, &placeholderFlags));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_flags_get(NULL, 0, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_flags_set(NULL, 0, placeholderFlags));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_flags_set(NULL, 0, 0));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_size_get(NULL, 0, &placeholderUnsignedInteger64, &placeholderUnsignedInteger64));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_size_get(NULL, 0, NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_full_format_get(NULL, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_full_format_get(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_disk_details_full_format_set(NULL, false));
|
|
|
|
// Supported networks
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_supported_rx_networks_get(NULL, NULL, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_supported_rx_networks_get(NULL, NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_supported_tx_networks_get(NULL, NULL, &placeholderSizeT));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_supported_tx_networks_get(NULL, NULL, NULL));
|
|
|
|
// Script functions
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_supports_coremini_script(NULL, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_supports_coremini_script(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_script_start(NULL, icsneoc2_memory_type_sd));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_script_stop(NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_script_clear(NULL, icsneoc2_memory_type_sd));
|
|
int8_t placeholderSignedInteger8 = 0;
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_script_prepare_load(NULL, &placeholderSignedInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_script_prepare_load(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_coremini_upload_file(NULL, "test.bin", icsneoc2_memory_type_sd));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_coremini_upload_file(NULL, NULL, icsneoc2_memory_type_sd));
|
|
const uint8_t placeholderData[] = {0};
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_coremini_upload(NULL, placeholderData, sizeof(placeholderData), icsneoc2_memory_type_sd));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_coremini_upload(NULL, NULL, 0, icsneoc2_memory_type_sd));
|
|
icsneoc2_script_status_t* placeholderScriptStatus = NULL;
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_script_status_get(NULL, &placeholderScriptStatus));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_device_script_status_get(NULL, NULL));
|
|
|
|
// Script status accessors with NULL handle
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_is_coremini_running(NULL, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_is_coremini_running(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_is_encrypted(NULL, &placeholderBool));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_sector_overflows_get(NULL, &placeholderInteger32));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_sector_overflows_get(NULL, NULL));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_remaining_sector_buffers_get(NULL, &placeholderInteger32));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_last_sector_get(NULL, &placeholderInteger32));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_read_bin_size_get(NULL, &placeholderInteger32));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_min_sector_get(NULL, &placeholderInteger32));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_max_sector_get(NULL, &placeholderInteger32));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_current_sector_get(NULL, &placeholderInteger32));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_coremini_create_time_get(NULL, &placeholderUnsignedInteger64));
|
|
uint16_t placeholderInteger16 = 0;
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_file_checksum_get(NULL, &placeholderInteger16));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_coremini_version_get(NULL, &placeholderInteger16));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_coremini_header_size_get(NULL, &placeholderInteger16));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_diagnostic_error_code_get(NULL, &placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_diagnostic_error_code_count_get(NULL, &placeholderInteger8));
|
|
ASSERT_EQ(icsneoc2_error_invalid_parameters, icsneoc2_script_status_max_coremini_size_kb_get(NULL, &placeholderInteger16));
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_devicetype_t)
|
|
{
|
|
ASSERT_EQ(icsneoc2_devicetype_unknown, 0x00000000);
|
|
ASSERT_EQ(icsneoc2_devicetype_blue, 0x00000001);
|
|
ASSERT_EQ(icsneoc2_devicetype_ecu_avb, 0x00000002);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_supermoon, 0x00000003);
|
|
ASSERT_EQ(icsneoc2_devicetype_dw_vcan, 0x00000004);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_moon2, 0x00000005);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_mars, 0x00000006);
|
|
ASSERT_EQ(icsneoc2_devicetype_vcan41, 0x00000007);
|
|
ASSERT_EQ(icsneoc2_devicetype_fire, 0x00000008);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_pluto, 0x00000009);
|
|
ASSERT_EQ(icsneoc2_devicetype_vcan42_el, 0x0000000a);
|
|
ASSERT_EQ(icsneoc2_devicetype_radio_canhub, 0x0000000b);
|
|
ASSERT_EQ(icsneoc2_devicetype_neo_ecu12, 0x0000000c);
|
|
ASSERT_EQ(icsneoc2_devicetype_obd2_lc_badge, 0x0000000d);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_moon_duo, 0x0000000e);
|
|
ASSERT_EQ(icsneoc2_devicetype_fire3, 0x0000000f);
|
|
ASSERT_EQ(icsneoc2_devicetype_vcan3, 0x00000010);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_jupiter, 0x00000011);
|
|
ASSERT_EQ(icsneoc2_devicetype_vcan4_industrial, 0x00000012);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_gigastar, 0x00000013);
|
|
ASSERT_EQ(icsneoc2_devicetype_red2, 0x00000014);
|
|
ASSERT_EQ(icsneoc2_devicetype_etherbadge, 0x00000016);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_a2b, 0x00000017);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_epsilon, 0x00000018);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_epsilon_xl, 0x0000001e);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_galaxy2, 0x00000021);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_moon3, 0x00000023);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_comet, 0x00000024);
|
|
ASSERT_EQ(icsneoc2_devicetype_fire3_flexray, 0x00000025);
|
|
ASSERT_EQ(icsneoc2_devicetype_connect, 0x00000026);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_comet3, 0x00000027);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_moon_t1s, 0x00000028);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_gigastar2, 0x00000029);
|
|
ASSERT_EQ(icsneoc2_devicetype_fire3_t1s_lin, 0x0000002a);
|
|
ASSERT_EQ(icsneoc2_devicetype_fire3_t1s_sent, 0x0000002b);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_gemini, 0x0000002c);
|
|
ASSERT_EQ(icsneoc2_devicetype_red, 0x00000040);
|
|
ASSERT_EQ(icsneoc2_devicetype_ecu, 0x00000080);
|
|
ASSERT_EQ(icsneoc2_devicetype_ievb, 0x00000100);
|
|
ASSERT_EQ(icsneoc2_devicetype_pendant, 0x00000200);
|
|
ASSERT_EQ(icsneoc2_devicetype_obd2_pro, 0x00000400);
|
|
ASSERT_EQ(icsneoc2_devicetype_ecuchip_uart, 0x00000800);
|
|
ASSERT_EQ(icsneoc2_devicetype_plasma, 0x00001000);
|
|
ASSERT_EQ(icsneoc2_devicetype_neo_analog, 0x00004000);
|
|
ASSERT_EQ(icsneoc2_devicetype_ct_obd, 0x00008000);
|
|
ASSERT_EQ(icsneoc2_devicetype_ion, 0x00040000);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_star, 0x00080000);
|
|
ASSERT_EQ(icsneoc2_devicetype_vcan44, 0x00200000);
|
|
ASSERT_EQ(icsneoc2_devicetype_vcan42, 0x00400000);
|
|
ASSERT_EQ(icsneoc2_devicetype_cm_probe, 0x00800000);
|
|
ASSERT_EQ(icsneoc2_devicetype_eevb, 0x01000000);
|
|
ASSERT_EQ(icsneoc2_devicetype_vcan_rf, 0x02000000);
|
|
ASSERT_EQ(icsneoc2_devicetype_fire2, 0x04000000);
|
|
ASSERT_EQ(icsneoc2_devicetype_flex, 0x08000000);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_galaxy, 0x10000000);
|
|
ASSERT_EQ(icsneoc2_devicetype_rad_star2, 0x20000000);
|
|
ASSERT_EQ(icsneoc2_devicetype_vividcan, 0x40000000);
|
|
ASSERT_EQ(icsneoc2_devicetype_obd2_sim, 0x80000000);
|
|
ASSERT_EQ(icsneoc2_devicetype_maxsize, 0x80000001);
|
|
ASSERT_EQ(sizeof(icsneoc2_devicetype_t), sizeof(uint32_t));
|
|
}
|
|
|
|
TEST(icsneoc2, test_devicetype_enum_alignment)
|
|
{
|
|
ASSERT_EQ(icsneo::DeviceType::Unknown, icsneoc2_devicetype_unknown);
|
|
ASSERT_EQ(icsneo::DeviceType::BLUE, icsneoc2_devicetype_blue);
|
|
ASSERT_EQ(icsneo::DeviceType::ECU_AVB, icsneoc2_devicetype_ecu_avb);
|
|
ASSERT_EQ(icsneo::DeviceType::RADSupermoon, icsneoc2_devicetype_rad_supermoon);
|
|
ASSERT_EQ(icsneo::DeviceType::DW_VCAN, icsneoc2_devicetype_dw_vcan);
|
|
ASSERT_EQ(icsneo::DeviceType::RADMoon2, icsneoc2_devicetype_rad_moon2);
|
|
ASSERT_EQ(icsneo::DeviceType::RADMars, icsneoc2_devicetype_rad_mars);
|
|
ASSERT_EQ(icsneo::DeviceType::VCAN4_1, icsneoc2_devicetype_vcan41);
|
|
ASSERT_EQ(icsneo::DeviceType::FIRE, icsneoc2_devicetype_fire);
|
|
ASSERT_EQ(icsneo::DeviceType::RADPluto, icsneoc2_devicetype_rad_pluto);
|
|
ASSERT_EQ(icsneo::DeviceType::VCAN4_2EL, icsneoc2_devicetype_vcan42_el);
|
|
ASSERT_EQ(icsneo::DeviceType::RADIO_CANHUB, icsneoc2_devicetype_radio_canhub);
|
|
ASSERT_EQ(icsneo::DeviceType::NEOECU12, icsneoc2_devicetype_neo_ecu12);
|
|
ASSERT_EQ(icsneo::DeviceType::OBD2_LCBADGE, icsneoc2_devicetype_obd2_lc_badge);
|
|
ASSERT_EQ(icsneo::DeviceType::RADMoonDuo, icsneoc2_devicetype_rad_moon_duo);
|
|
ASSERT_EQ(icsneo::DeviceType::FIRE3, icsneoc2_devicetype_fire3);
|
|
ASSERT_EQ(icsneo::DeviceType::VCAN3, icsneoc2_devicetype_vcan3);
|
|
ASSERT_EQ(icsneo::DeviceType::RADJupiter, icsneoc2_devicetype_rad_jupiter);
|
|
ASSERT_EQ(icsneo::DeviceType::VCAN4_IND, icsneoc2_devicetype_vcan4_industrial);
|
|
ASSERT_EQ(icsneo::DeviceType::RADGigastar, icsneoc2_devicetype_rad_gigastar);
|
|
ASSERT_EQ(icsneo::DeviceType::RED2, icsneoc2_devicetype_red2);
|
|
ASSERT_EQ(icsneo::DeviceType::EtherBADGE, icsneoc2_devicetype_etherbadge);
|
|
ASSERT_EQ(icsneo::DeviceType::RAD_A2B, icsneoc2_devicetype_rad_a2b);
|
|
ASSERT_EQ(icsneo::DeviceType::RADEpsilon, icsneoc2_devicetype_rad_epsilon);
|
|
ASSERT_EQ(icsneo::DeviceType::RADEpsilonXL, icsneoc2_devicetype_rad_epsilon_xl);
|
|
ASSERT_EQ(icsneo::DeviceType::RADMoon3, icsneoc2_devicetype_rad_moon3);
|
|
ASSERT_EQ(icsneo::DeviceType::RADComet, icsneoc2_devicetype_rad_comet);
|
|
ASSERT_EQ(icsneo::DeviceType::FIRE3_FlexRay, icsneoc2_devicetype_fire3_flexray);
|
|
ASSERT_EQ(icsneo::DeviceType::Connect, icsneoc2_devicetype_connect);
|
|
ASSERT_EQ(icsneo::DeviceType::RADComet3, icsneoc2_devicetype_rad_comet3);
|
|
ASSERT_EQ(icsneo::DeviceType::RADMoonT1S, icsneoc2_devicetype_rad_moon_t1s);
|
|
ASSERT_EQ(icsneo::DeviceType::RADGigastar2, icsneoc2_devicetype_rad_gigastar2);
|
|
ASSERT_EQ(icsneo::DeviceType::FIRE3_T1S_LIN, icsneoc2_devicetype_fire3_t1s_lin);
|
|
ASSERT_EQ(icsneo::DeviceType::FIRE3_T1S_SENT, icsneoc2_devicetype_fire3_t1s_sent);
|
|
ASSERT_EQ(icsneo::DeviceType::RADGemini, icsneoc2_devicetype_rad_gemini);
|
|
ASSERT_EQ(icsneo::DeviceType::RED, icsneoc2_devicetype_red);
|
|
ASSERT_EQ(icsneo::DeviceType::ECU, icsneoc2_devicetype_ecu);
|
|
ASSERT_EQ(icsneo::DeviceType::IEVB, icsneoc2_devicetype_ievb);
|
|
ASSERT_EQ(icsneo::DeviceType::Pendant, icsneoc2_devicetype_pendant);
|
|
ASSERT_EQ(icsneo::DeviceType::OBD2_PRO, icsneoc2_devicetype_obd2_pro);
|
|
ASSERT_EQ(icsneo::DeviceType::ECUChip_UART, icsneoc2_devicetype_ecuchip_uart);
|
|
ASSERT_EQ(icsneo::DeviceType::PLASMA, icsneoc2_devicetype_plasma);
|
|
ASSERT_EQ(icsneo::DeviceType::NEOAnalog, icsneoc2_devicetype_neo_analog);
|
|
ASSERT_EQ(icsneo::DeviceType::CT_OBD, icsneoc2_devicetype_ct_obd);
|
|
ASSERT_EQ(icsneo::DeviceType::ION, icsneoc2_devicetype_ion);
|
|
ASSERT_EQ(icsneo::DeviceType::RADStar, icsneoc2_devicetype_rad_star);
|
|
ASSERT_EQ(icsneo::DeviceType::VCAN4_4, icsneoc2_devicetype_vcan44);
|
|
ASSERT_EQ(icsneo::DeviceType::VCAN4_2, icsneoc2_devicetype_vcan42);
|
|
ASSERT_EQ(icsneo::DeviceType::CMProbe, icsneoc2_devicetype_cm_probe);
|
|
ASSERT_EQ(icsneo::DeviceType::EEVB, icsneoc2_devicetype_eevb);
|
|
ASSERT_EQ(icsneo::DeviceType::VCANrf, icsneoc2_devicetype_vcan_rf);
|
|
ASSERT_EQ(icsneo::DeviceType::FIRE2, icsneoc2_devicetype_fire2);
|
|
ASSERT_EQ(icsneo::DeviceType::Flex, icsneoc2_devicetype_flex);
|
|
ASSERT_EQ(icsneo::DeviceType::RADGalaxy, icsneoc2_devicetype_rad_galaxy);
|
|
ASSERT_EQ(icsneo::DeviceType::RADStar2, icsneoc2_devicetype_rad_star2);
|
|
ASSERT_EQ(icsneo::DeviceType::VividCAN, icsneoc2_devicetype_vividcan);
|
|
ASSERT_EQ(icsneo::DeviceType::OBD2_SIM, icsneoc2_devicetype_obd2_sim);
|
|
ASSERT_EQ(icsneo::DeviceType::RADGalaxy2, icsneoc2_devicetype_rad_galaxy2);
|
|
}
|
|
|
|
TEST(icsneoc2, icsneoc2_network_type_t)
|
|
{
|
|
ASSERT_EQ(icsneoc2_network_type_invalid, 0);
|
|
ASSERT_EQ(icsneoc2_network_type_internal, 1);
|
|
ASSERT_EQ(icsneoc2_network_type_can, 2);
|
|
ASSERT_EQ(icsneoc2_network_type_lin, 3);
|
|
ASSERT_EQ(icsneoc2_network_type_flexray, 4);
|
|
ASSERT_EQ(icsneoc2_network_type_most, 5);
|
|
ASSERT_EQ(icsneoc2_network_type_ethernet, 6);
|
|
ASSERT_EQ(icsneoc2_network_type_lsftcan, 7);
|
|
ASSERT_EQ(icsneoc2_network_type_swcan, 8);
|
|
ASSERT_EQ(icsneoc2_network_type_iso9141, 9);
|
|
ASSERT_EQ(icsneoc2_network_type_i2c, 10);
|
|
ASSERT_EQ(icsneoc2_network_type_a2b, 11);
|
|
ASSERT_EQ(icsneoc2_network_type_spi, 12);
|
|
ASSERT_EQ(icsneoc2_network_type_mdio, 13);
|
|
ASSERT_EQ(icsneoc2_network_type_automotive_ethernet, 14);
|
|
ASSERT_EQ(icsneoc2_network_type_maxsize, 15);
|
|
|
|
ASSERT_EQ(sizeof(icsneoc2_network_type_t), sizeof(uint8_t));
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_io_type_t)
|
|
{
|
|
ASSERT_EQ(icsneoc2_io_type_eth_activation, 0);
|
|
ASSERT_EQ(icsneoc2_io_type_usb_host_power, 1);
|
|
ASSERT_EQ(icsneoc2_io_type_backup_power_en, 2);
|
|
ASSERT_EQ(icsneoc2_io_type_backup_power_good, 3);
|
|
ASSERT_EQ(icsneoc2_io_type_misc, 4);
|
|
ASSERT_EQ(icsneoc2_io_type_emisc, 5);
|
|
|
|
ASSERT_EQ(sizeof(icsneoc2_io_type_t), sizeof(uint32_t));
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_netid_t)
|
|
{
|
|
ASSERT_EQ(icsneoc2_netid_device, 0);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_01, 1);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_08, 2);
|
|
ASSERT_EQ(icsneoc2_netid_swcan_01, 3);
|
|
ASSERT_EQ(icsneoc2_netid_lsftcan_01, 4);
|
|
ASSERT_EQ(icsneoc2_netid_fordscp, 5);
|
|
ASSERT_EQ(icsneoc2_netid_j1708, 6);
|
|
ASSERT_EQ(icsneoc2_netid_aux, 7);
|
|
ASSERT_EQ(icsneoc2_netid_j1850vpw, 8);
|
|
ASSERT_EQ(icsneoc2_netid_iso9141, 9);
|
|
ASSERT_EQ(icsneoc2_netid_disk_data, 10);
|
|
ASSERT_EQ(icsneoc2_netid_main51, 11);
|
|
ASSERT_EQ(icsneoc2_netid_red, 12);
|
|
ASSERT_EQ(icsneoc2_netid_sci, 13);
|
|
ASSERT_EQ(icsneoc2_netid_iso9141_02, 14);
|
|
ASSERT_EQ(icsneoc2_netid_iso14230, 15);
|
|
ASSERT_EQ(icsneoc2_netid_lin_01, 16);
|
|
ASSERT_EQ(icsneoc2_netid_ae_01, 17);
|
|
ASSERT_EQ(icsneoc2_netid_ae_02, 18);
|
|
ASSERT_EQ(icsneoc2_netid_ae_03, 19);
|
|
ASSERT_EQ(icsneoc2_netid_red_ext_memoryread, 20);
|
|
ASSERT_EQ(icsneoc2_netid_red_int_memoryread, 21);
|
|
ASSERT_EQ(icsneoc2_netid_red_dflash_read, 22);
|
|
ASSERT_EQ(icsneoc2_netid_neo_memory_sdread, 23); // Response from NeoMemory (MemoryTypeSD)
|
|
ASSERT_EQ(icsneoc2_netid_can_errbits, 24);
|
|
ASSERT_EQ(icsneoc2_netid_neo_memory_write_done, 25);
|
|
ASSERT_EQ(icsneoc2_netid_red_wave_can1_logical, 26);
|
|
ASSERT_EQ(icsneoc2_netid_red_wave_can2_logical, 27);
|
|
ASSERT_EQ(icsneoc2_netid_red_wave_lin1_logical, 28);
|
|
ASSERT_EQ(icsneoc2_netid_red_wave_lin2_logical, 29);
|
|
ASSERT_EQ(icsneoc2_netid_red_wave_lin1_analog, 30);
|
|
ASSERT_EQ(icsneoc2_netid_red_wave_lin2_analog, 31);
|
|
ASSERT_EQ(icsneoc2_netid_red_wave_misc_analog, 32);
|
|
ASSERT_EQ(icsneoc2_netid_red_wave_miscdio2_logical, 33);
|
|
ASSERT_EQ(icsneoc2_netid_red_network_com_enable_ex, 34);
|
|
ASSERT_EQ(icsneoc2_netid_red_neovi_network, 35);
|
|
ASSERT_EQ(icsneoc2_netid_red_read_baud_settings, 36);
|
|
ASSERT_EQ(icsneoc2_netid_red_oldformat, 37);
|
|
ASSERT_EQ(icsneoc2_netid_red_scope_capture, 38);
|
|
ASSERT_EQ(icsneoc2_netid_red_hardware_excep, 39);
|
|
ASSERT_EQ(icsneoc2_netid_red_get_rtc, 40);
|
|
ASSERT_EQ(icsneoc2_netid_iso9141_03, 41);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_02, 42);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_03, 44);
|
|
ASSERT_EQ(icsneoc2_netid_ae_04, 45);
|
|
ASSERT_EQ(icsneoc2_netid_ae_05, 46);
|
|
ASSERT_EQ(icsneoc2_netid_iso9141_04, 47);
|
|
ASSERT_EQ(icsneoc2_netid_lin_02, 48);
|
|
ASSERT_EQ(icsneoc2_netid_lin_03, 49);
|
|
ASSERT_EQ(icsneoc2_netid_lin_04, 50);
|
|
ASSERT_EQ(icsneoc2_netid_most_unused, 51); // MOST = 51, Old and unused
|
|
ASSERT_EQ(icsneoc2_netid_red_app_error, 52);
|
|
ASSERT_EQ(icsneoc2_netid_cgi, 53);
|
|
ASSERT_EQ(icsneoc2_netid_reset_status, 54);
|
|
ASSERT_EQ(icsneoc2_netid_fb_status, 55);
|
|
ASSERT_EQ(icsneoc2_netid_app_signal_status, 56);
|
|
ASSERT_EQ(icsneoc2_netid_read_datalink_cm_tx_msg, 57);
|
|
ASSERT_EQ(icsneoc2_netid_read_datalink_cm_rx_msg, 58);
|
|
ASSERT_EQ(icsneoc2_netid_logging_overflow, 59);
|
|
ASSERT_EQ(icsneoc2_netid_read_settings, 60);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_04, 61);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_05, 62);
|
|
ASSERT_EQ(icsneoc2_netid_rs232, 63);
|
|
ASSERT_EQ(icsneoc2_netid_uart_01, 64);
|
|
ASSERT_EQ(icsneoc2_netid_uart_02, 65);
|
|
ASSERT_EQ(icsneoc2_netid_uart_03, 66);
|
|
ASSERT_EQ(icsneoc2_netid_uart_04, 67);
|
|
ASSERT_EQ(icsneoc2_netid_swcan_02, 68);
|
|
ASSERT_EQ(icsneoc2_netid_ethernet_daq, 69);
|
|
ASSERT_EQ(icsneoc2_netid_data_to_host, 70);
|
|
ASSERT_EQ(icsneoc2_netid_textapi_to_host, 71);
|
|
ASSERT_EQ(icsneoc2_netid_spi_01, 72);
|
|
ASSERT_EQ(icsneoc2_netid_ae_06, 73);
|
|
ASSERT_EQ(icsneoc2_netid_red_vbat, 74);
|
|
ASSERT_EQ(icsneoc2_netid_ae_07, 75);
|
|
ASSERT_EQ(icsneoc2_netid_ae_08, 76);
|
|
ASSERT_EQ(icsneoc2_netid_ae_09, 77);
|
|
ASSERT_EQ(icsneoc2_netid_ae_10, 78);
|
|
ASSERT_EQ(icsneoc2_netid_ae_11, 79);
|
|
ASSERT_EQ(icsneoc2_netid_flexray_01a, 80);
|
|
ASSERT_EQ(icsneoc2_netid_flexray_01b, 81);
|
|
ASSERT_EQ(icsneoc2_netid_flexray_02a, 82);
|
|
ASSERT_EQ(icsneoc2_netid_flexray_02b, 83);
|
|
ASSERT_EQ(icsneoc2_netid_lin_05, 84);
|
|
ASSERT_EQ(icsneoc2_netid_flexray_01, 85);
|
|
ASSERT_EQ(icsneoc2_netid_flexray_02, 86);
|
|
ASSERT_EQ(icsneoc2_netid_ae_12, 87);
|
|
ASSERT_EQ(icsneoc2_netid_i2c_01, 88);
|
|
ASSERT_EQ(icsneoc2_netid_most_25, 90);
|
|
ASSERT_EQ(icsneoc2_netid_most_50, 91);
|
|
ASSERT_EQ(icsneoc2_netid_most_150, 92);
|
|
ASSERT_EQ(icsneoc2_netid_ethernet_01, 93);
|
|
ASSERT_EQ(icsneoc2_netid_gmfsa, 94);
|
|
ASSERT_EQ(icsneoc2_netid_tcp, 95);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_06, 96);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_07, 97);
|
|
ASSERT_EQ(icsneoc2_netid_lin_06, 98);
|
|
ASSERT_EQ(icsneoc2_netid_lsftcan_02, 99);
|
|
ASSERT_EQ(icsneoc2_netid_logical_disk_info, 187);
|
|
ASSERT_EQ(icsneoc2_netid_wivi_command, 221);
|
|
ASSERT_EQ(icsneoc2_netid_script_status, 224);
|
|
ASSERT_EQ(icsneoc2_netid_eth_phy_control, 239);
|
|
ASSERT_EQ(icsneoc2_netid_extended_command, 240);
|
|
ASSERT_EQ(icsneoc2_netid_extended_data, 242);
|
|
ASSERT_EQ(icsneoc2_netid_flexray_control, 243);
|
|
ASSERT_EQ(icsneoc2_netid_coremini_preload, 244);
|
|
ASSERT_EQ(icsneoc2_netid_hw_com_latency_test, 512);
|
|
ASSERT_EQ(icsneoc2_netid_device_status, 513);
|
|
ASSERT_EQ(icsneoc2_netid_udp, 514);
|
|
ASSERT_EQ(icsneoc2_netid_forwarded_message, 516);
|
|
ASSERT_EQ(icsneoc2_netid_i2c_02, 517);
|
|
ASSERT_EQ(icsneoc2_netid_i2c_03, 518);
|
|
ASSERT_EQ(icsneoc2_netid_i2c_04, 519);
|
|
ASSERT_EQ(icsneoc2_netid_ethernet_02, 520);
|
|
ASSERT_EQ(icsneoc2_netid_ethernet_tx_wrap, 521);
|
|
ASSERT_EQ(icsneoc2_netid_a2b_01, 522);
|
|
ASSERT_EQ(icsneoc2_netid_a2b_02, 523);
|
|
ASSERT_EQ(icsneoc2_netid_ethernet_03, 524);
|
|
ASSERT_EQ(icsneoc2_netid_wbms_01, 532);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_09, 534);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_10, 535);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_11, 536);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_12, 537);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_13, 538);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_14, 539);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_15, 540);
|
|
ASSERT_EQ(icsneoc2_netid_dwcan_16, 541);
|
|
ASSERT_EQ(icsneoc2_netid_lin_07, 542);
|
|
ASSERT_EQ(icsneoc2_netid_lin_08, 543);
|
|
ASSERT_EQ(icsneoc2_netid_spi_02, 544);
|
|
ASSERT_EQ(icsneoc2_netid_mdio_01, 545);
|
|
ASSERT_EQ(icsneoc2_netid_mdio_02, 546);
|
|
ASSERT_EQ(icsneoc2_netid_mdio_03, 547);
|
|
ASSERT_EQ(icsneoc2_netid_mdio_04, 548);
|
|
ASSERT_EQ(icsneoc2_netid_mdio_05, 549);
|
|
ASSERT_EQ(icsneoc2_netid_mdio_06, 550);
|
|
ASSERT_EQ(icsneoc2_netid_mdio_07, 551);
|
|
ASSERT_EQ(icsneoc2_netid_mdio_08, 552);
|
|
ASSERT_EQ(icsneoc2_netid_ae_13, 553);
|
|
ASSERT_EQ(icsneoc2_netid_ae_14, 554);
|
|
ASSERT_EQ(icsneoc2_netid_ae_15, 555);
|
|
ASSERT_EQ(icsneoc2_netid_ae_16, 556);
|
|
ASSERT_EQ(icsneoc2_netid_spi_03, 557);
|
|
ASSERT_EQ(icsneoc2_netid_spi_04, 558);
|
|
ASSERT_EQ(icsneoc2_netid_spi_05, 559);
|
|
ASSERT_EQ(icsneoc2_netid_spi_06, 560);
|
|
ASSERT_EQ(icsneoc2_netid_spi_07, 561);
|
|
ASSERT_EQ(icsneoc2_netid_spi_08, 562);
|
|
ASSERT_EQ(icsneoc2_netid_lin_09, 563);
|
|
ASSERT_EQ(icsneoc2_netid_lin_10, 564);
|
|
ASSERT_EQ(icsneoc2_netid_lin_11, 565);
|
|
ASSERT_EQ(icsneoc2_netid_lin_12, 566);
|
|
ASSERT_EQ(icsneoc2_netid_lin_13, 567);
|
|
ASSERT_EQ(icsneoc2_netid_lin_14, 568);
|
|
ASSERT_EQ(icsneoc2_netid_lin_15, 569);
|
|
ASSERT_EQ(icsneoc2_netid_lin_16, 570);
|
|
ASSERT_EQ(icsneoc2_netid_maxsize, 571);
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_open_options_default)
|
|
{
|
|
icsneoc2_open_options_t expected = ICSNEOC2_OPEN_OPTIONS_GO_ONLINE | ICSNEOC2_OPEN_OPTIONS_SYNC_RTC | ICSNEOC2_OPEN_OPTIONS_ENABLE_AUTO_UPDATE;
|
|
ASSERT_EQ(icsneoc2_open_options_default, expected);
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_disk_format_enums)
|
|
{
|
|
// Disk layout enum values
|
|
ASSERT_EQ(icsneoc2_disk_layout_spanned, 0);
|
|
ASSERT_EQ(icsneoc2_disk_layout_raid0, 1);
|
|
|
|
// Disk format flag bitmask values
|
|
ASSERT_EQ(ICSNEOC2_DISK_FORMAT_FLAGS_PRESENT, 0x01);
|
|
ASSERT_EQ(ICSNEOC2_DISK_FORMAT_FLAGS_INITIALIZED, 0x02);
|
|
ASSERT_EQ(ICSNEOC2_DISK_FORMAT_FLAGS_FORMATTED, 0x04);
|
|
|
|
// Disk format directive values
|
|
ASSERT_EQ(icsneoc2_disk_format_directive_continue, 0);
|
|
ASSERT_EQ(icsneoc2_disk_format_directive_stop, 1);
|
|
|
|
// Type sizes
|
|
ASSERT_EQ(sizeof(icsneoc2_disk_layout_t), sizeof(uint8_t));
|
|
ASSERT_EQ(sizeof(icsneoc2_disk_format_flags_t), sizeof(uint32_t));
|
|
ASSERT_EQ(sizeof(icsneoc2_disk_format_directive_t), sizeof(uint8_t));
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_free_null)
|
|
{
|
|
// Free functions should be safe to call with NULL
|
|
icsneoc2_disk_details_free(NULL);
|
|
icsneoc2_script_status_free(NULL);
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_format_disk_error_code)
|
|
{
|
|
// Verify the new error code exists and has a valid string
|
|
char error_str[64] = {0};
|
|
size_t error_str_len = sizeof(error_str);
|
|
ASSERT_EQ(icsneoc2_error_success, icsneoc2_error_code_get(icsneoc2_error_format_disk_failed, error_str, &error_str_len));
|
|
ASSERT_GT(error_str_len, 0u);
|
|
ASSERT_STREQ(error_str, "Disk format failed");
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_memory_type_enums)
|
|
{
|
|
// Memory type enum values should match Disk::MemoryType
|
|
ASSERT_EQ(0, icsneoc2_memory_type_flash);
|
|
ASSERT_EQ(1, icsneoc2_memory_type_sd);
|
|
}
|
|
|
|
TEST(icsneoc2, test_icsneoc2_script_error_codes)
|
|
{
|
|
// Verify script error codes exist and have distinct string representations
|
|
char buf[256];
|
|
size_t len;
|
|
|
|
len = sizeof(buf);
|
|
ASSERT_EQ(icsneoc2_error_success, icsneoc2_error_code_get(icsneoc2_error_script_start_failed, buf, &len));
|
|
ASSERT_GT(len, 0u);
|
|
|
|
len = sizeof(buf);
|
|
ASSERT_EQ(icsneoc2_error_success, icsneoc2_error_code_get(icsneoc2_error_script_stop_failed, buf, &len));
|
|
ASSERT_GT(len, 0u);
|
|
|
|
len = sizeof(buf);
|
|
ASSERT_EQ(icsneoc2_error_success, icsneoc2_error_code_get(icsneoc2_error_script_clear_failed, buf, &len));
|
|
ASSERT_GT(len, 0u);
|
|
|
|
len = sizeof(buf);
|
|
ASSERT_EQ(icsneoc2_error_success, icsneoc2_error_code_get(icsneoc2_error_script_upload_failed, buf, &len));
|
|
ASSERT_GT(len, 0u);
|
|
|
|
len = sizeof(buf);
|
|
ASSERT_EQ(icsneoc2_error_success, icsneoc2_error_code_get(icsneoc2_error_script_load_prepare_failed, buf, &len));
|
|
ASSERT_GT(len, 0u);
|
|
}
|
|
|
|
|