--- a/kerneltest/e32test/power/t_domain_slave.cpp Thu Aug 12 11:55:14 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32test\power\t_domain_slave.cpp
-//
-//
-
-#include <e32power.h>
-#include <e32test.h>
-#include <domainmember.h>
-#include <domainmanager.h>
-#include <e32panic.h>
-#include <e32debug.h>
-
-LOCAL_D RTest test(_L(" T_DOMAIN_SLAVE "));
-
-// This will be run in its own thread as part of test #1. It should get killed when trying to connect
-// to the manager without appropriate caps set
-TInt IncorrectClient(TAny*)
-{
- RDmDomain domain;
- TInt r = domain.Connect(KDmIdRoot);
-
- RDmDomainManager manager;
- r = manager.Connect();
-
- return(r);
-}
-
-GLDEF_C TInt E32Main()
- {
- test.Title();
- test.Start(_L("Testing"));
-
-// test.Next(_L("test security"));
-
- // Get arguments from the command line
- TInt len = User::CommandLineLength();
- test (len);
- TInt size = len * sizeof(TUint16);
- test (size == sizeof(TInt));
- TInt arg;
- TPtr cmd((TUint16*) &arg, len);
- User::CommandLine(cmd);
-
- TInt expected_result = PlatSec::IsCapabilityEnforced(ECapabilityPowerMgmt) ? KErrPermissionDenied : KErrNone;
-
- switch(arg)
- {
- case 0:
- {
- // This is the original t_domain_slave test, minus the panicking parts which now get
- // tested as case 1.
-
- test.Next(_L("test security -- 0"));
-
- RDmDomain domain;
- TInt r = domain.Connect(KDmIdRoot);
- test (r == expected_result);
-
- break;
- }
- case 1:
- {
-
- test.Next(_L("test security -- 1"));
-
- TBool jit = User::JustInTime();
-
- User::SetJustInTime(EFalse);
-
- _LIT(KPanicThread, "PanicThread");
-
- RThread testThread;
-
- TInt tt=testThread.Create(KPanicThread, IncorrectClient, KDefaultStackSize,
- NULL, NULL);
-
- test (KErrNone == tt);
-
- TRequestStatus tStatus;
- // testThread.Logon(tStatus);
-
- RUndertaker deathChecker;
- TInt dcOK = deathChecker.Create();
-
- test (KErrNone == dcOK);
-
- TInt nextDeadThread;
-
- deathChecker.Logon(tStatus, nextDeadThread);
-
- // threads are created in a suspended state. calling resume here starts the thread.
- testThread.Resume();
- User::WaitForRequest(tStatus);
-
- // If thread suicided for the correct reason --> successful test
- // NB. KErrPermissionDenied means that the server refused the
- // connection because of incorrect capabilities
-
- RThread corpse;
- corpse.SetHandle(nextDeadThread);
-
- RDebug::Printf("Subthread exit type: %d", corpse.ExitType() );
-
- RDebug::Printf("Subthread exit reason: %d",corpse.ExitReason() );
-
- test (corpse.ExitType() == EExitKill);
-
- test (corpse.ExitReason() == KErrPermissionDenied);
-
- corpse.Close();
-
- // close the RUndertaker and test thread
- deathChecker.Close();
- CLOSE_AND_WAIT(testThread);
-
- User::SetJustInTime(jit);
-
- break;
- }
- default:
- User::Panic(_L("USER"), EInvariantFalse);
- break;
- }
-
- test.End();
-
- return KErrNone;
- }