/*
 * Copyright 2021 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.
 */

plugins {
    id("AndroidXPlugin")
    id("kotlin")
}

dependencies {
    implementation gradleTestKit()
    testImplementation libs.junit
}
tasks["test"].configure { t ->
    // The output of this task can potentially depend on the contents of settings.gradle
    // and any files referenced by it, including every build.gradle and any scripts or plugins they
    // apply too. We don't have a convenient way to identify the true inputs here, so we always
    // run this task and leave details around incrementality up to the Gradle builds that we spawn
    t.outputs.upToDateWhen { false }
}
