--- 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);
- }