1 module performance.app;
2 
3 import std.stdio;
4 import std.getopt;
5 
6 import performance.checkout;
7 import performance.measure;
8 import performance.compare;
9 
10 void main(string []args)
11 {
12     enum Mode
13     {
14         cleanup,
15         checkout,
16         measure,
17         compare
18     }
19 
20     Mode mode;
21     string sha, shaprev, shacurrent;
22     string test;
23     size_t iterations = 1_000;
24 
25     auto helpInformation = getopt(args, 
26             "mode|m", "Mode of the program.", &mode,
27             "test|t", "Name of the test to run. If not given, all tests are run.", &test,
28             "iterations|i", "Number of test running iterations. Default is 1000", &iterations,
29             "sha|s", "Sha of the state to be checked out.",&sha);
30 
31     if (helpInformation.helpWanted)
32     {
33         defaultGetoptPrinter("DCV Performance Testing App.",
34                 helpInformation.options);
35         return;
36     }
37 
38     final switch(mode)
39     {
40         case Mode.cleanup:
41             cleanup();
42             break;
43         case Mode.checkout:
44             checkout(sha);
45             break;
46         case Mode.measure:
47             measure(test, iterations);
48             break;
49         case Mode.compare:
50             compare(sha);
51             break;
52     }
53 }
54 
55