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