kerneltest/e32test/system/t_khal.cpp
branchRCL_3
changeset 257 3e88ff8f41d5
parent 256 c1f20ce4abcf
child 258 880ff05ad710
child 263 9e2d4f7f5028
--- a/kerneltest/e32test/system/t_khal.cpp	Tue Aug 31 16:34:26 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,278 +0,0 @@
-// Copyright (c) 2010 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\system\t_khal.cpp
-// Overview:
-// Test class Kern HAL APIs
-// API Information:
-// Kern::AddHalEntry(), Kern::RemoveHalEntry(), Kern::FindHalEntry()
-// Details:
-// - Adds a new HAL handler for EHalGroupPlatformSpecific2
-// - Tries to add handler for an existing group
-// - Calls the installed handler
-// - Tests Find API to find the installed handler 
-// - Removes the handler and tries to remove some fixed HAL group
-// - Tries to find removed handler
-// - Tries to call removed handler
-// Platforms/Drives/Compatibility:
-// All.
-// Assumptions/Requirement/Pre-requisites:
-// Failures and causes:
-// Base Port information:
-// 
-//
-
-#define __E32TEST_EXTENSION__
-
-#include <e32test.h>
-#include <e32hal.h>
-#include <u32hal.h>
-#include <e32svr.h>
-#include "d_khal.h"
-#include <hal.h>
-
-RLddKHalTest gLdd;
-GLDEF_D RTest test(_L("T_KHAL - class Kern HAL API test"));
-
-
-TBool gEntryForDevice0Registered; // indicator whether the device0 got registered
-TBool gEntryForDeviceXRegistered; // indicator whether the deviceX got registered
-TInt gTestDeviceNumber;			  // device number that was registered
-
-
-void TestAddHalHandler()
-	{
-	TInt r;
-
-	// Try to register PlatformSpecific2 handler for Device 0
-	test.Next(_L("Register new HAL handler - device 0"));
-	r=gLdd.AddHalEntryDevice0();
-	// we dont want to test() the value, since it might actually not be able to register the
-	// default device, if one already exists in the system
-	if (r==KErrNone)
-		{
-		gEntryForDevice0Registered=ETrue;
-		}
-	else
-		{
-		gEntryForDevice0Registered=EFalse;
-		test.Printf(_L("Couldn't register handler for device 0 (r=%d). Some test cases will not be executed"),r);
-		}
-	// lets try again for device0 if succeeded for the first time, should return error
-	if (gEntryForDevice0Registered)
-		{
-		test.Next(_L("Try to register new HAL handler again for Device0"));
-		test_Equal(KErrInUse,gLdd.AddHalEntryDevice0());
-		}
-
-	// Try to register PlatformSpecific2 handler for Device X. Trying for multiple devices, so
-	// it's highly unlikely that baseport has added this many devices for this group.
-	test.Next(_L("Register new HAL handler - device X"));
-	
-	r=gLdd.AddHalEntryDeviceX();
-	if (r==KErrNone)
-		{
-		gEntryForDeviceXRegistered = ETrue;
-		}
-	else
-		{
-		gEntryForDeviceXRegistered = EFalse;
-		test.Printf(_L("FAILED to register any device for EHalGroupPlatformSpecific2 (r=%d). Some test cases will not be executed"),r);
-		}
-
-    test_Value(r, (r==KErrNone || r==KErrInUse)); // this should not fail, but if it does, print indication
-
-	if (gEntryForDeviceXRegistered)
-		{
-		gTestDeviceNumber=gLdd.GetRegisteredDeviceNumber();
-		test(gTestDeviceNumber != KErrNotFound);
-		}
-
-	test.Next(_L("Try to register new HAL handler for fixed group (EHalGroupKernel) - should not be possible"));
-	test_Equal(KErrArgument,gLdd.AddHalEntryForExistingFixed());
-	}
-
-void TestCallHalHandler()
-	{
-	test.Next(_L("Call HAL handler function - device 0"));
-	if (gEntryForDevice0Registered)
-		{
-		test_KErrNone(UserSvr::HalFunction(EHalGroupPlatformSpecific2,RLddKHalTest::ETestHalFunc,0,0));
-		}
-	else
-		{
-		test.Printf(_L("Didn't try to call handler for device 0, since it wasn't registered in the beginning"));
-		}
-
-	test.Next(_L("Call HAL handler function - device X"));
-	if (gEntryForDeviceXRegistered)
-		{
-		test_KErrNone(UserSvr::HalFunction(EHalGroupPlatformSpecific2,RLddKHalTest::ETestHalFunc,0,0,gTestDeviceNumber));
-		}
-	else
-		{
-		test.Printf(_L("Didn't try to call handler for device x, since it wasn't registered in the beginning"));
-		}
-	}
-
-void TestCallRemovedHalHandler()
-	{
-	TInt r;
-
-	test.Next(_L("Call removed HAL handler function - device 0"));
-	if (gEntryForDevice0Registered)
-		{
-		r=UserSvr::HalFunction(EHalGroupPlatformSpecific2,RLddKHalTest::ETestHalFunc,0,0);
-		test_Compare(r, !=, KErrNone);
-		}
-	else
-		{
-		test.Printf(_L("Didn't try to call removed handler for device 0, since it wasn't registered in the beginning"));
-		}
-
-	test.Next(_L("Call removed HAL handler function - device X"));
-	if (gEntryForDeviceXRegistered)
-		{
-		r=UserSvr::HalFunction(EHalGroupPlatformSpecific2,RLddKHalTest::ETestHalFunc,0,0,gTestDeviceNumber);
-		test_Compare(r, !=, KErrNone);
-		}
-	else
-		{
-		test.Printf(_L("Didn't try to call removed handler for device x, since it wasn't registered in the beginning"));
-		}
-	}
-
-void TestFindHalHandler()
-	{
-	test.Next(_L("Try with one parameter find (device 0) for own handler"));
-	if (gEntryForDevice0Registered)
-		{
-		test_KErrNone(gLdd.FindHalEntryDevice0());
-		}
-	else
-		{
-		test.Printf(_L("Didn't try to find handler for device 0, since it wasn't registered in the beginning"));
-		}
-
-	test.Next(_L("Try with one parameter find (device 0) for an existing group"));
-	test_KErrNone(gLdd.FindHalEntryDevice0Other()); // should find because trying to get EHalGroupKernel, which must exist
-
-	test.Next(_L("Try with two parameter find (device x)"));
-	if (gEntryForDeviceXRegistered)
-		{
-		test_KErrNone(gLdd.FindHalEntryDeviceX()); // should find because handler for device x has been registered
-		}
-	else
-		{
-		test.Printf(_L("Didn't try to find handler for device X, since it wasn't registered in the beginning"));
-		}
-	}
-
-void TestRemoveHalHandler()
-	{
-	test.Next(_L("Remove HAL handler - device 0"));
-	if (gEntryForDevice0Registered)
-		{
-		test_KErrNone(gLdd.RemoveHalEntryDevice0());
-		}
-	else
-		{
-		test.Printf(_L("Didn't try to remove handler for device 0, since it wasn't registered in the beginning"));
-		}
-
-	test.Next(_L("Remove HAL handler - device X"));
-	if (gEntryForDeviceXRegistered)
-		{
-		test_KErrNone(gLdd.RemoveHalEntryDeviceX());
-		}
-	else
-		{
-		test.Printf(_L("Didn't try to remove handler for device x, since it wasn't registered in the beginning"));
-		}
-
-	test.Next(_L("Remove fixed HAL handler (EHalGroupKernel) - should not be possible"));
-	test_Equal(KErrArgument,gLdd.RemoveHalEntryExistingFixed());
-	}
-
-void TestFindRemovedHalHandler()
-	{
-	test.Next(_L("Try with one parameter find (device 0) for removed handler"));
-	if (gEntryForDevice0Registered)
-		{
-		test_Equal(KErrNotFound,gLdd.FindHalEntryDevice0());
-		}
-	else
-		{
-		test.Printf(_L("didn't try to find removed HAL handler for device 0 since it wasn't registered in the beginning"));
-		}
-
-	test.Next(_L("Try with two parameter find (device x) for removed handler"));
-	if (gEntryForDeviceXRegistered)
-		{
-		test_Equal(KErrNotFound,gLdd.FindHalEntryDeviceX());
-		}
-	else
-		{
-		test.Printf(_L("didn't try to find removed HAL handler for device X since it wasn't registered in the beginning"));
-		}
-	}
-
-void LoadDeviceDriver()
-	{
-	test_KErrNone(User::LoadLogicalDevice(KLddName));
-	test_KErrNone(gLdd.Open());
-	}
-
-void UnLoadDeviceDriver()
-	{
-	gLdd.Close();
-	test_KErrNone(User::FreeLogicalDevice(KLddName));
-	}
-
-
-GLDEF_C TInt E32Main()
-//
-// Test Kern HAL API
-//
-	{
-	test.Title();
-
-	test.Start(_L("Test class Kern HAL API functions"));
-	// load the driver
-	LoadDeviceDriver();
-
-	// add handlers for default device (0) and Device X
-	TestAddHalHandler();
-	
-	// call handlers that were managed to register
-	TestCallHalHandler();
-
-	// test find APIs
-	TestFindHalHandler();
-
-	// test removal of HAL handlers
-	TestRemoveHalHandler();
-
-	// test find APIs for removed handlers
-	TestFindRemovedHalHandler();
-
-	// try to call removed handlers
-	TestCallRemovedHalHandler();
-
-	// unload the driver
-	UnLoadDeviceDriver();
-
-	test.End();
-	test.Close();
- 	return(KErrNone);
-    }