blob: a0cd2c1d9ed64c2e4ab58435a80955fdb3b53082 [file] [log] [blame]
#include <stdio.h>
#include <string.h>
#include <stdint.h>
unsigned char g_sensortype [][2] = {
{0xC3, 0x01},
{0x07, 0x02},
{0x0F, 0x05},
{0x0c, 0x1F},
{0xFF ,0xff}
};
uint8_t find_sensor(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) {
printf("Attempting to log 0x%02x via %s with a value of %s\n",
number, member, value);
strcpy(g_results_method, member);
strcpy(g_results_value, value);
return 0;
}
int set_sensor_dbus_state_y(unsigned char number, char const* member, uint8_t value) {
char val[2];
printf("Attempting to log Variant Sensor 0x%02x via %s with a value of 0x%02x\n",
number, member, value);
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)) {
printf("ERROR: Method Failed, expect %s found %s\n", method, g_results_method);
return -1;
}
if (strcmp(g_results_value, value)) {
printf("ERROR: Value failed, expected %s found %s\n", value, g_results_value);
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;
}