This page describes how Cdd itself can be tested in order to detect regressions early. It does not describe how Cdd works. The goal is to extend eweasel so that it can test whether certain aspects in a given version of a Cdd equipped EiffelStudio are working or not. The core of Cdd works like this:

  • You run an Eiffel program in workbench mode. The program raises an exception
  • The debugger notifies the Cdd test case extractor at this point, which tries to extract a test case from this failure.
  • The extracted test case must be able to reproduce the original failure.

One test scenario for eweasel is:

  • Given certain files that make up an Eiffel project. We know that the project contains a certain bug.
  • Compile it in workbench mode
  • Run the compiled code _in_ the debugger (non-interactive)
  • Running the application will result in it throwing an exception (due to the bug)
  • Have the debugger notify Cdd to extract the test case
  • Check whether the extracted test case is what we expect it to be
    • Either because it reproduces the original failure
    • Or because it equals a test case extracted by a known to be good version of Cdd.