|
1 This is a simple regression testing framework for Arthur. |
|
2 |
|
3 There are three parts to it. |
|
4 |
|
5 1) datagenerator . which is the main part. it's used to |
|
6 run all the tests, create output png files, |
|
7 measure rendering performance and output it in |
|
8 data.xml file. datagenerator reads in |
|
9 framework.ini to figure out where to look for tests. |
|
10 if the framework.ini file isn't in the current directory |
|
11 you have to specify its location with the -framework |
|
12 parameter. by default datagenerator generates output in the |
|
13 current directory - to specify output directory pass in |
|
14 -output parameter followed by a directory name. if the given |
|
15 directory doesn't exist it will be created. |
|
16 |
|
17 it's recommended to always specify -iterations argument (followed |
|
18 by the number). if the argument has been specified datagenerator |
|
19 will try to render all testcases the given amount of times yielding |
|
20 a lot more precise results. |
|
21 |
|
22 if one wants to test just a specified engine -engine argument |
|
23 should be specified (followed by the desired engine name). |
|
24 |
|
25 individual testsuites can be run with -suite paramenter. |
|
26 individual testcases from testcases can also be reran with |
|
27 -testcase paramenter. |
|
28 |
|
29 given files can also be tested individually. if the option -file |
|
30 is specified with a SVG file engines will be tested against just |
|
31 that file and output will be written directly to stdout (not files). |
|
32 it's useful when optimizing one engine with particular case in |
|
33 mind. |
|
34 |
|
35 Example command line: |
|
36 ./bin/datagenerator -framework data/framework.ini -output sampleout -iterations 5 -engine [ENGINE] |
|
37 |
|
38 2) htmlgenerator. which is used to generate html pages out of |
|
39 generated output (generated by datagenerator). htmlgenerator also |
|
40 reads in the framework.ini file. so the option -framework also |
|
41 applies. but htmlgenerator takes a mandatory directory name as the |
|
42 second argument. the mandatory directory name is the directory to |
|
43 which you output the files generated by datagenerator (either |
|
44 whatever followed the -output or the current directory) |
|
45 |
|
46 htmlgenerator will generate html pages that can be viewed to |
|
47 manually inspect the results. |
|
48 |
|
49 Example command line: |
|
50 ./bin/htmlgenerator -framework data/framework.ini sampleout |
|
51 |
|
52 3) performancediff. diffs the performance data between two output |
|
53 directories. so assuming you already have data for all the engines, |
|
54 you change something in an engine. to see the performance |
|
55 difference run |
|
56 ./bin/datagenerator -framework data/framework.ini -output newoutput -iterations 5 |
|
57 and then |
|
58 ./bin/performancediff sampleout newoutput |
|
59 |
|
60 The performance results will be printed out. |
|
61 |
|
62 The two first columns are in ms. The last one is a |
|
63 percentage of difference. |
|
64 |
|
65 After the percentage a '+' or a '-' sign followed by a |
|
66 number will be sometimes printed. |
|
67 |
|
68 '+' signifies the new results were mathematically better. '-' is of |
|
69 course just the opposite. |
|
70 the number following '+' is the minimum rendering time the engine |
|
71 spent rendering the given file up till this moment. |
|
72 the number following '-' is the maximum rendering time the engine |
|
73 spent rendering the given file up till this moment. |
|
74 |
|
75 (if the current results are out of the scope from within maximum and |
|
76 minimum number then the respective sign is printed out.) |
|
77 ------------------------------------------------------------------- |
|
78 |
|
79 Note that the generated output directories can be copied from one |
|
80 machine to the other. htmlgenerator will generate webpages for all |
|
81 engines with valid data.xml files. So if you want add NativeWin32 and |
|
82 NativeMac engines you'll have to have someone with a windows and mac |
|
83 run datagenerator with "-engine NativeWin32" or "-engine NativeMac" |
|
84 options and then sending you the respective output directories. |