// Copyright (C) 2008 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

android_test {
    name: "CtsDatabaseTestCases",
    defaults: ["cts_defaults"],
    static_libs: [
        "compatibility-device-util-axt",
        "android-common",
        "ctstestrunner-axt",
        "ctstestrunner-axt",
        "ub-uiautomator",
        "junit",
        "flag-junit",
        "android.database.sqlite-aconfig-java",
        "ravenwood-junit",
    ],
    libs: [
        "android.test.runner",
        "android.test.base",
    ],
    srcs: ["src/**/*.java"],
    // Tag this module as a cts test artifact
    test_suites: [
        "cts",
        "general-tests",
    ],
    // Enforce public / test api only
    sdk_version: "test_current",
    data: [
        ":CtsProviderApp",
    ],
    per_testcase_directory: true,
}

android_ravenwood_test {
    name: "CtsDatabaseTestCasesRavenwood",
    defaults: ["cts_defaults"],
    static_libs: [
        "androidx.annotation_annotation",
        "androidx.test.rules",
    ],
    srcs: [
        "src/android/database/cts/AbstractCursorTest.java",
        "src/android/database/cts/CharArrayBufferTest.java",
        "src/android/database/cts/ContentObserverTest.java",
        "src/android/database/cts/ContentObservableTest.java",
        "src/android/database/cts/CursorIndexOutOfBoundsExceptionTest.java",
        "src/android/database/cts/CursorJoinerTest.java",
        "src/android/database/cts/CursorWrapperTest.java",
        "src/android/database/cts/DataSetObservableTest.java",
        "src/android/database/cts/DataSetObserverTest.java",
        "src/android/database/cts/MatrixCursorTest.java",
        "src/android/database/cts/MatrixCursor_RowBuilderTest.java",
        "src/android/database/cts/MergeCursorTest.java",
        "src/android/database/cts/ObservableTest.java",
    ],
    auto_gen_config: true,
}
