1515 INSTALL_DIR : " ${{github.workspace}}/build/install"
1616
1717jobs :
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 :
7272 strategy :
7373 fail-fast : false
7474 matrix :
@@ -106,6 +106,7 @@ jobs:
106106 - name : Run tests under valgrind
107107 run : ${{github.workspace}}/test/test_valgrind.sh ${{github.workspace}} ${{github.workspace}}/build ${{matrix.tool}}
108108
109+ # Build and test UMF with different CMake generators on Windows
109110 Windows-generators :
110111 strategy :
111112 matrix :
@@ -199,7 +200,8 @@ jobs:
199200 ${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
200201 ${{ matrix.static_hwloc == 'ON' && '--hwloc' || '' }}
201202
202- icx :
203+ # Build and test UMF with Intel C++ Compiler (ICX) on Windows
204+ Windows-icx :
203205 env :
204206 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"
205207 strategy :
@@ -215,40 +217,40 @@ jobs:
215217 shared_library : ' ON'
216218 name : ICX (${{matrix.os}}, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}}, shared_library=${{matrix.shared_library}})
217219 runs-on : ${{matrix.os}}
218-
220+
219221 steps :
220222 - name : Checkout
221223 uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
222224 with :
223225 fetch-depth : 0
224-
226+
225227 - name : Initialize vcpkg
226228 uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
227229 with :
228230 vcpkgGitCommitId : ea2a964f9303270322cf3f2d51c265ba146c422d # 1.04.2025
229231 vcpkgDirectory : ${{env.BUILD_DIR}}/vcpkg
230232 vcpkgJsonGlob : ' **/vcpkg.json'
231-
233+
232234 - name : Install dependencies
233235 run : vcpkg install --triplet x64-windows
234-
236+
235237 - name : Install Ninja
236238 uses : seanmiddleditch/gha-setup-ninja@3b1f8f94a2f8254bd26914c4ab9474d4f0015f67 # v6
237-
239+
238240 - name : Download icx compiler
239241 env :
240242 # Link source: https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler-download.html
241243 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"
242244 run : |
243245 Invoke-WebRequest -Uri "${{ env.CMPLR_LINK }}" -OutFile compiler_install.exe
244-
246+
245247 - name : Install icx compiler
246248 shell : cmd
247249 run : |
248250 start /b /wait .\compiler_install.exe -s -x -f extracted --log extract.log
249251 extracted\bootstrapper.exe -s --action install --eula=accept -p=NEED_VS2017_INTEGRATION=0 ^
250252 -p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=0 --log-dir=.
251-
253+
252254 - name : Configure build
253255 shell : cmd
254256 run : |
@@ -267,14 +269,14 @@ jobs:
267269 -DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON ^
268270 -DUMF_BUILD_CUDA_PROVIDER=ON ^
269271 -DUMF_TESTS_FAIL_ON_SKIP=ON
270-
272+
271273 - name : Build UMF
272274 shell : cmd
273275 run : |
274276 call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
275277 call "C:\Program Files (x86)\Intel\oneAPI\setvars-vcvarsall.bat"
276278 cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j %NUMBER_OF_PROCESSORS%
277-
279+
278280 - name : Run tests
279281 shell : cmd
280282 working-directory : ${{env.BUILD_DIR}}
@@ -285,8 +287,7 @@ jobs:
285287
286288 # Scenarios where UMF_LINK_HWLOC_STATICALLY is set to OFF and hwloc is not installed in the system
287289 # The hwloc library is fetched implicitly
288- hwloc-fallback :
289-
290+ Hwloc-fallback :
290291 strategy :
291292 matrix :
292293 include :
@@ -366,6 +367,8 @@ jobs:
366367 pr_no : ' 0'
367368 bench_script_params : ' --save Baseline_PVC'
368369
370+ # Run benchmarks with the latest SYCL (with the latest UMF copied into the SYCL)
371+ # to verify the compatibility.
369372 Benchmarks-sycl :
370373 uses : ./.github/workflows/reusable_benchmarks.yml
371374 permissions :
0 commit comments