{
  // Curious where your @Scenario tests will run?
  //
  // @Ignore: Will not run in any configuration
  //
  // @FlakyTest: Tests that don't block pre/postsubmit but are staged to run known failures
  //
  // @Postsubmit: Runs in platinum suite and blocks droidfood in postsubmit
  //
  // @PlatinumTest: As of May, 2023, running in postsubmit. Set to run in presubmit as part of
  // v2/android-platinum/suite-test-mapping-platinum-sysui
  // Please DO NOT annotate new or old tests with @PlatinumTest annotation without discussing
  // with mdb:android-platinum
  //
  // As of May, 2023, If you don't use @Postsubmit, your new test will immediately
  // block presubmit, which is probably NOT what you want. This will change effectively once
  // we move to @PlatinumTest annotation.

  // v2/sysui/test-mapping-presubmit-sysui_cloud-tf
  "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"
        },
        {
            "exclude-annotation": "android.platform.test.annotations.FlakyTest"
        },
        {
            "exclude-annotation": "androidx.test.filters.FlakyTest"
        }
      ]
    }
  ],
  // v2/android-virtual-infra/test_mapping/presubmit-avd
  "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": "CtsPermission3TestCases",
      "options": [
        {
          "exclude-annotation": "org.junit.Ignore"
        },
        {
          "exclude-annotation": "androidx.test.filters.FlakyTest"
        },
        {
          "include-filter": "android.permission3.cts.CameraMicIndicatorsPermissionTest"
        }
      ]
    },
    {
      // Permission indicators
      "name": "CtsVoiceRecognitionTestCases",
      "options": [
        {
          "exclude-annotation": "org.junit.Ignore"
        },
        {
          "exclude-annotation": "androidx.test.filters.FlakyTest"
        }
      ]
    }
  ],
  "auto-end-to-end-postsubmit": [
    {
      "name": "AndroidAutomotiveHomeTests",
      "options" : [
        {
          "include-filter": "android.platform.tests.HomeTest"
        }
      ]
    },
    {
      "name": "AndroidAutomotiveNotificationsTests",
      "options" : [
        {
          "include-filter": "android.platform.tests.NotificationTest"
        }
      ]
    }
  ],
  "silver-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.PlatinumTest"
        },
        {
            "exclude-annotation": "android.platform.test.annotations.FlakyTest"
        },
        {
            "exclude-annotation": "androidx.test.filters.FlakyTest"
        }
      ]
    }
  ]
}
