mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-25 19:04:58 +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.
101 lines
3.1 KiB
YAML
101 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'
|