1{
2  "captiveportal-networkstack-resolve-tethering-mainline-presubmit": [
3    {
4      "name": "CtsNetTestCasesLatestSdk",
5      "options": [
6        {
7          "exclude-annotation": "com.android.testutils.SkipPresubmit"
8        },
9        {
10          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
11        },
12        {
13          "exclude-annotation": "androidx.test.filters.RequiresDevice"
14        }
15      ]
16    },
17    {
18      "name": "CtsNetTestCasesMaxTargetSdk30",
19      "options": [
20        {
21          "exclude-annotation": "com.android.testutils.SkipPresubmit"
22        },
23        {
24          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
25        },
26        {
27          "exclude-annotation": "androidx.test.filters.RequiresDevice"
28        }
29      ]
30    },
31    {
32      "name": "CtsNetTestCasesMaxTargetSdk31",
33      "options": [
34        {
35          "exclude-annotation": "com.android.testutils.SkipPresubmit"
36        },
37        {
38          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
39        },
40        {
41          "exclude-annotation": "androidx.test.filters.RequiresDevice"
42        }
43      ]
44    },
45    {
46      "name": "CtsNetTestCasesMaxTargetSdk33",
47      "options": [
48        {
49          "exclude-annotation": "com.android.testutils.SkipPresubmit"
50        },
51        {
52          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
53        },
54        {
55          "exclude-annotation": "androidx.test.filters.RequiresDevice"
56        }
57      ]
58    },
59    {
60      "name": "bpf_existence_test"
61    },
62    {
63      "name": "connectivity_native_test"
64    },
65    {
66      "name": "netd_updatable_unit_test"
67    },
68    {
69      "name": "ConnectivityCoverageTests",
70      "options": [
71        {
72          "exclude-annotation": "com.android.testutils.SkipPresubmit"
73        }
74      ]
75    },
76    {
77      "name": "libnetworkstats_test"
78    },
79    {
80      "name": "CtsTetheringTestLatestSdk",
81      "options": [
82        {
83          "exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
84        }
85      ]
86    }
87  ],
88  "captiveportal-networkstack-mainline-presubmit": [
89    // Test with APK modules only, in cases where APEX is not supported, or the other modules
90    // were simply not updated
91    {
92      "name": "CtsNetTestCasesLatestSdk",
93      "options": [
94        {
95          "exclude-annotation": "com.android.testutils.SkipPresubmit"
96        },
97        {
98          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
99        },
100        {
101          "exclude-annotation": "androidx.test.filters.RequiresDevice"
102        },
103        {
104          "exclude-annotation": "com.android.testutils.ConnectivityModuleTest"
105        },
106        {
107          "exclude-annotation": "com.android.testutils.DnsResolverModuleTest"
108        }
109      ]
110    }
111  ],
112  "tethering-mainline-presubmit": [
113    // Test with connectivity/tethering module only, to catch integration issues with older versions
114    // of other modules. "new tethering + old NetworkStack" is not a configuration that should
115    // really exist in the field, but there is no strong guarantee, and it is required by MTS
116    // testing for module qualification, where modules are tested independently.
117    {
118      "name": "CtsNetTestCasesLatestSdk",
119      "options": [
120        {
121          "exclude-annotation": "com.android.testutils.SkipPresubmit"
122        },
123        {
124          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
125        },
126        {
127          "exclude-annotation": "androidx.test.filters.RequiresDevice"
128        },
129        {
130          "exclude-annotation": "com.android.testutils.DnsResolverModuleTest"
131        },
132        {
133          "exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
134        }
135      ]
136    }
137  ],
138  "presubmit": [
139    {
140      "name": "ConnectivityCoverageTests",
141      "options": [
142        {
143          "exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
144        },
145        {
146          "exclude-annotation": "com.android.testutils.SkipPresubmit"
147        }
148      ]
149    },
150    {
151      // In addition to ConnectivityCoverageTests, runs non-connectivity-module tests
152      "name": "FrameworksNetTests",
153      "options": [
154        {
155          "exclude-annotation": "com.android.testutils.SkipPresubmit"
156        }
157      ]
158    },
159    // Run in addition to mainline-presubmit as mainline-presubmit is not
160    // supported in every branch.
161    // CtsNetTestCasesLatestSdk uses stable API shims, so does not exercise
162    // some latest APIs. Run CtsNetTestCases to get coverage of newer APIs.
163    {
164      "name": "CtsNetTestCases",
165      "options": [
166        {
167          "exclude-annotation": "com.android.testutils.SkipPresubmit"
168        },
169        {
170          "exclude-annotation": "androidx.test.filters.RequiresDevice"
171        }
172      ]
173    },
174    // Also run CtsNetTestCasesLatestSdk to ensure tests using older shims pass.
175    {
176      "name": "CtsNetTestCasesLatestSdk",
177      "options": [
178        {
179          "exclude-annotation": "com.android.testutils.SkipPresubmit"
180        },
181        {
182          "exclude-annotation": "androidx.test.filters.RequiresDevice"
183        }
184      ]
185    },
186    // CTS tests that target older SDKs.
187    {
188      "name": "CtsNetTestCasesMaxTargetSdk30",
189      "options": [
190        {
191          "exclude-annotation": "com.android.testutils.SkipPresubmit"
192        },
193        {
194          "exclude-annotation": "androidx.test.filters.RequiresDevice"
195        }
196      ]
197    },
198    {
199      "name": "CtsNetTestCasesMaxTargetSdk31",
200      "options": [
201        {
202          "exclude-annotation": "com.android.testutils.SkipPresubmit"
203        },
204        {
205          "exclude-annotation": "androidx.test.filters.RequiresDevice"
206        }
207      ]
208    },
209    {
210      "name": "CtsNetTestCasesMaxTargetSdk33",
211      "options": [
212        {
213          "exclude-annotation": "com.android.testutils.SkipPresubmit"
214        },
215        {
216          "exclude-annotation": "androidx.test.filters.RequiresDevice"
217        }
218      ]
219    },
220    {
221      "name": "bpf_existence_test"
222    },
223    {
224      "name": "connectivity_native_test"
225    },
226    {
227      "name": "libclat_test"
228    },
229    {
230      "name": "netd_updatable_unit_test"
231    },
232    {
233      "name": "TetheringTests"
234    },
235    {
236      "name": "TetheringIntegrationTests"
237    },
238    {
239      "name": "libnetworkstats_test"
240    },
241    {
242      "name": "FrameworksNetIntegrationTests"
243    }
244  ],
245  "postsubmit": [
246    {
247      "name": "TetheringPrivilegedTests"
248    },
249    {
250      "name": "netd_updatable_unit_test",
251      "keywords": ["netd-device-kernel-4.9", "netd-device-kernel-4.14"]
252    },
253    {
254      "name": "dns_helper_unit_test"
255    },
256    {
257      "name": "FrameworksNetDeflakeTest"
258    },
259    // Postsubmit on virtual devices to monitor flakiness of @SkipPresubmit methods
260    {
261      "name": "CtsNetTestCases",
262      "options": [
263        {
264          "exclude-annotation": "androidx.test.filters.RequiresDevice"
265        }
266      ]
267    },
268    {
269      "name": "FrameworksNetTests"
270    }
271  ],
272  "mainline-presubmit": [
273    {
274      "name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
275      "options": [
276        {
277          "exclude-annotation": "com.android.testutils.SkipPresubmit"
278        },
279        {
280          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
281        },
282        {
283          "exclude-annotation": "androidx.test.filters.RequiresDevice"
284        }
285      ]
286    },
287    {
288      "name": "CtsNetTestCasesMaxTargetSdk30[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
289      "options": [
290        {
291          "exclude-annotation": "com.android.testutils.SkipPresubmit"
292        },
293        {
294          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
295        },
296        {
297          "exclude-annotation": "androidx.test.filters.RequiresDevice"
298        }
299      ]
300    },
301    {
302      "name": "CtsNetTestCasesMaxTargetSdk31[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
303      "options": [
304        {
305          "exclude-annotation": "com.android.testutils.SkipPresubmit"
306        },
307        {
308          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
309        },
310        {
311          "exclude-annotation": "androidx.test.filters.RequiresDevice"
312        }
313      ]
314    },
315    {
316      "name": "CtsNetTestCasesMaxTargetSdk33[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
317      "options": [
318        {
319          "exclude-annotation": "com.android.testutils.SkipPresubmit"
320        },
321        {
322          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
323        },
324        {
325          "exclude-annotation": "androidx.test.filters.RequiresDevice"
326        }
327      ]
328    },
329    // Test with APK modules only, in cases where APEX is not supported, or the other modules
330    // were simply not updated
331    {
332      "name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk]",
333      "options": [
334        {
335          "exclude-annotation": "com.android.testutils.SkipPresubmit"
336        },
337        {
338          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
339        },
340        {
341          "exclude-annotation": "androidx.test.filters.RequiresDevice"
342        },
343        {
344          "exclude-annotation": "com.android.testutils.ConnectivityModuleTest"
345        },
346        {
347          "exclude-annotation": "com.android.testutils.DnsResolverModuleTest"
348        }
349      ]
350    },
351    // Test with connectivity/tethering module only, to catch integration issues with older versions
352    // of other modules. "new tethering + old NetworkStack" is not a configuration that should
353    // really exist in the field, but there is no strong guarantee, and it is required by MTS
354    // testing for module qualification, where modules are tested independently.
355    {
356      "name": "CtsNetTestCasesLatestSdk[com.google.android.tethering.apex]",
357      "options": [
358        {
359          "exclude-annotation": "com.android.testutils.SkipPresubmit"
360        },
361        {
362          "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
363        },
364        {
365          "exclude-annotation": "androidx.test.filters.RequiresDevice"
366        },
367        {
368          "exclude-annotation": "com.android.testutils.DnsResolverModuleTest"
369        },
370        {
371          "exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
372        }
373      ]
374    },
375    {
376      "name": "bpf_existence_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
377    },
378    {
379      "name": "connectivity_native_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
380    },
381    {
382      "name": "netd_updatable_unit_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
383    },
384    {
385      "name": "ConnectivityCoverageTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
386      "options": [
387        {
388          "exclude-annotation": "com.android.testutils.SkipPresubmit"
389        }
390      ]
391    },
392    {
393      "name": "libnetworkstats_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
394    },
395    {
396      "name": "CtsTetheringTestLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
397      "options": [
398        {
399          "exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
400        }
401      ]
402    }
403  ],
404  "mainline-postsubmit": [
405    // Tests on physical devices with SIM cards: postsubmit only for capacity constraints
406    {
407      "name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
408      "keywords": ["sim"]
409    },
410    {
411      "name": "CtsTetheringTestLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
412      "keywords": ["sim"],
413      "options": [
414        {
415          "exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
416        }
417      ]
418    },
419    // Postsubmit on virtual devices to monitor flakiness of @SkipMainlinePresubmit methods
420    {
421      "name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
422      "options": [
423        {
424          "exclude-annotation": "androidx.test.filters.RequiresDevice"
425        }
426      ]
427    }
428  ],
429  "imports": [
430    {
431      "path": "frameworks/base/core/java/android/net"
432    },
433    {
434      "path": "frameworks/opt/net/ethernet"
435    },
436    {
437      "path": "packages/modules/NetworkStack"
438    },
439    {
440      "path": "packages/modules/CaptivePortalLogin"
441    },
442    {
443      "path": "external/cronet"
444    },
445    {
446      "path": "vendor/xts/gts-tests/hostsidetests/networkstack"
447    }
448  ]
449}
450