Java tutorial
/* * Copyright 2013 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.nativeplatform.test.internal; import com.google.common.collect.Sets; import org.gradle.language.base.LanguageSourceSet; import org.gradle.nativeplatform.NativeBinarySpec; import org.gradle.nativeplatform.internal.AbstractNativeBinarySpec; import org.gradle.nativeplatform.internal.NativeBinarySpecInternal; import org.gradle.nativeplatform.tasks.InstallExecutable; import org.gradle.nativeplatform.tasks.LinkExecutable; import org.gradle.nativeplatform.tasks.ObjectFilesToBinary; import org.gradle.nativeplatform.test.NativeTestSuiteBinarySpec; import org.gradle.nativeplatform.test.NativeTestSuiteSpec; import org.gradle.nativeplatform.test.tasks.RunTestExecutable; import org.gradle.platform.base.BinaryTasksCollection; import org.gradle.platform.base.internal.BinaryTasksCollectionWrapper; import java.io.File; import java.util.Set; public abstract class DefaultNativeTestSuiteBinarySpec extends AbstractNativeBinarySpec implements NativeTestSuiteBinarySpecInternal { private final DefaultTasksCollection tasks = new DefaultTasksCollection(super.getTasks()); private NativeBinarySpecInternal testedBinary; private File executableFile; @Override public NativeTestSuiteSpec getComponent() { return (NativeTestSuiteSpec) super.getComponent(); } public NativeBinarySpec getTestedBinary() { return testedBinary; } public void setTestedBinary(NativeBinarySpecInternal testedBinary) { this.testedBinary = testedBinary; setTargetPlatform(testedBinary.getTargetPlatform()); setToolChain(testedBinary.getToolChain()); setPlatformToolProvider(testedBinary.getPlatformToolProvider()); setBuildType(testedBinary.getBuildType()); setFlavor(testedBinary.getFlavor()); } @Override public Set<LanguageSourceSet> getAllSources() { Set<LanguageSourceSet> sources = Sets.newLinkedHashSet(super.getAllSources()); sources.addAll(testedBinary.getAllSources()); return sources; } public File getExecutableFile() { return executableFile; } public void setExecutableFile(File executableFile) { this.executableFile = executableFile; } public File getPrimaryOutput() { return getExecutableFile(); } @Override protected ObjectFilesToBinary getCreateOrLink() { return tasks.getLink(); } public NativeTestSuiteBinarySpec.TasksCollection getTasks() { return tasks; } private static class DefaultTasksCollection extends BinaryTasksCollectionWrapper implements NativeTestSuiteBinarySpec.TasksCollection { public DefaultTasksCollection(BinaryTasksCollection delegate) { super(delegate); } public LinkExecutable getLink() { return findSingleTaskWithType(LinkExecutable.class); } public InstallExecutable getInstall() { return findSingleTaskWithType(InstallExecutable.class); } public RunTestExecutable getRun() { return findSingleTaskWithType(RunTestExecutable.class); } } }