1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/security/cryptomgmtlibs/securitytestfw/test/testhandler2/t_tefinput.cpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,776 @@
1.4 +//
1.5 +// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
1.6 +// All rights reserved.
1.7 +// This component and the accompanying materials are made available
1.8 +// under the terms of the License "Eclipse Public License v1.0"
1.9 +// which accompanies this distribution, and is available
1.10 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.11 +//
1.12 +// Initial Contributors:
1.13 +// Nokia Corporation - initial contribution.
1.14 +//
1.15 +// Contributors:
1.16 +//
1.17 +// Description:
1.18 +//
1.19 +
1.20 +
1.21 +#include <s32file.h>
1.22 +#include "t_tefinput.h"
1.23 +#include "t_errorconverter.h"
1.24 +#include "tScriptSetup.h"
1.25 +#include <securityerr.h>
1.26 +#include <keystore_errs.h>
1.27 +
1.28 +#ifdef SYMBIAN_AUTH_SERVER
1.29 +#include <auth_srv_errs.h>
1.30 +#endif
1.31 +
1.32 +_LIT8(KSpace, " ");
1.33 +_LIT8(KTab, "\t");
1.34 +_LIT8(KReturn, "\r");
1.35 +_LIT8(KNewline, "\n");
1.36 +_LIT8(KOpenBrk, "[");
1.37 +_LIT8(KCloseBrk, "]");
1.38 +_LIT8(KEquals, "=");
1.39 +_LIT8(KUnderScore, "_");
1.40 +_LIT8(KSectionIDTag, "[SEC");
1.41 +
1.42 +#define KIniSectionIdLength 512
1.43 +#define KResultLength 512
1.44 +
1.45 +// Extracts RUN_TESTSTEP from the whole of script file passed in
1.46 +
1.47 +EXPORT_C TPtrC8 Tefinput::ParseRunTestStep(const TDesC8& aBuf,
1.48 + const TDesC8& aTag,
1.49 + TInt& aPos,
1.50 + TInt& aError)
1.51 + {
1.52 + aError = KErrNone;
1.53 + TInt endPos = 0;
1.54 + TInt startPos = 0;
1.55 + TInt tempPos = 0;
1.56 +
1.57 + TPtrC8 data = aBuf.Mid(aPos);
1.58 +
1.59 + tempPos = data.Find(aTag);
1.60 +
1.61 + if (tempPos != KErrNotFound)
1.62 + {
1.63 + tempPos += aTag.Length();
1.64 +
1.65 + TPtrC8 temprunStepData = data.Mid(tempPos);
1.66 +
1.67 + endPos = temprunStepData.Find(KNewline);
1.68 + if (endPos == KErrNotFound)
1.69 + {
1.70 + endPos = temprunStepData.Find(KReturn);
1.71 + }
1.72 + if (endPos == KErrNotFound)
1.73 + {
1.74 + endPos = temprunStepData.Length();
1.75 + }
1.76 +
1.77 + TInt len = 0;
1.78 + len = (endPos - startPos) + 1;
1.79 + TPtrC8 runStepData = temprunStepData.Mid(startPos,len);
1.80 + aPos += tempPos + runStepData.Length();
1.81 + return runStepData;
1.82 + }
1.83 + else
1.84 + {
1.85 + aError = KErrNotFound;
1.86 + return TPtrC8();
1.87 + }
1.88 +
1.89 + // None found
1.90 +
1.91 +
1.92 + }
1.93 +
1.94 +// Extracts the nth word from the given descritor
1.95 +EXPORT_C TPtrC8 Tefinput::ParseNthElement(const TDesC8& aBuf,
1.96 + TInt aWordPos,
1.97 + TInt& aError)
1.98 +
1.99 + {
1.100 + aError = KErrNone;
1.101 + TInt startPos = KErrNotFound, endPos = KErrNotFound;
1.102 + TInt wordCounter =0 ;
1.103 + TBool inWord = EFalse;
1.104 + TInt i =0;
1.105 + for(i = 0; i < aBuf.Length() ; i ++)
1.106 + {
1.107 + TPtrC8 tmpChar = aBuf.Mid(i,1);
1.108 + if(tmpChar == KSpace || tmpChar == KTab || tmpChar == KReturn || tmpChar == KNewline )
1.109 + {
1.110 + if(inWord)
1.111 + {
1.112 + if(wordCounter == aWordPos)
1.113 + {
1.114 + endPos =i-1;
1.115 + break;
1.116 + }
1.117 + inWord = EFalse;
1.118 + }
1.119 + }
1.120 + else
1.121 + {
1.122 + if(inWord == EFalse)
1.123 + {
1.124 + wordCounter ++;
1.125 + inWord = ETrue;
1.126 + if(wordCounter == aWordPos)
1.127 + {
1.128 + startPos =i;
1.129 + }
1.130 + }
1.131 + }
1.132 + }
1.133 +
1.134 + if(startPos < 0 || endPos < 0)
1.135 + {
1.136 + aError = KErrNotFound;
1.137 + return TPtrC8();
1.138 + }
1.139 + else
1.140 + {
1.141 + return aBuf.Mid(startPos,(endPos-startPos+1));
1.142 + }
1.143 + }
1.144 +
1.145 +// Extracts testCaseID from the whole script file
1.146 +EXPORT_C TPtrC8 Tefinput::ParseTestCaseID(const TDesC8& aBuf,
1.147 + const TDesC8& aTag,
1.148 + TDes8& aPrevTestID,
1.149 + TInt& aPos,
1.150 + TInt& aError,
1.151 + TBool& testSet,
1.152 + TBool& startTest
1.153 + )
1.154 + {
1.155 + aError = KErrNone;
1.156 + TInt startPos = 0, endPos = 0;
1.157 +
1.158 + TPtrC8 datatemp;
1.159 + TPtrC8 testID;
1.160 + TPtrC8 data = aBuf.Mid(aPos);
1.161 + TInt len = aTag.Length();
1.162 + startPos = data.Find(aTag);
1.163 +
1.164 + TInt filePos = startPos + aPos;
1.165 +
1.166 + if(startPos != KErrNotFound)
1.167 + {
1.168 + TInt templen;
1.169 + startPos += len;
1.170 + filePos += len;
1.171 + datatemp.Set(data.Mid(startPos));
1.172 +
1.173 + endPos = datatemp.Find(KNewline);
1.174 + if(endPos == KErrNotFound)
1.175 + {
1.176 + endPos = datatemp.Find(KReturn);
1.177 + TInt temp =0;
1.178 + templen = endPos - temp;
1.179 + testID.Set(datatemp.Mid(temp,templen));
1.180 + filePos += testID.Length();
1.181 + aPos = filePos;
1.182 + testSet = ETrue;
1.183 + startTest = ETrue;
1.184 + return Trim(testID);
1.185 + }
1.186 + else
1.187 + {
1.188 + TInt temp =0;
1.189 + templen = endPos - temp;
1.190 + testID.Set(datatemp.Mid(temp,templen));
1.191 + filePos += testID.Length();
1.192 + aPos = filePos;
1.193 + testSet = ETrue;
1.194 + startTest = ETrue;
1.195 + return Trim(testID);
1.196 + }
1.197 + }
1.198 + else
1.199 + {
1.200 + aPos = aPos;
1.201 + aError = KErrNotFound;
1.202 + testSet = EFalse;
1.203 + return aPrevTestID;
1.204 + }
1.205 +
1.206 + }
1.207 +
1.208 +
1.209 +// Generates the path for .ini file from the .script file path
1.210 +EXPORT_C TInt Tefinput::ParseiniPath(const TDesC8& aIniFileName,
1.211 + const TDesC& aScriptPath,
1.212 + TDes& aIniFilePath)
1.213 + {
1.214 +
1.215 + TInt err = KErrNone;
1.216 + TInt endPos = aScriptPath.LocateReverse('\\');
1.217 + if (endPos == KErrNotFound)
1.218 + {
1.219 + err = KErrNotFound;
1.220 + }
1.221 + else
1.222 + {
1.223 + aIniFilePath.Copy(aIniFileName);
1.224 + aIniFilePath.Insert(0, aScriptPath.Left(endPos+1));
1.225 + }
1.226 + return err;
1.227 + }
1.228 +
1.229 +// Reads the whole of .ini file contents, calls ParseActionbody()
1.230 +// to extract info between <actionbody></actionbody>tags
1.231 +EXPORT_C HBufC8* Tefinput::GetiniFile(RFs& aFs,
1.232 + const TDesC& aIniFilePath,
1.233 + TInt& err)
1.234 + {
1.235 + RFile iniFile;
1.236 + err = iniFile.Open(aFs, aIniFilePath, EFileStream | EFileRead | EFileShareReadersOnly);
1.237 + if (err != KErrNone)
1.238 + {
1.239 + return NULL; // Bad exit ...
1.240 + }
1.241 + // gets size of ini file
1.242 + TInt size;
1.243 + iniFile.Size(size);
1.244 + iniFile.Close();
1.245 +
1.246 + // reads ini into iTestInput
1.247 + HBufC8* testInput = HBufC8::NewLC(size);
1.248 +
1.249 + TPtr8 aInput = testInput->Des(); // Appoint our local 8 bit pointer descriptor to the heap area to work with
1.250 + aInput.SetLength(size);
1.251 +
1.252 + RFileReadStream stream;
1.253 + User::LeaveIfError(stream.Open(aFs, aIniFilePath, EFileStream | EFileRead | EFileShareReadersOnly));
1.254 + CleanupClosePushL(stream);
1.255 + stream.ReadL(aInput, size); // Load in the inifile into Heap buffer
1.256 +
1.257 +// TPtrC8 iniFileread = ParseElement(pInput, tempsectID, pos, err );
1.258 +// TPtrC8 iniFileread = ParseActionbody(pInput, aIniSectionName, err);
1.259 +// iniFileread.TDesC8();
1.260 +
1.261 + CleanupStack::PopAndDestroy(1); // stream,
1.262 +
1.263 + return testInput; // Return a valid HBuf8 pointer where the ini file has been loaded (on the heap)
1.264 + }
1.265 +
1.266 +// Extracts info between <actionbody></actionbody>tags from the inifile contents
1.267 +EXPORT_C TInt Tefinput::ParseActionbody( TPtrC8& aBuf,
1.268 + const TDesC8& aIniTag,
1.269 + TPtrC8& aSectionBody)
1.270 + {
1.271 + TInt len =0, startPos =0, endPos = 0;
1.272 + TPtrC8 inifile = aBuf.Mid(startPos);
1.273 +
1.274 + TBuf8<KIniSectionIdLength> tempsectID(KOpenBrk);
1.275 + tempsectID.Append(aIniTag);
1.276 + tempsectID.Append(KCloseBrk);
1.277 +
1.278 + startPos = inifile.Find(tempsectID);
1.279 +
1.280 + if (startPos != KErrNotFound)
1.281 + {
1.282 + TPtrC8 actionblk = inifile.Mid(startPos + tempsectID.Length());
1.283 + endPos = actionblk.Find(KSectionIDTag);
1.284 + if (endPos == KErrNotFound)
1.285 + {
1.286 + endPos = actionblk.Length();
1.287 + }
1.288 + len = endPos - 0;
1.289 +
1.290 + aSectionBody.Set(aBuf.Mid(startPos + tempsectID.Length(),len));
1.291 + return KErrNone;
1.292 + }
1.293 + else
1.294 + {
1.295 +// aSectionBody();
1.296 + return KErrNotFound;
1.297 + }
1.298 + }
1.299 +
1.300 +// Takes in an integer and returns the appropriate error code with <return></return> tags
1.301 +EXPORT_C TInt Tefinput::GetActionResult(TInt aErrCode, TDes8& aReturnTag)
1.302 + {
1.303 + TInt err = KErrNone;
1.304 +
1.305 + if(aErrCode == KErrNone)
1.306 + {
1.307 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrNone</return>"));
1.308 + }
1.309 + else if(aErrCode == KErrNotFound)
1.310 + {
1.311 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrNotFound</return>"));
1.312 + }
1.313 + else if(aErrCode == KErrGeneral)
1.314 + {
1.315 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrGeneral</return>"));
1.316 + }
1.317 + else if(aErrCode == KErrCancel)
1.318 + {
1.319 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrCancel</return>"));
1.320 + }
1.321 + else if(aErrCode == KErrNoMemory)
1.322 + {
1.323 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrNoMemory</return>"));
1.324 + }
1.325 +
1.326 + else if(aErrCode == KErrNotSupported)
1.327 + {
1.328 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrNotSupported</return>"));
1.329 + }
1.330 +
1.331 + else if(aErrCode == KErrArgument)
1.332 + {
1.333 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrArgument</return>"));
1.334 + }
1.335 +
1.336 + else if(aErrCode == KErrTotalLossOfPrecision)
1.337 + {
1.338 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrTotalLossOfPrecision</return>"));
1.339 + }
1.340 +
1.341 + else if(aErrCode == KErrBadHandle)
1.342 + {
1.343 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrBadHandle</return>"));
1.344 + }
1.345 +
1.346 + else if(aErrCode == KErrOverflow)
1.347 + {
1.348 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrOverflow</return>"));
1.349 + }
1.350 +
1.351 + else if(aErrCode == KErrUnderflow)
1.352 + {
1.353 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrUnderflow</return>"));
1.354 + }
1.355 +
1.356 + else if(aErrCode == KErrAlreadyExists)
1.357 + {
1.358 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAlreadyExists</return>"));
1.359 + }
1.360 +
1.361 + else if(aErrCode == KErrPathNotFound)
1.362 + {
1.363 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrPathNotFound</return>"));
1.364 + }
1.365 +
1.366 + else if(aErrCode == KErrDied)
1.367 + {
1.368 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrDied</return>"));
1.369 + }
1.370 +
1.371 + else if(aErrCode == KErrInUse)
1.372 + {
1.373 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrInUse</return>"));
1.374 + }
1.375 +
1.376 + else if(aErrCode == KErrServerTerminated)
1.377 + {
1.378 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrServerTerminated</return>"));
1.379 + }
1.380 +
1.381 + else if(aErrCode == KErrServerBusy)
1.382 + {
1.383 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrServerBusy</return>"));
1.384 + }
1.385 +
1.386 + else if(aErrCode == KErrCompletion)
1.387 + {
1.388 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrCompletion</return>"));
1.389 + }
1.390 +
1.391 + else if(aErrCode == KErrNotReady)
1.392 + {
1.393 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrNotReady</return>"));
1.394 + }
1.395 +
1.396 + else if(aErrCode == KErrUnknown)
1.397 + {
1.398 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrUnknown</return>"));
1.399 + }
1.400 +
1.401 + else if(aErrCode == KErrCorrupt)
1.402 + {
1.403 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrCorrupt</return>"));
1.404 + }
1.405 +
1.406 + else if(aErrCode == KErrAccessDenied)
1.407 + {
1.408 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAccessDenied</return>"));
1.409 + }
1.410 +
1.411 + else if(aErrCode == KErrLocked)
1.412 + {
1.413 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrLocked</return>"));
1.414 + }
1.415 +
1.416 + else if(aErrCode == KErrWrite)
1.417 + {
1.418 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrWrite</return>"));
1.419 + }
1.420 +
1.421 + else if(aErrCode == KErrDisMounted)
1.422 + {
1.423 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrDisMounted</return>"));
1.424 + }
1.425 +
1.426 + else if(aErrCode == KErrEof)
1.427 + {
1.428 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrEof</return>"));
1.429 + }
1.430 +
1.431 + else if(aErrCode == KErrDiskFull)
1.432 + {
1.433 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrDiskFull</return>"));
1.434 + }
1.435 +
1.436 + else if(aErrCode == KErrBadDriver)
1.437 + {
1.438 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrBadDriver</return>"));
1.439 + }
1.440 +
1.441 + else if(aErrCode == KErrBadName)
1.442 + {
1.443 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrBadName</return>"));
1.444 + }
1.445 +
1.446 + else if(aErrCode == KErrCommsLineFail)
1.447 + {
1.448 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrCommsLineFail</return>"));
1.449 + }
1.450 +
1.451 + else if(aErrCode == KErrCommsFrame)
1.452 + {
1.453 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrCommsFrame</return>"));
1.454 + }
1.455 +
1.456 + else if(aErrCode == KErrCommsOverrun)
1.457 + {
1.458 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrCommsOverrun</return>"));
1.459 + }
1.460 +
1.461 + else if(aErrCode == KErrCommsParity)
1.462 + {
1.463 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrCommsParity</return>"));
1.464 + }
1.465 +
1.466 + else if(aErrCode == KErrTimedOut)
1.467 + {
1.468 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrTimedOut</return>"));
1.469 + }
1.470 +
1.471 + else if(aErrCode == KErrCouldNotConnect)
1.472 + {
1.473 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrCouldNotConnect</return>"));
1.474 + }
1.475 +
1.476 + else if(aErrCode == KErrCouldNotDisconnect)
1.477 + {
1.478 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrCouldNotDisconnect</return>"));
1.479 + }
1.480 +
1.481 + else if(aErrCode == KErrDisconnected)
1.482 + {
1.483 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrDisconnected</return>"));
1.484 + }
1.485 +
1.486 + else if(aErrCode == KErrBadLibraryEntryPoint)
1.487 + {
1.488 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrBadLibraryEntryPoint</return>"));
1.489 + }
1.490 +
1.491 + else if(aErrCode == KErrBadDescriptor)
1.492 + {
1.493 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrBadDescriptor</return>"));
1.494 + }
1.495 +
1.496 + else if(aErrCode == KErrAbort)
1.497 + {
1.498 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAbort</return>"));
1.499 + }
1.500 +
1.501 + else if(aErrCode == KErrTooBig)
1.502 + {
1.503 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrTooBig</return>"));
1.504 + }
1.505 +
1.506 + else if(aErrCode == KErrDivideByZero)
1.507 + {
1.508 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrDivideByZero</return>"));
1.509 + }
1.510 +
1.511 + else if(aErrCode == KErrBadPower)
1.512 + {
1.513 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrBadPower</return>"));
1.514 + }
1.515 +
1.516 + else if(aErrCode == KErrDirFull)
1.517 + {
1.518 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrDirFull</return>"));
1.519 + }
1.520 +
1.521 + else if(aErrCode == KErrHardwareNotAvailable)
1.522 + {
1.523 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrHardwareNotAvailable</return>"));
1.524 + }
1.525 + else if(aErrCode == KErrPermissionDenied)
1.526 + {
1.527 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrPermissionDenied</return>"));
1.528 + }
1.529 + else if(aErrCode == KErrBadPassphrase)
1.530 + {
1.531 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrBadPassphrase</return>"));
1.532 + }
1.533 + else if(aErrCode == KErrNotSecure)
1.534 + {
1.535 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrNotSecure</return>"));
1.536 + }
1.537 + else if(aErrCode == KErrKeyNotWeakEnough)
1.538 + {
1.539 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrKeyNotWeakEnough</return>"));
1.540 + }
1.541 + else if(aErrCode == KErrInvalidPadding)
1.542 + {
1.543 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrInvalidPadding</return>"));
1.544 + }
1.545 + else if(aErrCode == KErrWeakKey)
1.546 + {
1.547 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrWeakKey</return>"));
1.548 + }
1.549 + else if(aErrCode == KErrNegativeExportNotSupported)
1.550 + {
1.551 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrNegativeExportNotSupported</return>"));
1.552 + }
1.553 + else if(aErrCode == KErrKeyAlgorithm)
1.554 + {
1.555 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrKeyAlgorithm</return>"));
1.556 + }
1.557 + else if(aErrCode == KErrKeyUsage)
1.558 + {
1.559 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrKeyUsage</return>"));
1.560 + }
1.561 + else if(aErrCode == KErrKeyValidity)
1.562 + {
1.563 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrKeyValidity</return>"));
1.564 + }
1.565 + else if(aErrCode == KErrKeySize)
1.566 + {
1.567 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrKeySize</return>"));
1.568 + }
1.569 + else if(aErrCode == KErrKeyAccess)
1.570 + {
1.571 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrKeyAccess</return>"));
1.572 + }
1.573 + else if(aErrCode == KErrPrivateKeyNotFound)
1.574 + {
1.575 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrPrivateKeyNotFound</return>"));
1.576 + }
1.577 + else if(aErrCode == KErrAuthenticationFailure)
1.578 + {
1.579 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthenticationFailure</return>"));
1.580 + }
1.581 +
1.582 +#ifdef SYMBIAN_AUTH_SERVER
1.583 + else if(aErrCode == KErrAuthServUnsupportedExprVersion)
1.584 + {
1.585 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServUnsupportedExprVersion</return>"));
1.586 + }
1.587 + else if(aErrCode == KErrAuthServNoSuchPlugin)
1.588 + {
1.589 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServNoSuchPlugin</return>"));
1.590 + }
1.591 + else if(aErrCode == KErrAuthServNoSuchIdentity)
1.592 + {
1.593 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServNoSuchIdentity</return>"));
1.594 + }
1.595 + else if(aErrCode == KErrAuthServPluginCancelled)
1.596 + {
1.597 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServPluginCancelled</return>"));
1.598 + }
1.599 + else if(aErrCode == KErrAuthServPluginQuit)
1.600 + {
1.601 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServPluginQuit</return>"));
1.602 + }
1.603 + else if(aErrCode == KErrAuthServAuthenticationRequired)
1.604 + {
1.605 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServAuthenticationRequired</return>"));
1.606 + }
1.607 + else if(aErrCode == KErrAuthServIdentityAlreadyExists)
1.608 + {
1.609 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServIdentityAlreadyExists</return>"));
1.610 + }
1.611 + else if(aErrCode == KErrAuthServIdentityNotFound)
1.612 + {
1.613 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServIdentityNotFound</return>"));
1.614 + }
1.615 + else if(aErrCode == KErrAuthServTrainingNotFound)
1.616 + {
1.617 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServTrainingNotFound</return>"));
1.618 + }
1.619 + else if(aErrCode == KErrAuthServRegistrationFailed)
1.620 + {
1.621 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServRegistrationFailed</return>"));
1.622 + }
1.623 + else if(aErrCode == KErrAuthServCanNotRemoveLastIdentity)
1.624 + {
1.625 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServCanNotRemoveLastIdentity</return>"));
1.626 + }
1.627 + else if(aErrCode == KErrAuthServCanNotRemoveLastPlugin)
1.628 + {
1.629 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServCanNotRemoveLastPlugin</return>"));
1.630 + }
1.631 + else if(aErrCode == KErrAuthServPluginNotActive)
1.632 + {
1.633 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServPluginNotActive</return>"));
1.634 + }
1.635 + else if(aErrCode == KErrAuthServDescTooLong)
1.636 + {
1.637 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServDescTooLong</return>"));
1.638 + }
1.639 + else if(aErrCode == KErrUnknownAuthStrengthAlias)
1.640 + {
1.641 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrUnknownAuthStrengthAlias</return>"));
1.642 + }
1.643 + else if(aErrCode == KErrAuthStrengthAliasNotDefined)
1.644 + {
1.645 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthStrengthAliasNotDefined</return>"));
1.646 + }
1.647 + else if(aErrCode == KErrAuthServInvalidAliasStringExpression)
1.648 + {
1.649 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServInvalidAliasStringExpression/return>"));
1.650 + }
1.651 + else if(aErrCode == KErrAuthServResetMayLoseIdentity)
1.652 + {
1.653 + aReturnTag.Copy(_L8("\r\n\t\t<return>KErrAuthServResetMayLoseIdentity/return>"));
1.654 + }
1.655 +#endif
1.656 +
1.657 +
1.658 +//
1.659 +
1.660 + return err;
1.661 + }
1.662 +
1.663 +// Checks if the first word in RUN_TEST_STEP is an error code. If, then calls GetActionResult().
1.664 +EXPORT_C TInt Tefinput::ParseActionResult(const TDesC8& aBuf, TDes8& aActionResult)
1.665 + {
1.666 + TInt errorCode = 0;
1.667 + TInt startPos =0;
1.668 +
1.669 + TPtrC8 data = aBuf.Mid(startPos);
1.670 + startPos = data.Find(KEquals);
1.671 + if (startPos != KErrNotFound)
1.672 + {
1.673 + TInt tmp;
1.674 + TPtrC8 tmpErrCode = data.Mid(startPos+1);
1.675 + TLex8 lex8(tmpErrCode);
1.676 + tmp = lex8.Val(errorCode);
1.677 + if(tmp != KErrNone)
1.678 + {
1.679 + return KErrNotFound;
1.680 + }
1.681 + }
1.682 +
1.683 + return GetActionResult(errorCode, aActionResult);
1.684 + }
1.685 +
1.686 +// Removes any /t, /n and empty spaces from any extracted data.
1.687 +EXPORT_C TPtrC8 Tefinput::Trim(const TDesC8& aBuf)
1.688 + {
1.689 + TInt startPos = 0;
1.690 + TInt endPos = 0;
1.691 + TInt i = 0, j = 0;
1.692 +
1.693 + for(i = 0; i < aBuf.Length() ; i ++)
1.694 + {
1.695 + TPtrC8 tmpChar = aBuf.Mid(i,1);
1.696 + if(tmpChar != KSpace && tmpChar != KTab && tmpChar != KReturn && tmpChar != KNewline )
1.697 + {
1.698 + startPos = i;
1.699 + break;
1.700 + }
1.701 + }
1.702 + for(j = aBuf.Length()-1; j >= 0 ; j --)
1.703 + {
1.704 + TPtrC8 tmpChar1 = aBuf.Mid(j,1);
1.705 + if(tmpChar1 != KSpace && tmpChar1 != KTab && tmpChar1 != KReturn && tmpChar1 != KNewline )
1.706 + {
1.707 + endPos = j;
1.708 + break;
1.709 + }
1.710 + }
1.711 + if(endPos < startPos)
1.712 + {
1.713 + endPos = aBuf.Length();
1.714 + }
1.715 +
1.716 +
1.717 + return aBuf.Mid(startPos, endPos - startPos + 1);
1.718 +
1.719 + }
1.720 +
1.721 +//Removes '_' between 2 words and adds a space
1.722 +EXPORT_C TDes8 Tefinput::TrimActionType(const TDesC8& aBuf, TDes8& aType)
1.723 + {
1.724 + TInt startPos = 0;
1.725 + TInt pos = 0;
1.726 +
1.727 + // Allocating on heap - since 1024 bytes on stack could be too much for the target.
1.728 + HBufC* temp = HBufC::NewLC(512);
1.729 + HBufC* temp2 = HBufC::NewLC(512);
1.730 +
1.731 + startPos = aBuf.Find(KUnderScore);
1.732 + if(startPos != KErrNotFound)
1.733 + {
1.734 + temp->Des().Copy(aBuf.Mid(pos,(startPos-pos)));
1.735 + temp2->Des().Copy(aBuf.Mid(startPos+1));
1.736 + aType.Copy(temp->Des());
1.737 + aType.Append(KSpace);
1.738 + aType.Append(temp2->Des());
1.739 + }
1.740 + else
1.741 + {
1.742 + aType.Copy(aBuf);
1.743 + }
1.744 +
1.745 + CleanupStack::PopAndDestroy(temp2);
1.746 + CleanupStack::PopAndDestroy(temp);
1.747 + return aType;
1.748 + }
1.749 +
1.750 +//Checks if END_TESTCASE has been reached
1.751 +EXPORT_C TBool Tefinput::EndTestCase(const TDesC8& aBuf, const TDesC8& aRunStep, const TDesC8& aTag, TInt& aPos)
1.752 + {
1.753 + TInt startPos =0;
1.754 +
1.755 + TInt lenRunStep = aRunStep.Length();
1.756 +
1.757 + TPtrC8 tempScriptFile;
1.758 + tempScriptFile.Set(aBuf.Mid(aPos));
1.759 +
1.760 + startPos = tempScriptFile.Find(aTag);
1.761 + if(startPos != KErrNotFound)
1.762 + {
1.763 + startPos += aPos;
1.764 + if(startPos == aPos)
1.765 + {
1.766 + return ETrue;
1.767 + }
1.768 + else
1.769 + {
1.770 + return EFalse;
1.771 + }
1.772 + }
1.773 + else
1.774 + {
1.775 + return EFalse;
1.776 + }
1.777 +
1.778 + }
1.779 +