Commit f00c9083b for llama.cpp
commit f00c9083b2003ae888d8376b9f56ff94512ce9cb
Author: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>
Date: Fri Oct 23 14:53:44 2026 +0200
ci : add behavior check workflow (#31036)
* remove python from tests
* add behavior and backend ctest labels
* add behavior check workflow
[no ci]
diff --git a/.github/workflows/behavior-check.yml b/.github/workflows/behavior-check.yml
new file mode 100644
index 000000000..22d8d7034
--- /dev/null
+++ b/.github/workflows/behavior-check.yml
@@ -0,0 +1,109 @@
+name: Behavior Check
+
+on:
+ workflow_dispatch: # allows manual triggering
+ push:
+ branches:
+ - master
+ paths: [
+ '.github/workflows/behavior-check.yml',
+ '**/CMakeLists.txt',
+ '**/.cmake',
+ '**/*.h',
+ '**/*.hpp',
+ '**/*.c',
+ '**/*.cpp',
+ ]
+
+ pull_request:
+ types: [opened, synchronize, reopened]
+ paths: [
+ '.github/workflows/behavior-check.yml',
+ '**/CMakeLists.txt',
+ '**/.cmake',
+ '**/*.h',
+ '**/*.hpp',
+ '**/*.c',
+ '**/*.cpp'
+ ]
+
+cache-mode: none
+permissions:
+ contents: read
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
+ cancel-in-progress: true
+
+env:
+ GGML_NLOOP: 3
+ GGML_N_THREADS: 1
+ GGML_SCHED_DEBUG_REALLOC: 1
+ LLAMA_ARG_LOG_COLORS: 1
+ LLAMA_ARG_LOG_PREFIX: 1
+ LLAMA_ARG_LOG_TIMESTAMPS: 1
+
+jobs:
+ ubuntu:
+ runs-on: ubuntu-26.04-arm
+
+ steps:
+ - name: Clone
+ id: checkout
+ uses: actions/checkout@v6
+
+ - name: ccache
+ uses: ggml-org/ccache-action@v1.2.24
+ with:
+ restore: false
+ save: false
+
+ - name: Build Dependencies
+ id: build_depends
+ run: |
+ sudo apt update
+ sudo apt install -y build-essential libssl-dev git-lfs libjpeg-dev python3 python3-venv python3-pip
+
+ - name: Python Dependencies
+ id: python_depends
+ run: |
+ python3 -m venv .venv
+ source .venv/bin/activate
+ pip install jinja2==3.1.6
+
+ - name: ccache-buckets-restore
+ uses: ./.github/actions/ccache-buckets
+ env:
+ HF_TOKEN: ${{ secrets.HF_TOKEN_CI }}
+ with:
+ key: behavior-check-ubuntu-26.04-arm
+ folder: llama.cpp
+ hf_bucket: ggml-org/cache
+
+ - name: Build
+ id: cmake_build
+ run: |
+ cmake -B build \
+ -DGGML_NATIVE=OFF \
+ -DGGML_BACKEND_DL=OFF \
+ -DLLAMA_FATAL_WARNINGS=ON
+ time cmake --build build --config Release -j $(nproc)
+
+ - name: ccache-buckets-save
+ if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+ uses: ./.github/actions/ccache-buckets
+ env:
+ HF_TOKEN: ${{ secrets.HF_TOKEN_CACHE_OUTPUT }}
+ with:
+ key: behavior-check-ubuntu-26.04-arm
+ folder: llama.cpp
+ evict-old-files: 1d
+ hf_bucket: ggml-org/cache
+ save: true
+
+ - name: Test
+ id: cmake_test
+ run: |
+ source .venv/bin/activate
+ cd build
+ ctest -L behavior -LE 'model|backend' --verbose --timeout 900
diff --git a/.github/workflows/build-cpu.yml b/.github/workflows/build-cpu.yml
index 78d1c5f82..76a030e67 100644
--- a/.github/workflows/build-cpu.yml
+++ b/.github/workflows/build-cpu.yml
@@ -129,7 +129,7 @@ jobs:
id: cmake_test
run: |
cd build
- ctest -L 'main|python' --verbose --timeout 900
+ ctest -L main --verbose --timeout 900
- name: Test llama2c conversion
id: llama2c_test
diff --git a/ci/run.sh b/ci/run.sh
index bf6611fd0..e3ffdb8af 100755
--- a/ci/run.sh
+++ b/ci/run.sh
@@ -254,7 +254,7 @@ function gg_run_ctest_release {
(time cmake --build . --config Release -j$(nproc)) 2>&1 | tee -a $OUT/${ci}-make.log
if [ -z ${GG_BUILD_LOW_PERF} ]; then
- (time ctest -C Release --output-on-failure -L 'main|python' ${CTEST_EXTRA}) 2>&1 | tee -a $OUT/${ci}-ctest.log
+ (time ctest -C Release --output-on-failure -L main ${CTEST_EXTRA}) 2>&1 | tee -a $OUT/${ci}-ctest.log
else
(time ctest -C Release --output-on-failure -L main -E test-opt ${CTEST_EXTRA}) 2>&1 | tee -a $OUT/${ci}-ctest.log
fi
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 815cc15a3..763154972 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -137,33 +137,34 @@ endfunction()
# build test-tokenizer-0 target once and add many tests
llama_build(test-tokenizer-0.cpp)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-bert-bge ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-bert-bge.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-command-r ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-command-r.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-deepseek-coder ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-deepseek-coder.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-deepseek-llm ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-deepseek-llm.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-falcon ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-falcon.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-gemma-4 ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-gemma-4.gguf --check-decode)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-gpt-2 ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-gpt-2.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-llama-bpe ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-llama-bpe.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-llama-spm ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-llama-spm.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-mpt ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-mpt.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-phi-3 ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-phi-3.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-qwen2 ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-qwen2.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-qwen35 ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-qwen35.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-refact ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-refact.gguf)
-llama_test(test-tokenizer-0 NAME test-tokenizer-0-starcoder ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-starcoder.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-bert-bge LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-bert-bge.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-command-r LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-command-r.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-deepseek-coder LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-deepseek-coder.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-deepseek-llm LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-deepseek-llm.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-falcon LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-falcon.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-gemma-4 LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-gemma-4.gguf --check-decode)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-gpt-2 LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-gpt-2.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-llama-bpe LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-llama-bpe.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-llama-spm LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-llama-spm.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-mpt LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-mpt.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-phi-3 LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-phi-3.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-qwen2 LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-qwen2.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-qwen35 LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-qwen35.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-refact LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-refact.gguf)
+llama_test(test-tokenizer-0 NAME test-tokenizer-0-starcoder LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-starcoder.gguf)
if (NOT WIN32)
llama_test_cmd(
${CMAKE_CURRENT_SOURCE_DIR}/test-tokenizers-repo.sh
NAME test-tokenizers-ggml-vocabs
+ LABEL behavior
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
ARGS https://huggingface.co/ggml-org/vocabs ${PROJECT_SOURCE_DIR}/models/ggml-vocabs
)
endif()
if (LLAMA_LLGUIDANCE)
- llama_build_and_test(test-grammar-llguidance.cpp ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-llama-bpe.gguf)
+ llama_build_and_test(test-grammar-llguidance.cpp LABEL "main behavior" ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-llama-bpe.gguf)
endif ()
# llama_context state tests: KV and recurrent state save, load, copy, rollback
@@ -180,20 +181,20 @@ llama_build(${LLAMA_CONTEXT_TEST_SRC})
if (NOT WIN32 OR NOT BUILD_SHARED_LIBS)
# these tests are disabled on Windows because they use internal functions not exported with LLAMA_API (when building with shared libraries)
- llama_build_and_test(test-unicode.cpp LINK llama)
- llama_build_and_test(test-sampling.cpp LINK llama)
- llama_build_and_test(test-reasoning-budget.cpp)
- llama_build_and_test(test-grammar-parser.cpp LINK llama)
- llama_build_and_test(test-grammar-integration.cpp)
- llama_build_and_test(test-llama-grammar.cpp LINK llama)
- llama_build_and_test(test-batch-alloc.cpp LINK llama)
- llama_build_and_test(test-chat.cpp WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
+ llama_build_and_test(test-unicode.cpp LABEL behavior LINK llama)
+ llama_build_and_test(test-sampling.cpp LABEL behavior LINK llama)
+ llama_build_and_test(test-reasoning-budget.cpp LABEL behavior)
+ llama_build_and_test(test-grammar-parser.cpp LABEL behavior LINK llama)
+ llama_build_and_test(test-grammar-integration.cpp LABEL behavior)
+ llama_build_and_test(test-llama-grammar.cpp LABEL behavior LINK llama)
+ llama_build_and_test(test-batch-alloc.cpp LABEL behavior LINK llama)
+ llama_build_and_test(test-chat.cpp LABEL behavior WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
target_include_directories(test-chat PRIVATE ${PROJECT_SOURCE_DIR}/tools/server)
target_link_libraries(test-chat PRIVATE server-context)
- llama_build_and_test(test-server-component.cpp)
+ llama_build_and_test(test-server-component.cpp LABEL behavior)
target_include_directories(test-server-component PRIVATE ${PROJECT_SOURCE_DIR}/tools/server)
target_link_libraries(test-server-component PRIVATE server-context)
- llama_build_and_test(test-json-schema-to-grammar.cpp)
+ llama_build_and_test(test-json-schema-to-grammar.cpp LABEL behavior)
if (NOT GGML_BACKEND_DL)
llama_build(test-quantize-stats.cpp)
@@ -205,20 +206,20 @@ if (NOT WIN32 OR NOT BUILD_SHARED_LIBS)
llama_build(test-tokenizer-1-bpe.cpp)
# TODO: disabled due to slowness
- #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-aquila ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-aquila.gguf)
- #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-falcon ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-falcon.gguf)
- #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-gpt-2 ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-gpt-2.gguf)
- #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-gpt-neox ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-gpt-neox.gguf)
- #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-llama-bpe ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-llama-bpe.gguf --ignore-merges)
- #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-mpt ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-mpt.gguf)
- #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-refact ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-refact.gguf)
- #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-starcoder ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-starcoder.gguf)
+ #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-aquila LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-aquila.gguf)
+ #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-falcon LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-falcon.gguf)
+ #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-gpt-2 LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-gpt-2.gguf)
+ #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-gpt-neox LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-gpt-neox.gguf)
+ #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-llama-bpe LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-llama-bpe.gguf --ignore-merges)
+ #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-mpt LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-mpt.gguf)
+ #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-refact LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-refact.gguf)
+ #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-starcoder LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-starcoder.gguf)
# build test-tokenizer-1-spm target once and add many tests
llama_build(test-tokenizer-1-spm.cpp)
- llama_test(test-tokenizer-1-spm NAME test-tokenizer-1-llama-spm ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-llama-spm.gguf)
- #llama_test(test-tokenizer-1-spm NAME test-tokenizer-1-baichuan ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-baichuan.gguf)
+ llama_test(test-tokenizer-1-spm NAME test-tokenizer-1-llama-spm LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-llama-spm.gguf)
+ #llama_test(test-tokenizer-1-spm NAME test-tokenizer-1-baichuan LABEL behavior ARGS ${PROJECT_SOURCE_DIR}/models/ggml-vocab-baichuan.gguf)
# llama_build_and_test(test-double-float.cpp) # SLOW
@@ -232,7 +233,7 @@ if (NOT WIN32 OR NOT BUILD_SHARED_LIBS)
llama_test(
test-llama-archs
NAME test-generate-models
- LABEL main
+ LABEL "main behavior backend"
ARGS -o "${MODEL_DIR}"
)
set_tests_properties(test-generate-models PROPERTIES
@@ -242,7 +243,7 @@ if (NOT WIN32 OR NOT BUILD_SHARED_LIBS)
# Test context state handling across all architectures, using the generated dummy models
llama_test(
test-llama-context
- LABEL main
+ LABEL "main behavior backend"
ARGS --models "${MODEL_DIR}"
)
# abort on graph reallocations that the initial reserve should have covered
@@ -254,15 +255,15 @@ if (NOT WIN32 OR NOT BUILD_SHARED_LIBS)
llama_build(test-fusion.cpp)
endif()
-llama_build_and_test(test-chat-peg-parser.cpp peg-parser/simple-tokenize.cpp)
-llama_build_and_test(test-jinja.cpp)
-llama_test(test-jinja NAME test-jinja-py ARGS -py LABEL python)
-llama_build_and_test(test-json-schema.cpp)
-llama_build_and_test(test-chat-auto-parser.cpp WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
-llama_build_and_test(test-chat-template.cpp)
+llama_build_and_test(test-chat-peg-parser.cpp peg-parser/simple-tokenize.cpp LABEL behavior)
+llama_build_and_test(test-jinja.cpp LABEL behavior)
+llama_test(test-jinja NAME test-jinja-py ARGS -py LABEL "python behavior")
+llama_build_and_test(test-json-schema.cpp LABEL behavior)
+llama_build_and_test(test-chat-auto-parser.cpp LABEL behavior WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
+llama_build_and_test(test-chat-template.cpp LABEL behavior)
# debug tool for chat template differential analysis (not registered as a test, run it manually)
llama_build(test-chat-analysis.cpp)
-llama_build_and_test(test-log.cpp)
+llama_build_and_test(test-log.cpp LABEL behavior)
llama_build_and_test(
test-peg-parser.cpp
peg-parser/simple-tokenize.cpp
@@ -272,6 +273,7 @@ llama_build_and_test(
peg-parser/test-python-dict-parser.cpp
peg-parser/test-unicode.cpp
peg-parser/tests.h
+ LABEL behavior
)
if (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "s390x")
@@ -292,33 +294,33 @@ add_test(NAME test-download-model COMMAND ${CMAKE_COMMAND}
set_tests_properties(test-download-model PROPERTIES FIXTURES_SETUP test-download-model)
# the context state cases against a real model, the sweep above uses the generated dummy ones
-llama_test(test-llama-context NAME test-llama-context-model LABEL "model" ARGS -m "${MODEL_DEST}")
+llama_test(test-llama-context NAME test-llama-context-model LABEL "model behavior backend" ARGS -m "${MODEL_DEST}")
set_tests_properties(test-llama-context-model PROPERTIES FIXTURES_REQUIRED test-download-model)
-llama_build_and_test(test-thread-safety.cpp ARGS -m "${MODEL_DEST}" -ngl 99 -p "The meaning of life is" -n 128 -c 256 -ub 32 -np 4 -t 2)
+llama_build_and_test(test-thread-safety.cpp LABEL "main backend" ARGS -m "${MODEL_DEST}" -ngl 99 -p "The meaning of life is" -n 128 -c 256 -ub 32 -np 4 -t 2)
set_tests_properties(test-thread-safety PROPERTIES FIXTURES_REQUIRED test-download-model)
-llama_build_and_test(test-arg-parser.cpp)
-llama_build_and_test(test-model-resolution.cpp)
+llama_build_and_test(test-arg-parser.cpp LABEL behavior)
+llama_build_and_test(test-model-resolution.cpp LABEL behavior)
# the test serves its repos from an httplib server, and the library links it privately
target_link_libraries(test-model-resolution PRIVATE cpp-httplib)
if (NOT LLAMA_SANITIZE_ADDRESS AND NOT GGML_SCHED_NO_REALLOC)
# TODO: repair known memory leaks
- llama_build_and_test(test-opt.cpp LINK ggml)
+ llama_build_and_test(test-opt.cpp LABEL "main behavior backend" LINK ggml)
endif()
if (GGML_METAL AND NOT GGML_BACKEND_DL)
# calls the Metal backend's graph optimizer and fusion table directly
- llama_build_and_test(test-metal-graph-optimize.cpp LINK ggml ggml-metal)
+ llama_build_and_test(test-metal-graph-optimize.cpp LABEL "main behavior backend" LINK ggml ggml-metal)
target_include_directories(test-metal-graph-optimize PRIVATE ${PROJECT_SOURCE_DIR}/ggml/src ${PROJECT_SOURCE_DIR}/ggml/src/ggml-metal)
endif()
llama_build(test-backend-ops.cpp LINK ggml)
-llama_build_and_test(test-tiled-mulmat.cpp LINK ggml)
-llama_build_and_test(test-model-load-cancel.cpp LABEL "model")
-llama_build_and_test(test-autorelease.cpp LABEL "model")
-llama_build_and_test(test-backend-sampler.cpp LABEL "model")
+llama_build_and_test(test-tiled-mulmat.cpp LABEL "main behavior backend" LINK ggml)
+llama_build_and_test(test-model-load-cancel.cpp LABEL "model behavior")
+llama_build_and_test(test-autorelease.cpp LABEL "model behavior")
+llama_build_and_test(test-backend-sampler.cpp LABEL "model behavior backend")
if (APPLE)
llama_build(test-rset-release.cpp)
@@ -326,19 +328,19 @@ endif()
if (NOT GGML_BACKEND_DL AND GGML_CPU)
# these tests use the backends directly and cannot be built with dynamic loading
- llama_build_and_test(test-barrier.cpp LINK ggml)
- llama_build_and_test(test-quantize-fns.cpp LINK ggml)
- llama_build_and_test(test-quantize-perf.cpp LINK ggml)
- llama_build_and_test(test-rope.cpp LINK ggml)
- llama_build_and_test(test-col2im-1d.cpp LINK ggml)
- llama_build_and_test(test-conv-1d.cpp LINK ggml)
- llama_build_and_test(test-gelu-quick.cpp LINK ggml)
+ llama_build_and_test(test-barrier.cpp LABEL "main behavior" LINK ggml)
+ llama_build_and_test(test-quantize-fns.cpp LABEL "main behavior" LINK ggml)
+ llama_build_and_test(test-quantize-perf.cpp LABEL "main behavior backend" LINK ggml)
+ llama_build_and_test(test-rope.cpp LABEL "main behavior backend" LINK ggml)
+ llama_build_and_test(test-col2im-1d.cpp LABEL "main behavior backend" LINK ggml)
+ llama_build_and_test(test-conv-1d.cpp LABEL "main behavior backend" LINK ggml)
+ llama_build_and_test(test-gelu-quick.cpp LABEL "main behavior backend" LINK ggml)
endif()
# libmtmd
-llama_build_and_test(test-mtmd-c-api.c LINK mtmd)
+llama_build_and_test(test-mtmd-c-api.c LABEL behavior LINK mtmd)
-llama_build_and_test(test-mtmd-impl.cpp LINK mtmd)
+llama_build_and_test(test-mtmd-impl.cpp LABEL behavior LINK mtmd)
# GGUF model data fetcher library for tests that need real model metadata
# Only compile when cpp-httplib has SSL support (CPPHTTPLIB_OPENSSL_SUPPORT)
@@ -351,10 +353,10 @@ if (TARGET cpp-httplib)
add_executable(test-gguf-model-data test-gguf-model-data.cpp)
target_link_libraries(test-gguf-model-data PRIVATE gguf-model-data llama-common)
- llama_test(test-gguf-model-data LABEL "model")
+ llama_test(test-gguf-model-data LABEL "model behavior")
# test-quant-type-selection requires gguf-model-data for remote model metadata
- llama_build_and_test(test-quant-type-selection.cpp LABEL "model" LINK llama)
+ llama_build_and_test(test-quant-type-selection.cpp LABEL "model behavior" LINK llama)
target_link_libraries(test-quant-type-selection PRIVATE gguf-model-data)
target_compile_definitions(test-quant-type-selection PRIVATE
SNAPSHOT_DIR="${CMAKE_CURRENT_SOURCE_DIR}/snapshots")
@@ -368,10 +370,10 @@ target_link_libraries(${TEST_TARGET} PRIVATE llama)
if (NOT LLAMA_USE_SYSTEM_GGML)
# Needs non-public ggml-impl.h
- llama_build_and_test(test-gguf.cpp LINK ggml)
+ llama_build_and_test(test-gguf.cpp LABEL behavior LINK ggml)
# Needs non-public ggml{,-backend}-impl.h
- llama_build_and_test(test-alloc.cpp LINK ggml)
+ llama_build_and_test(test-alloc.cpp LABEL "behavior backend" LINK ggml)
endif()
llama_build(test-export-graph-ops.cpp)