Skip to content

Commit

Permalink
gitlab: add acceptance testing to system builds
Browse files Browse the repository at this point in the history
As part of migrating things from Travis to GitLab add the acceptance
tests. To do this:

  - rename system1 to system-ubuntu-main
  - rename system2 to system-fedora-misc
  - split into build/check/acceptance
  - remove -j from check stages
  - use artifacts to save build stage
  - add post acceptance template and use

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-Id: <[email protected]>
  • Loading branch information
stsquad committed Jul 11, 2020
1 parent 3c1de3a commit c5008c7
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 28 deletions.
69 changes: 66 additions & 3 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
# Currently we have two build stages after our containers are built:
# - build (for traditional build and test or first stage build)
# - test (for test stages, using build artefacts from a build stage)
stages:
- containers
- containers-layer2
- containers-layer3
- build
- test

include:
- local: '/.gitlab-ci.d/edk2.yml'
Expand All @@ -24,26 +28,85 @@ include:
../configure --enable-werror $CONFIGURE_ARGS ;
fi
- make -j"$JOBS"
- make -j"$JOBS" $MAKE_CHECK_ARGS
- if test -n "$MAKE_CHECK_ARGS";
then
make $MAKE_CHECK_ARGS ;
fi

.native_test_job_template: &native_test_job_definition
stage: test
image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
script:
- cd build
- find . -type f -exec touch {} +
- make $MAKE_CHECK_ARGS

.post_acceptance_template: &post_acceptance
after_script:
- cd build
- python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP")]' | xargs cat
- du -chs $HOME/avocado/data/cache

build-system1:
build-system-ubuntu-main:
<<: *native_build_job_definition
variables:
IMAGE: ubuntu2004
TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu lm32-softmmu
moxie-softmmu microblazeel-softmmu mips64el-softmmu m68k-softmmu ppc-softmmu
riscv64-softmmu sparc-softmmu
artifacts:
paths:
- build

check-system-ubuntu-main:
<<: *native_test_job_definition
needs:
- job: build-system-ubuntu-main
artifacts: true
variables:
IMAGE: ubuntu2004
MAKE_CHECK_ARGS: check

build-system2:
acceptance-system-ubuntu-main:
<<: *native_test_job_definition
needs:
- job: build-system-ubuntu-main
artifacts: true
variables:
IMAGE: ubuntu2004
MAKE_CHECK_ARGS: check-acceptance
<<: *post_acceptance

build-system-fedora-alt:
<<: *native_build_job_definition
variables:
IMAGE: fedora
TARGETS: tricore-softmmu unicore32-softmmu microblaze-softmmu mips-softmmu
riscv32-softmmu s390x-softmmu sh4-softmmu sparc64-softmmu x86_64-softmmu
xtensa-softmmu nios2-softmmu or1k-softmmu
artifacts:
paths:
- build

check-system-fedora-alt:
<<: *native_test_job_definition
needs:
- job: build-system-fedora-alt
artifacts: true
variables:
IMAGE: fedora
MAKE_CHECK_ARGS: check

acceptance-system-fedora-alt:
<<: *native_test_job_definition
needs:
- job: build-system-fedora-alt
artifacts: true
variables:
IMAGE: fedora
MAKE_CHECK_ARGS: check-acceptance
<<: *post_acceptance

build-disabled:
<<: *native_build_job_definition
variables:
Expand Down
23 changes: 0 additions & 23 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -289,29 +289,6 @@ jobs:
python: 3.6


# Acceptance (Functional) tests
- name: "GCC check-acceptance"
dist: bionic
env:
- CONFIG="--enable-tools --target-list=aarch64-softmmu,alpha-softmmu,arm-softmmu,m68k-softmmu,microblaze-softmmu,mips-softmmu,mips64el-softmmu,nios2-softmmu,or1k-softmmu,ppc-softmmu,ppc64-softmmu,s390x-softmmu,sh4-softmmu,sparc-softmmu,x86_64-softmmu,xtensa-softmmu"
- TEST_CMD="make check-acceptance"
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-acceptance"
after_script:
- python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP")]' | xargs cat
- du -chs $HOME/avocado/data/cache
addons:
apt:
packages:
- python3-pil
- python3-pip
- python3-numpy
- python3-opencv
- python3-venv
- rpm2cpio
- tesseract-ocr
- tesseract-ocr-eng


# Using newer GCC with sanitizers
- name: "GCC9 with sanitizers (softmmu)"
addons:
Expand Down
2 changes: 1 addition & 1 deletion tests/Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -944,7 +944,7 @@ check-acceptance: check-venv $(TESTS_RESULTS_DIR) get-vm-images
--show=$(AVOCADO_SHOW) run --job-results-dir=$(TESTS_RESULTS_DIR) \
--filter-by-tags-include-empty --filter-by-tags-include-empty-key \
$(AVOCADO_TAGS) \
--failfast=on tests/acceptance, \
$(if $(GITLAB_CI),,--failfast=on) tests/acceptance, \
"AVOCADO", "tests/acceptance")

# Consolidated targets
Expand Down
2 changes: 1 addition & 1 deletion tests/acceptance/replay_kernel.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def run_rr(self, kernel_path, kernel_command_line, console_pattern,
logger = logging.getLogger('replay')
logger.info('replay overhead {:.2%}'.format(t2 / t1 - 1))

@skipIf(os.getenv('CONTINUOUS_INTEGRATION'), 'Running on Travis-CI')
@skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab')
def test_x86_64_pc(self):
"""
:avocado: tags=arch:x86_64
Expand Down

0 comments on commit c5008c7

Please sign in to comment.