Build chip data from new JSON format
The chip data XML format has been deprecated and the new JSON format
will be used going forward.
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
Change-Id: I2f44ae7bb921c9ab38c2664ab5cc2a9d6e2fd66a
diff --git a/test/simulator/simulator.cpp b/test/simulator/simulator.cpp
index bca2b99..408d14a 100644
--- a/test/simulator/simulator.cpp
+++ b/test/simulator/simulator.cpp
@@ -13,10 +13,10 @@
const std::map<SimulatorData::SimChipType, const char*>
SimulatorData::cv_chipPath = {
{SAMPLE, "../test/simulator/sample_data/sample.cdb"},
- {EXPLORER_11, "xml/chip_data_explorer_11.cdb"},
- {EXPLORER_20, "xml/chip_data_explorer_20.cdb"},
- {P10_10, "xml/chip_data_p10_10.cdb"},
- {P10_20, "xml/chip_data_p10_20.cdb"},
+ {EXPLORER_11, "chip_data/chip_data_explorer_11.cdb"},
+ {EXPLORER_20, "chip_data/chip_data_explorer_20.cdb"},
+ {P10_10, "chip_data/chip_data_p10_10.cdb"},
+ {P10_20, "chip_data/chip_data_p10_20.cdb"},
};
//------------------------------------------------------------------------------
@@ -73,6 +73,35 @@
//------------------------------------------------------------------------------
+const char* __attn(AttentionType_t i_type)
+{
+ const char* str = "";
+ switch (i_type)
+ {
+ case ATTN_TYPE_CHIP_CS:
+ str = "CHIP_CS";
+ break;
+ case ATTN_TYPE_UNIT_CS:
+ str = "UNIT_CS";
+ break;
+ case ATTN_TYPE_RECOVERABLE:
+ str = "RECOVERABLE";
+ break;
+ case ATTN_TYPE_SP_ATTN:
+ str = "SP_ATTN";
+ break;
+ case ATTN_TYPE_HOST_ATTN:
+ str = "HOST_ATTN";
+ break;
+ default:
+ HEI_ERR("Unsupported attention type: %u", i_type);
+ assert(0);
+ }
+ return str;
+}
+
+//------------------------------------------------------------------------------
+
void SimulatorData::endIteration()
{
// Start by calling libhei::isolate().
@@ -95,23 +124,44 @@
// Get the list of signatures found in isolation.
std::vector<Signature> givenSigList = isoData.getSignatureList();
- // Verify the expected list and given list are the same.
- ASSERT_EQ(iv_expSigList.size(), givenSigList.size());
-
- std::sort(iv_expSigList.begin(), iv_expSigList.end());
- std::sort(givenSigList.begin(), givenSigList.end());
-
- /* TODO: Currently used for debug. Eventually, we want this written to file.
- for (const auto& s : givenSigList)
+ // Print out the expected signature list and verify matches with given list.
+ HEI_INF("Signature summary:")
+ bool mismatch = false;
+ for (const auto& e : iv_expSigList)
{
- HEI_INF("Signature: %s 0x%04x %u %u %u",
- (const char*)s.getChip().getChip(), s.getId(), s.getInstance(),
- s.getBit(), s.getAttnType());
- }
- */
+ auto gItr = std::find(givenSigList.begin(), givenSigList.end(), e);
+ if (givenSigList.end() != gItr)
+ {
+ HEI_INF(" Match: %s 0x%04x %2u %2u %s",
+ (const char*)e.getChip().getChip(), e.getId(),
+ e.getInstance(), e.getBit(), __attn(e.getAttnType()));
- ASSERT_TRUE(std::equal(givenSigList.begin(), givenSigList.end(),
- iv_expSigList.begin()));
+ // Remove from given signature list so we can determine if there are
+ // any leftovers at the end.
+ givenSigList.erase(gItr);
+ }
+ else
+ {
+ HEI_INF(" No match: %s 0x%04x %2u %2u %s",
+ (const char*)e.getChip().getChip(), e.getId(),
+ e.getInstance(), e.getBit(), __attn(e.getAttnType()));
+
+ mismatch = true;
+ }
+ }
+
+ // Print out any leftover signatures from the given list.
+ for (const auto& g : givenSigList)
+ {
+ HEI_INF(" Unexpected: %s 0x%04x %2u %2u %s",
+ (const char*)g.getChip().getChip(), g.getId(), g.getInstance(),
+ g.getBit(), __attn(g.getAttnType()));
+
+ mismatch = true;
+ }
+
+ // Final check for mismatches.
+ ASSERT_FALSE(mismatch);
// The iteration is complete so we can flush the data.
flushIterationData();
diff --git a/test/simulator/testcases/exp20_foxhound7.cpp b/test/simulator/testcases/exp20_foxhound7.cpp
index 65a4966..e75f223 100644
--- a/test/simulator/testcases/exp20_foxhound7.cpp
+++ b/test/simulator/testcases/exp20_foxhound7.cpp
@@ -9,7 +9,7 @@
REG_SCOM(ocmb0, 0x08040000, 0x1000000000000000) // OCMB_CHIPLET_CS_FIR
REG_SCOM(ocmb0, 0x0804000a, 0x0000000001000000) // OCMB_LFIR
-EXP_SIG(ocmb0, 0xbdcd, 0, 39, UNIT_CS)
+EXP_SIG(ocmb0, 0xbdcd, 0, 39, CHIP_CS)
END_ITERATION
diff --git a/test/simulator/testcases/omi_dl_fatal.cpp b/test/simulator/testcases/omi_dl_fatal.cpp
index 1284462..b08f44f 100644
--- a/test/simulator/testcases/omi_dl_fatal.cpp
+++ b/test/simulator/testcases/omi_dl_fatal.cpp
@@ -203,7 +203,7 @@
REG_SCOM(ocmb1, 0x08012800, 0x8000000000000000) // OMI_DL_FIR[0]
REG_SCOM(ocmb1, 0x08012813, 0x0000000000000001) // OMI_DL_ERR_RPT[63]
-EXP_SIG(ocmb1, 0xbbd3, 0, 63, UNIT_CS)
+EXP_SIG(ocmb1, 0xbbd3, 0, 63, CHIP_CS)
END_ITERATION