15
15
INSTALL_DIR : " ${{github.workspace}}/build/install"
16
16
17
17
jobs :
18
- fuzz-test :
19
- strategy :
20
- fail-fast : false
21
- matrix :
22
- build_type : [Debug, Release]
23
- compiler : [{c: clang, cxx: clang++}]
24
- name : Fuzz test (ubuntu-latest, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}})
25
- runs-on : ubuntu-latest
26
-
27
- steps :
28
- - name : Checkout repository
29
- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
30
- with :
31
- fetch-depth : 0
32
-
33
- - name : Install apt packages
34
- run : |
35
- sudo apt-get update
36
- sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev
37
-
38
- - name : Find Clang fuzzer lib
39
- run : |
40
- CLANG_LIBS_DIR=$(find /usr/lib -name "libclang_rt.fuzzer_no_main-x86_64.a" -exec dirname {} \; | head -n 1)
41
- echo "CLANG_LIBS_DIR=${CLANG_LIBS_DIR}" >> $GITHUB_ENV
42
-
43
- - name : Configure CMake
44
- run : >
45
- cmake
46
- -B ${{github.workspace}}/build
47
- -DCMAKE_PREFIX_PATH=${{env.CLANG_LIBS_DIR}}
48
- -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
49
- -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
50
- -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
51
- -DUMF_BUILD_SHARED_LIBRARY=ON
52
- -DUMF_TESTS_FAIL_ON_SKIP=ON
53
- -DUMF_DEVELOPER_MODE=ON
54
- -DUMF_BUILD_FUZZTESTS=ON
55
-
56
- - name : Build
57
- run : cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} --verbose -j$(nproc)
58
-
59
- - name : Run regular tests
60
- working-directory : ${{github.workspace}}/build
61
- run : ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"
62
-
63
- - name : Run regular tests with proxy library
64
- working-directory : ${{env.BUILD_DIR}}
65
- run : LD_PRELOAD=./lib/libumf_proxy.so ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"
66
-
67
- - name : Fuzz long test
68
- working-directory : ${{github.workspace}}/build
69
- run : ctest -C ${{matrix.build_type}} --output-on-failure --verbose -L "fuzz-long"
70
-
71
- valgrind :
18
+ Fuzzing :
19
+ strategy :
20
+ fail-fast : false
21
+ matrix :
22
+ build_type : [Debug, Release]
23
+ compiler : [{c: clang, cxx: clang++}]
24
+ name : Fuzzing (ubuntu-latest, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}})
25
+ runs-on : ubuntu-latest
26
+
27
+ steps :
28
+ - name : Checkout repository
29
+ uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
30
+ with :
31
+ fetch-depth : 0
32
+
33
+ - name : Install apt packages
34
+ run : |
35
+ sudo apt-get update
36
+ sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev
37
+
38
+ - name : Find Clang fuzzer lib
39
+ run : |
40
+ CLANG_LIBS_DIR=$(find /usr/lib -name "libclang_rt.fuzzer_no_main-x86_64.a" -exec dirname {} \; | head -n 1)
41
+ echo "CLANG_LIBS_DIR=${CLANG_LIBS_DIR}" >> $GITHUB_ENV
42
+
43
+ - name : Configure CMake
44
+ run : >
45
+ cmake
46
+ -B ${{github.workspace}}/build
47
+ -DCMAKE_PREFIX_PATH=${{env.CLANG_LIBS_DIR}}
48
+ -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
49
+ -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
50
+ -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
51
+ -DUMF_BUILD_SHARED_LIBRARY=ON
52
+ -DUMF_TESTS_FAIL_ON_SKIP=ON
53
+ -DUMF_DEVELOPER_MODE=ON
54
+ -DUMF_BUILD_FUZZTESTS=ON
55
+
56
+ - name : Build
57
+ run : cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} --verbose -j$(nproc)
58
+
59
+ - name : Run regular tests
60
+ working-directory : ${{github.workspace}}/build
61
+ run : ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"
62
+
63
+ - name : Run regular tests with proxy library
64
+ working-directory : ${{env.BUILD_DIR}}
65
+ run : LD_PRELOAD=./lib/libumf_proxy.so ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"
66
+
67
+ - name : Fuzz long test
68
+ working-directory : ${{github.workspace}}/build
69
+ run : ctest -C ${{matrix.build_type}} --output-on-failure --verbose -L "fuzz-long"
70
+
71
+ Valgrind :
72
72
strategy :
73
73
fail-fast : false
74
74
matrix :
@@ -106,6 +106,7 @@ jobs:
106
106
- name : Run tests under valgrind
107
107
run : ${{github.workspace}}/test/test_valgrind.sh ${{github.workspace}} ${{github.workspace}}/build ${{matrix.tool}}
108
108
109
+ # Build and test UMF with different CMake generators on Windows
109
110
Windows-generators :
110
111
strategy :
111
112
matrix :
@@ -199,7 +200,8 @@ jobs:
199
200
${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
200
201
${{ matrix.static_hwloc == 'ON' && '--hwloc' || '' }}
201
202
202
- icx :
203
+ # Build and test UMF with Intel C++ Compiler (ICX) on Windows
204
+ Windows-icx :
203
205
env :
204
206
VCPKG_PATH : " ${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows"
205
207
strategy :
@@ -215,40 +217,40 @@ jobs:
215
217
shared_library : ' ON'
216
218
name : ICX (${{matrix.os}}, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}}, shared_library=${{matrix.shared_library}})
217
219
runs-on : ${{matrix.os}}
218
-
220
+
219
221
steps :
220
222
- name : Checkout
221
223
uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
222
224
with :
223
225
fetch-depth : 0
224
-
226
+
225
227
- name : Initialize vcpkg
226
228
uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
227
229
with :
228
230
vcpkgGitCommitId : ea2a964f9303270322cf3f2d51c265ba146c422d # 1.04.2025
229
231
vcpkgDirectory : ${{env.BUILD_DIR}}/vcpkg
230
232
vcpkgJsonGlob : ' **/vcpkg.json'
231
-
233
+
232
234
- name : Install dependencies
233
235
run : vcpkg install --triplet x64-windows
234
-
236
+
235
237
- name : Install Ninja
236
238
uses : seanmiddleditch/gha-setup-ninja@3b1f8f94a2f8254bd26914c4ab9474d4f0015f67 # v6
237
-
239
+
238
240
- name : Download icx compiler
239
241
env :
240
242
# Link source: https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler-download.html
241
243
CMPLR_LINK : " https://registrationcenter-download.intel.com/akdlm/IRC_NAS/15a35578-2f9a-4f39-804b-3906e0a5f8fc/w_dpcpp-cpp-compiler_p_2024.2.1.83_offline.exe"
242
244
run : |
243
245
Invoke-WebRequest -Uri "${{ env.CMPLR_LINK }}" -OutFile compiler_install.exe
244
-
246
+
245
247
- name : Install icx compiler
246
248
shell : cmd
247
249
run : |
248
250
start /b /wait .\compiler_install.exe -s -x -f extracted --log extract.log
249
251
extracted\bootstrapper.exe -s --action install --eula=accept -p=NEED_VS2017_INTEGRATION=0 ^
250
252
-p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=0 --log-dir=.
251
-
253
+
252
254
- name : Configure build
253
255
shell : cmd
254
256
run : |
@@ -267,14 +269,14 @@ jobs:
267
269
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON ^
268
270
-DUMF_BUILD_CUDA_PROVIDER=ON ^
269
271
-DUMF_TESTS_FAIL_ON_SKIP=ON
270
-
272
+
271
273
- name : Build UMF
272
274
shell : cmd
273
275
run : |
274
276
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
275
277
call "C:\Program Files (x86)\Intel\oneAPI\setvars-vcvarsall.bat"
276
278
cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j %NUMBER_OF_PROCESSORS%
277
-
279
+
278
280
- name : Run tests
279
281
shell : cmd
280
282
working-directory : ${{env.BUILD_DIR}}
@@ -285,8 +287,7 @@ jobs:
285
287
286
288
# Scenarios where UMF_LINK_HWLOC_STATICALLY is set to OFF and hwloc is not installed in the system
287
289
# The hwloc library is fetched implicitly
288
- hwloc-fallback :
289
-
290
+ Hwloc-fallback :
290
291
strategy :
291
292
matrix :
292
293
include :
@@ -366,6 +367,8 @@ jobs:
366
367
pr_no : ' 0'
367
368
bench_script_params : ' --save Baseline_PVC'
368
369
370
+ # Run benchmarks with the latest SYCL (with the latest UMF copied into the SYCL)
371
+ # to verify the compatibility.
369
372
Benchmarks-sycl :
370
373
uses : ./.github/workflows/reusable_benchmarks.yml
371
374
permissions :
0 commit comments