mirror of
https://github.com/RGBCube/serenity
synced 2026-01-13 10:10:59 +00:00
There is a bit of a race here between the Fuzzer and non-Fuzzer Lagom builds. If the Unicode caches are empty, and the Fuzzer build completes first, then the UCD and CLDR directories will be empty or won't exist. Skip handling the Unicode caches for this build.
100 lines
3.1 KiB
YAML
100 lines
3.1 KiB
YAML
parameters:
|
|
os: 'Linux'
|
|
fuzzer: 'NoFuzz'
|
|
allow_test_failures: 'NoFuzz'
|
|
|
|
jobs:
|
|
- job: 'Lagom_${{ parameters.os }}_${{ parameters.fuzzer }}'
|
|
|
|
variables:
|
|
- name: CCACHE_DIR
|
|
value: $(Build.SourcesDirectory)/.ccache
|
|
|
|
- name: job_pool
|
|
${{ if eq(parameters.os, 'Linux') }}:
|
|
value: ubuntu-20.04
|
|
${{ 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)
|
|
|
|
steps:
|
|
- template: Setup.yml
|
|
parameters:
|
|
os: '${{ parameters.os }}'
|
|
|
|
- template: Caches.yml
|
|
parameters:
|
|
os: '${{ parameters.os }}'
|
|
arch: 'Lagom'
|
|
toolchain: '$(toolchain)'
|
|
build_directory: 'Meta/Lagom/Build'
|
|
${{ if eq(parameters.fuzzer, 'Fuzz') }}:
|
|
with_unicode_caches: false
|
|
${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
|
|
with_unicode_caches: true
|
|
|
|
- script: |
|
|
mkdir -p Meta/Lagom/Build
|
|
displayName: 'Create Build Directory'
|
|
|
|
- ${{ 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
|
|
|
|
- ${{ 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
|
|
displayName: 'Cache Stats'
|