diff -r 000000000000 -r af10295192d8 linklayercontrol/nullagt/TS_nullagt/src/NullAgentTestSteps.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/linklayercontrol/nullagt/TS_nullagt/src/NullAgentTestSteps.cpp Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,124 @@ +// 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 "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: +// Contain the implementation of the class for this null agent test +// +// + +#include +#include "NullAgentTestSteps.h" + +// Constructor +NullAgentTestStep::NullAgentTestStep() +{ +} + +// Destructor +NullAgentTestStep::~NullAgentTestStep() + { + } + +enum TVerdict NullAgentTestStep::doTestStepPreambleL(void) +{ + enum TVerdict result = EPass; + + /* + * Wait for all of the interfaces to close down + */ + + RSocketServ ss; + + ss.Connect(); + CleanupClosePushL(ss); + + if (KErrNone == WaitForAllInterfacesToCloseL(ss)) + result = EPass; + else + result = EFail; + + ss.Close(); + CleanupStack::Pop(); + + return result; +} + +TInt NullAgentTestStep::WaitForAllInterfacesToCloseL(RSocketServ& ss) +/* + * Sit around waiting for all the interfaces to die (essentially poll every now + * and again until there are zero interfaces in this socket server left) + * @return system wide error code + */ + { + TInt err; + TUint numOfConnections; + TUint count = 0; + + RConnection conn; + + err = OpenConnection(conn, ss); + TESTEL(KErrNone == err, err); + CleanupClosePushL(conn); + + err = EnumerateConnections(conn, numOfConnections); + TESTEL(KErrNone == err, err); + + while ((0 != numOfConnections) && (count < 60)) + { + count++; + User::After(1000000); // wait a bit, a second sounds good + err = EnumerateConnections(conn, numOfConnections); + } + + CloseConnection(conn); + CleanupStack::Pop(); + + if (numOfConnections != 0) + { + return KErrTimedOut; + } + + return KErrNone; + } + +TInt NullAgentTestStep::OpenConnection(RConnection& conn, RSocketServ& ss) +/* + * Open the connection using the socket server too + * @param conn the connection to open + * @param ss the socket server within which the connection is to be opened + * @return system wide error code + */ +{ + return (conn.Open(ss)); +} + +TInt NullAgentTestStep::EnumerateConnections(RConnection& conn, TUint& num) +/* + * Read how many connections (==interfaces?) exist at the moment + * @param conn - to be used to read the count + * @param num - on completion holds the number of connections + * @return system wide error code + */ +{ + return (conn.EnumerateConnections(num)); +} + +void NullAgentTestStep::CloseConnection(RConnection& conn) +/* + * Close a connection + * @param conn the connection to close + * @return system wide error code + */ +{ + conn.Close(); +} +