diff options
Diffstat (limited to 'testit.cpp')
-rw-r--r-- | testit.cpp | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/testit.cpp b/testit.cpp new file mode 100644 index 0000000..a0cd2c1 --- /dev/null +++ b/testit.cpp @@ -0,0 +1,120 @@ + +#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; +}
\ No newline at end of file |