/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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
 *
 *   https://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 'com.adarshr.test-logger'
}

testlogger {
	showStandardStreams true
}

sourceSets {
	intTest {
		compileClasspath += sourceSets.main.output
		runtimeClasspath += sourceSets.main.output
	}
}

configurations {
	intTestImplementation.extendsFrom implementation
	intTestRuntimeOnly.extendsFrom runtimeOnly
}

dependencies {
	// add shared-test-resources directory to runtime classpath
	def sharedTestResourcesEntry = files(new File(rootDir, "shared-test-resources"))
	intTestRuntimeOnly sharedTestResourcesEntry
	testRuntimeOnly sharedTestResourcesEntry
}

tasks.register('integrationTest', Test) {
	description = 'Runs integration tests.'
	group = 'verification'

	testClassesDirs = sourceSets.intTest.output.classesDirs
	classpath = sourceSets.intTest.runtimeClasspath
	shouldRunAfter test
}

check.dependsOn integrationTest


tasks.withType(Test) {
	// reduces CPU usage in tests when JIT compiler doesn't spend time compiling code
	// this could help reduce flakiness in CI where there's less CPU resources available
	jvmArgs '-XX:TieredStopAtLevel=1'
}