When will D1 be finished?

Walter Bright newshound1 at digitalmars.com
Tue May 12 10:34:22 PDT 2009

Christopher Wright wrote:
> However, if a patch exists, there is only one excuse for not including 
> it: lack of testing.

> And there is one huge reason that nobody submits 
> additional test cases to your DMD test suite -- you've never released 
> it, or even specified the required format.

That's because of its uncertain copyright status. It's a collection of 
everything that went wrong in the past, from a wide variety of sources.

As to its format, it is designed to be run by a shell script. Each 
source file is expected to compile and run without error, error means 
terminating with an exception or a non-zero return from main().

In other words, the test suite is designed to not require manual 
inspection of results, and it halts on the first failure.

A typical test case would look like:


template A()
   static T foo(T)(T t) { return 7 + t; }

struct Bar
   mixin A!() a;

void test2()
   auto i = A!().foo(1);
   assert(i == 8);
   i = Bar.a.foo!(int)(2);
   assert(i == 9);
   i = Bar.a.foo(3);
   assert(i == 10);


along with a main() that calls the testNN() functions. The shell script 
I run is with a custom shell language 

The custom nature of it is its ability to keep rerunning a group of 
commands with different combinations of arguments. This is pretty handy 
for testing with the combinatorial explosion of compiler switches.

More information about the Digitalmars-d mailing list