Skip to content

Commit 77dc0d0

Browse files
lemireanonrig
andauthored
fix: add git to aarch64 container in CI (#652)
* fix: add git to aarch64 container in CI * add permissions * set ctest timeout * fix: keep just sanitizers * Update CMakeLists.txt * Update aarch64.yml: simplify as much as possible. * Update aarch64.yml: reenable sanitizer * Update CMakeLists.txt * fix: try without leak detection * fix: use bound checker --------- Co-authored-by: Yagiz Nizipli <[email protected]>
1 parent 2cea09f commit 77dc0d0

File tree

6 files changed

+26
-12
lines changed

6 files changed

+26
-12
lines changed

.github/workflows/aarch64.yml

+8-5
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ on:
1313
- '**.md'
1414
- 'docs/**'
1515

16+
permissions:
17+
contents: read
18+
1619
concurrency:
1720
group: ${{ github.workflow }}-${{ github.ref }}
1821
cancel-in-progress: true
@@ -22,7 +25,7 @@ jobs:
2225
runs-on: ubuntu-latest
2326
strategy:
2427
matrix:
25-
shared: [ON, OFF]
28+
shared: [OFF]
2629
steps:
2730
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
2831
- uses: uraimo/run-on-arch-action@v2
@@ -33,11 +36,11 @@ jobs:
3336
with:
3437
arch: aarch64
3538
githubToken: ${{ github.token }}
36-
distro: ubuntu_latest
39+
distro: ubuntu22.04
3740
install: |
3841
apt-get update -q -y
39-
apt-get install -y cmake make g++ ninja-build
42+
apt-get install -y cmake make g++ ninja-build git
4043
run: |
41-
cmake -DADA_SANITIZE=ON -DADA_DEVELOPMENT_CHECKS=ON -DBUILD_SHARED_LIBS=${{matrix.shared}} -G Ninja -B build
42-
cmake --build build -j=2
44+
cmake -DADA_SANITIZE_BOUNDS_STRICT=ON -DBUILD_SHARED_LIBS=${{matrix.shared}} -B build
45+
cmake --build build
4346
ctest --test-dir build

CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ if(ADA_TESTING OR ADA_BENCHMARKS OR ADA_TOOLS)
5959

6060
if (ADA_TESTING AND NOT EMSCRIPTEN)
6161
if(Git_FOUND)
62+
set(CTEST_TEST_TIMEOUT 5)
6263
message(STATUS "The tests are enabled.")
6364
add_subdirectory(tests)
6465
else()

cmake/ada-flags.cmake

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ option(ADA_SANITIZE_UNDEFINED "Sanitize undefined behaviour" OFF)
88
if(ADA_SANITIZE)
99
message(STATUS "Address sanitizer enabled.")
1010
endif()
11+
if(ADA_SANITIZE_WITHOUT_LEAKS)
12+
message(STATUS "Address sanitizer (but not leak) enabled.")
13+
endif()
1114
if(ADA_SANITIZE_UNDEFINED)
1215
message(STATUS "Undefined sanitizer enabled.")
1316
endif()
@@ -35,7 +38,7 @@ if (ADA_COVERAGE)
3538
endif()
3639

3740
if (NOT CMAKE_BUILD_TYPE)
38-
if(ADA_SANITIZE OR ADA_SANITIZE_BOUNDS_STRICT OR ADA_SANITIZE_UNDEFINED)
41+
if(ADA_SANITIZE OR ADA_SANITIZE_WITHOUT_LEAKS OR ADA_SANITIZE_BOUNDS_STRICT OR ADA_SANITIZE_UNDEFINED)
3942
message(STATUS "No build type selected, default to Debug because you have sanitizers.")
4043
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build." FORCE)
4144
else()

cmake/add-cpp-test.cmake

+3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ function(add_cpp_test TEST_NAME)
1414
add_compile_options(-fsanitize=address -fno-omit-frame-pointer -fno-sanitize-recover=all)
1515
add_compile_definitions(ASAN_OPTIONS=detect_leaks=1)
1616
endif()
17+
if(ADA_SANITIZE_WITHOUT_LEAKS)
18+
add_compile_options(-fsanitize=address -fno-omit-frame-pointer -fno-sanitize-recover=all)
19+
endif()
1720
if(ADA_SANITIZE_BOUNDS_STRICT)
1821
add_compile_options(-fsanitize=bounds-strict -fno-sanitize-recover=all)
1922
add_link_options(-fsanitize=bounds-strict)

src/CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ if(ADA_SANITIZE)
5050
target_compile_definitions(ada INTERFACE ASAN_OPTIONS=detect_leaks=1)
5151
target_link_libraries(ada INTERFACE -fsanitize=address -fno-omit-frame-pointer -fno-sanitize-recover=all)
5252
endif()
53+
if(ADA_SANITIZE_WITHOUT_LEAKS)
54+
target_compile_options(ada INTERFACE -fsanitize=address -fno-omit-frame-pointer -fno-sanitize-recover=all)
55+
target_link_libraries(ada INTERFACE -fsanitize=address -fno-omit-frame-pointer -fno-sanitize-recover=all)
56+
endif()
5357

5458
if(ADA_LOGGING)
5559
target_compile_definitions(ada PRIVATE ADA_LOGGING=1)

tests/CMakeLists.txt

+6-6
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ else()
3939
target_link_libraries(ada_c PRIVATE simdjson GTest::gtest_main)
4040
target_link_libraries(url_search_params PRIVATE simdjson GTest::gtest_main)
4141

42-
gtest_discover_tests(wpt_tests)
43-
gtest_discover_tests(url_components)
44-
gtest_discover_tests(basic_tests)
45-
gtest_discover_tests(from_file_tests)
46-
gtest_discover_tests(ada_c)
47-
gtest_discover_tests(url_search_params)
42+
gtest_discover_tests(wpt_tests PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
43+
gtest_discover_tests(url_components PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
44+
gtest_discover_tests(basic_tests PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
45+
gtest_discover_tests(from_file_tests PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
46+
gtest_discover_tests(ada_c PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
47+
gtest_discover_tests(url_search_params PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
4848

4949
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
5050
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9)

0 commit comments

Comments
 (0)