diff options
author | Josh Essman <68349992+joshessman-llnl@users.noreply.github.com> | 2021-02-23 17:46:37 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-23 23:46:37 +0000 |
commit | 93ed1a410c4a202eab3a68769fd8c0d4ff8b1c8e (patch) | |
tree | 459c4073521172e78dd0f0fb17e2ba53bf10ef8b /.github/workflows/linux_unit_tests.yaml | |
parent | 6622856076920cf7b0baa7e5e33e7bc00a85fc32 (diff) | |
download | spack-93ed1a410c4a202eab3a68769fd8c0d4ff8b1c8e.tar.gz spack-93ed1a410c4a202eab3a68769fd8c0d4ff8b1c8e.tar.bz2 spack-93ed1a410c4a202eab3a68769fd8c0d4ff8b1c8e.tar.xz spack-93ed1a410c4a202eab3a68769fd8c0d4ff8b1c8e.zip |
Updates to support clingo-cffi (#20657)
* Support clingo when used with cffi
Clingo recently merged in a new Python module option based on cffi.
Compatibility with this module requires a few changes to spack - it does not automatically convert strings/ints/etc to Symbol and clingo.Symbol.string throws on failure.
manually convert str/int to clingo.Symbol types
catch stringify exceptions
add job for clingo-cffi to Spack CI
switch to potassco-vendored wheel for clingo-cffi CI
on_unsat argument when cffi
Diffstat (limited to '.github/workflows/linux_unit_tests.yaml')
-rw-r--r-- | .github/workflows/linux_unit_tests.yaml | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/.github/workflows/linux_unit_tests.yaml b/.github/workflows/linux_unit_tests.yaml index 47adfb3e8f..c6b9309e99 100644 --- a/.github/workflows/linux_unit_tests.yaml +++ b/.github/workflows/linux_unit_tests.yaml @@ -165,3 +165,54 @@ jobs: - uses: codecov/codecov-action@v1 with: flags: unittests,linux,clingo + clingo-cffi: + # Test for the clingo based solver using the CFFI package + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install System packages + run: | + sudo apt-get -y update + # Needed for unit tests + sudo apt-get install -y coreutils gfortran graphviz gnupg2 mercurial + sudo apt-get install -y ninja-build patchelf + # Needed for kcov + sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev + sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev + - name: Install Python packages + run: | + pip install --upgrade pip six setuptools codecov coverage cffi + pip install -i https://test.pypi.org/simple/ clingo-cffi + - name: Setup git configuration + run: | + # Need this for the git tests to succeed. + git --version + . .github/workflows/setup_git.sh + - name: Install kcov for bash script coverage + env: + KCOV_VERSION: 34 + run: | + KCOV_ROOT=$(mktemp -d) + wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz + tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz + mkdir -p ${KCOV_ROOT}/build + cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd - + make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install + - name: Run unit tests + run: | + whoami && echo PWD=$PWD && echo HOME=$HOME && echo SPACK_TEST_SOLVER=$SPACK_TEST_SOLVER + python -c "import clingo; print(hasattr(clingo.Symbol, '_rep'), clingo.__version__)" + . share/spack/setup-env.sh + spack compiler find + spack solve mpileaks%gcc + coverage run $(which spack) unit-test -v + coverage combine + coverage xml + - uses: codecov/codecov-action@v1 + with: + flags: unittests,linux,clingo |