#include #include #include 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_v(uint8_t number, const char *method, char *value) { printf("Attempting to log Variant Sensor 0x%02x via %s with a value of %s\n", number, method, value); strcpy(g_results_method, method); strcpy(g_results_value, value); return 0; } int set_sensor_dbus_state(uint8_t number, const char *method, const char *value) { printf("Attempting to log Sensor 0x%02x via %s with a value of %s\n", number, method, value); strcpy(g_results_method, method); strcpy(g_results_value, value); 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; }