diff --git a/runit.fmf b/runit.fmf new file mode 100644 index 0000000..655fed2 --- /dev/null +++ b/runit.fmf @@ -0,0 +1,14 @@ +summary: Runit tests +description: | + Run unit tests written in Java that are stored in runit/ subdirectory. +contact: Mikolaj Izdebski +tier: 0 +tag: runit +environment+: + JP_VALIDATOR_IMAGE: quay.io/mizdebsk/runit:latest + JP_VALIDATOR_ARGS: io.kojan.runit.validator.RunitValidatorFactory + JP_VALIDATOR_SOURCE_PATH: runit +enabled: false +adjust: + enabled: true + when: runit==true diff --git a/runit/BasicCheck.java b/runit/BasicCheck.java new file mode 100644 index 0000000..a4f769d --- /dev/null +++ b/runit/BasicCheck.java @@ -0,0 +1,36 @@ +package tests; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.endsWith; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.matchesRegex; +import static org.hamcrest.Matchers.not; +import static org.junit.jupiter.api.Assumptions.assumeFalse; +import static org.junit.jupiter.api.Assumptions.assumeTrue; + +import org.junit.jupiter.api.DisplayName; + +import io.kojan.javadeptools.rpm.RpmInfo; +import io.kojan.runit.api.PackageTest; + +@DisplayName("/basic") +public class BasicCheck { + + @PackageTest + public void noBootstrapRelease(RpmInfo rpm) { + assertThat("No ~bootstrap in release", rpm.getRelease(), not(endsWith("~bootstrap"))); + } + + @PackageTest + public void saneName(RpmInfo rpm) { + assumeFalse(rpm.getName().startsWith("java_cup")); + assertThat("Package name is sane", rpm.getName(), matchesRegex("[a-z][a-z0-9-]+[a-z0-9]")); + } + + @PackageTest + public void testJavadocNoarch(RpmInfo rpm) { + assumeFalse(rpm.isSourcePackage()); + assumeTrue(rpm.getName().endsWith("-javadoc")); + assertThat("Javadoc package is noarch", rpm.getArch(), is("noarch")); + } +}