Skip to content

Commit 058ebf4

Browse files
committed
Add QEMU to Coverage
Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
1 parent 60294f9 commit 058ebf4

File tree

4 files changed

+38
-4
lines changed

4 files changed

+38
-4
lines changed

.github/workflows/pr_push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,5 +111,5 @@ jobs:
111111
needs: [Build]
112112
uses: ./.github/workflows/multi_numa.yml
113113
Coverage:
114-
needs: [Build, DevDax, GPU, MultiNuma]
114+
needs: [Build, DevDax, GPU, MultiNuma, Qemu]
115115
uses: ./.github/workflows/coverage.yml

.github/workflows/qemu.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ jobs:
8686
rsync -az -e "ssh -p 2222" ${{github.workspace}}/umf/ testuser@127.0.0.1:/home/testuser/
8787
ssh testuser@127.0.0.1 -p 2222 -t "sudo chown -R testuser:users /home/testuser"
8888
89-
ssh testuser@127.0.0.1 -p 2222 -t "bash /home/testuser/scripts/qemu/run-build.sh"
89+
ssh testuser@127.0.0.1 -p 2222 -t "bash /home/testuser/scripts/qemu/run-build.sh COVERAGE"
9090
ssh testuser@127.0.0.1 -p 2222 -t "sudo shutdown -h now"
9191
9292
- name: Run tests in QEMU
@@ -102,6 +102,13 @@ jobs:
102102
echo "\n ### Testing ${config_name} ###"
103103
umf/scripts/qemu/start_qemu.sh ${config_name}
104104
105-
ssh testuser@127.0.0.1 -p 2222 -t "bash /home/testuser/scripts/qemu/run-tests.sh"
105+
ssh testuser@127.0.0.1 -p 2222 -t "bash /home/testuser/scripts/qemu/run-tests.sh COVERAGE ${config_name}"
106+
scp -r -P 2222 testuser@127.0.0.1:/home/testuser/coverage ./
106107
ssh testuser@127.0.0.1 -p 2222 -t "sudo shutdown -h now"
107108
done
109+
ls -al ./coverage
110+
111+
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
112+
with:
113+
name: exports-coverage-qemu-all
114+
path: coverage

scripts/qemu/run-build.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,16 @@
55

66
set -e
77

8+
[ "$1" = "COVERAGE" ] && COVERAGE=ON || COVERAGE=OFF
9+
10+
# This is ${UMF_DIR}/scripts/qemu/run-build.sh file, so
11+
UMF_DIR=$(dirname $0)/../..
12+
cd $UMF_DIR
13+
pwd
14+
815
echo password | sudo -Sk apt-get update
916
echo password | sudo -Sk apt-get install -y git cmake gcc g++ pkg-config \
10-
numactl libnuma-dev hwloc libhwloc-dev libjemalloc-dev libtbb-dev valgrind
17+
numactl libnuma-dev hwloc libhwloc-dev libjemalloc-dev libtbb-dev valgrind lcov
1118

1219
mkdir build
1320
cd build
@@ -21,6 +28,7 @@ cmake .. \
2128
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON \
2229
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON \
2330
-DUMF_BUILD_EXAMPLES=ON \
31+
-DUMF_USE_COVERAGE=${COVERAGE} \
2432
-DUMF_TESTS_FAIL_ON_SKIP=ON
2533

2634
make -j $(nproc)

scripts/qemu/run-tests.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@
55

66
set -e
77

8+
COVERAGE=$1
9+
XML_CONFIG_FILE=$2
10+
11+
CONFIG_NAME=$(echo $XML_CONFIG_FILE | cut -d. -f1) # remove the '.xml' extension
12+
COVERAGE_DIR=${HOME}/coverage
13+
mkdir -p $COVERAGE_DIR
14+
15+
# This is ${UMF_DIR}/scripts/qemu/run-build.sh file, so
16+
UMF_DIR=$(dirname $0)/../..
17+
cd $UMF_DIR
18+
UMF_DIR=$(pwd)
19+
820
# Drop caches, restores free memory on NUMA nodes
921
echo password | sudo sync;
1022
echo password | sudo sh -c "/usr/bin/echo 3 > /proc/sys/vm/drop_caches"
@@ -20,6 +32,13 @@ ctest --verbose
2032
numactl -N 0 ctest --output-on-failure
2133
numactl -N 1 ctest --output-on-failure
2234

35+
if [ "$COVERAGE" = "COVERAGE" ]; then
36+
COVERAGE_FILE_NAME=exports-coverage-qemu-$CONFIG_NAME
37+
echo "COVERAGE_FILE_NAME: $COVERAGE_FILE_NAME"
38+
../scripts/coverage/coverage_capture.sh $COVERAGE_FILE_NAME
39+
mv ./$COVERAGE_FILE_NAME $COVERAGE_DIR
40+
fi
41+
2342
# run tests under valgrind
2443
echo "Running tests under valgrind memcheck ..."
2544
../test/test_valgrind.sh .. . memcheck

0 commit comments

Comments
 (0)