{
  // Looking for unit test presubmit configuration?
  // This currently lives in ATP config apct/system_ui/unit_test
  "presubmit-sysui": [
    {
      "name": "PlatformScenarioTests",
      "options": [
        {
            "include-filter": "android.platform.test.scenario.sysui"
        },
        {
            "include-annotation": "android.platform.test.scenario.annotation.Scenario"
        },
        {
            "exclude-annotation": "org.junit.Ignore"
        },
        {
            "exclude-annotation": "android.platform.test.annotations.Postsubmit"
        }
      ]
    }
  ],
  "presubmit": [
    {
      "name": "SystemUIGoogleTests",
      "options": [
        {
          "exclude-annotation": "org.junit.Ignore"
        },
        {
          "exclude-annotation": "androidx.test.filters.FlakyTest"
        }
      ]
    },
    {
      // TODO(b/251476085): Consider merging with SystemUIGoogleScreenshotTests (in U+)
      "name": "SystemUIGoogleBiometricsScreenshotTests",
      "options": [
        {
          "exclude-annotation": "org.junit.Ignore"
        },
        {
          "exclude-annotation": "androidx.test.filters.FlakyTest"
        }
      ]
    },
    {
      // Permission indicators
      "name": "CtsPermission4TestCases",
      "options": [
        {
          "exclude-annotation": "org.junit.Ignore"
        },
        {
          "exclude-annotation": "androidx.test.filters.FlakyTest"
        }
      ]
    },
    {
      // Permission indicators
      "name": "CtsVoiceRecognitionTestCases",
      "options": [
        {
          "exclude-annotation": "org.junit.Ignore"
        },
        {
          "exclude-annotation": "androidx.test.filters.FlakyTest"
        }
      ]
    }
  ],

  // Curious where your @Scenario tests will run?
  //
  // @Ignore: nowhere
  // @Staging or @FlakyTest: in staged-postsubmit, but not postsubmit or
  // 	presubmit
  // @Postsubmit: in postsubmit and staged-postsubmit, but not presubmit
  // none of the above: in presubmit, postsubmit, and staged-postsubmit
  //
  // Therefore, please annotate new tests with @Staging, then with @Postsubmit
  // once they're ready for postsubmit, then with neither once they're ready
  // for presubmit.
  //
  // If you don't use @Staging or @Postsubmit, your new test will immediately
  // block presubmit, which is probably not what you want!
  "sysui-platinum-postsubmit": [
    {
      "name": "PlatformScenarioTests",
      "options": [
        {
            "include-filter": "android.platform.test.scenario.sysui"
        },
        {
            "include-annotation": "android.platform.test.scenario.annotation.Scenario"
        },
        {
            "exclude-annotation": "org.junit.Ignore"
        },
        {
            "exclude-annotation": "androidx.test.filters.FlakyTest"
        }
      ]
    }
  ],
  "sysui-staged-platinum-postsubmit": [
    {
      "name": "PlatformScenarioTests",
      "options": [
        {
            "include-filter": "android.platform.test.scenario.sysui"
        },
        {
            "include-annotation": "android.platform.test.scenario.annotation.Scenario"
        },
        {
            "exclude-annotation": "org.junit.Ignore"
        }
      ]
    }
  ],
  "ironwood-postsubmit": [
    {
      "name": "PlatformScenarioTests",
      "options": [
        {
            "include-annotation": "android.platform.test.annotations.IwTest"
        },
        {
            "exclude-annotation": "org.junit.Ignore"
        },
        {
            "include-filter": "android.platform.test.scenario.sysui"
        }
      ]
    }
  ],
  "auto-end-to-end-postsubmit": [
    {
      "name": "AndroidAutomotiveHomeTests",
      "options" : [
        {
          "include-filter": "android.platform.tests.HomeTest"
        }
      ]
    },
    {
      "name": "AndroidAutomotiveNotificationsTests",
      "options" : [
        {
          "include-filter": "android.platform.tests.NotificationTest"
        }
      ]
    }
  ]
}
