{
  "captiveportal-networkstack-resolve-tethering-mainline-presubmit": [
    {
      "name": "CtsNetTestCases",
      "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": "CtsTetheringTest",
      "options": [
        {
          "exclude-annotation": "com.android.testutils.NetworkStackModuleTest"
        }
      ]
    },
    {
      "name": "CtsHostsideNetworkTests",
      "options": [
        {
          "exclude-annotation": "androidx.test.filters.RequiresDevice"
        }
      ]
    }
  ],
  "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": "CtsNetTestCases",
      "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": "CtsNetTestCases",
      "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.
    {
      "name": "CtsNetTestCases",
      "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"
    },
    {
      "name": "CtsTetheringTest"
    }
  ],
  "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"
    },
    // TODO: Move to presumit after meet SLO requirement.
    {
      "name": "NetworkStaticLibHostPythonTests"
    }
  ],
  "mainline-presubmit": [
    {
      "name": "CtsNetTestCases[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": "CtsNetTestCases[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": "CtsNetTestCases[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": "CtsTetheringTest[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": "CtsNetTestCases[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
      "keywords": ["sim"]
    },
    {
      "name": "CtsTetheringTest[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": "CtsNetTestCases[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
      "options": [
        {
          "exclude-annotation": "androidx.test.filters.RequiresDevice"
        }
      ]
    }
  ],
  "automotive-mumd-presubmit": [
    {
      "name": "CtsNetTestCases"
    },
    {
      "name": "CtsNetTestCasesUpdateStatsPermission"
    }
  ],
  "hsum-presubmit": [
    {
      "name": "CtsNetTestCases"
    },
    {
      "name": "CtsNativeNetDnsTestCases"
    },
    {
      "name": "CtsNetTestCasesInternetPermission"
    },
    {
      "name": "CtsNetTestCasesUpdateStatsPermission"
    }
  ],
  "tv-presubmit": [
    {
      "name": "CtsNetTestCases"
    },
    {
      "name": "CtsNativeNetDnsTestCases"
    },
    {
      "name": "CtsNetTestCasesInternetPermission"
    },
    {
      "name": "CtsNetTestCasesUpdateStatsPermission"
    }
  ],
  "imports": [
    {
      "path": "frameworks/base/core/java/android/net"
    },
    {
      "path": "frameworks/opt/net/ethernet"
    },
    {
      "path": "packages/modules/NetworkStack"
    },
    {
      "path": "packages/modules/CaptivePortalLogin"
    },
    {
      "path": "external/cronet"
    },
    {
      "path": "vendor/xts/gts-tests/hostsidetests/networkstack"
    }
  ],
  "wear-cts-presubmit": [
    {
      "name": "CtsNetTestCases",
      "options": [
        {
          "exclude-filter": "android.net.cts.NetworkValidationTest#testCapportApiCallbacks"
        }
      ]
    },
    {
      "name": "CtsNetTestCasesUpdateStatsPermission"
    }
  ]
}
