kerneltest/e32test/mmu/t_ramall.cpp
changeset 4 56f325a607ea
parent 0 a41df078684a
child 26 c734af59ce98
equal deleted inserted replaced
2:4122176ea935 4:56f325a607ea
    75 	}
    75 	}
    76 
    76 
    77 void TestClaimPhys()
    77 void TestClaimPhys()
    78 	{
    78 	{
    79 	TInt free=FreeRam();
    79 	TInt free=FreeRam();
       
    80 	
    80 	TUint32 pa=0;
    81 	TUint32 pa=0;
    81 	TInt r=AllocPhysicalRam(pa,4*PageSize,0);
    82 	TInt r=AllocPhysicalRam(pa,4*PageSize,0);	
    82 	test(r==KErrNone);
    83 	test(r==KErrNone);
    83 	test(FreeRam()==free-4*PageSize);
    84 	test(FreeRam()==free-4*PageSize);
       
    85 	
    84 	r=FreePhysicalRam(pa,4*PageSize);
    86 	r=FreePhysicalRam(pa,4*PageSize);
    85 	test(r==KErrNone);
    87 	test(r==KErrNone);
    86 	test(FreeRam()==free);
    88 	test(FreeRam()==free);
    87 	r=ClaimPhysicalRam(pa,4*PageSize);
    89 	
       
    90 	r=ClaimPhysicalRam(pa,4*PageSize);	
    88 	test(r==KErrNone);
    91 	test(r==KErrNone);
    89 	test(FreeRam()==free-4*PageSize);
    92 	test(FreeRam()==free-4*PageSize);
       
    93 	
    90 	r=FreePhysicalRam(pa,3*PageSize);
    94 	r=FreePhysicalRam(pa,3*PageSize);
    91 	test(r==KErrNone);
    95 	test(r==KErrNone);
    92 	test(FreeRam()==free-PageSize);
    96 	test(FreeRam()==free-PageSize);
       
    97 	
    93 	r=ClaimPhysicalRam(pa,4*PageSize);
    98 	r=ClaimPhysicalRam(pa,4*PageSize);
    94 	test(r==KErrInUse);
    99 	test(r==KErrInUse);
    95 	test(FreeRam()==free-PageSize);
   100 	test(FreeRam()==free-PageSize);
       
   101 	
       
   102 #ifdef MANUAL_PANIC_TEST
       
   103 //This section of the test should be run as a manual test as it results in
       
   104 // a panic due to attempting to Free an unclaimed page
    96 	if (HaveVirtMem())
   105 	if (HaveVirtMem())
    97 		{
   106 		{
       
   107 		test.Printf(_L("HaveVirtMem() \n"));
    98 		r=FreePhysicalRam(pa,4*PageSize);
   108 		r=FreePhysicalRam(pa,4*PageSize);
       
   109 		test.Printf(_L("FreePhysicalRam() \n"));
    99 		test(r==KErrGeneral);
   110 		test(r==KErrGeneral);
   100 		test(FreeRam()==free-PageSize);
   111 		test(FreeRam()==free-PageSize);
   101 		}
   112 		}
       
   113 #endif
       
   114 	
   102 	r=FreePhysicalRam(pa+3*PageSize,PageSize);
   115 	r=FreePhysicalRam(pa+3*PageSize,PageSize);
   103 	test(r==KErrNone);
   116 	test(r==KErrNone);
   104 	test(FreeRam()==free);
   117 	test(FreeRam()==free);
       
   118 	
   105 	}
   119 	}
   106 
   120 
   107 GLDEF_C TInt E32Main()
   121 GLDEF_C TInt E32Main()
   108 //
   122 //
   109 // Test RAM allocation
   123 // Test RAM allocation
   125 	test.Printf(_L("Free RAM=%08x, Page size=%x, Page shift=%d\n"),InitFreeRam,PageSize,PageShift);
   139 	test.Printf(_L("Free RAM=%08x, Page size=%x, Page shift=%d\n"),InitFreeRam,PageSize,PageShift);
   126 
   140 
   127 	test.Next(_L("Open test LDD"));
   141 	test.Next(_L("Open test LDD"));
   128 	r=Shadow.Open();
   142 	r=Shadow.Open();
   129 	test(r==KErrNone);
   143 	test(r==KErrNone);
   130 
   144 	
       
   145 	test.Next(_L("TestAlignedAllocs"));
   131 	TestAlignedAllocs();
   146 	TestAlignedAllocs();
       
   147 	
       
   148 	test.Next(_L("TestClaimPhys"));
   132 	TestClaimPhys();
   149 	TestClaimPhys();
   133 
   150 
   134 	Shadow.Close();
   151 	Shadow.Close();
   135 	test.End();
   152 	test.End();
   136 	return(KErrNone);
   153 	return(KErrNone);