/* * Copyright 2009 the original author or authors. * * 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 org.gradle.integtests.fixtures.executer; import java.util.List; import java.util.Set; public interface ExecutionResult { /** * Stdout of the Gradle execution, normalized to use new-line char as line separator. */ String getOutput(); /** * Stdout of the Gradle execution, normalized to use new-line char as line separator. Excludes warnings about deprecated or incubating features used to run the build. * * <ul> * <li>Removes warning about running on Java 6.</li> * <li>Removes warning about running using configure on demand or parallel execution.</li> * <li>Removes notice about starting the daemon.</li> * <li>Normalizes build time to 1 second. * </ul> */ String getNormalizedOutput(); /** * Stderr of the Gradle execution, normalized to use new-line char as line separator. */ String getError(); ExecutionResult assertOutputEquals(String expectedOutput, boolean ignoreExtraLines, boolean ignoreLineOrder); ExecutionResult assertOutputContains(String expectedOutput); /** * Returns the tasks have been executed in order (includes tasks that were skipped). Note: ignores buildSrc tasks. */ List<String> getExecutedTasks(); /** * Asserts that exactly the given set of tasks have been executed in the given order. Note: ignores buildSrc tasks. * Each task path can be either a String or a {@link TaskOrderSpec}. See {@link TaskOrderSpecs} for common assertions * and an explanation of their usage. Defaults to a {@link TaskOrderSpecs#exact(Object[])} assertion. */ ExecutionResult assertTasksExecutedInOrder(Object... taskPaths); /** * Asserts that exactly the given set of tasks have been executed in any order. Note: ignores buildSrc tasks. */ ExecutionResult assertTasksExecuted(String... taskPaths); /** * Asserts that the provided tasks were executed in the given order. Each task path can be either a String * or a {@link TaskOrderSpec}. See {@link TaskOrderSpecs} for common assertions and an explanation of their usage. * Defaults to a {@link TaskOrderSpecs#exact(Object[])} assertion. */ ExecutionResult assertTaskOrder(Object... taskPaths); /** * Returns the tasks that were skipped, in an undefined order. Note: ignores buildSrc tasks. */ Set<String> getSkippedTasks(); /** * Asserts that exactly the given set of tasks have been skipped. Note: ignores buildSrc tasks. */ ExecutionResult assertTasksSkipped(String... taskPaths); /** * Asserts the given task has been skipped. Note: ignores buildSrc tasks. */ ExecutionResult assertTaskSkipped(String taskPath); /** * Asserts that exactly the given set of tasks have not been skipped. Note: ignores buildSrc tasks. */ ExecutionResult assertTasksNotSkipped(String... taskPaths); /** * Asserts that the given task has not been skipped. Note: ignores buildSrc tasks. */ ExecutionResult assertTaskNotSkipped(String taskPath); }