Update contrib.
2 /******************************************************************************
4 ******************************************************************************/
7 Use CreateFixedPoolSession() instead of CreateSession() so that testing the
8 number of available message slots works.
11 Name lengths reduced to reflect 64 character maximum
12 Added various Close() statements to get memory leak checking to work
13 Removed dodgy __KHEAP_CHECK(n) statements with various strange values of n -
14 changing kernel implementation is very likely to invalidate these.
15 Reinstated MurderProcess() test.
16 Look for $HEAP chunk instead of $STK; also don't add stack size to base to
18 Changed KERN-SVR panic to KERN-EXEC.
19 Removed test that attempts to resume an invalid process handle.
20 Added overall kernel heap checking covering the whole test.
21 Changed filenames so that test will run from any drive not just Z. T_PROC2
22 should be in the same directory as T_PROC1.
23 Speed test runs server thread at higher priority than client.
26 Changed panic code from KErrArgument to ECausedException.
27 Added some more rogue thread tests to check what happens when an invalid
28 message pointer is used in RMessage::Complete.
29 Speed test runs server thread at higher priority than client.
32 Removed granularity expansion stuff.
33 Reinstated kernel heap checking.
36 Modified to work with different kernel interface.
39 100ms delay between powering up and checking serial port signal lines.
40 Use RDevComm instead of RBusDevComm.
43 Replaced with completely new code which tests the 6.x sound drivers which
44 have the new functionality for the MediaServer.
45 Removed all tests which require User::FreeLogicalDevice or
46 User::FreePhysicalDevice.
47 Don't test that Prepare() allocates memory - it doesn't.
48 Changed panic from KERN-SVR to KERN-EXEC.
49 Removed tests which issue a request from wrong thread (handle is now
51 Change filename used for process creation so that test runs from any drive.
54 Removed all tests which require User::FreeLogicalDevice or
55 User::FreePhysicalDevice, e.g. testing that .data/.bss are reinitialised
56 when the device driver is reloaded.
58 T_START1.CPP, T_START2.CPP, T_START3.CPP
59 Print the file name so that these three DLLs end up with different code
60 chunks - otherwise loader gets confused when running from RAM.
63 Removed __KHEAP_CHECK(n) tests.
66 Added another DLL (T_DLLA2) which statically links to T_TDLLA.EXE. However
67 this test is currently commented out since the loader cannot handle DLLs
68 which link to an already-loaded RAM-based EXE (it attempts to load the .EXE
69 again as a DLL). The idea was to test that the .EXE entry point is not
71 Static data address for T_DLLA3 changed from 0x30300000 to 0x30010000.
74 Reinstated kernel heap checking, but removed __KHEAP_CHECK(n) tests.
77 Close the heap after each test to prevent chunks accumulating and exceeding
79 Modified heap sharing test to account for the fact that a thread does not
80 create its heap until it runs.
81 Added overall kernel heap checking.
84 Use shared heaps for the multitudinous threads involved so we don't exceed
85 the 8 chunk limit. Test thread creation with shared heaps and with separate
87 Change filename used for process creation so that test runs from any drive.
90 Check test is running from Z: - it doesn't do anything if running from any
94 Modified to work with different kernel interface.
95 Dynamic binding of exception handlers not yet done in E32RT.
96 Call Mmu::FlushShadow() after modifying shadow page to ensure that it is
97 written out of a write-back cache.
100 Reduced number of chunks created from 10 to 3.
101 Removed granularity expansion stuff.
102 Reinstated kernel heap checking.
103 Look for this process' $HEAP chunk rather than any chunk *Main::$STK - this
104 was picking up F32's stack/heap chunk.
107 Use different priority values.
110 Use TBusLocalDrive::ForceMediaChange() instead of UserPcCardCntrl::PwrDown().
111 Added kernel heap checking on media change.
114 Use TBusLocalDrive::ForceMediaChange() instead of UserPcCardCntrl::PwrDown().
117 Use TBusLocalDrive::ForceMediaChange() instead of UserSvr::ForceRemountMedia.
120 Modified to work with different kernel/power manager interface.
123 5 second alarm test does not use LDD to check that no switch off occurred.
124 This is because the system does prepare to power down but then changes its
125 mind at the last minute - this is necessary since power down and power up
126 are completely asynchronous operations.
127 Change filename used for process creation so that test runs from any drive.
128 Kill the extra processes we create - don't leave them there forever.
131 Added more tests of RThread::Context(). Test context of preempted thread,
132 waiting thread and suspended thread.
135 Panic a dead thread rather than a bad handle.
136 Added an extra test to check that kernel doesn't die if a bad pointer is
137 passed to DThread::RequestComplete().
140 Reinstated kernel heap checking.
143 Modified heap sharing test to account for the fact that a thread does not
144 create its heap until it runs.
145 Remove test which attempted to resume an invalid thread handle.
146 Added short delay between killing thread and checking that a mutex has
148 Removed Busy flag tests - not yet implemented in E32RT.
149 Removed undertaker order test, Bill's bug test and any other tests which
150 use thread-relative threads. Thread-relative threads are not supported.
153 /******************************************************************************
155 ******************************************************************************/
158 Test raw inter-process context switch speed (without message passing).
161 Benchmark IPC copying for various data sizes.
164 Benchmark timer creation, thread suspend and synchronous kernel-side
168 Stress test for IPC using non-shared sessions.
171 Similar to T_SVR but tests IPC with shared sessions.
174 Stress test for IPC using shared sessions.
177 Tests Mem::Copy for all alignments and various data sizes.
180 Tests TBitMapAllocator class used in the kernel.
183 Gives a rough estimate of what percentage of the CPU time is currently
187 Causes a kernel fault.
190 Displays the amount of free RAM remaining.
193 Repeatedly does an IPC copy which causes an exception. Left running in the
194 background for latency measurements.
197 Prints to the debug serial port periodically based on both a tick and a
198 millisecond timer. Used to check timers are running.
201 Runs every millisecond on a millisecond timer. Prints a . every 1024ms.
202 Used to cause lots of rescheduling to a moving user process.
205 Tests heap compression.
211 Causes a prefetch abort.
214 Causes an undefined instruction exception.
217 Displays exit information for any threads which die.
220 Like T_DEATH but writes the information to a file.
223 Does absolutely nothing! Has no imports.
226 Exits with a write to a file in progress.
229 Displays total kernel heap used.
232 Deleted because sound driver changes completely break it.
233 Continuously records sound.
236 Loads a replacement ATA media driver MEDATA2.PDD.
239 General stress test - create/close kernel objects, heap alloc/dealloc,
240 heap compression, killing threads.
243 Writes a list of all threads in the system with register values to a file.
246 Repeated chunk resizing.
249 Tests disconnected chunks.
252 Benchmark test for memory allocation/deallocation.
255 Tests unmapping memory works on systems with write back caches.
258 Stress test of CF card. Multiple threads reading/writing card with media
259 changes, power downs and threads exiting in the middle of operations.
262 Test of ATA media driver. Tests reading and writing of various lengths
263 from 256 bytes to 16.5K, both aligned to sector boundary and with
264 beginning or end of region or both unaligned.
267 Deleted because sound driver changes break code and kernel reorg has
268 probably broke the rest.
269 Monitors battery voltage over an extended period with alarms playing and
273 Measures interrupt and kernel thread latency using a special build of the
277 Measures interrupt, kernel thread and user thread latency using a periodic
278 millisecond timer (interrupt every 1ms).
281 Device driver for T_LAT2. This runs the millisecond timer and the kernel
282 thread. The user thread is part of T_LAT2.
285 Does repeated 64K IPC copies. Run in the background during latency
289 Does repeated chunk resizing using multiple threads. Run in the background
290 during latency measurements.
293 Test that user threads cannot corrupt the code/data chunk of a process while
297 Repeatedly powers the machine on and off.
300 /******************************************************************************
301 * TESTS REMOVED OR NOT YET PORTED TO E32RT.
302 ******************************************************************************/
305 This tests super-threads, which never worked anyway. This has been superceded
306 by T_LATNCY and T_LAT2.
309 Device driver for T_RTIM.
312 Tests partner OS hooks - E32RT doesn't have these.
315 Device driver for T_PTNOS.
318 Millisecond timer test - this doesn't really test anything anyway.
321 Device driver for T_MSTIM.
324 CPU-time per thread profiling. Not yet implemented in E32RT. Requires special
328 Device driver for profiling - not yet implemented in E32RT.
330 D_PATCH1, D_PATCH2, D_PATCH3
331 Test patches - test loading of patches at boot time. These have not yet been
334 T_PCCD1, T_PCCD2, T_PCCD3
335 These require D_PCCDIF and/or D_DRVIF, which have not yet been ported.
338 Test device drivers for testing PC card controller/local media system. Not
342 Tests multiple simultaneous requests on a media driver. Uses device drivers
343 D_MEDT1, D_MEDT2 which have not yet been ported to E32RT. Test program
344 T_ATADR3 does a similar thing by having multiple threads all accessing a
345 drive at the same time.
347 T_BEXFIQ, T_EXTFIQ, T_MEDCH
348 Use device drivers which have not been ported. First two of these are only
349 usable on a specially modified rack D.
351 D_BEXFIQ, D_EXTFIQ, D_MEDCH
352 Not ported to E32RT. First two of these are only usable on a specially
356 No debug support in E32RT yet.
359 Not yet ported - it uses RDebug to read the super page, needs D_PATCHn
360 drivers. Also doesn't work with the crash debugger. Snowdrop E32RT doesn't
361 reboot properly after kernel fault (if the crash debugger is not there)
362 since it needs some variant information to do so.
365 Sound drivers are still part of E32.
368 PC card serial driver not yet implemented.
371 EEPROM driver not implemented.
374 Compact ROM media driver not ported.
377 What is this supposed to test?