Skip to content

Testing preCICE / solver combinations using Docker

License

Notifications You must be signed in to change notification settings

fsimonis/systemtests

 
 

Repository files navigation

preCICE System Tests

Design and Implementation of system tests for the distributed multi-physics simulation package preCICE

Status

Build Status

Setup and running

Dependencies

Make sure to install

Run a system test

Example command:

python3 local_test.py -b mpi_single_ports -s of-of su2-ccx -f precice

see python3 local_test.py --help for explanation of the command line arguments.

Troubleshooting

  • If you receive an error like W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial/InRelease Temporary failure resolving 'archive.ubuntu.com', the following answer on stackoverflow might help. Even, if the suggested verification step does not work, give the systemtests another try. Sometimes it works...
  • If you run into problems during compilation of preCICE in your docker container, try to use python3 local_test.py --force_rebuild precice.

preCICE

  • Dockerfile.precice docker image with ubuntu 16.04 and preCICE preCICE - github

System tests

travis.yml

Continuous Integration config. Two build stages:

  • stage 1 (build stage): precice docker image build and pushed to Docker Hub
  • stage 2 (testing stage): build su2-ccx, of-of, of-ccx and push outputfiles to repo

compare_*.py

Python script to compare reference data with output data.

Others

  • Makefile_*: needed to build calculix-adapter in su2-ccx and of-ccx
  • push_*: script to push outputfiles back to rep HowTo
  • How to push to hub.docker.com link1 link2
  • log_*: script to log infomation about the build

How to create a new system tests

  1. Create a directory Test_mysystemtest.
  2. Create a Dockerfile in there.
  3. Create a directory referenceOutput there.
  4. Copy the output files to a folder /Output/ (inside the container).

Adding CI to a new adapter

As described in #22, using trigger_systemtests.py it is possible to trigger custom systemtests from the travis job of the another adapter, therefore providing continous integration for the adapter on each commit to a particular branch. If you want to add another adapter, or modify tests that are run for it, you need to modify nm_repo_map and nm_test_map variables in the trigger_systemtests.py, that describe mapping between adapter name and repository and adapter name and set of test cases correspondingly.

The adapter's Travis build would be considered successful if systemtests Travis build exits with status 'Failed' or 'Errored'. It would exit with 'Success', if the systemtests Travis build exits with 'Success' or 'Canceled'.

About

Testing preCICE / solver combinations using Docker

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.3%
  • Other 0.7%