diff options
Diffstat (limited to 'src/usr/vpd/test/cvpdtest.H')
-rwxr-xr-x | src/usr/vpd/test/cvpdtest.H | 106 |
1 files changed, 91 insertions, 15 deletions
diff --git a/src/usr/vpd/test/cvpdtest.H b/src/usr/vpd/test/cvpdtest.H index 0d2bbbece..cb24d9faf 100755 --- a/src/usr/vpd/test/cvpdtest.H +++ b/src/usr/vpd/test/cvpdtest.H @@ -62,25 +62,48 @@ struct cvpdTestData * NOTE: By reading this entire list, it also validates that the records * and keywords that we expect to be there are actually there... */ -cvpdTestData cvpdData[] = +cvpdTestData cvpdDataNimbus[] = { { CVPD::VEIR, CVPD::pdI }, { CVPD::MER0, CVPD::pdI }, - // @todo RTC 178802 Enable test cases turned off during bring up - //{ CVPD::VSPD, CVPD::pdI }, - //{ CVPD::VSPD, CVPD::MT }, - //{ CVPD::VSPD, CVPD::MR }, - //{ CVPD::VSPD, CVPD::pdA }, - //{ CVPD::VSPD, CVPD::EL }, - //{ CVPD::VSPD, CVPD::LM }, - //{ CVPD::VSPD, CVPD::MW }, - //{ CVPD::VSPD, CVPD::MV }, - //{ CVPD::VSPD, CVPD::AM }, + { CVPD::VSPD, CVPD::pdI }, + { CVPD::VSPD, CVPD::MT }, + { CVPD::VSPD, CVPD::MR }, + { CVPD::VSPD, CVPD::pdA }, + { CVPD::VSPD, CVPD::EL }, + { CVPD::VSPD, CVPD::LM }, + { CVPD::VSPD, CVPD::MW }, + { CVPD::VSPD, CVPD::MV }, + { CVPD::VSPD, CVPD::AM }, { CVPD::VINI, CVPD::VZ }, - //{ CVPD::VSPD, CVPD::MX }, + { CVPD::VSPD, CVPD::MX }, }; +cvpdTestData cvpdDataCumulus[] = +{ + { CVPD::VEIR, CVPD::pdI }, + { CVPD::MER0, CVPD::pdI }, + { CVPD::VINI, CVPD::VZ }, + { CVPD::VINI, CVPD::FN }, + { CVPD::VINI, CVPD::PN }, + { CVPD::VINI, CVPD::HE }, + { CVPD::VINI, CVPD::CT }, + { CVPD::OPFR, CVPD::VD }, + { CVPD::OPFR, CVPD::DR }, + { CVPD::OPFR, CVPD::VP }, + { CVPD::VNDR, CVPD::VD }, + { CVPD::SPDX, CVPD::VM }, + { CVPD::SPDX, CVPD::M0 }, + { CVPD::SPDX, CVPD::M5 }, + { CVPD::SPDX, CVPD::DW }, + { CVPD::SPDX, CVPD::MX }, + { CVPD::SPDX, CVPD::Q0 }, + { CVPD::SPDX, CVPD::K0 }, + +}; + + void getMembufTargets( TargetHandleList & o_membufList ) { // Get top level system target @@ -105,6 +128,38 @@ void getMembufTargets( TargetHandleList & o_membufList ) return; } +bool isNimbusModel(void) +{ + TRACDCOMP( g_trac_vpd, "isNimbusModel() - what model is running"); + + bool isNimbus = false; + TARGETING::TargetService & tS = TARGETING::targetService(); + TARGETING::Target * sysTarget = NULL; + TargetHandleList l_chipList; + tS.getTopLevelTarget( sysTarget ); + assert( sysTarget != NULL ); + + + TARGETING::PredicateCTM predChip( TARGETING::CLASS_CHIP, + TARGETING::TYPE_PROC ); + + tS.getAssociated( l_chipList, + sysTarget, + TARGETING::TargetService::CHILD, + TARGETING::TargetService::ALL, + &predChip ); + + if(TARGETING::MODEL_NIMBUS == + l_chipList[0]->getAttr<TARGETING::ATTR_MODEL>()) + { + isNimbus = true; + } + + TRACDCOMP( g_trac_vpd, "isNimbusModel() exit"); + + return isNimbus; +} + TARGETING::Target* getFunctionalMembufTarget() { TARGETING::Target * theTarget = NULL; @@ -140,6 +195,7 @@ class CVPDTest: public CxxTest::TestSuite { public: + /** * @brief This function will test CVPD reads. */ @@ -166,12 +222,32 @@ class CVPDTest: public CxxTest::TestSuite uint8_t * theData = NULL; size_t theSize = 0; - const uint32_t numCmds = sizeof(cvpdData)/sizeof(cvpdData[0]); + uint32_t numCmds; + + bool isNimbus = isNimbusModel(); + + if(isNimbus) + { + numCmds = sizeof(cvpdDataNimbus)/sizeof(cvpdDataNimbus[0]); + }else + { + numCmds = sizeof(cvpdDataCumulus)/sizeof( + cvpdDataCumulus[0]); + } + for( uint32_t curCmd = 0; curCmd < numCmds; curCmd++ ) { cmds++; - theRecord = (uint64_t)cvpdData[curCmd].record; - theKeyword = (uint64_t)cvpdData[curCmd].keyword; + if(isNimbus) + { + theRecord = (uint64_t)cvpdDataNimbus[curCmd].record; + theKeyword = (uint64_t)cvpdDataNimbus[curCmd].keyword; + }else + { + theRecord = (uint64_t)cvpdDataCumulus[curCmd].record; + theKeyword = (uint64_t)cvpdDataCumulus[curCmd].keyword; + } + err = deviceRead( theTarget, NULL, theSize, |