diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bf8645d..351cb90 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,6 +24,10 @@ jobs: steps: - uses: actions/checkout@v5 + # TODO: remove this step when moving back to a stable criterion release + - name: Install criterion build dependencies + run: sudo apt-get install -y meson ninja-build libffi-dev + - name: Setup criterion run: make setup-criterion @@ -51,5 +55,9 @@ jobs: steps: - uses: actions/checkout@v5 + # TODO: remove this step when moving back to a stable criterion release + - name: Install criterion build dependencies + run: sudo apt-get install -y meson ninja-build libffi-dev + - name: Build and run tests - run: make test + run: make test -j diff --git a/Makefile b/Makefile index a436d06..f3a8ffa 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: mle-flem +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2026/05/12 18:29:33 by mle-flem #+# #+# # -# Updated: 2026/05/25 21:37:03 by nlaporte ### ########.fr # +# Updated: 2026/05/26 16:29:50 by mle-flem ### ########.fr # # # # **************************************************************************** # @@ -131,16 +131,24 @@ LINT_FIX_STAMPS = $(addprefix $(BUILD_DIR)/lint-fix/,$(addsuffix .ok,$(LINT_SRCS EXT_DIR = _deps -CRITERION_VERSION = 2.4.3 -CRITERION_URL.DEFAULT = https://github.com/Snaipe/Criterion/releases/download/v$(CRITERION_VERSION)/criterion-$(CRITERION_VERSION).tar.xz -CRITERION_URL.x86_64 = https://github.com/Snaipe/Criterion/releases/download/v$(CRITERION_VERSION)/criterion-$(CRITERION_VERSION)-linux-x86_64.tar.xz -CRITERION_URL = $(if $(CRITERION_URL.$(ARCH)),$(CRITERION_URL.$(ARCH)),$(CRITERION_URL.DEFAULT)) -CRITERION_HASH.DEFAULT = 8ec64e482a70b3bfc1836ace0988b3316e6c3cfeac883fb5a674dcea5083ea16 -CRITERION_HASH.x86_64 = f1b3dd5186783dcdd63433c1facd3b4d6af5244a151057370b53bdda80f16121 -CRITERION_HASH = $(if $(CRITERION_HASH.$(ARCH)),$(CRITERION_HASH.$(ARCH)),$(CRITERION_HASH.DEFAULT)) +# TODO: update version on next stable release +CRITERION_VERSION = c9869401dceb3f90e4a370928268d41f6ecbdc8f + +# TODO: remove on next stable release +CRITERION_URL = https://github.com/Snaipe/Criterion/archive/$(CRITERION_VERSION).tar.gz +CRITERION_HASH = 9dfddc00fdbd15472d62478fc3b11c2fd4fdcfcb7c428ef3b0da5bccb4f9c84a + +# TODO: uncomment on next stable release +# CRITERION_URL.DEFAULT = https://github.com/Snaipe/Criterion/releases/download/v$(CRITERION_VERSION)/criterion-$(CRITERION_VERSION).tar.xz +# CRITERION_URL.x86_64 = https://github.com/Snaipe/Criterion/releases/download/v$(CRITERION_VERSION)/criterion-$(CRITERION_VERSION)-linux-x86_64.tar.xz +# CRITERION_URL = $(if $(CRITERION_URL.$(ARCH)),$(CRITERION_URL.$(ARCH)),$(CRITERION_URL.DEFAULT)) +# CRITERION_HASH.DEFAULT = 8ec64e482a70b3bfc1836ace0988b3316e6c3cfeac883fb5a674dcea5083ea16 +# CRITERION_HASH.x86_64 = f1b3dd5186783dcdd63433c1facd3b4d6af5244a151057370b53bdda80f16121 +# CRITERION_HASH = $(if $(CRITERION_HASH.$(ARCH)),$(CRITERION_HASH.$(ARCH)),$(CRITERION_HASH.DEFAULT)) CRITERION_DIR = $(EXT_DIR)/criterion -CRITERION_SRC = $(EXT_DIR)/criterion-$(CRITERION_VERSION).tar.xz +# TODO: change tarball extension on next stable release +CRITERION_SRC = $(EXT_DIR)/criterion-$(CRITERION_VERSION).tar.gz CRITERION_NAME = $(CRITERION_DIR)/libcriterion.so @@ -298,7 +306,7 @@ ubsan: .header $(TARGET) .PHONY: test test: .header $(TARGET) @$(call progress,$(CLR_BLUE)Running $(CLR_TEAL)$(TARGET)) - ./$(TARGET) $(if $(TEST_VERBOSE),--verbose) + ./$(TARGET) $(if $(TEST_VERBOSE),--verbose) --default-timeout 2 -include $(DEPS) $(TEST_DEPS) @@ -375,12 +383,14 @@ $(CRITERION_SRC): echo '$(CRITERION_HASH) *$@' | sha256sum -c - >/dev/null -ifeq ($(ARCH),x86_64) +# TODO: remove the force src build on next stable release +ifeq ($(ARCH) force src build,x86_64) $(CRITERION_NAME): $(CRITERION_SRC) @$(call progress,$(CLR_BLUE)Extracting $(CLR_TEAL)$(notdir $(CRITERION_SRC))) - @mkdir -p '$(CRITERION_DIR)' - tar -xJf '$(CRITERION_SRC)' -C '$(CRITERION_DIR)' --strip-components=1 + $(RM) -r $(CRITERION_DIR) + mkdir -p '$(CRITERION_DIR)' + tar -xf '$(CRITERION_SRC)' -C '$(CRITERION_DIR)' --strip-components=1 @$(call progress,$(CLR_BLUE)Copying $(CLR_TEAL)$(notdir $@)) cp '$(CRITERION_DIR)/lib/$(notdir $@)'* '$(dir $@)' @@ -388,8 +398,9 @@ else $(CRITERION_NAME): $(CRITERION_SRC) @$(call progress,$(CLR_BLUE)Extracting $(CLR_TEAL)$(notdir $(CRITERION_SRC))) - @mkdir -p '$(CRITERION_DIR)' - tar -xJf '$(CRITERION_SRC)' -C '$(CRITERION_DIR)' --strip-components=1 + $(RM) -r $(CRITERION_DIR) + mkdir -p '$(CRITERION_DIR)' + tar -xf '$(CRITERION_SRC)' -C '$(CRITERION_DIR)' --strip-components=1 @$(call progress,$(CLR_BLUE)Configuring $(CLR_TEAL)$(notdir $@)) $(call success_quiet,cd '$(CRITERION_DIR)' && CXXFLAGS= meson setup build) @$(call progress,$(CLR_BLUE)Making $(CLR_TEAL)$(notdir $@))