Parameterized unit testing and benchmarking of phobos

Jacob Carlborg via Digitalmars-d digitalmars-d at puremagic.com
Thu Oct 9 23:39:25 PDT 2014


On 08/10/14 23:37, Robert burner Schadek wrote:
> Lately, I find myself wondering, if I should add parameterized unit
> tests to std.string, because the last few bugs I fixed where not caught
> by tests, as the test-data was not good enough. I know random data is
> not perfect either, but it would be good addition IMO.
>
> Additionally, I thought these unit tests could be used to benchmark the
> performance of the functions and the compilers. Thus allowing continues
> monitoring of performance changes.
>
> I'm thinking of something like:
>
> version(unittest_benchmark) {
> unittest {
>      auto ben = Benchmark("bench_result_file", numberOfRuns);
>      auto values = ValueGen!(StringGen(0, 12), IntGen(2, 24))(ben);
>
>      foreach(string rStr, int rInt; values) {
>          auto rslt = functionToTest(rStr, rInt);
>          // some asserts
>      }
> }
> }
>
> The bench_result_file would be a csv with e.g. date,runtime,...
>
> ideas, suggestions?

I think you should use a UDA's instead. The a unit test framework can, 
hopefully, handle this automatically.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list