kpi: Add comments/documentation for kpi.java classes.

To help me and others remember how this all fits together.
This commit is contained in:
Ben Greear
2020-05-27 06:56:38 -07:00
parent 3fcfa3e29f
commit f5ed685dad

View File

@@ -28,6 +28,13 @@ import java.net.URL;
import java.util.*;
import java.nio.file.*;
/** Process a set of test results generated by the CI/CD process for a test type in a single testbed.
* There are currently no automated comparisons done across different testbeds.
* Generate historical graphs and links to each test run.
* Each test results directory would be packaged up by the lf_gui_report_summary.pl script,
* called by the basic_regression.bash automated regression test script.
* Example: java kpi --dir /var/www/html/tip/testbeds/ferndale-basic-01/reports/basic
*/
public class kpi {
String lc_osname;
String home_dir;
@@ -638,6 +645,12 @@ public class kpi {
}
}
/** This holds a datapoint for a particular test result for each of the Runs.
* This is used to generate historical graphs and comparisons.
* If a test generates two KPI results, there will be two HistRows for that
* test case.
*/
class HistRow {
String fname;
String name;
@@ -685,6 +698,9 @@ class HistRow {
}
}
/** This holds all HistRow objects for each test name for each run.
* It is used for generating historical graphs and comparisons.
*/
class History {
String name;
Vector<HistRow> csv = new Vector();
@@ -709,6 +725,9 @@ class History {
}
}
/** A Row represents a single KPI csv data point. The csv is split into tokens
* for easier manipulation by other code.
*/
class Row {
Vector<String> rdata = new Vector();
String short_desc_key = null;
@@ -790,6 +809,11 @@ class Row {
}
}
/** A test contains information on one executation of one test. For instance,
* a wifi-capacity-test would be a single test. It may create a KPI.csv file with
* multiple rows. It may also have logs for this test run, and KPI graph images.
* A Run consists of multiple tests.
*/
class Test {
String name;
Vector<String> titles = null;
@@ -1001,6 +1025,10 @@ class Test {
}//Test
/** A Run is a collection of tests. This class encompasses the entire regression test
* for a particular flavor of test (basic, fast, etc).
* The CI/CD process will create one or more Runs per build artifact per testbed.
*/
class Run {
String name;
Hashtable<String, Test> tests = new Hashtable();