aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/pull_request.yml
diff options
context:
space:
mode:
authorJohn Levon <john.levon@nutanix.com>2021-05-10 13:12:19 +0100
committerGitHub <noreply@github.com>2021-05-10 13:12:19 +0100
commite92b1f6b57d0131ec4aa581e57e10ab7d628a0cd (patch)
tree81fbf790b7bdc19bbb646ff3a4cbba4671971789 /.github/workflows/pull_request.yml
parentb95c886ed23b4cc4c539030bf383b55aae8859a3 (diff)
downloadlibvfio-user-e92b1f6b57d0131ec4aa581e57e10ab7d628a0cd.zip
libvfio-user-e92b1f6b57d0131ec4aa581e57e10ab7d628a0cd.tar.gz
libvfio-user-e92b1f6b57d0131ec4aa581e57e10ab7d628a0cd.tar.bz2
start python-based testing framework (#447)
Trying to do our unit/functional testing with C is very tedious, and cmocka especially is a continual pain point. This commit introduces a Python-based testing infrastructure, and adds an initial set of functional tests for client negotiation. The tests work under Valgrind for leak/bad access detection of the C code, but not under ASAN, which lacks any meaningful shared-library support. We should be able to replace all of current C-based unit tests with this, reverting samples/ back to demo code only. Signed-off-by: John Levon <john.levon@nutanix.com> Reviewed-by: Thanos Makatos <thanos.makatos@nutanix.com>
Diffstat (limited to '.github/workflows/pull_request.yml')
-rw-r--r--.github/workflows/pull_request.yml13
1 files changed, 8 insertions, 5 deletions
diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml
index 7f8dc3d..c066619 100644
--- a/.github/workflows/pull_request.yml
+++ b/.github/workflows/pull_request.yml
@@ -9,7 +9,8 @@ jobs:
- name: pre-push
run: |
sudo apt-get update
- sudo apt-get -y install libjson-c-dev libcmocka-dev clang valgrind
+ sudo apt-get -y install libjson-c-dev libcmocka-dev clang valgrind \
+ python3-pytest debianutils
make pre-push VERBOSE=1
ubuntu-18:
timeout-minutes: 5
@@ -19,7 +20,8 @@ jobs:
- name: pre-push
run: |
sudo apt update
- sudo apt-get -y install libjson-c-dev libcmocka-dev clang valgrind
+ sudo apt-get -y install libjson-c-dev libcmocka-dev clang valgrind \
+ python3-pytest debianutils
make pre-push VERBOSE=1
centos-7:
timeout-minutes: 5
@@ -31,7 +33,7 @@ jobs:
run: |
yum -y install make gcc-4.8.5 epel-release pciutils
yum -y install clang cmake json-c-devel libcmocka-devel \
- openssl-devel valgrind
+ openssl-devel valgrind python36-pytest which
make pre-push VERBOSE=1
fedora-34:
timeout-minutes: 5
@@ -41,6 +43,7 @@ jobs:
- uses: actions/checkout@v2
- name: pre-push
run: |
- dnf -y install --releasever=34 gcc make clang cmake json-c-devel libcmocka-devel \
- openssl-devel pciutils diffutils valgrind
+ dnf -y install --releasever=34 \
+ gcc make clang cmake json-c-devel libcmocka-devel openssl-devel \
+ pciutils diffutils valgrind python3-pytest which
make pre-push VERBOSE=1