Go to the previous, next section.
The testing process was conducted in two parts.
Because some parts of the project were written before the operating system was up and running, they were written so that they could be tested under different environments. This required the use of the C preprocessor to conditionally include parts of the source files to interface them with the test environment.
The two test environments we used were Linux (a Unix like operating system) and DJGPP running under MS-DOS. These were used as testing environments because they were stable systems and had appropriate tools to help with the testing process. The testing environments were utilised in such a way as to provide a good emulation of the final operating system's interface. This meant that the parts tested under these environments were considered solid enough to be used in the final system.
This helped when we came to get the project up and running on its own since we could be sure that these parts were already reliable.
As parts of the core kernel and support routines were written, they were tested insitu rather than being tested in external environments because of the nature of the routines. This meant that commands were added to the kernel to be used for testing the routines in place. Such parts as the scheduler and exception handlers could only be tested in this environment because the effort taken to write a simulation test bed for these would have been considerable and this could also have added other bugs into the system.
Go to the previous, next section.