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