diff --git a/Meta/Azure/Lagom.yml b/Meta/Azure/Lagom.yml index 524ab10bdbb..61d1e8dea68 100644 --- a/Meta/Azure/Lagom.yml +++ b/Meta/Azure/Lagom.yml @@ -1,20 +1,27 @@ parameters: os: 'Linux' - allow_test_failures: false + fuzzer: 'NoFuzz' + allow_test_failures: 'NoFuzz' jobs: - - job: 'Lagom_${{ parameters.os }}' + - job: 'Lagom_${{ parameters.os }}_${{ parameters.fuzzer }}' variables: - name: CCACHE_DIR value: $(Build.SourcesDirectory)/.ccache - - ${{ if eq(parameters.os, 'Linux') }}: - - name: job_pool + + - name: job_pool + ${{ if eq(parameters.os, 'Linux') }}: value: ubuntu-20.04 - - ${{ if eq(parameters.os, 'macOS') }}: - - name: job_pool + ${{ if eq(parameters.os, 'macOS') }}: value: macos-10.15 + - name: toolchain + ${{ if eq(parameters.fuzzer, 'Fuzz') }}: + value: clang + ${{ if eq(parameters.fuzzer, 'NoFuzz') }}: + value: gcc + pool: vmImage: $(job_pool) @@ -27,46 +34,62 @@ jobs: parameters: os: '${{ parameters.os }}' arch: 'Lagom' - toolchain: 'gcc' + toolchain: '$(toolchain)' build_directory: 'Meta/Lagom/Build' - script: | mkdir -p Meta/Lagom/Build displayName: 'Create Build Directory' - - script: | - cmake -GNinja \ - -DBUILD_LAGOM=ON \ - -DENABLE_LAGOM_CCACHE=ON \ - -DINCLUDE_WASM_SPEC_TESTS=ON \ - -DWASM_SPEC_TEST_SKIP_FORMATTING=ON \ - -DENABLE_UNDEFINED_SANITIZER=ON \ - -DENABLE_ADDRESS_SANITIZER=ON \ - -DENABLE_PCI_IDS_DOWNLOAD=OFF \ - -DENABLE_USB_IDS_DOWNLOAD=OFF \ - -DCMAKE_C_COMPILER=gcc-10 \ - -DCMAKE_CXX_COMPILER=g++-10 \ - .. - displayName: 'Create Build Environment' - workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build - env: - PATH: '$(PATH):$(Build.SourcesDirectory)/wabt-1.0.23/bin' + - ${{ if eq(parameters.fuzzer, 'Fuzz') }}: + - script: | + cmake -GNinja \ + -DBUILD_LAGOM=ON \ + -DENABLE_LAGOM_CCACHE=ON \ + -DENABLE_FUZZER_SANITIZER=ON \ + -DENABLE_ADDRESS_SANITIZER=ON \ + -DENABLE_PCI_IDS_DOWNLOAD=OFF \ + -DENABLE_USB_IDS_DOWNLOAD=OFF \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ + .. + displayName: 'Create Build Environment' + workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build + - ${{ if eq(parameters.fuzzer, 'NoFuzz') }}: + - script: | + cmake -GNinja \ + -DBUILD_LAGOM=ON \ + -DENABLE_LAGOM_CCACHE=ON \ + -DINCLUDE_WASM_SPEC_TESTS=ON \ + -DWASM_SPEC_TEST_SKIP_FORMATTING=ON \ + -DENABLE_UNDEFINED_SANITIZER=ON \ + -DENABLE_ADDRESS_SANITIZER=ON \ + -DENABLE_PCI_IDS_DOWNLOAD=OFF \ + -DENABLE_USB_IDS_DOWNLOAD=OFF \ + -DCMAKE_C_COMPILER=gcc-10 \ + -DCMAKE_CXX_COMPILER=g++-10 \ + .. + displayName: 'Create Build Environment' + workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build + env: + PATH: '$(PATH):$(Build.SourcesDirectory)/wabt-1.0.23/bin' - script: | cmake --build . displayName: 'Build' workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build - - script: | - ninja test || ${{ parameters.allow_test_failures }} - displayName: 'Test' - workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build - env: - SERENITY_SOURCE_DIR: '$(Build.SourcesDirectory)' - CTEST_OUTPUT_ON_FAILURE: 1 - # FIXME: enable detect_stack_use_after_return=1 #7420 - ASAN_OPTIONS: 'strict_string_checks=1:check_initialization_order=1:strict_init_order=1' - UBSAN_OPTIONS: 'print_stacktrace=1:print_summary=1:halt_on_error=1' + - ${{ if eq(parameters.fuzzer, 'NoFuzz') }}: + - script: | + ninja test || ${{ parameters.allow_test_failures }} + displayName: 'Test' + workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build + env: + SERENITY_SOURCE_DIR: '$(Build.SourcesDirectory)' + CTEST_OUTPUT_ON_FAILURE: 1 + # FIXME: enable detect_stack_use_after_return=1 #7420 + ASAN_OPTIONS: 'strict_string_checks=1:check_initialization_order=1:strict_init_order=1' + UBSAN_OPTIONS: 'print_stacktrace=1:print_summary=1:halt_on_error=1' - script: | ccache -s diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9b83a69ffad..ffdaf9de5dc 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -6,6 +6,11 @@ jobs: parameters: os: 'Linux' + - template: Meta/Azure/Lagom.yml + parameters: + os: 'Linux' + fuzzer: 'Fuzz' + - template: Meta/Azure/Lagom.yml parameters: os: 'macOS'