diff -r bf7481649c98 -r 7f25ef56562d windowing/windowserver/tauto/TPROCPRI.CPP --- a/windowing/windowserver/tauto/TPROCPRI.CPP Fri Jun 11 14:58:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,194 +0,0 @@ -// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "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: -// Test process priority control -// -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - - -#include "TPROCPRI.H" - -TName OtherGroupName; - -TInt ProcPriTestOtherProcess(TAny *aScreenNumber) - { - CTrapCleanup* CleanUpStack=CTrapCleanup::New(); - RWsSession ws; - User::LeaveIfError(ws.Connect()); - // use correct screen - // - CWsScreenDevice* screen = NULL; - TInt err; - TRAP(err, screen = new (ELeave) CWsScreenDevice(ws)); - if (err!=KErrNone) - return err; - if ((err=screen->Construct((TInt)aScreenNumber))!=KErrNone) - { - delete screen; - return err; - } - - RWindowGroup group(ws); - group.Construct(888); - group.SetName(OTHER_PROC_GROUP_NAME); - RSemaphore sem1; - RSemaphore sem2; - sem1.OpenGlobal(PROC_PRI_SEMAPHORE_NAME1); - sem2.OpenGlobal(PROC_PRI_SEMAPHORE_NAME2); - sem1.Signal(); // Signal thread fully initialised - sem2.Wait(); // Wait for command to disable focus -// - group.EnableReceiptOfFocus(EFalse); - ws.Flush(); - sem1.Signal(); // Signal focus disabled - sem2.Wait(); // Wait for command to enable focus - - group.EnableReceiptOfFocus(ETrue); - ws.Flush(); - sem1.Signal(); // Signal focus enabled - sem2.Wait(); // Wait until signalled to exit -// - group.EnableReceiptOfFocus(EFalse); // To stop shell being tasked into foreground - delete screen; - ws.Close(); - sem1.Close(); - sem2.Close(); - delete CleanUpStack; - return(KErrNone); - } - -CTProcPri::CTProcPri(CTestStep* aStep) : CTWsGraphicsBase(aStep) - { - } - -CTProcPri::~CTProcPri() - { - if (iFlags&ECreatedSem1) - iSem1.Close(); - if (iFlags&ECreatedSem2) - iSem2.Close(); - delete iProcess; - } - -void CTProcPri::TestPriChangeL() - { - #define BACK_PRI EPriorityForeground - #define FORE_PRI EPriorityForeground - RProcess proc; - TEST(proc.Priority()==BACK_PRI); - if (proc.Priority()!=BACK_PRI) - INFO_PRINTF3(_L("proc.Priority() return value - Expected: %d, Actual: %d"), BACK_PRI, proc.Priority()); - - iSem2.Signal(); - iSem1.Wait(); - - TEST(proc.Priority()==FORE_PRI); - if (proc.Priority()!=FORE_PRI) - INFO_PRINTF3(_L("proc.Priority() return value - Expected: %d, Actual: %d"), FORE_PRI, proc.Priority()); - - iSem2.Signal(); - iSem1.Wait(); - - TEST(proc.Priority()==BACK_PRI); - if (proc.Priority()!=BACK_PRI) - INFO_PRINTF3(_L("proc.Priority() return value - Expected: %d, Actual: %d"), BACK_PRI, proc.Priority()); - - TInt ident; - User::LeaveIfError(ident=TheClient->iWs.FindWindowGroupIdentifier(0,OTHER_PROC_GROUP_NAME,0)); - TInt retVal = TheClient->iWs.SetWindowGroupOrdinalPosition(ident,1); - TEST(retVal==KErrNone); - if (retVal!=KErrNone) - INFO_PRINTF3(_L("TheClient->iWs.SetWindowGroupOrdinalPosition(ident,1) return value - Expected: %d, Actual: %d"), KErrNone, retVal); - - TEST(proc.Priority()==FORE_PRI); - if (proc.Priority()!=FORE_PRI) - INFO_PRINTF3(_L("proc.Priority() return value - Expected: %d, Actual: %d"), FORE_PRI, proc.Priority()); - - retVal = TheClient->iWs.SetWindowGroupOrdinalPosition(ident,0); - TEST(retVal==KErrNone); - if (retVal!=KErrNone) - INFO_PRINTF3(_L("TheClient->iWs.SetWindowGroupOrdinalPosition(ident,0) return value - Expected: %d, Actual: %d"), KErrNone, retVal); - - TEST(proc.Priority()==BACK_PRI); - if (proc.Priority()!=BACK_PRI) - INFO_PRINTF3(_L("proc.Priority() return value - Expected: %d, Actual: %d"), BACK_PRI, proc.Priority()); - - TRequestStatus stat; - iProcess->Logon(stat); //Must Logon before the last Signal so we can be sure that it is still alive to get round a base issue - iSem2.Signal(); - User::WaitForRequest(stat); - - TEST(proc.Priority()==FORE_PRI); - if (proc.Priority()!=FORE_PRI) - INFO_PRINTF3(_L("proc.Priority() return value - Expected: %d, Actual: %d"), FORE_PRI, proc.Priority()); - - } - -void CTProcPri::ConstructL() - { - User::LeaveIfError(iSem1.CreateGlobal(PROC_PRI_SEMAPHORE_NAME1,0,KOwnerType)); - iFlags|=ECreatedSem1; - User::LeaveIfError(iSem2.CreateGlobal(PROC_PRI_SEMAPHORE_NAME2,0,KOwnerType)); - iFlags|=ECreatedSem2; - iProcess=CProcess::NewL(CProcess::eProcessPriortyTest,iTest->iScreenNumber); - iSem1.Wait(); - } - -void CTProcPri::RunTestCaseL(TInt /*aCurTestCase*/) - { - _LIT(KTest1,"Priority Change"); - ((CTProcPriStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName); - - switch(++iTest->iState) - { -/** - - @SYMTestCaseID GRAPHICS-WSERV-0315 - - @SYMDEF DEF081259 - - @SYMTestCaseDesc Test that the priority of a process or thread changes depending - on how the the process or thread is being used - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions Create a process or thread and use it. Check the priority of the - process or thread changes depending on how it is being used - - @SYMTestExpectedResults Prioirty of the process of thread changes depending on - how it is being used - -*/ - case 1: - ((CTProcPriStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0315")); - iTest->LogSubTest(KTest1); - TestPriChangeL(); - break; - case 2: - ((CTProcPriStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName); - ((CTProcPriStep*)iStep)->CloseTMSGraphicsStep(); - TestComplete(); - break; - } - ((CTProcPriStep*)iStep)->RecordTestResultL(); - } - -__WS_CONSTRUCT_STEP__(ProcPri)