Compare commits

...
Sign in to create a new pull request.

7 commits

Author SHA1 Message Date
Mikolaj Izdebski
ebaca6ff06 Still allow /usr/lib/java/javapackages-bootstrap 2024-07-31 14:54:53 +02:00
Mikolaj Izdebski
9739fc20a2 Allow /usr/lib/javapackages-bootstrap for javapackages-bootstrap 2024-07-31 14:54:51 +02:00
Mikolaj Izdebski
43c22349f3 Implement jpv_flavor fmf dimension
Vanilla flavor runs unmodified upstream validator, skipping extra
validators from src/ directory.
2024-07-17 20:16:00 +02:00
Mikolaj Izdebski
a82344b624 Disable built-in validator factory
Disable the use of upstream DefaultValidatorFactory, so that we have
more control of which validators are executed.
2024-07-11 16:42:12 +02:00
Marian Koncek
ed326c9eb1 Put javapackages test code into a separate shell script 2024-07-10 11:43:00 +02:00
Marian Koncek
6cb24ea1a1 Unify indentation to use 2 spaces 2024-07-09 15:30:53 +02:00
Marian Koncek
efe08cfac1 Add more javapackages test metadata 2024-07-09 15:29:56 +02:00
4 changed files with 52 additions and 35 deletions

33
javapackages.sh Executable file
View file

@ -0,0 +1,33 @@
#!/usr/bin/bash
set -eux
tmt_root="${TMT_TREE%/tree}"
test_data="${TMT_TEST_DATA##"${tmt_root}"/}"
# Fails with CI which uses a local image
if echo "${JP_VALIDATOR_IMAGE}" | grep -q '/'; then
podman pull "${JP_VALIDATOR_IMAGE}" || sleep 10
fi
command=(podman run --rm --security-opt='label=disable'
--mount type=bind,source="${TEST_ARTIFACTS}",target='/mnt/test-artifacts/',readonly
--mount type=bind,source="${tmt_root}",target='/mnt/tmt/'
)
[ -n "${JP_VALIDATOR_SOURCE_PATH}" ] && command+=(
--mount type=bind,source="${JP_VALIDATOR_SOURCE_PATH}",target='/mnt/project/src',readonly
)
[ -n "${JP_VALIDATOR_OUTPUT_DIR}" ] && command+=(
--mount type=bind,source="${JP_VALIDATOR_OUTPUT_DIR}",target='/mnt/project/classes'
)
command+=(
--env TMT_TEST_DATA="/mnt/tmt/${test_data}"
--env TMT_TREE="/mnt/tmt/tree"
"${JP_VALIDATOR_IMAGE}" org.fedoraproject.javapackages.validator.MainTmt -x
-f '/mnt/test-artifacts/'
)
[ -n "${JP_VALIDATOR_SOURCE_PATH}" ] && command+=(
-sp '/mnt/project/src' -d '/mnt/project/classes'
)
command+=(${JP_VALIDATOR_ARGS})
exec "${command[@]}"

View file

@ -1,5 +1,11 @@
summary: Javapackages-validator tests
contact:
- Marian Koncek <mkoncek@redhat.com>
description: |
This test executes a series of tests checking for various aspects of the Java package.
This includes packaging guidelines compliance, package sanity and various regressions.
tier: 0
framework: shell
require:
- bash
- podman
@ -8,39 +14,13 @@ environment:
JP_VALIDATOR_IMAGE: quay.io/fedora-java/javapackages-validator:2
JP_VALIDATOR_SOURCE_PATH: src
JP_VALIDATOR_OUTPUT_DIR: ""
JP_VALIDATOR_ARGS: ""
JP_VALIDATOR_ARGS: org.fedoraproject.javapackages.validator.validators.jp.ValidatorFactoryJP
result: custom
test: |
set -eux
tmt_root="${TMT_TREE%/tree}"
test_data="${TMT_TEST_DATA##"${tmt_root}"/}"
# Fails with CI which uses a local image
if echo "${JP_VALIDATOR_IMAGE}" | grep -q '/'; then
podman pull "${JP_VALIDATOR_IMAGE}" || sleep 10
fi
command=(podman run --rm --security-opt='label=disable'
--mount type=bind,source="${TEST_ARTIFACTS}",target='/mnt/test-artifacts/',readonly
--mount type=bind,source="${tmt_root}",target='/mnt/tmt/'
)
[ -n "${JP_VALIDATOR_SOURCE_PATH}" ] && command+=(
--mount type=bind,source="${JP_VALIDATOR_SOURCE_PATH}",target='/mnt/project/src',readonly
)
[ -n "${JP_VALIDATOR_OUTPUT_DIR}" ] && command+=(
--mount type=bind,source="${JP_VALIDATOR_OUTPUT_DIR}",target='/mnt/project/classes'
)
command+=(
--env TMT_TEST_DATA="/mnt/tmt/${test_data}"
--env TMT_TREE="/mnt/tmt/tree"
"${JP_VALIDATOR_IMAGE}" org.fedoraproject.javapackages.validator.MainTmt -x
-f '/mnt/test-artifacts/'
)
[ -n "${JP_VALIDATOR_SOURCE_PATH}" ] && command+=(
-sp '/mnt/project/src' -d '/mnt/project/classes'
)
command+=(${JP_VALIDATOR_ARGS})
exec "${command[@]}"
test: exec ./javapackages.sh
/javapackages-validator:
adjust:
when: jpv_flavor==vanilla
environment+:
JP_VALIDATOR_SOURCE_PATH: ""
JP_VALIDATOR_ARGS: ""

View file

@ -55,7 +55,7 @@ public class FilesValidatorJP extends FilesValidator {
prefixes.put("jansi", List.of(Prefix.USR_LIB_BUILD_ID));
prefixes.put("javacc", List.of(Prefix.USR_BIN));
prefixes.put("java_cup", List.of(Prefix.USR_BIN));
prefixes.put("javapackages-bootstrap", List.of("/usr/lib/java/javapackages-bootstrap", "/usr/lib/rpm", "/etc/rpm", "/usr/libexec/javapackages-bootstrap"));
prefixes.put("javapackages-bootstrap", List.of("/usr/lib/java/javapackages-bootstrap", "/usr/lib/javapackages-bootstrap", "/usr/lib/rpm", "/etc/rpm", "/usr/libexec/javapackages-bootstrap"));
prefixes.put("javapackages-tools", List.of(Prefix.USR_BIN, "/usr/share/xmvn/conf", "/usr/lib/rpm", "/usr/share/java-utils/", "/usr/lib/eclipse", "/usr/share/eclipse", "/etc/java", "/etc/jvm", "/usr/lib/java", "/usr/lib/jvm", "/etc/ivy", "/etc/ant.d"));
prefixes.put("jflex", List.of(Prefix.USR_BIN));
prefixes.put("maven", List.of(Prefix.ETC));

View file

@ -4,12 +4,16 @@ import java.util.List;
import org.fedoraproject.javapackages.validator.spi.Validator;
import org.fedoraproject.javapackages.validator.spi.ValidatorFactory;
import org.fedoraproject.javapackages.validator.validators.NoBootstrapValidator;
import org.fedoraproject.javapackages.validator.validators.*;
public class ValidatorFactoryJP implements ValidatorFactory {
@Override
public List<Validator> getValidators() {
return List.of(new Validator[] {
new AttributeProvidesValidator(),
new JavadocNoarchValidator(),
new JavaExclusiveArchValidator(),
new MavenMetadataValidator(),
new NoBootstrapValidator(),
new BytecodeVersionJarValidatorJP(),
new DuplicateFileValidatorJP(),