debugsrv/runmodedebug/tsrc/rm_debug/basic_tests/r_low_memory_security_svr_session.cpp
author hgs
Fri, 08 Oct 2010 14:56:39 +0300
changeset 56 aa2539c91954
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
hgs
parents:
diff changeset
     1
// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     2
// All rights reserved.
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     7
//
hgs
parents:
diff changeset
     8
// Initial Contributors:
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    10
//
hgs
parents:
diff changeset
    11
// Contributors:
hgs
parents:
diff changeset
    12
//
hgs
parents:
diff changeset
    13
// Description:
hgs
parents:
diff changeset
    14
// Implementation of RLowMemorySecuritySvrSession
hgs
parents:
diff changeset
    15
// 
hgs
parents:
diff changeset
    16
//
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "r_low_memory_security_svr_session.h"
hgs
parents:
diff changeset
    19
#include <e32debug.h>
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// test the effects of heap failure on global RSecuritySvrSession::GetList() in debug mode,
hgs
parents:
diff changeset
    22
// in release mode normal call is made (heap checking not applicable)
hgs
parents:
diff changeset
    23
TInt RLowMemorySecuritySvrSession::GetList(const Debug::TListId aListId, TDes8& aListData, TUint32& aDataSize)
hgs
parents:
diff changeset
    24
	{
hgs
parents:
diff changeset
    25
	TInt failAt = 0;
hgs
parents:
diff changeset
    26
	TInt err = KErrNoMemory;
hgs
parents:
diff changeset
    27
	while(err == KErrNoMemory)
hgs
parents:
diff changeset
    28
		{
hgs
parents:
diff changeset
    29
		failAt++;
hgs
parents:
diff changeset
    30
		FailAlloc(failAt);
hgs
parents:
diff changeset
    31
		MarkHeap();
hgs
parents:
diff changeset
    32
		err = this->RSecuritySvrSession::GetList(aListId, aListData, aDataSize);
hgs
parents:
diff changeset
    33
		if(KErrNoMemory == err)
hgs
parents:
diff changeset
    34
			{
hgs
parents:
diff changeset
    35
			MarkHeapEnd();
hgs
parents:
diff changeset
    36
			}
hgs
parents:
diff changeset
    37
		HeapReset();
hgs
parents:
diff changeset
    38
		//RDebug::Printf("Debug::RLowMemorySecuritySvrSession::GetList(): failAt: %d, err: %d", failAt, err);
hgs
parents:
diff changeset
    39
		}
hgs
parents:
diff changeset
    40
	return err;
hgs
parents:
diff changeset
    41
	}
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
// test the effects of heap failure on thread-specific RSecuritySvrSession::GetList() in debug mode,
hgs
parents:
diff changeset
    44
// in release mode normal call is made (heap checking not applicable)
hgs
parents:
diff changeset
    45
TInt RLowMemorySecuritySvrSession::GetList(const TThreadId aThreadId, const Debug::TListId aListId, TDes8& aListData, TUint32& aDataSize)
hgs
parents:
diff changeset
    46
	{
hgs
parents:
diff changeset
    47
	TInt failAt = 0;
hgs
parents:
diff changeset
    48
	TInt err = KErrNoMemory;
hgs
parents:
diff changeset
    49
	while(err == KErrNoMemory)
hgs
parents:
diff changeset
    50
		{
hgs
parents:
diff changeset
    51
		failAt++;
hgs
parents:
diff changeset
    52
		FailAlloc(failAt);
hgs
parents:
diff changeset
    53
		MarkHeap();
hgs
parents:
diff changeset
    54
		err = this->RSecuritySvrSession::GetList(aThreadId, aListId, aListData, aDataSize);
hgs
parents:
diff changeset
    55
		if(KErrNoMemory == err)
hgs
parents:
diff changeset
    56
			{
hgs
parents:
diff changeset
    57
			MarkHeapEnd();
hgs
parents:
diff changeset
    58
			}
hgs
parents:
diff changeset
    59
		HeapReset();
hgs
parents:
diff changeset
    60
		//RDebug::Printf("Debug::RLowMemorySecuritySvrSession::GetList(TThreadId): failAt: %d, err: %d", failAt, err);
hgs
parents:
diff changeset
    61
		}
hgs
parents:
diff changeset
    62
	return err;
hgs
parents:
diff changeset
    63
	}
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
// test the effects of heap failure on process-specific RSecuritySvrSession::GetList() in debug mode,
hgs
parents:
diff changeset
    66
// in release mode normal call is made (heap checking not applicable)
hgs
parents:
diff changeset
    67
TInt RLowMemorySecuritySvrSession::GetList(const TProcessId aProcessId, const Debug::TListId aListId, TDes8& aListData, TUint32& aDataSize)
hgs
parents:
diff changeset
    68
	{
hgs
parents:
diff changeset
    69
	TInt failAt = 0;
hgs
parents:
diff changeset
    70
	TInt err = KErrNoMemory;
hgs
parents:
diff changeset
    71
	while(err == KErrNoMemory)
hgs
parents:
diff changeset
    72
		{
hgs
parents:
diff changeset
    73
		failAt++;
hgs
parents:
diff changeset
    74
		FailAlloc(failAt);
hgs
parents:
diff changeset
    75
		MarkHeap();
hgs
parents:
diff changeset
    76
		err = this->RSecuritySvrSession::GetList(aProcessId, aListId, aListData, aDataSize);
hgs
parents:
diff changeset
    77
		if(KErrNoMemory == err)
hgs
parents:
diff changeset
    78
			{
hgs
parents:
diff changeset
    79
			MarkHeapEnd();
hgs
parents:
diff changeset
    80
			}
hgs
parents:
diff changeset
    81
		HeapReset();
hgs
parents:
diff changeset
    82
		//RDebug::Printf("Debug::RLowMemorySecuritySvrSession::GetList(TProcessId): failAt: %d, err: %d", failAt, err);
hgs
parents:
diff changeset
    83
		}
hgs
parents:
diff changeset
    84
	return err;
hgs
parents:
diff changeset
    85
	}
hgs
parents:
diff changeset
    86