testSrc/org/jetbrains/jps/AntPrePostStepsInArtifactsTest.groovy (32 lines of code) (raw):
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.jps
import org.jetbrains.jps.artifacts.Artifact
import org.jetbrains.jps.util.FileUtil
class AntPrePostStepsInArtifactsTest extends JpsBuildTestCase {
public void test() throws Exception {
Project project = loadProject("testData/artifactWithAntPrePostTasks/.idea", [:])
ProjectBuilder builder = createBuilder(project)
builder.tempFolder = FileUtil.createTempDirectory("tmp").absolutePath
builder.clean()
builder.buildArtifact("main")
builder.deleteTempFiles()
File outDir = new File("testData/artifactWithAntPrePostTasks/out");
assertOutput(outDir.getAbsolutePath(), {
dir("artifacts") {
dir("main") {
dir("dir") {
file("file.txt")
}
file("prestep.txt", "pre1")
file("poststep.txt", "${com.intellij.openapi.util.io.FileUtil.toSystemIndependentName(outDir.absolutePath)}/artifacts/main")
}
}
})
}
public void test_broken_artifact() throws Exception {
Project project = loadProject("testData/artifactWithAntPrePostTasks/.idea", [:])
assertEquals(2, project.artifacts.size());
for (Artifact a: project.artifacts) {
assertNull(project.artifacts.properties);
}
}
}