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 
http://www.digitalmars.com/ctg/shell.html

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