@@ -5,8 +5,6 @@ weight: 5
55
66# Per-patch Testing
77
8- Updated for CSIT git commit id: d8ec3f8673346c0dc93e567159771f24c1bf74fc.
9-
108A methodology similar to trending analysis is used for comparing performance
119before a DUT code change is merged. This can act as a verify job to disallow
1210changes which would decrease performance without a good reason.
@@ -18,10 +16,13 @@ They allow full tag expressions, all types of perf tests are supported.
1816
1917There are jobs available for multiple types of testbeds,
2018based on various processors.
21- Their Gerrit triggers words are of the form "perftest-{node_arch}"
22- where the node_arch combinations currently supported are:
23- 2n-icx, 2n-clx, 2n-spr, 2n-zn2, 3n-icx, 3n-tsh, 3n-alt, 2n-tx2, 3n-snr,
24- 3na-spr, 3nb-spr.
19+ Their Gerrit triggers words are of the form
20+ "gha-run csit-{dut}-{node_arch} {testype}", where:
21+
22+ - dut: [ vpp, dpdk, trex]
23+ - testype: [ perftest, bisecttest]
24+ - node_arch: [ 3n-oct, 3n-emr, 2n-emr, 2n-grc, 2n-icx, 2n-spr, 2n-zn2, 3n-icx,
25+ 3n-alt, 3n-snr, 3na-spr, 3nb-spr]
2526
2627## Test selection
2728
@@ -35,47 +36,20 @@ to accidentally select too high number of tests, blocking the testbed for days.
3536What follows is a list of explanations and recommendations
3637to help users to select the minimal set of tests cases.
3738
38- ### Verify cycles
39-
40- When Gerrit schedules multiple jobs to run for the same patch set,
41- it waits until all runs are complete.
42- While it is waiting, it is possible to trigger more jobs
43- (adding runs to the set Gerrit is waiting for), but it is not possible
44- to trigger more runs for the same job, until Gerrit is done waiting.
45- After Gerrit is done waiting, it becames possible to trigger
46- the same job again.
47-
48- Example. User triggers one set of tests on 2n-icx and immediately
49- also triggers other set of tests on 3n-icx. Then the user notices
50- 2n-icx run ended early because of a typo in tag expression.
51- When the user tries to re-trigger 2n-icx (with a fixed tag expression),
52- that comment is ignored by Jenkins.
53- Only when 3n-icx job finishes, the user can trigger 2n-icx again.
54-
55- ### One comment many jobs
56-
57- In the past, the CSIT code which parses for perftest trigger comments
58- was buggy, which lead to bad behavior (as in selection all performance test,
59- because "perftest" is also a robot tag) when user included multiple
60- perftest trigger words in the same comment.
61-
62- The worst bugs were fixed since then, but it is still recommended
63- to use just one trigger word per Gerrit comment, just to be safe.
64-
6539### Multiple test cases in run
6640
6741While Robot supports OR operator, it does not support parentheses,
6842so the OR operator is not very useful.
6943It is recommended to use space instead of OR operator.
7044
7145Example template:
72- perftest- 2n-icx {tag_expression_1} {tag_expression_2}
46+ gha-run csit-vpp- 2n-emr perftest {tag_expression_1} {tag_expression_2}
7347
7448See below for more concrete examples.
7549
7650### Suite tags
7751
78- Traditionally, CSIT maintains broad Robot tags that can be used to select tests.
52+ CSIT maintains broad Robot tags that can be used to select tests.
7953
8054But it is not recommended to use them for test selection,
8155as it is not that easy to determine how many test cases are selected.
@@ -86,12 +60,6 @@ and use its suite tag. For example, "ethip4-ip4base" is a suite tag
8660selecting just one suite in CSIT git repository,
8761avoiding all scale, container, and other simialr variants.
8862
89- Note that CSIT uses "autogen" code generator,
90- so the robot running in Jenkins has access to more suites
91- than visible just by looking into CSIT git repository.
92- Thus, suite tag is not enough to select precisely the intended suite,
93- and user is encouraged to narrow down to a single test case within a suite.
94-
9563### Fully specified tag expressions
9664
9765Here is one template to select a single test case:
@@ -115,9 +83,9 @@ and more for dot1q and other encapsulated traffic;
11583
11684As there are more test cases than CSIT can periodically test,
11785it is possible to encounter an old test case that currently fails.
118- To avoid that, you can look at "job spec " files we use for periodic testing,
119- for example
120- [ this one] ( https://raw.githubusercontent. com/FDio/csit/master/resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md ) .
86+ To avoid that, you can look at "job specifications " files we use for periodic
87+ testing, for example
88+ [ this one] ( https://github. com/FDio/csit/blob/ master/resources/job_specifications/test_groups.yaml ) .
12189
12290### Shortening triggers
12391
@@ -167,7 +135,7 @@ but wants to test both NIC drivers (not AF_XDP), both apps in VM,
167135and both 1 and 2 parallel links.
168136
169137After shortening, this is the trigger comment fianlly used:
170- perftest- 3n-icx mrrANDnic_intel-e810cqAND1cAND64bAND?lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm\* NOTdrv_af_xdp
138+ gha-run csit-vpp- 3n-icx perftest mrrANDnic_intel-e810cqAND1cAND64bAND?lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm\* NOTdrv_af_xdp
171139
172140## Basic operation
173141
0 commit comments