--- a/kerneltest/e32test/power/d_lddpowerseqtest.cpp Mon Oct 04 12:03:52 2010 +0100
+++ b/kerneltest/e32test/power/d_lddpowerseqtest.cpp Mon Oct 04 12:15:59 2010 +0100
@@ -60,6 +60,9 @@
DTest2PowerHandler();
void PowerUp();
void PowerDown(TPowerState);
+ void ActDead();
+private:
+ TBool iActDead;
};
class DTestFactory : public DLogicalDevice
@@ -86,6 +89,8 @@
virtual TInt Request(TInt aReqNo, TAny* a1, TAny* a2);
DTest1PowerHandler power1;
DTest2PowerHandler power2;
+private:
+ TUint iPslShutdownTimeoutMsBackup;
};
@@ -149,6 +154,7 @@
power2.Remove();
//try to remove a handler twice - should not cause any problems
power2.Remove();
+ ((DTestPowerManager*)(Kern::PowerModel()))->iPslShutdownTimeoutMs = iPslShutdownTimeoutMsBackup;
}
TInt DTest1::Request(TInt aReqNo, TAny* a1, TAny* a2)
@@ -192,10 +198,18 @@
// 'Control' functions...
switch(aReqNo)
{
+
// DoControl
case RLddTest1::ESET_SLEEPTIME:
sleepTime = (TUint)a1;
break;
+ case RLddTest1::EPOWER_ACTDEAD_POWER2:
+ power2.ActDead();
+ break;
+ case RLddTest1::EPOWER_ESETPOWERDOWNTIMEOUT:
+ iPslShutdownTimeoutMsBackup = ((DTestPowerManager*)(Kern::PowerModel()))->iPslShutdownTimeoutMs;
+ ((DTestPowerManager*)(Kern::PowerModel()))->iPslShutdownTimeoutMs = (TUint)a1;
+ break;
}
}
@@ -209,7 +223,7 @@
//
}
-DTest2PowerHandler::DTest2PowerHandler():DPowerHandler(KLitPower2)
+DTest2PowerHandler::DTest2PowerHandler():DPowerHandler(KLitPower2), iActDead(EFalse)
{
//
// Power handler2 constructor
@@ -276,5 +290,14 @@
Kern::RequestComplete(aStatus_down2, KErrNone);
- PowerDownDone();
+ if(!iActDead)
+ {
+ PowerDownDone();
+ }
}
+
+void DTest2PowerHandler::ActDead()
+ {
+ iActDead = ETrue;
+ }
+