[PATCH phosphor-host-ipmid 4/5] Added testcases for sensor record parsing
OpenBMC Patches
patches at stwcx.xyz
Fri Oct 16 23:20:54 AEDT 2015
From: Chris Austen <austenc at us.ibm.com>
---
Makefile | 14 ++++--
testit.C | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 173 insertions(+), 3 deletions(-)
create mode 100644 testit.C
diff --git a/Makefile b/Makefile
index e27fe2d..f9580bd 100755
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,17 @@
CXX ?= $(CROSS_COMPILE)g++
+TESTER = testit
+
DAEMON = ipmid
DAEMON_OBJ = $(DAEMON).o
LIB_APP_OBJ = apphandler.o \
sensorhandler.o \
storagehandler.o \
dcmihandler.o \
- ipmisensor.o
+
+
+TESTER_OBJ = ipmisensor.o \
+ testit.o
LIB_APP = libapphandler.so
@@ -14,7 +19,7 @@ INC_FLAG += $(shell pkg-config --cflags --libs libsystemd) -I. -O2 --std=gnu++11
LIB_FLAG += $(shell pkg-config --libs libsystemd) -rdynamic
IPMID_PATH ?= -DHOST_IPMI_LIB_PATH=\"/usr/lib/host-ipmid/\"
-all: $(DAEMON) $(LIB_APP)
+all: $(DAEMON) $(LIB_APP) $(TESTER)
%.o: %.C
$(CXX) -fpic -c $< $(CXXFLAGS) $(INC_FLAG) $(IPMID_PATH) -o $@
@@ -25,5 +30,8 @@ $(LIB_APP): $(LIB_APP_OBJ)
$(DAEMON): $(DAEMON_OBJ)
$(CXX) $^ $(LDFLAGS) $(LIB_FLAG) -o $@ -ldl
+$(TESTER): $(TESTER_OBJ)
+ $(CXX) $^ $(LDFLAGS) $(LIB_FLAG) -o $@ -ldl
+
clean:
- rm -f $(DAEMON) *.o *.so
\ No newline at end of file
+ rm -f $(DAEMON) $(TESTER) *.o *.so
\ No newline at end of file
diff --git a/testit.C b/testit.C
new file mode 100644
index 0000000..0641a55
--- /dev/null
+++ b/testit.C
@@ -0,0 +1,162 @@
+
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+
+
+unsigned char g_sensortype [][2] = {
+ {0xc7, 58},
+{0x01, 113},
+{0xc7, 56},
+{0x01, 114},
+{0xc6, 54},
+{0x07, 40},
+{0xC1, 121},
+{0xC2, 137},
+{0x07, 36},
+{0x07, 43},
+{0xC1, 122},
+{0xC1, 119},
+{0x01, 12},
+{0x01, 111},
+{0x01, 116},
+{0xC1, 127},
+{0xC2, 134},
+{0xC2, 130},
+{0xc, 33},
+{0xC1, 125},
+{0x01, 115},
+{0x22, 4},
+{0xC2, 138},
+{0x01, 108},
+{0x01, 102},
+{0xc, 46},
+{0x7, 11},
+{0xC1, 120},
+{0x07, 39},
+{0x07, 42},
+{0x5, 21},
+{0xC2, 131},
+{0xc1, 48},
+{0x12, 53},
+{0xC1, 124},
+{0x01, 117},
+{0xC1, 126},
+{0xf, 5},
+{0x23, 0},
+{0xC2, 139},
+{0x07, 34},
+{0x09, 146},
+{0x02, 178},
+{0xC2, 140},
+{0xC1, 118},
+{0xC2, 133},
+{0x07, 38},
+{0xC2, 143},
+{0x01, 101},
+{0xc3, 9},
+{0x7, 10},
+{0xc2, 51},
+{0x01, 109},
+{0xc, 32},
+{0x7, 8},
+{0xC1, 129},
+{0x01, 112},
+{0x01, 107},
+{0x07, 37},
+{0x07, 44},
+{0x1f, 50},
+{0xC2, 144},
+{0xc7, 52},
+{0xC2, 141},
+{0x01, 106},
+{0x01, 110},
+{0x01, 103},
+{0x9, 28},
+{0x07, 35},
+{0xc7, 55},
+{0x03, 179},
+{0x07, 41},
+{0xc, 30},
+{0x01, 100},
+{0xC1, 128},
+{0xC2, 135},
+{0x01, 105},
+{0x7, 47},
+{0xC2, 145},
+{0xc7, 57},
+{0x01, 104},
+{0x07, 45},
+{0xC2, 132},
+{0xc4, 49},
+{0xC1, 123},
+{0xC2, 142},
+{0x01, 13},
+{0xC2, 136},
+{0xc, 31},
+{0xff,0xff}
+};
+
+unsigned char findSensor(char sensor_number) {
+
+ int i=0;
+
+ // TODO : This function should actually call
+ // a dbus object and have it return the data
+ // it is not ready yet so use a Palmetto
+ // based lookup table for now. The g_sensortype
+ // can be removed once the dbus method exists
+ while (g_sensortype[i][0] != 0xff) {
+ if (g_sensortype[i][1] == sensor_number) {
+ break;
+ } else {
+ i++;
+ }
+
+ }
+
+ return g_sensortype[i][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);
+
+ return 0;
+}
+
+
+extern int updateSensorRecordFromSSRAESC(const void *record);
+
+
+
+
+
+uint8_t testrec_boot1[] = {0x05, 0xa9, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00};
+uint8_t testrec_boot2[] = {0x05, 0xa9, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00};
+uint8_t testrec_boot3[] = {0x05, 0xa9, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00};
+uint8_t testrec_boot4[] = {0x05, 0xa9, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00};
+
+
+
+// DIMM Present
+uint8_t testrec_sensor1[] {0x1F, 0xa9, 0x00, 0x40, 0x00, 0x10, 0x00, 0x00};
+
+// DIMM Not present
+uint8_t testrec_sensor2[] {0x1F, 0xa9, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00};
+
+
+uint8_t testrec_bootprogress[] = {05, 0xa9, 0x00, 0x04, 0x00, 0x00, 0x14, 0x00 };
+
+int main() {
+
+ updateSensorRecordFromSSRAESC(testrec_bootprogress);
+ updateSensorRecordFromSSRAESC(testrec_sensor1);
+ updateSensorRecordFromSSRAESC(testrec_sensor2);
+
+
+ return 0;
+}
\ No newline at end of file
--
2.6.0
More information about the openbmc
mailing list