summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/build/citest/etc/patches/centaur.act.patch20
-rw-r--r--src/build/citest/etc/patches/patchlist.txt5
-rwxr-xr-xsrc/build/citest/etc/workarounds.postsimsetup6
-rw-r--r--src/usr/diag/attn/attnbits.H4
-rw-r--r--src/usr/diag/attn/attnsvc.C67
-rw-r--r--src/usr/diag/attn/attntarget.C3
-rw-r--r--src/usr/diag/attn/test/attnfakeprd.C14
-rw-r--r--src/usr/diag/attn/test/attnfakeprd.H8
-rw-r--r--src/usr/diag/attn/test/attnfakesys.H3
-rw-r--r--src/usr/diag/attn/test/attninject.H92
-rw-r--r--src/usr/diag/attn/test/attnmeminject.C79
-rw-r--r--src/usr/diag/attn/test/attnmeminject.H112
-rw-r--r--src/usr/diag/attn/test/attnrandsource.C11
-rw-r--r--src/usr/diag/attn/test/attnrandsource.H8
-rw-r--r--src/usr/diag/attn/test/attntest.H1
-rw-r--r--src/usr/diag/attn/test/attntestmem.H78
-rw-r--r--src/usr/diag/attn/test/attntestproc.H8
-rw-r--r--src/usr/diag/attn/test/makefile2
-rw-r--r--src/usr/diag/mdia/makefile2
19 files changed, 490 insertions, 33 deletions
diff --git a/src/build/citest/etc/patches/centaur.act.patch b/src/build/citest/etc/patches/centaur.act.patch
new file mode 100644
index 000000000..099132b85
--- /dev/null
+++ b/src/build/citest/etc/patches/centaur.act.patch
@@ -0,0 +1,20 @@
+--- centaur.act.old 2012-11-29 13:26:32.062325973 -0500
++++ centaur.act 2012-11-29 13:26:55.228400406 -0500
+@@ -187,7 +187,7 @@ CAUSE_EFFECT {
+ WATCH=[REG(0x0301060C)] #MBMSR=0301060C
+ CAUSE: TARGET=[REG(0x0301060C)] OP=[BIT,OFF] BIT=[0] # Maint Cmd Complete
+ CAUSE: TARGET=[REG(0x0301060F)] OP=[BIT,ON] BIT=[11] # Enable Special attn
+- #EFFECT: TARGET=[REG(0x03010611)] OP=[BIT,ON] BIT=[0] # Set Special attn bit
++ EFFECT: TARGET=[REG(0x03010611)] OP=[BIT,ON] BIT=[0] # Set Special attn bit
+ }
+
+ #Set command in progress
+@@ -223,7 +223,7 @@ CAUSE_EFFECT {
+ WATCH=[REG(0x03010E0C)] #MBMSR=03010E0C
+ CAUSE: TARGET=[REG(0x03010E0C)] OP=[BIT,OFF] BIT=[0] # Maint Cmd Complete
+ CAUSE: TARGET=[REG(0x03010E0F)] OP=[BIT,ON] BIT=[11] # Enable Special attn
+- #EFFECT: TARGET=[REG(0x03010E11)] OP=[BIT,ON] BIT=[0] # Set Special attn bit
++ EFFECT: TARGET=[REG(0x03010E11)] OP=[BIT,ON] BIT=[0] # Set Special attn bit
+ }
+
+ #***************************************
diff --git a/src/build/citest/etc/patches/patchlist.txt b/src/build/citest/etc/patches/patchlist.txt
index e0cbde4d1..15fd3a66c 100644
--- a/src/build/citest/etc/patches/patchlist.txt
+++ b/src/build/citest/etc/patches/patchlist.txt
@@ -5,3 +5,8 @@ Brief description of the problem or reason for patch
-Files: list of files
-Coreq: list of associated changes, e.g. workarounds.presimsetup
+New actions for Centaur maint command complete
+-RTC: Task 59218 will remove the patch
+-CMVC: D862701 is integrating the changes
+-Files: centaur.act.patch
+-Coreq: there are related changes in workarounds.postsimsetup
diff --git a/src/build/citest/etc/workarounds.postsimsetup b/src/build/citest/etc/workarounds.postsimsetup
index 5a07ef344..e56c08ef5 100755
--- a/src/build/citest/etc/workarounds.postsimsetup
+++ b/src/build/citest/etc/workarounds.postsimsetup
@@ -26,3 +26,9 @@
## to setup the sandbox
##
+### Updates to handle maint command complete (Remove with RTC:59218)
+echo "+++ Update cec-chip files for Centaur maint command complete."
+mkdir -p $sb/simu/data/cec-chip/
+cp $bb/src/simu/data/cec-chip/centaur.act $sb/simu/data/cec-chip/centaur.act
+patch -p0 $sb/simu/data/cec-chip/centaur.act $HOSTBOOTROOT/src/build/citest/etc/patches/centaur.act.patch
+###
diff --git a/src/usr/diag/attn/attnbits.H b/src/usr/diag/attn/attnbits.H
index 23ad10b49..534e72bc7 100644
--- a/src/usr/diag/attn/attnbits.H
+++ b/src/usr/diag/attn/attnbits.H
@@ -256,6 +256,10 @@ enum
PSI_HB_IRQ_SRC_CMP_ADDR = 0x0201091b,
PSI_HB_IRSN = 0x18,
PSI_HB_IRSN_MASK = 0x7FFF8,
+ INTR_TYPE_LCL_ERR_STATUS_REG = 0x1020000,
+ INTR_TYPE_MASK_REG = 0x102000c,
+ INTR_TYPE_CONFIG_REG = 0x102000f,
+ GP2_REG = 0x2000002,
};
}
#endif
diff --git a/src/usr/diag/attn/attnsvc.C b/src/usr/diag/attn/attnsvc.C
index fecde1509..47f814144 100644
--- a/src/usr/diag/attn/attnsvc.C
+++ b/src/usr/diag/attn/attnsvc.C
@@ -179,12 +179,73 @@ errlHndl_t Service::configureInterrupts(
break;
}
- // unmask interrupts in ipoll mask
-
uint64_t mask = 0;
+
+ // clear status
+
+ if(i_mode == UP)
+ {
+ err = putScom(*it, INTR_TYPE_LCL_ERR_STATUS_REG, 0);
+ }
+
+ if(err)
+ {
+ break;
+ }
+
+ // unmask lcl err intr
+
+ mask = 0x8000000000000000ull;
+
+ err = modifyScom(
+ *it,
+ INTR_TYPE_MASK_REG,
+ i_mode == UP ? ~mask : mask,
+ i_mode == UP ? SCOM_AND : SCOM_OR);
+
+ if(err)
+ {
+ break;
+ }
+
+ // set lcl err intr conf - or
+
+ if(i_mode == UP)
+ {
+ err = modifyScom(*it, INTR_TYPE_CONFIG_REG, ~mask, SCOM_AND);
+ }
+
+ if(err)
+ {
+ break;
+ }
+
+ // enable powerbus gpin
+
+ mask = 0x0018000000000000ull;
+
+ err = modifyScom(
+ *it,
+ GP2_REG,
+ i_mode == UP ? mask : ~mask,
+ i_mode == UP ? SCOM_OR : SCOM_AND);
+
+ if(err)
+ {
+ break;
+ }
+
+ // enable interrupts in ipoll mask
+
+ mask = 0;
+
IPOLL::forEach(~0, &mask, &getMask);
- err = modifyScom(*it, IPOLL::address, ~mask, SCOM_AND);
+ err = modifyScom(
+ *it,
+ IPOLL::address,
+ i_mode == UP ? ~mask : mask,
+ i_mode == UP ? SCOM_AND : SCOM_OR);
if(err)
{
diff --git a/src/usr/diag/attn/attntarget.C b/src/usr/diag/attn/attntarget.C
index b3a509904..2cc15d79d 100644
--- a/src/usr/diag/attn/attntarget.C
+++ b/src/usr/diag/attn/attntarget.C
@@ -28,6 +28,7 @@
*/
#include "attntarget.H"
+#include "attntrace.H"
#include "targeting/common/predicates/predicates.H"
#include "targeting/common/utilFilter.H"
#include <util/singleton.H>
@@ -144,7 +145,7 @@ TargetHandle_t TargetServiceImpl::getMcs(
i_proc,
TARGETING::TargetService::CHILD_BY_AFFINITY,
TARGETING::TargetService::ALL,
- &chipUnitMatch);
+ &pred);
if(list.size() == 1)
{
diff --git a/src/usr/diag/attn/test/attnfakeprd.C b/src/usr/diag/attn/test/attnfakeprd.C
index f4f6bd4a1..63030aaaf 100644
--- a/src/usr/diag/attn/test/attnfakeprd.C
+++ b/src/usr/diag/attn/test/attnfakeprd.C
@@ -28,7 +28,7 @@
*/
#include "attnfakeprd.H"
-#include "attnfakesys.H"
+#include "attninject.H"
#include "../attnops.H"
#include "../attnlist.H"
#include <sys/time.h>
@@ -40,7 +40,7 @@ namespace ATTN
struct Clear
{
- Clear(FakeSystem & i_system) : iv_system(&i_system), err(0) {}
+ Clear(InjectSink & i_injectSink) : iv_injectSink(&i_injectSink), err(0) {}
void operator()(const Attention & i_attention)
{
@@ -61,22 +61,22 @@ struct Clear
// to see attentions that were not cleared and call PRD
// again
- err = iv_system->clearAllAttentions(d);
+ err = iv_injectSink->clearAllAttentions(d);
}
}
}
- FakeSystem * iv_system;
+ InjectSink * iv_injectSink;
errlHndl_t err;
};
errlHndl_t FakePrd::callPrd(const AttentionList & i_attentions)
{
- return i_attentions.forEach(Clear(*iv_system)).err;
+ return i_attentions.forEach(Clear(*iv_injectSink)).err;
}
-FakePrd::FakePrd(FakeSystem & i_system) :
- iv_system(&i_system)
+FakePrd::FakePrd(InjectSink & i_injectSink) :
+ iv_injectSink(&i_injectSink)
{
}
diff --git a/src/usr/diag/attn/test/attnfakeprd.H b/src/usr/diag/attn/test/attnfakeprd.H
index 0e35410ce..e3c907a91 100644
--- a/src/usr/diag/attn/test/attnfakeprd.H
+++ b/src/usr/diag/attn/test/attnfakeprd.H
@@ -49,10 +49,10 @@ class FakePrd : public PrdImpl
/**
* @brief ctor
*
- * @param[in] i_system The system where attentions
+ * @param[in] i_injectSink The system where attentions
* should be cleared.
*/
- explicit FakePrd(FakeSystem & i_system);
+ explicit FakePrd(InjectSink & i_injectSink);
/**
* @brief dtor
@@ -77,10 +77,10 @@ class FakePrd : public PrdImpl
private:
/**
- * @brief iv_system The system where attentions should
+ * @brief iv_injectSink The system where attentions should
* be cleared.
*/
- FakeSystem * iv_system;
+ InjectSink * iv_injectSink;
};
}
#endif
diff --git a/src/usr/diag/attn/test/attnfakesys.H b/src/usr/diag/attn/test/attnfakesys.H
index 0ed52927b..e8d8dc35e 100644
--- a/src/usr/diag/attn/test/attnfakesys.H
+++ b/src/usr/diag/attn/test/attnfakesys.H
@@ -33,6 +33,7 @@
#include "../attnscom.H"
#include "attntest.H"
#include "attncomp.H"
+#include "attninject.H"
#include <map>
namespace ATTN
@@ -44,7 +45,7 @@ namespace ATTN
* Container that presents an interface to fake hardware
* implementations.
*/
-class FakeSystem : public ScomImpl
+class FakeSystem : public ScomImpl, public InjectSink
{
public:
diff --git a/src/usr/diag/attn/test/attninject.H b/src/usr/diag/attn/test/attninject.H
new file mode 100644
index 000000000..76f4298d6
--- /dev/null
+++ b/src/usr/diag/attn/test/attninject.H
@@ -0,0 +1,92 @@
+/* IBM_PROLOG_BEGIN_TAG
+ * This is an automatically generated prolog.
+ *
+ * $Source: src/usr/diag/attn/test/attninject.H $
+ *
+ * IBM CONFIDENTIAL
+ *
+ * COPYRIGHT International Business Machines Corp. 2012
+ *
+ * p1
+ *
+ * Object Code Only (OCO) source materials
+ * Licensed Internal Code Source Materials
+ * IBM HostBoot Licensed Internal Code
+ *
+ * The source code for this program is not published or other-
+ * wise divested of its trade secrets, irrespective of what has
+ * been deposited with the U.S. Copyright Office.
+ *
+ * Origin: 30
+ *
+ * IBM_PROLOG_END_TAG
+ */
+#ifndef __TEST_ATTNINJECT_H
+#define __TEST_ATTNINJECT_H
+
+/**
+ * @file attninject.H
+ *
+ * @brief
+ */
+
+#include "attntest.H"
+
+namespace ATTN
+{
+
+/**
+ * @brief InjectSink Attention inject interface.
+ *
+ * Interface definition for classes wishing to allow injection.
+ */
+class InjectSink
+{
+ public:
+
+ /**
+ * @brief dtor
+ */
+ virtual ~InjectSink() {}
+
+ /**
+ * @brief putAttentions
+ *
+ * Instruct the system to inject the specified attention.
+ *
+ * @param[in] i_list The attentions to inject.
+ *
+ * @retval[0] No error occurred.
+ * @retval[!0] Unexpected error occurred.
+ */
+ virtual errlHndl_t putAttentions(
+ const PRDF::AttnList & i_list) = 0;
+
+ /**
+ * @brief clearAttention
+ *
+ * Instruct the system clear the specified attention.
+ *
+ * @param[in] i_attn The attention to clear.
+ *
+ * @retval[0] No error occurred.
+ * @retval[!0] Unexpected error occurred.
+ */
+ virtual errlHndl_t clearAttention(
+ const PRDF::AttnData & i_attn) = 0;
+
+ /**
+ * @brief clearAllAttentions
+ *
+ * Instruct the system clear all instances of the specified attention.
+ *
+ * @param[in] i_attn The attention to clear.
+ *
+ * @retval[0] No error occurred.
+ * @retval[!0] Unexpected error occurred.
+ */
+ virtual errlHndl_t clearAllAttentions(
+ const PRDF::AttnData & i_attn) = 0;
+};
+}
+#endif
diff --git a/src/usr/diag/attn/test/attnmeminject.C b/src/usr/diag/attn/test/attnmeminject.C
new file mode 100644
index 000000000..90cf5aaf2
--- /dev/null
+++ b/src/usr/diag/attn/test/attnmeminject.C
@@ -0,0 +1,79 @@
+/* IBM_PROLOG_BEGIN_TAG
+ * This is an automatically generated prolog.
+ *
+ * $Source: src/usr/diag/attn/test/attnmeminject.C $
+ *
+ * IBM CONFIDENTIAL
+ *
+ * COPYRIGHT International Business Machines Corp. 2012
+ *
+ * p1
+ *
+ * Object Code Only (OCO) source materials
+ * Licensed Internal Code Source Materials
+ * IBM HostBoot Licensed Internal Code
+ *
+ * The source code for this program is not published or other-
+ * wise divested of its trade secrets, irrespective of what has
+ * been deposited with the U.S. Copyright Office.
+ *
+ * Origin: 30
+ *
+ * IBM_PROLOG_END_TAG
+ */
+#include "attnmeminject.H"
+#include "../attnscom.H"
+#include "../attntarget.H"
+
+using namespace PRDF;
+using namespace TARGETING;
+using namespace std;
+
+namespace ATTN
+{
+
+errlHndl_t MemInjectSink::putAttention(const AttnData & i_attn)
+{
+ return putScom(
+ getTargetService().getMcs(i_attn.targetHndl),
+ MCI::address,
+ ~0);
+}
+
+errlHndl_t MemInjectSink::putAttentions(
+ const AttnList & i_list)
+{
+ errlHndl_t err = 0;
+
+ AttnList::const_iterator it = i_list.begin();
+
+ while(it != i_list.end())
+ {
+ err = putAttention(*it);
+
+ if(err)
+ {
+ break;
+ }
+
+ ++it;
+ }
+
+ return err;
+}
+
+errlHndl_t MemInjectSink::clearAttention(
+ const AttnData & i_attn)
+{
+ return putScom(
+ getTargetService().getMcs(i_attn.targetHndl),
+ MCI::address,
+ 0);
+}
+
+errlHndl_t MemInjectSink::clearAllAttentions(
+ const AttnData & i_attn)
+{
+ return clearAttention(i_attn);
+}
+}
diff --git a/src/usr/diag/attn/test/attnmeminject.H b/src/usr/diag/attn/test/attnmeminject.H
new file mode 100644
index 000000000..af0e01f83
--- /dev/null
+++ b/src/usr/diag/attn/test/attnmeminject.H
@@ -0,0 +1,112 @@
+/* IBM_PROLOG_BEGIN_TAG
+ * This is an automatically generated prolog.
+ *
+ * $Source: src/usr/diag/attn/test/attnmeminject.H $
+ *
+ * IBM CONFIDENTIAL
+ *
+ * COPYRIGHT International Business Machines Corp. 2012
+ *
+ * p1
+ *
+ * Object Code Only (OCO) source materials
+ * Licensed Internal Code Source Materials
+ * IBM HostBoot Licensed Internal Code
+ *
+ * The source code for this program is not published or other-
+ * wise divested of its trade secrets, irrespective of what has
+ * been deposited with the U.S. Copyright Office.
+ *
+ * Origin: 30
+ *
+ * IBM_PROLOG_END_TAG
+ */
+#ifndef __TEST_ATTNMEMINJECT_H
+#define __TEST_ATTNMEMINJECT_H
+
+/**
+ * @file attnmeminject.H
+ *
+ * @brief
+ */
+
+#include "attntest.H"
+#include "attncomp.H"
+#include "attninject.H"
+
+namespace ATTN
+{
+
+/**
+ * @brief InjectSink Attention inject interface.
+ *
+ * Turns the MCI FIR on or off.
+ */
+class MemInjectSink : public InjectSink
+{
+ public:
+
+ /**
+ * @brief dtor
+ */
+ ~MemInjectSink() {}
+
+ /**
+ * @brief putAttentions
+ *
+ * Instruct the system to inject the specified attention.
+ *
+ * @param[in] i_list The attentions to inject.
+ *
+ * @retval[0] No error occurred.
+ * @retval[!0] Unexpected error occurred.
+ */
+ errlHndl_t putAttentions(
+ const PRDF::AttnList & i_list);
+
+ /**
+ * @brief clearAttention
+ *
+ * Instruct the system clear the specified attention.
+ *
+ * @param[in] i_attn The attention to clear.
+ *
+ * @retval[0] No error occurred.
+ * @retval[!0] Unexpected error occurred.
+ */
+ errlHndl_t clearAttention(
+ const PRDF::AttnData & i_attn);
+
+ /**
+ * @brief clearAllAttentions
+ *
+ * Instruct the system clear all instances of the specified attention.
+ *
+ * @param[in] i_attn The attention to clear.
+ *
+ * @retval[0] No error occurred.
+ * @retval[!0] Unexpected error occurred.
+ */
+ errlHndl_t clearAllAttentions(
+ const PRDF::AttnData & i_attn);
+
+ private:
+
+ /**
+ * @brief putAttention
+ *
+ * Instruct the system to inject the specified attention.
+ *
+ * @param[in] i_attn The attention to inject.
+ *
+ * @retval[0] No error occurred.
+ * @retval[!0] Unexpected error occurred.
+ */
+ errlHndl_t putAttention(const PRDF::AttnData & i_attn);
+
+ AttnDataMap<uint64_t> iv_map;
+
+ mutex_t iv_mutex;
+};
+}
+#endif
diff --git a/src/usr/diag/attn/test/attnrandsource.C b/src/usr/diag/attn/test/attnrandsource.C
index b6d71d18d..1856193c0 100644
--- a/src/usr/diag/attn/test/attnrandsource.C
+++ b/src/usr/diag/attn/test/attnrandsource.C
@@ -28,7 +28,8 @@
*/
#include "attnrandsource.H"
-#include "attnfakesys.H"
+#include "attninject.H"
+#include "../attntrace.H"
#include "sys/time.h"
using namespace PRDF;
@@ -51,6 +52,8 @@ bool RandSource::start()
success = iv_tid != 0;
+ ATTN_DBG("RandSource started: %d", iv_tid);
+
mutex_unlock(&iv_mutex);
return success;
@@ -111,20 +114,20 @@ void RandSource::run()
l.push_back(d);
}
- iv_system->putAttentions(l);
+ iv_injectSink->putAttentions(l);
}
}
RandSource::RandSource(
uint64_t i_iterations,
uint64_t i_maxAttnsPerIteration,
- FakeSystem & i_system,
+ InjectSink & i_injectSink,
TargetHandle_t * i_first,
TargetHandle_t * i_last)
: iv_tid(0),
iv_iterations(i_iterations),
iv_max(i_maxAttnsPerIteration),
- iv_system(&i_system),
+ iv_injectSink(&i_injectSink),
iv_first(i_first),
iv_last(i_last)
{
diff --git a/src/usr/diag/attn/test/attnrandsource.H b/src/usr/diag/attn/test/attnrandsource.H
index c5e8a1db3..a3ac88aef 100644
--- a/src/usr/diag/attn/test/attnrandsource.H
+++ b/src/usr/diag/attn/test/attnrandsource.H
@@ -69,7 +69,7 @@ class RandSource
* @param[in] i_iterations The number of attentions to inject.
* @param[in] i_maxAttnsPerIteration The upper bound on the number
* of attentions to inject per iteration.
- * @param[in] i_system The fake hardware on which to inject attentions.
+ * @param[in] i_injectSink The hardware on which to inject attentions.
* @param[in] i_first The start of the range from which to
* generate attentions.
* @param[in] i_last The end of the range from which to
@@ -78,7 +78,7 @@ class RandSource
RandSource(
uint64_t i_iterations,
uint64_t i_maxAttnsPerIteration,
- FakeSystem & i_system,
+ InjectSink & i_injectSink,
TARGETING::TargetHandle_t * i_rangeStart,
TARGETING::TargetHandle_t * i_rangeEnd);
@@ -123,9 +123,9 @@ class RandSource
uint64_t iv_max;
/**
- * @brief iv_system The system on which attentions are injected.
+ * @brief iv_injectSink The system on which attentions are injected.
*/
- FakeSystem * iv_system;
+ InjectSink * iv_injectSink;
/**
* @brief iv_rangeStart The start of the range from which to
diff --git a/src/usr/diag/attn/test/attntest.H b/src/usr/diag/attn/test/attntest.H
index 21e5964ca..fba8d4c17 100644
--- a/src/usr/diag/attn/test/attntest.H
+++ b/src/usr/diag/attn/test/attntest.H
@@ -42,6 +42,7 @@ struct AttnDataEq;
class FakeSystem;
class FakeReg;
class FakeSource;
+class InjectSink;
/**
* @brief randint Generate random integer between bounds.
diff --git a/src/usr/diag/attn/test/attntestmem.H b/src/usr/diag/attn/test/attntestmem.H
index 9b472761b..84a98d084 100644
--- a/src/usr/diag/attn/test/attntestmem.H
+++ b/src/usr/diag/attn/test/attntestmem.H
@@ -43,6 +43,7 @@
#include "attnrandsource.H"
#include "attnfaketarget.H"
#include "attnvalidate.H"
+#include "attnmeminject.H"
#include <cxxtest/TestSuite.H>
#include <sys/time.h>
@@ -346,16 +347,16 @@ class AttnMemTest: public CxxTest::TestSuite
}
/**
- * @brief testAttentions Unit test for the
+ * @brief testFakeAttentions Unit test for the
* attnmem module.
*/
- void testAttentions()
+ void testFakeAttentions()
{
static const uint64_t targetPoolSize = 8;
static const uint64_t iterations = 5;
static const uint64_t maxAttentionsPerIteration = 5;
- TS_TRACE(ENTER_MRK "testAttentions");
+ TS_TRACE(ENTER_MRK "testFakeAttentions");
errlHndl_t err = 0;
@@ -460,6 +461,77 @@ class AttnMemTest: public CxxTest::TestSuite
v.dump();
}
+ TS_TRACE(EXIT_MRK "testFakeAttentions");
+ }
+
+ /**
+ * @brief testAttentions Unit test for the
+ * attnmem module.
+ */
+ void testAttentions(void)
+ {
+ static const uint64_t iterations = 1;
+ static const uint64_t maxAttnsPerIteration = 1;
+
+ TS_TRACE(ENTER_MRK "testAttentions");
+
+ errlHndl_t err = 0;
+
+ Service svc;
+ MemInjectSink sink;
+
+ TargetHandleList membufs;
+
+ getTargetService().getAllChips(
+ membufs,
+ TYPE_MEMBUF);
+
+ RandSource source(
+ iterations,
+ maxAttnsPerIteration,
+ sink,
+ &membufs[0],
+ &membufs[0] + membufs.size());
+
+ FakePrd prd(sink);
+
+ prd.installPrd();
+
+ do
+ {
+ err = svc.start();
+
+ if(err)
+ {
+ TS_FAIL("unexpected error starting service");
+ break;
+ }
+
+ if(!source.start())
+ {
+ TS_FAIL("unexpected error starting source");
+ break;
+ }
+
+ // wait for the testcase to finish injecting attentions
+
+ if(!source.wait())
+ {
+ TS_FAIL("unexpected error waiting for source");
+ break;
+ }
+
+ } while(0);
+
+ err = svc.stop();
+
+ if(err)
+ {
+ TS_FAIL("unexpected error stopping service");
+
+ delete err;
+ }
+
TS_TRACE(EXIT_MRK "testAttentions");
}
};
diff --git a/src/usr/diag/attn/test/attntestproc.H b/src/usr/diag/attn/test/attntestproc.H
index a9f8001a1..0d38ee894 100644
--- a/src/usr/diag/attn/test/attntestproc.H
+++ b/src/usr/diag/attn/test/attntestproc.H
@@ -340,16 +340,16 @@ class AttnProcTest: public CxxTest::TestSuite
}
/**
- * @brief testAttentions Unit test for the
+ * @brief testFakeAttentions Unit test for the
* attnproc module.
*/
- void testAttentions()
+ void testFakeAttentions()
{
static const uint64_t targetPoolSize = 8;
static const uint64_t iterations = 5;
static const uint64_t maxAttnsPerIteration = 5;
- TS_TRACE(ENTER_MRK "testAttentions");
+ TS_TRACE(ENTER_MRK "testFakeAttentions");
errlHndl_t err = 0;
@@ -461,7 +461,7 @@ class AttnProcTest: public CxxTest::TestSuite
v.dump();
}
- TS_TRACE(EXIT_MRK "testAttentions");
+ TS_TRACE(EXIT_MRK "testFakeAttentions");
}
};
#endif
diff --git a/src/usr/diag/attn/test/makefile b/src/usr/diag/attn/test/makefile
index 74d7b1777..4159eb873 100644
--- a/src/usr/diag/attn/test/makefile
+++ b/src/usr/diag/attn/test/makefile
@@ -26,7 +26,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/include/usr/diag
OBJS = attnfakesys.o attntest.o attnrand.o attnfakepresenter.o attnfakeprd.o \
attnfaketarget.o attnrandsource.o attnfakegfir.o attnfakeipoll.o \
- attnvalidate.o attnfakemcs.o attnfakegp1.o
+ attnvalidate.o attnfakemcs.o attnfakegp1.o attnmeminject.o
MODULE = testattn
diff --git a/src/usr/diag/mdia/makefile b/src/usr/diag/mdia/makefile
index 528a9d905..c16ab51c5 100644
--- a/src/usr/diag/mdia/makefile
+++ b/src/usr/diag/mdia/makefile
@@ -41,7 +41,7 @@ OBJS = mdiamonitor.o mdiatrace.o mdiaworkitem.o mdiamba.o mdia.o mdiasm.o
SUBDIRS = test.d
-ifndef MDIA_NO_POLLING
+ifdef MDIA_POLLING
CUSTOMFLAGS += -DMDIA_DO_POLLING=1
endif
OpenPOWER on IntegriCloud