blob: 0a703ab9ed2be54fd9db54332907c0d30782f810 [file] [log] [blame]
#include <stdint.h>
#include <stdio.h>
#include <string.h>
unsigned char g_sensortype[][2] = {
{0xC3, 0x01}, {0x07, 0x02}, {0x0F, 0x05}, {0x0c, 0x1F}, {0xFF, 0xff}};
uint8_t find_type_for_sensor_number(uint8_t sensor_number)
{
int i = 0;
uint8_t rc;
while (g_sensortype[i][0] != 0xff)
{
if (g_sensortype[i][1] == sensor_number)
{
break;
}
else
{
i++;
}
}
rc = g_sensortype[i][0];
if (rc == 0xFF)
{
rc = 0;
}
return rc;
}
char g_results_method[64];
char g_results_value[64];
int set_sensor_dbus_state_s(unsigned char number, const char* member,
const char* value)
{
strcpy(g_results_method, member);
strcpy(g_results_value, value);
return 0;
}
int set_sensor_dbus_state_y(unsigned char number, const char* member,
uint8_t value)
{
char val[2];
snprintf(val, 2, "%d", value);
strcpy(g_results_method, member);
strcpy(g_results_value, val);
return 0;
}
extern int updateSensorRecordFromSSRAESC(const void* record);
// DIMM Present
uint8_t testrec_sensor1[] = {0x1F, 0xa9, 0x00, 0x40, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00};
// DIMM Not present
uint8_t testrec_sensor2[] = {0x1F, 0xa9, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00};
// DIMM Not present
uint8_t testrec_procfailed[] = {0x02, 0xa9, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00};
// Virtual Sensor 5, setting a Value of 0h
uint8_t testrec_bootprogress[] = {0x05, 0xa9, 0x00, 0x04, 0x00,
0x00, 0x00, 0x00, 0x0E, 0x00};
// Virtual Sensor setting a boot count
uint8_t testrec_bootcount[] = {0x01, 0x09, 0x00, 0x03, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00};
// Invalid sensor number
uint8_t testrec_invalidnumber[] = {0x35, 0xa9, 0x00, 0x04, 0x00,
0x00, 0x00, 0x00, 0x03, 0x00};
int check_results(int rc, const char* method, const char* value)
{
if (strcmp(g_results_method, method))
{
log<level::ERR>("Method Failed", entry("EXPECT=%s", method),
entry("GOT=%s", g_results_method));
return -1;
}
if (strcmp(g_results_value, value))
{
log<level::ERR>("Value failed", entry("EXPECT=%s", value),
entry("GOT=%s", g_results_method));
return -2;
}
return 0;
}
void testprep(void)
{
memset(g_results_method, 0, sizeof(g_results_method));
memset(g_results_value, 0, sizeof(g_results_value));
}
int main()
{
testprep();
check_results(updateSensorRecordFromSSRAESC(testrec_bootprogress),
"setValue", "FW Progress, Docking station attachment");
testprep();
check_results(updateSensorRecordFromSSRAESC(testrec_sensor1), "setPresent",
"True");
testprep();
check_results(updateSensorRecordFromSSRAESC(testrec_sensor2), "setPresent",
"False");
testprep();
check_results(updateSensorRecordFromSSRAESC(testrec_procfailed), "setFault",
"False");
testprep();
check_results(updateSensorRecordFromSSRAESC(testrec_bootcount), "setValue",
"3");
testprep();
check_results(updateSensorRecordFromSSRAESC(testrec_invalidnumber), "", "");
return 0;
}