baseintegtests/baseintegrationtest/testsuites/fat32/src/basetestfat32checkdisk.cpp
changeset 0 a41df078684a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/baseintegtests/baseintegrationtest/testsuites/fat32/src/basetestfat32checkdisk.cpp	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,128 @@
+// Copyright (c) 2006-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:
+// Carries out integrity checking of a disk and fixing errors
+// 
+//
+
+#include "basetestfat32checkdisk.h"
+
+/**
+Class Constructor
+*/		    
+CBaseTestFat32CheckDisk::CBaseTestFat32CheckDisk()
+	{
+	SetTestStepName(KTestStepCheckDisk);
+	}
+	
+/**
+Class Destructor
+*/
+CBaseTestFat32CheckDisk::~CBaseTestFat32CheckDisk() 
+	{
+	}
+
+
+/** 
+The function performs the following actions
+1. Verify the integrity of the disk by calling RFs::ScanDisk() 
+2. Check whether the code returned match the code specified in the ini file. 
+3. If scan dsik is specified in the ini file then call RFs::ScanDrive()
+
+@return EPass if test passes and EFail if test fails
+*/ 
+TVerdict CBaseTestFat32CheckDisk::doTestStepL()
+	{
+	SetTestStepResult(EFail);
+	TInt r; 
+	_LIT(KCheckCode,"CheckCode");
+	TInt checkcode;
+	_LIT(KScan,"Scan");
+	TInt scan;
+	_LIT(KPassRegardless,"PassRegardless");
+	TBuf<4> passRegardless;
+	TPtrC16 passregardless = passRegardless;
+	TBool alright = GetIntFromConfig(ConfigSection(), KCheckCode, checkcode);
+	if(alright)
+		{
+		TBool alright2 = GetStringFromConfig(ConfigSection(), KPassRegardless, passregardless);
+		if(alright2)
+			{
+			// Perform a check disk. 
+			r=iTheFs.CheckDisk(iSessionPath);
+			if (r!=checkcode)
+				{
+				// If the code returned does not match the code expected and would
+				// like only a warning to be displayed as opposed to failing the 
+				// test
+				if (passregardless == _L("Y"))
+					{
+					SetTestStepResult(EPass);
+					_LIT(KErrorPass, "RFs::CheckDisk() returns %d & does not match expected value %d");
+					INFO_PRINTF3(KErrorPass, r, checkcode);		
+					}
+				// If the code returned does not match the code expected and would
+				// like to fail the test
+				else
+					{
+					SetTestStepResult(EFail);
+					_LIT(KCheckDiskFail, "RFs::CheckDisk() returns %d & does not match expected value %d");
+					INFO_PRINTF3(KCheckDiskFail, r, checkcode);
+					}
+				}
+			else 
+				{
+				SetTestStepResult(EPass);
+				_LIT(KCheckDiskPass, "RFs::CheckDisk() returns %d & matches expected value %d");
+				INFO_PRINTF3(KCheckDiskPass, r, checkcode);	
+				}
+			// If specified in the ini file, perform a ScanDrive on the volume
+			TBool alright = GetIntFromConfig(ConfigSection(), KScan, scan);
+			if(alright)
+				{
+				r=iTheFs.ScanDrive(iSessionPath);
+				if (r!=KErrNone)
+					{
+					SetTestStepResult(EFail);
+					_LIT(KScanFail, "RFs::ScanDrive() failed returns %d");
+					INFO_PRINTF2(KScanFail, r);		
+					}
+				else
+					{
+					SetTestStepResult(EPass);
+					_LIT(KScanPass, "RFs::ScanDrive() passed");
+					INFO_PRINTF1(KScanPass);
+					}
+				}
+			else
+				{
+				_LIT(KNoScan, "RFs::ScanDrive() not indicated in ini file");
+				INFO_PRINTF1(KNoScan);	
+				}
+			return TestStepResult();	
+			}
+			
+		else
+			{
+			_LIT(KReadIniFail, "Could not read PassRegardless from ini file");
+			INFO_PRINTF1(KReadIniFail);
+			return TestStepResult();
+			}
+		}
+	else
+		{
+		_LIT(KReadIniFail, "Could not read CheckCode from ini file");
+		INFO_PRINTF1(KReadIniFail);
+		return TestStepResult();
+		}
+	}