sl@0: sl@0: /****************************************************************************** sl@0: * TESTS MODIFIED sl@0: ******************************************************************************/ sl@0: sl@0: T_MESSGE.CPP sl@0: Use CreateFixedPoolSession() instead of CreateSession() so that testing the sl@0: number of available message slots works. sl@0: sl@0: T_PROC1.CPP sl@0: Name lengths reduced to reflect 64 character maximum sl@0: Added various Close() statements to get memory leak checking to work sl@0: Removed dodgy __KHEAP_CHECK(n) statements with various strange values of n - sl@0: changing kernel implementation is very likely to invalidate these. sl@0: Reinstated MurderProcess() test. sl@0: Look for $HEAP chunk instead of $STK; also don't add stack size to base to sl@0: get heap address. sl@0: Changed KERN-SVR panic to KERN-EXEC. sl@0: Removed test that attempts to resume an invalid process handle. sl@0: Added overall kernel heap checking covering the whole test. sl@0: Changed filenames so that test will run from any drive not just Z. T_PROC2 sl@0: should be in the same directory as T_PROC1. sl@0: Speed test runs server thread at higher priority than client. sl@0: sl@0: T_SVR.CPP sl@0: Changed panic code from KErrArgument to ECausedException. sl@0: Added some more rogue thread tests to check what happens when an invalid sl@0: message pointer is used in RMessage::Complete. sl@0: Speed test runs server thread at higher priority than client. sl@0: sl@0: T_SVR2.CPP sl@0: Removed granularity expansion stuff. sl@0: Reinstated kernel heap checking. sl@0: sl@0: D_LDD.CPP sl@0: Modified to work with different kernel interface. sl@0: sl@0: T_SERIAL.CPP sl@0: 100ms delay between powering up and checking serial port signal lines. sl@0: Use RDevComm instead of RBusDevComm. sl@0: sl@0: T_SOUND.CPP sl@0: Replaced with completely new code which tests the 6.x sound drivers which sl@0: have the new functionality for the MediaServer. sl@0: Removed all tests which require User::FreeLogicalDevice or sl@0: User::FreePhysicalDevice. sl@0: Don't test that Prepare() allocates memory - it doesn't. sl@0: Changed panic from KERN-SVR to KERN-EXEC. sl@0: Removed tests which issue a request from wrong thread (handle is now sl@0: thread relative). sl@0: Change filename used for process creation so that test runs from any drive. sl@0: sl@0: T_TLDD.CPP sl@0: Removed all tests which require User::FreeLogicalDevice or sl@0: User::FreePhysicalDevice, e.g. testing that .data/.bss are reinitialised sl@0: when the device driver is reloaded. sl@0: sl@0: T_START1.CPP, T_START2.CPP, T_START3.CPP sl@0: Print the file name so that these three DLLs end up with different code sl@0: chunks - otherwise loader gets confused when running from RAM. sl@0: sl@0: T_TDLL12.CPP sl@0: Removed __KHEAP_CHECK(n) tests. sl@0: sl@0: T_TDLLA.CPP sl@0: Added another DLL (T_DLLA2) which statically links to T_TDLLA.EXE. However sl@0: this test is currently commented out since the loader cannot handle DLLs sl@0: which link to an already-loaded RAM-based EXE (it attempts to load the .EXE sl@0: again as a DLL). The idea was to test that the .EXE entry point is not sl@0: called again. sl@0: Static data address for T_DLLA3 changed from 0x30300000 to 0x30010000. sl@0: sl@0: T_TLS.CPP sl@0: Reinstated kernel heap checking, but removed __KHEAP_CHECK(n) tests. sl@0: sl@0: T_HEAP.CPP sl@0: Close the heap after each test to prevent chunks accumulating and exceeding sl@0: the 8 chunk limit. sl@0: Modified heap sharing test to account for the fact that a thread does not sl@0: create its heap until it runs. sl@0: Added overall kernel heap checking. sl@0: sl@0: T_KHEAP.CPP sl@0: Use shared heaps for the multitudinous threads involved so we don't exceed sl@0: the 8 chunk limit. Test thread creation with shared heaps and with separate sl@0: heaps. sl@0: Change filename used for process creation so that test runs from any drive. sl@0: sl@0: T_MLDR.CPP sl@0: Check test is running from Z: - it doesn't do anything if running from any sl@0: other drive. sl@0: sl@0: D_SHADOW.CPP sl@0: Modified to work with different kernel interface. sl@0: Dynamic binding of exception handlers not yet done in E32RT. sl@0: Call Mmu::FlushShadow() after modifying shadow page to ensure that it is sl@0: written out of a write-back cache. sl@0: sl@0: T_CHUNK.CPP sl@0: Reduced number of chunks created from 10 to 3. sl@0: Removed granularity expansion stuff. sl@0: Reinstated kernel heap checking. sl@0: Look for this process' $HEAP chunk rather than any chunk *Main::$STK - this sl@0: was picking up F32's stack/heap chunk. sl@0: sl@0: T_MWAIT.CPP sl@0: Use different priority values. sl@0: sl@0: T_ATADRV.CPP sl@0: Use TBusLocalDrive::ForceMediaChange() instead of UserPcCardCntrl::PwrDown(). sl@0: Added kernel heap checking on media change. sl@0: sl@0: T_ATDRV2.CPP sl@0: Use TBusLocalDrive::ForceMediaChange() instead of UserPcCardCntrl::PwrDown(). sl@0: sl@0: T_PCCDSK.CPP sl@0: Use TBusLocalDrive::ForceMediaChange() instead of UserSvr::ForceRemountMedia. sl@0: sl@0: D_POWR.CPP sl@0: Modified to work with different kernel/power manager interface. sl@0: sl@0: T_POWR.CPP sl@0: 5 second alarm test does not use LDD to check that no switch off occurred. sl@0: This is because the system does prepare to power down but then changes its sl@0: mind at the last minute - this is necessary since power down and power up sl@0: are completely asynchronous operations. sl@0: Change filename used for process creation so that test runs from any drive. sl@0: Kill the extra processes we create - don't leave them there forever. sl@0: sl@0: T_EXC.CPP sl@0: Added more tests of RThread::Context(). Test context of preempted thread, sl@0: waiting thread and suspended thread. sl@0: sl@0: T_PROT.CPP sl@0: Panic a dead thread rather than a bad handle. sl@0: Added an extra test to check that kernel doesn't die if a bad pointer is sl@0: passed to DThread::RequestComplete(). sl@0: sl@0: T_REG.CPP sl@0: Reinstated kernel heap checking. sl@0: sl@0: T_THREAD.CPP sl@0: Modified heap sharing test to account for the fact that a thread does not sl@0: create its heap until it runs. sl@0: Remove test which attempted to resume an invalid thread handle. sl@0: Added short delay between killing thread and checking that a mutex has sl@0: been released. sl@0: Removed Busy flag tests - not yet implemented in E32RT. sl@0: Removed undertaker order test, Bill's bug test and any other tests which sl@0: use thread-relative threads. Thread-relative threads are not supported. sl@0: sl@0: sl@0: /****************************************************************************** sl@0: * NEW TESTS ADDED sl@0: ******************************************************************************/ sl@0: sl@0: T_CTXSW1, T_CTXSW2 sl@0: Test raw inter-process context switch speed (without message passing). sl@0: sl@0: T_IPCBM sl@0: Benchmark IPC copying for various data sizes. sl@0: sl@0: T_KERNBM sl@0: Benchmark timer creation, thread suspend and synchronous kernel-side sl@0: messages. sl@0: sl@0: T_SVR3 sl@0: Stress test for IPC using non-shared sessions. sl@0: sl@0: T_SVR5 sl@0: Similar to T_SVR but tests IPC with shared sessions. sl@0: sl@0: T_SVR6 sl@0: Stress test for IPC using shared sessions. sl@0: sl@0: T_MEMCPY sl@0: Tests Mem::Copy for all alignments and various data sizes. sl@0: sl@0: T_TBMA sl@0: Tests TBitMapAllocator class used in the kernel. sl@0: sl@0: CPUMETER sl@0: Gives a rough estimate of what percentage of the CPU time is currently sl@0: being used. sl@0: sl@0: CRASH sl@0: Causes a kernel fault. sl@0: sl@0: FREEMEM sl@0: Displays the amount of free RAM remaining. sl@0: sl@0: T_ABT sl@0: Repeatedly does an IPC copy which causes an exception. Left running in the sl@0: background for latency measurements. sl@0: sl@0: T_ALIVE sl@0: Prints to the debug serial port periodically based on both a tick and a sl@0: millisecond timer. Used to check timers are running. sl@0: sl@0: T_BUSY sl@0: Runs every millisecond on a millisecond timer. Prints a . every 1024ms. sl@0: Used to cause lots of rescheduling to a moving user process. sl@0: sl@0: T_CMPRES sl@0: Tests heap compression. sl@0: sl@0: T_DABT sl@0: Causes a data abort. sl@0: sl@0: T_PABT sl@0: Causes a prefetch abort. sl@0: sl@0: T_UNDEF sl@0: Causes an undefined instruction exception. sl@0: sl@0: T_DEATH sl@0: Displays exit information for any threads which die. sl@0: sl@0: T_DEATH2 sl@0: Like T_DEATH but writes the information to a file. sl@0: sl@0: T_EMPTY sl@0: Does absolutely nothing! Has no imports. sl@0: sl@0: T_KILL sl@0: Exits with a write to a file in progress. sl@0: sl@0: T_RAMUSE sl@0: Displays total kernel heap used. sl@0: sl@0: T_RECORD sl@0: Deleted because sound driver changes completely break it. sl@0: Continuously records sound. sl@0: sl@0: T_REPMD sl@0: Loads a replacement ATA media driver MEDATA2.PDD. sl@0: sl@0: T_STRES1 sl@0: General stress test - create/close kernel objects, heap alloc/dealloc, sl@0: heap compression, killing threads. sl@0: sl@0: THRDLIST sl@0: Writes a list of all threads in the system with register values to a file. sl@0: sl@0: T_CHUNK3 sl@0: Repeated chunk resizing. sl@0: sl@0: T_CHUNK4 sl@0: Tests disconnected chunks. sl@0: sl@0: T_MMUBM sl@0: Benchmark test for memory allocation/deallocation. sl@0: sl@0: T_WBC sl@0: Tests unmapping memory works on systems with write back caches. sl@0: sl@0: T_ATADR3 sl@0: Stress test of CF card. Multiple threads reading/writing card with media sl@0: changes, power downs and threads exiting in the middle of operations. sl@0: sl@0: T_MEDIA sl@0: Test of ATA media driver. Tests reading and writing of various lengths sl@0: from 256 bytes to 16.5K, both aligned to sector boundary and with sl@0: beginning or end of region or both unaligned. sl@0: sl@0: T_BATTP sl@0: Deleted because sound driver changes break code and kernel reorg has sl@0: probably broke the rest. sl@0: Monitors battery voltage over an extended period with alarms playing and sl@0: backlight in use. sl@0: sl@0: T_LATNCY sl@0: Measures interrupt and kernel thread latency using a special build of the sl@0: kernel. sl@0: sl@0: T_LAT2 sl@0: Measures interrupt, kernel thread and user thread latency using a periodic sl@0: millisecond timer (interrupt every 1ms). sl@0: sl@0: D_LATNCY sl@0: Device driver for T_LAT2. This runs the millisecond timer and the kernel sl@0: thread. The user thread is part of T_LAT2. sl@0: sl@0: T_WRITE sl@0: Does repeated 64K IPC copies. Run in the background during latency sl@0: measurements. sl@0: sl@0: T_FRAG sl@0: Does repeated chunk resizing using multiple threads. Run in the background sl@0: during latency measurements. sl@0: sl@0: T_PROT2, T_PROT2A sl@0: Test that user threads cannot corrupt the code/data chunk of a process while sl@0: it is being loaded. sl@0: sl@0: T_PWRDN sl@0: Repeatedly powers the machine on and off. sl@0: sl@0: sl@0: /****************************************************************************** sl@0: * TESTS REMOVED OR NOT YET PORTED TO E32RT. sl@0: ******************************************************************************/ sl@0: sl@0: T_RTIM sl@0: This tests super-threads, which never worked anyway. This has been superceded sl@0: by T_LATNCY and T_LAT2. sl@0: sl@0: D_RTIM sl@0: Device driver for T_RTIM. sl@0: sl@0: T_PTNOS sl@0: Tests partner OS hooks - E32RT doesn't have these. sl@0: sl@0: D_PTNOS sl@0: Device driver for T_PTNOS. sl@0: sl@0: T_MSTIM sl@0: Millisecond timer test - this doesn't really test anything anyway. sl@0: sl@0: D_MSTIM sl@0: Device driver for T_MSTIM. sl@0: sl@0: T_PROF sl@0: CPU-time per thread profiling. Not yet implemented in E32RT. Requires special sl@0: build of kernel. sl@0: sl@0: D_PROF sl@0: Device driver for profiling - not yet implemented in E32RT. sl@0: sl@0: D_PATCH1, D_PATCH2, D_PATCH3 sl@0: Test patches - test loading of patches at boot time. These have not yet been sl@0: ported. sl@0: sl@0: T_PCCD1, T_PCCD2, T_PCCD3 sl@0: These require D_PCCDIF and/or D_DRVIF, which have not yet been ported. sl@0: sl@0: D_PCCDIF, D_DRVIF sl@0: Test device drivers for testing PC card controller/local media system. Not sl@0: yet ported to E32RT. sl@0: sl@0: T_MEDDRV sl@0: Tests multiple simultaneous requests on a media driver. Uses device drivers sl@0: D_MEDT1, D_MEDT2 which have not yet been ported to E32RT. Test program sl@0: T_ATADR3 does a similar thing by having multiple threads all accessing a sl@0: drive at the same time. sl@0: sl@0: T_BEXFIQ, T_EXTFIQ, T_MEDCH sl@0: Use device drivers which have not been ported. First two of these are only sl@0: usable on a specially modified rack D. sl@0: sl@0: D_BEXFIQ, D_EXTFIQ, D_MEDCH sl@0: Not ported to E32RT. First two of these are only usable on a specially sl@0: modified rack D. sl@0: sl@0: T_DBG, T_BREAK sl@0: No debug support in E32RT yet. sl@0: sl@0: T_RESET sl@0: Not yet ported - it uses RDebug to read the super page, needs D_PATCHn sl@0: drivers. Also doesn't work with the crash debugger. Snowdrop E32RT doesn't sl@0: reboot properly after kernel fault (if the crash debugger is not there) sl@0: since it needs some variant information to do so. sl@0: sl@0: E32SOUND, E32SDRV sl@0: Sound drivers are still part of E32. sl@0: sl@0: T_MODEM1 sl@0: PC card serial driver not yet implemented. sl@0: sl@0: T_PROM sl@0: EEPROM driver not implemented. sl@0: sl@0: T_CRMDRV, T_CRRDRV sl@0: Compact ROM media driver not ported. sl@0: sl@0: T_DEBUG sl@0: What is this supposed to test?