Channels ▼


Building a Test Harness for RTOS

Hardware and Technology for Testing

Again, our software is based on the operating system RTCore, which runs the bare hardware and lets other nonreal-time operating systems (what we call "general-purpose operating systems" or GPOS) run when no real-time task needs to run. This way, our software is an operating system itself but runs cooperatively with other operating systems—currently Linux, NetBSD, and FreeBSD.

We needed to test RTCore when interacting not only with each of these operating systems but when running on Intel x86, four distinct classes of PowerPC, StrongARM, XScale, ARM7, ARM9, Alpha, and MIPS. These processors range from four-processor VME-bus-based systems used for industrial and military applications down to MMU-less ARM7 processors that run for days on battery when tracking the movements of mountain lions in the Florida Everglades.

We have to push each piece of hardware to the limits of what it can be expected to provide, but not beyond. Spurious failures due to stressing the system too much would lead either to far too much intervention by us to address the problem, or to complacency by neglecting an error when the test system reported it. False errors are simply unacceptable because they would seriously damage the trust we have in the test system.

This required that we compile a detailed list of our expectations for each piece of hardware, then test against that. That's no small task, but is extremely important. When starting on a project like this, care should be taken to ensure that this is done the first time, and continued, with all the diligence necessary.

The test infrastructure hardware itself was made up of standard parts available from the Internet. At the heart of our system are X10 power control modules. These devices connect to a host computer via RS232, turning "receiver" X10 modules on/off. Normally, these are used to turn appliances on/off but we used them to control computers.

To log events in our system, we use serial (RS232) consoles for everything. That means we have about 100+ serial lines that we have to manage and log data on. We started off with inexpensive USB 8-way RS232 devices, but eventually switched to Cyclades 32-way serial devices.

Tracking tests, bug fixes, and changes to the system with something this large and complex isn't easy. If your revision-control software isn't up to the task, then it's even harder. We use BitKeeper to manage our source code, test results, and other data. It's an easy-to-use tool that lets us script things beautifully.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.