android_packages_modules_Co.../TEST_MAPPING
Diwas Sharma 7621bfba01 Add a dedicated Mainline Test Mapping group for Connectivity modules
Test of *all* Mainline modules are currently configured in a single
`mainline-presubmit` Test Mapping group. This requires that users indicate the
module to install in every entry and is quite tedious.

The above approach also adds overhead due to installing, checking for, and
uninstalling Mainline modules between test module executions. This eats up
precious presubmit time and gets runtimes close to violating the SLO.

This change moves all Connectivity Mainline module tests into a
dedicated Test Mapping group that installs the Mainline module once before
executing all test modules. This also simplifies the configuration syntax by no
longer requiring brackets that indicate the, now implicit, Mainline module.

Bug: 328102821
Test: presubmit checks
Change-Id: I496cc3ae38564ea3eaea557322de57ae3d6ee083
2024-05-14 20:50:42 +00:00

486 lines
14 KiB
Text

{
"captiveportal-networkstack-resolve-tethering-mainline-presubmit": [
{
"name": "CtsNetTestCasesLatestSdk",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "CtsNetTestCasesMaxTargetSdk30",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "CtsNetTestCasesMaxTargetSdk31",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "CtsNetTestCasesMaxTargetSdk33",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "bpf_existence_test"
},
{
"name": "connectivity_native_test"
},
{
"name": "netd_updatable_unit_test"
},
{
"name": "ConnectivityCoverageTests",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
}
]
},
{
"name": "libnetworkstats_test"
},
{
"name": "NetHttpCoverageTests",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
// These sometimes take longer than 1 min which is the presubmit timeout
"exclude-annotation": "androidx.test.filters.LargeTest"
}
]
},
{
"name": "CtsTetheringTestLatestSdk",
"options": [
{
"exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
}
]
}
],
"captiveportal-networkstack-mainline-presubmit": [
// Test with APK modules only, in cases where APEX is not supported, or the other modules
// were simply not updated
{
"name": "CtsNetTestCasesLatestSdk",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
},
{
"exclude-annotation": "com.android.testutils.ConnectivityModuleTest"
},
{
"exclude-annotation": "com.android.testutils.DnsResolverModuleTest"
}
]
}
],
"tethering-mainline-presubmit": [
// Test with connectivity/tethering module only, to catch integration issues with older versions
// of other modules. "new tethering + old NetworkStack" is not a configuration that should
// really exist in the field, but there is no strong guarantee, and it is required by MTS
// testing for module qualification, where modules are tested independently.
{
"name": "CtsNetTestCasesLatestSdk",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
},
{
"exclude-annotation": "com.android.testutils.DnsResolverModuleTest"
},
{
"exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
}
]
}
],
"presubmit": [
{
"name": "ConnectivityCoverageTests",
"options": [
{
"exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
},
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
}
]
},
{
// In addition to ConnectivityCoverageTests, runs non-connectivity-module tests
"name": "FrameworksNetTests",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
}
]
},
// Run in addition to mainline-presubmit as mainline-presubmit is not
// supported in every branch.
// CtsNetTestCasesLatestSdk uses stable API shims, so does not exercise
// some latest APIs. Run CtsNetTestCases to get coverage of newer APIs.
{
"name": "CtsNetTestCases",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
// Also run CtsNetTestCasesLatestSdk to ensure tests using older shims pass.
{
"name": "CtsNetTestCasesLatestSdk",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
// CTS tests that target older SDKs.
{
"name": "CtsNetTestCasesMaxTargetSdk30",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "CtsNetTestCasesMaxTargetSdk31",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "CtsNetTestCasesMaxTargetSdk33",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "bpf_existence_test"
},
{
"name": "connectivity_native_test"
},
{
"name": "libclat_test"
},
{
"name": "netd_updatable_unit_test"
},
{
"name": "TetheringTests"
},
{
"name": "TetheringIntegrationTests"
},
{
"name": "libnetworkstats_test"
},
{
"name": "FrameworksNetIntegrationTests"
},
// Runs both NetHttpTests and CtsNetHttpTestCases
{
"name": "NetHttpCoverageTests",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
// These sometimes take longer than 1 min which is the presubmit timeout
"exclude-annotation": "androidx.test.filters.LargeTest"
}
]
}
],
"postsubmit": [
{
"name": "TetheringPrivilegedTests"
},
{
"name": "netd_updatable_unit_test",
"keywords": ["netd-device-kernel-4.9", "netd-device-kernel-4.14"]
},
{
"name": "dns_helper_unit_test"
},
{
"name": "FrameworksNetDeflakeTest"
},
// Postsubmit on virtual devices to monitor flakiness of @SkipPresubmit methods
{
"name": "CtsNetTestCases",
"options": [
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "FrameworksNetTests"
},
{
"name": "NetHttpCoverageTests"
}
],
"mainline-presubmit": [
{
"name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "CtsNetTestCasesMaxTargetSdk30[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "CtsNetTestCasesMaxTargetSdk31[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
{
"name": "CtsNetTestCasesMaxTargetSdk33[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
},
// Test with APK modules only, in cases where APEX is not supported, or the other modules
// were simply not updated
{
"name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk]",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
},
{
"exclude-annotation": "com.android.testutils.ConnectivityModuleTest"
},
{
"exclude-annotation": "com.android.testutils.DnsResolverModuleTest"
}
]
},
// Test with connectivity/tethering module only, to catch integration issues with older versions
// of other modules. "new tethering + old NetworkStack" is not a configuration that should
// really exist in the field, but there is no strong guarantee, and it is required by MTS
// testing for module qualification, where modules are tested independently.
{
"name": "CtsNetTestCasesLatestSdk[com.google.android.tethering.apex]",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
"exclude-annotation": "com.android.testutils.SkipMainlinePresubmit"
},
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
},
{
"exclude-annotation": "com.android.testutils.DnsResolverModuleTest"
},
{
"exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
}
]
},
{
"name": "bpf_existence_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
},
{
"name": "connectivity_native_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
},
{
"name": "netd_updatable_unit_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
},
{
"name": "ConnectivityCoverageTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
}
]
},
{
"name": "libnetworkstats_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
},
{
"name": "NetHttpCoverageTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
"options": [
{
"exclude-annotation": "com.android.testutils.SkipPresubmit"
},
{
// These sometimes take longer than 1 min which is the presubmit timeout
"exclude-annotation": "androidx.test.filters.LargeTest"
}
]
},
{
"name": "CtsTetheringTestLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
"options": [
{
"exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
}
]
}
],
"mainline-postsubmit": [
// Tests on physical devices with SIM cards: postsubmit only for capacity constraints
{
"name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
"keywords": ["sim"]
},
{
"name": "CtsTetheringTestLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
"keywords": ["sim"],
"options": [
{
"exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
}
]
},
// Postsubmit on virtual devices to monitor flakiness of @SkipMainlinePresubmit methods
{
"name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
"options": [
{
"exclude-annotation": "androidx.test.filters.RequiresDevice"
}
]
}
],
"imports": [
{
"path": "frameworks/base/core/java/android/net"
},
{
"path": "frameworks/opt/net/ethernet"
},
{
"path": "packages/modules/NetworkStack"
},
{
"path": "packages/modules/CaptivePortalLogin"
},
{
"path": "vendor/xts/gts-tests/hostsidetests/networkstack"
}
]
}