@@ -4,6 +4,7 @@ parameters:
44 CC : ' '
55 CXX : ' '
66 JSEngine : ' '
7+ enableSanitizers : false
78
89jobs :
910 - job : ${{ parameters.name }}
1213 vmImage : ${{ parameters.vmImage }}
1314
1415 variables :
16+ SANITIZER_FLAG : ${{ coalesce(replace(format('{0}', parameters.enableSanitizers), 'True', 'ON'), 'OFF') }}
1517 CC : ${{ parameters.CC }}
1618 CXX : ${{ parameters.CXX }}
1719
@@ -22,19 +24,29 @@ jobs:
2224
2325 - script : |
2426 sudo apt-get update
25- sudo apt-get install libjavascriptcoregtk-4.1-dev libgl1-mesa-dev libcurl4-openssl-dev libwayland-dev
27+ sudo apt-get install libjavascriptcoregtk-4.1-dev libgl1-mesa-dev libcurl4-openssl-dev libwayland-dev clang
2628 displayName: 'Install packages'
2729
2830 - script : |
29- cmake -G Ninja -B build -D JAVASCRIPTCORE_LIBRARY=/usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.1.so -D NAPI_JAVASCRIPT_ENGINE=${{ parameters.JSEngine }} -D CMAKE_BUILD_TYPE=RelWithDebInfo -D BX_CONFIG_DEBUG=ON -D CMAKE_UNITY_BUILD=$(UNITY_BUILD) -D OpenGL_GL_PREFERENCE=GLVND -D BABYLON_DEBUG_TRACE=ON
31+ cmake -G Ninja -B build -D JAVASCRIPTCORE_LIBRARY=/usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.1.so -D NAPI_JAVASCRIPT_ENGINE=${{ parameters.JSEngine }} -D CMAKE_BUILD_TYPE=RelWithDebInfo -D BX_CONFIG_DEBUG=ON -D CMAKE_UNITY_BUILD=$(UNITY_BUILD) -D OpenGL_GL_PREFERENCE=GLVND -D BABYLON_DEBUG_TRACE=ON -D ENABLE_SANITIZERS=$(SANITIZER_FLAG) .
3032 ninja -C build
3133 displayName: 'Build X11'
3234
35+ # Memory leaks on CI is disabled due to memory leaks reported with xvfb and impossible to add to ignore list.
36+ # See https://github.com/BabylonJS/BabylonNative/issues/1575
37+
3338 - script : |
3439 cd build/Apps/Playground
40+ # Command line to suppress false positive memory leaks :
41+ # ASAN_OPTIONS=detect_leaks=1 LSAN_OPTIONS=suppressions=../../../.github/asan_suppress.txt xvfb-run ./Playground app:///Scripts/validation_native.js
3542 xvfb-run ./Playground app:///Scripts/validation_native.js
3643 displayName: 'Validation Tests'
3744
45+ - script : |
46+ cd build/Apps/UnitTests
47+ xvfb-run ./UnitTests
48+ displayName: 'Unit Tests'
49+
3850 - task : PublishBuildArtifacts@1
3951 inputs :
4052 artifactName : ' ${{ parameters.name }} Rendered Pictures'
4759 pathtoPublish : ' build/Apps/Playground/Errors'
4860 displayName : ' Publish Tests ${{ parameters.name }} Errors'
4961 condition : failed()
50-
51- - script : |
52- cd build/Apps/UnitTests
53- xvfb-run ./UnitTests
54- displayName: 'Unit Tests'
0 commit comments