
/******************************************************************************
 * TESTS MODIFIED
 ******************************************************************************/

T_MESSGE.CPP
	Use CreateFixedPoolSession() instead of CreateSession() so that testing the
	number of available message slots works.

T_PROC1.CPP
	Name lengths reduced to reflect 64 character maximum
	Added various Close() statements to get memory leak checking to work
	Removed dodgy __KHEAP_CHECK(n) statements with various strange values of n -
	changing kernel implementation is very likely to invalidate these.
	Reinstated MurderProcess() test.
	Look for $HEAP chunk instead of $STK; also don't add stack size to base to
	get heap address.
	Changed KERN-SVR panic to KERN-EXEC.
	Removed test that attempts to resume an invalid process handle.
	Added overall kernel heap checking covering the whole test.
	Changed filenames so that test will run from any drive not just Z. T_PROC2
	should be in the same directory as T_PROC1.
	Speed test runs server thread at higher priority than client.

T_SVR.CPP
	Changed panic code from KErrArgument to ECausedException.
	Added some more rogue thread tests to check what happens when an invalid
	message pointer is used in RMessage::Complete.
	Speed test runs server thread at higher priority than client.

T_SVR2.CPP
	Removed granularity expansion stuff.
	Reinstated kernel heap checking.

D_LDD.CPP
	Modified to work with different kernel interface.

T_SERIAL.CPP
	100ms delay between powering up and checking serial port signal lines.
	Use RDevComm instead of RBusDevComm.

T_SOUND.CPP
	Replaced with completely new code which tests the 6.x sound drivers which
	have the new functionality for the MediaServer.
	Removed all tests which require User::FreeLogicalDevice or
	User::FreePhysicalDevice.
	Don't test that Prepare() allocates memory - it doesn't.
	Changed panic from KERN-SVR to KERN-EXEC.
	Removed tests which issue a request from wrong thread (handle is now
	thread relative).
	Change filename used for process creation so that test runs from any drive.

T_TLDD.CPP
	Removed all tests which require User::FreeLogicalDevice or
	User::FreePhysicalDevice, e.g. testing that .data/.bss are reinitialised
	when the device driver is reloaded.

T_START1.CPP, T_START2.CPP, T_START3.CPP
	Print the file name so that these three DLLs end up with different code
	chunks - otherwise loader gets confused when running from RAM.

T_TDLL12.CPP
	Removed __KHEAP_CHECK(n) tests.

T_TDLLA.CPP
	Added another DLL (T_DLLA2) which statically links to T_TDLLA.EXE. However
	this test is currently commented out since the loader cannot handle DLLs
	which link to an already-loaded RAM-based EXE (it attempts to load the .EXE
	again as a DLL). The idea was to test that the .EXE entry point is not
	called again.
	Static data address for T_DLLA3 changed from 0x30300000 to 0x30010000.
	
T_TLS.CPP
	Reinstated kernel heap checking, but removed __KHEAP_CHECK(n) tests.

T_HEAP.CPP
	Close the heap after each test to prevent chunks accumulating and exceeding
	the 8 chunk limit.
	Modified heap sharing test to account for the fact that a thread does not
	create its heap until it runs.
	Added overall kernel heap checking.

T_KHEAP.CPP
	Use shared heaps for the multitudinous threads involved so we don't exceed
	the 8 chunk limit. Test thread creation with shared heaps and with separate
	heaps.
	Change filename used for process creation so that test runs from any drive.

T_MLDR.CPP
	Check test is running from Z: - it doesn't do anything if running from any
	other drive.

D_SHADOW.CPP
	Modified to work with different kernel interface.
	Dynamic binding of exception handlers not yet done in E32RT.
	Call Mmu::FlushShadow() after modifying shadow page to ensure that it is
	written out of a write-back cache.

T_CHUNK.CPP
	Reduced number of chunks created from 10 to 3.
	Removed granularity expansion stuff.
	Reinstated kernel heap checking.
	Look for this process' $HEAP chunk rather than any chunk *Main::$STK - this
	was picking up F32's stack/heap chunk.

T_MWAIT.CPP
	Use different priority values.

T_ATADRV.CPP
	Use TBusLocalDrive::ForceMediaChange() instead of UserPcCardCntrl::PwrDown().
	Added kernel heap checking on media change.

T_ATDRV2.CPP
	Use TBusLocalDrive::ForceMediaChange() instead of UserPcCardCntrl::PwrDown().

T_PCCDSK.CPP
	Use TBusLocalDrive::ForceMediaChange() instead of UserSvr::ForceRemountMedia.

D_POWR.CPP
	Modified to work with different kernel/power manager interface.

T_POWR.CPP
	5 second alarm test does not use LDD to check that no switch off occurred.
	This is because the system does prepare to power down but then changes its
	mind at the last minute - this is necessary since power down and power up
	are completely asynchronous operations.
	Change filename used for process creation so that test runs from any drive.
	Kill the extra processes we create - don't leave them there forever.

T_EXC.CPP
	Added more tests of RThread::Context(). Test context of preempted thread,
	waiting thread and suspended thread.

T_PROT.CPP
	Panic a dead thread rather than a bad handle.
	Added an extra test to check that kernel doesn't die if a bad pointer is
	passed to DThread::RequestComplete().

T_REG.CPP
	Reinstated kernel heap checking.

T_THREAD.CPP
	Modified heap sharing test to account for the fact that a thread does not
	create its heap until it runs.
	Remove test which attempted to resume an invalid thread handle.
	Added short delay between killing thread and checking that a mutex has
	been released.
	Removed Busy flag tests - not yet implemented in E32RT.
	Removed undertaker order test, Bill's bug test and any other tests which
	use thread-relative threads. Thread-relative threads are not supported.


/******************************************************************************
 * NEW TESTS ADDED
 ******************************************************************************/

T_CTXSW1, T_CTXSW2
	Test raw inter-process context switch speed (without message passing).

T_IPCBM
	Benchmark IPC copying for various data sizes.

T_KERNBM
	Benchmark timer creation, thread suspend and synchronous kernel-side
	messages.

T_SVR3
	Stress test for IPC using non-shared sessions.

T_SVR5
	Similar to T_SVR but tests IPC with shared sessions.

T_SVR6
	Stress test for IPC using shared sessions.

T_MEMCPY
	Tests Mem::Copy for all alignments and various data sizes.

T_TBMA
	Tests TBitMapAllocator class used in the kernel.

CPUMETER
	Gives a rough estimate of what percentage of the CPU time is currently
	being used.

CRASH
	Causes a kernel fault.

FREEMEM
	Displays the amount of free RAM remaining.

T_ABT
	Repeatedly does an IPC copy which causes an exception. Left running in the
	background for latency measurements.

T_ALIVE
	Prints to the debug serial port periodically based on both a tick and a
	millisecond timer. Used to check timers are running.

T_BUSY
	Runs every millisecond on a millisecond timer. Prints a . every 1024ms.
	Used to cause lots of rescheduling to a moving user process.

T_CMPRES
	Tests heap compression.

T_DABT
	Causes a data abort.

T_PABT
	Causes a prefetch abort.

T_UNDEF
	Causes an undefined instruction exception.

T_DEATH
	Displays exit information for any threads which die.

T_DEATH2
	Like T_DEATH but writes the information to a file.

T_EMPTY
	Does absolutely nothing! Has no imports.

T_KILL
	Exits with a write to a file in progress.

T_RAMUSE
	Displays total kernel heap used.

T_RECORD
	Deleted because sound driver changes completely break it.
	Continuously records sound.

T_REPMD
	Loads a replacement ATA media driver MEDATA2.PDD.

T_STRES1
	General stress test - create/close kernel objects, heap alloc/dealloc,
	heap compression, killing threads.

THRDLIST
	Writes a list of all threads in the system with register values to a file.

T_CHUNK3
	Repeated chunk resizing.

T_CHUNK4
	Tests disconnected chunks.

T_MMUBM
	Benchmark test for memory allocation/deallocation.

T_WBC
	Tests unmapping memory works on systems with write back caches.

T_ATADR3
	Stress test of CF card. Multiple threads reading/writing card with media
	changes, power downs and threads exiting in the middle of operations.

T_MEDIA
	Test of ATA media driver. Tests reading and writing of various lengths
	from 256 bytes to 16.5K, both aligned to sector boundary and with
	beginning or end of region or both unaligned.

T_BATTP
	Deleted because sound driver changes break code and kernel reorg has 
	probably broke the rest.
	Monitors battery voltage over an extended period with alarms playing and
	backlight in use.

T_LATNCY
	Measures interrupt and kernel thread latency using a special build of the
	kernel.

T_LAT2
	Measures interrupt, kernel thread and user thread latency using a periodic
	millisecond timer (interrupt every 1ms).

D_LATNCY
	Device driver for T_LAT2. This runs the millisecond timer and the kernel
	thread. The user thread is part of T_LAT2.

T_WRITE
	Does repeated 64K IPC copies. Run in the background during latency
	measurements.

T_FRAG
	Does repeated chunk resizing using multiple threads. Run in the background
	during latency measurements.

T_PROT2, T_PROT2A
	Test that user threads cannot corrupt the code/data chunk of a process while
	it is being loaded.

T_PWRDN
	Repeatedly powers the machine on and off.


/******************************************************************************
 * TESTS REMOVED OR NOT YET PORTED TO E32RT.
 ******************************************************************************/

T_RTIM
	This tests super-threads, which never worked anyway. This has been superceded
	by T_LATNCY and T_LAT2.

D_RTIM
	Device driver for T_RTIM.

T_PTNOS
	Tests partner OS hooks - E32RT doesn't have these.

D_PTNOS
	Device driver for T_PTNOS.

T_MSTIM
	Millisecond timer test - this doesn't really test anything anyway.

D_MSTIM
	Device driver for T_MSTIM.

T_PROF
	CPU-time per thread profiling. Not yet implemented in E32RT. Requires special
	build of kernel.

D_PROF
	Device driver for profiling - not yet implemented in E32RT.

D_PATCH1, D_PATCH2, D_PATCH3
	Test patches - test loading of patches at boot time. These have not yet been
	ported.

T_PCCD1, T_PCCD2, T_PCCD3
	These require D_PCCDIF and/or D_DRVIF, which have not yet been ported.

D_PCCDIF, D_DRVIF
	Test device drivers for testing PC card controller/local media system. Not
	yet ported to E32RT.

T_MEDDRV
	Tests multiple simultaneous requests on a media driver. Uses device drivers
	D_MEDT1, D_MEDT2 which have not yet been ported to E32RT. Test program
	T_ATADR3 does a similar thing by having multiple threads all accessing a
	drive at the same time.

T_BEXFIQ, T_EXTFIQ, T_MEDCH
	Use device drivers which have not been ported. First two of these are only
	usable on a specially modified rack D.

D_BEXFIQ, D_EXTFIQ, D_MEDCH
	Not ported to E32RT. First two of these are only usable on a specially
	modified rack D.

T_DBG, T_BREAK
	No debug support in E32RT yet.

T_RESET
	Not yet ported - it uses RDebug to read the super page, needs D_PATCHn
	drivers. Also doesn't work with the crash debugger. Snowdrop E32RT doesn't
	reboot properly after kernel fault (if the crash debugger is not there)
	since it needs some variant information to do so.

E32SOUND, E32SDRV
	Sound drivers are still part of E32.

T_MODEM1
	PC card serial driver not yet implemented.

T_PROM
	EEPROM driver not implemented.

T_CRMDRV, T_CRRDRV
	Compact ROM media driver not ported.

T_DEBUG
	What is this supposed to test?
