37 lines
1.6 KiB
Java
37 lines
1.6 KiB
Java
package tests;
|
|
|
|
import static io.kojan.runit.api.RUnit.*;
|
|
import static io.kojan.runit.api.matcher.RUnitMatchers.*;
|
|
import static org.hamcrest.Matchers.*;
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
import org.junit.jupiter.api.DisplayName;
|
|
|
|
import io.kojan.javadeptools.rpm.RpmInfo;
|
|
import io.kojan.runit.api.ExcludeFileName;
|
|
import io.kojan.runit.api.ExcludeSource;
|
|
import io.kojan.runit.api.ExcludeSymlink;
|
|
import io.kojan.runit.api.FileTest;
|
|
import io.kojan.runit.api.IncludeFileName;
|
|
|
|
@DisplayName("/jpackage_script")
|
|
public class JPackageScriptCheck {
|
|
@FileTest
|
|
@IncludeFileName("/usr/bin/.*")
|
|
@ExcludeSource
|
|
@ExcludeSymlink
|
|
@ExcludeFileName("/usr/bin/ant")
|
|
public void testJPackageScript(RpmInfo rpm, byte[] bytes) {
|
|
assumeThat("The binary is a script with a shebang", bytes.length, greaterThan(1));
|
|
assumeThat("The binary is a script with a shebang", bytes[0], is((byte)'#'));
|
|
assumeThat("The binary is a script with a shebang", bytes[1], is((byte)'!'));
|
|
String content = new String(bytes, StandardCharsets.UTF_8);
|
|
assumeThat("The script was generated with %jpackage_script", content,
|
|
containsString(". /usr/share/java-utils/java-functions\n"));
|
|
assertThat("The script explicitly sets JAVA_HOME to Java 21", content,
|
|
containsString("\nJAVA_HOME=\"${JAVA_HOME:-/usr/lib/jvm/jre-21-openjdk}\"\n"));
|
|
assertThat("Requires on java-21-openjdk-headless are present", rpm, requires("java-21-openjdk-headless"));
|
|
assertThat("Requires on javapackages-tools are present", rpm, requires("javapackages-tools"));
|
|
}
|
|
}
|