|
| 1 | +function(llama_test target) |
| 2 | + include(CMakeParseArguments) |
| 3 | + set(options) |
| 4 | + set(oneValueArgs NAME LABEL WORKING_DIRECTORY) |
| 5 | + set(multiValueArgs ARGS) |
| 6 | + cmake_parse_arguments(LLAMA_TEST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) |
| 7 | + |
| 8 | + if (NOT DEFINED LLAMA_TEST_LABEL) |
| 9 | + set(LLAMA_TEST_LABEL "main") |
| 10 | + endif() |
| 11 | + if (NOT DEFINED LLAMA_TEST_WORKING_DIRECTORY) |
| 12 | + set(LLAMA_TEST_WORKING_DIRECTORY .) |
| 13 | + endif() |
| 14 | + if (DEFINED LLAMA_TEST_NAME) |
| 15 | + set(TEST_NAME ${LLAMA_TEST_NAME}) |
| 16 | + else() |
| 17 | + set(TEST_NAME ${target}) |
| 18 | + endif() |
| 19 | + |
| 20 | + set(TEST_TARGET ${target}) |
| 21 | + |
| 22 | + add_test( |
| 23 | + NAME ${TEST_NAME} |
| 24 | + WORKING_DIRECTORY ${LLAMA_TEST_WORKING_DIRECTORY} |
| 25 | + COMMAND $<TARGET_FILE:${TEST_TARGET}> |
| 26 | + ${LLAMA_TEST_ARGS}) |
| 27 | + |
| 28 | + set_property(TEST ${TEST_NAME} PROPERTY LABELS ${LLAMA_TEST_LABEL}) |
| 29 | +endfunction() |
| 30 | + |
1 | 31 | # Builds and runs a test source file.
|
2 | 32 | # Optional args:
|
3 | 33 | # - NAME: name of the executable & test target (defaults to the source file name without extension)
|
4 | 34 | # - LABEL: label for the test (defaults to main)
|
5 | 35 | # - ARGS: arguments to pass to the test executable
|
6 | 36 | # - WORKING_DIRECTORY
|
7 |
| -function(llama_test source) |
| 37 | +function(llama_target_and_test source) |
8 | 38 | include(CMakeParseArguments)
|
9 | 39 | set(options)
|
10 | 40 | set(oneValueArgs NAME LABEL WORKING_DIRECTORY)
|
@@ -35,45 +65,54 @@ function(llama_test source)
|
35 | 65 | set_property(TEST ${TEST_TARGET} PROPERTY LABELS ${LLAMA_TEST_LABEL})
|
36 | 66 | endfunction()
|
37 | 67 |
|
38 |
| -# llama_test(test-double-float.cpp) # SLOW |
39 |
| -llama_test(test-quantize-fns.cpp) |
40 |
| -llama_test(test-quantize-perf.cpp) |
41 |
| -llama_test(test-sampling.cpp) |
42 |
| -llama_test(test-chat-template.cpp) |
43 |
| - |
44 |
| -llama_test(test-tokenizer-0-llama.cpp NAME test-tokenizer-0-llama ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama.gguf) |
45 |
| -llama_test(test-tokenizer-0-llama-v3.cpp NAME test-tokenizer-0-llama-v3 ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama-v3.gguf) |
46 |
| -llama_test(test-tokenizer-0-falcon.cpp NAME test-tokenizer-0-falcon ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-falcon.gguf) |
47 |
| - |
48 |
| -llama_test(test-tokenizer-0-deepseek-coder.cpp NAME test-tokenizer-0-deepseek-coder ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-deepseek-coder.gguf) |
49 |
| -llama_test(test-tokenizer-0-deepseek-llm.cpp NAME test-tokenizer-0-deepseek-llm ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-deepseek-llm.gguf) |
50 |
| - |
51 |
| -llama_test(test-tokenizer-1-llama.cpp NAME test-tokenizer-1-llama ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama.gguf) |
52 |
| -llama_test(test-tokenizer-1-llama.cpp NAME test-tokenizer-1-baichuan ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-baichuan.gguf) |
53 |
| - |
54 |
| -llama_test(test-tokenizer-1-bpe.cpp NAME test-tokenizer-1-falcon ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-falcon.gguf) |
55 |
| -llama_test(test-tokenizer-1-bpe.cpp NAME test-tokenizer-1-aquila ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-aquila.gguf) |
56 |
| -llama_test(test-tokenizer-1-bpe.cpp NAME test-tokenizer-1-mpt ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-mpt.gguf) |
57 |
| -llama_test(test-tokenizer-1-bpe.cpp NAME test-tokenizer-1-stablelm-3b-4e1t ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-stablelm-3b-4e1t.gguf) |
58 |
| -llama_test(test-tokenizer-1-bpe.cpp NAME test-tokenizer-1-gpt-neox ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-gpt-neox.gguf) |
59 |
| -llama_test(test-tokenizer-1-bpe.cpp NAME test-tokenizer-1-refact ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-refact.gguf) |
60 |
| -llama_test(test-tokenizer-1-bpe.cpp NAME test-tokenizer-1-starcoder ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-starcoder.gguf) |
61 |
| -llama_test(test-tokenizer-1-bpe.cpp NAME test-tokenizer-1-gpt2 ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-gpt2.gguf) |
62 |
| -#llama_test(test-tokenizer-1-bpe.cpp NAME test-tokenizer-1-bloom ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-bloom.gguf) # BIG |
63 |
| - |
64 |
| -llama_test(test-grammar-parser.cpp) |
65 |
| -llama_test(test-llama-grammar.cpp) |
66 |
| -llama_test(test-grammar-integration.cpp) |
67 |
| -llama_test(test-grad0.cpp) |
68 |
| -# llama_test(test-opt.cpp) # SLOW |
69 |
| -llama_test(test-backend-ops.cpp) |
70 |
| - |
71 |
| -llama_test(test-rope.cpp) |
72 |
| - |
73 |
| -llama_test(test-model-load-cancel.cpp LABEL "model") |
74 |
| -llama_test(test-autorelease.cpp LABEL "model") |
75 |
| - |
76 |
| -llama_test(test-json-schema-to-grammar.cpp WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..) |
| 68 | +# llama_target_and_test(test-double-float.cpp) # SLOW |
| 69 | +llama_target_and_test(test-quantize-fns.cpp) |
| 70 | +llama_target_and_test(test-quantize-perf.cpp) |
| 71 | +llama_target_and_test(test-sampling.cpp) |
| 72 | +llama_target_and_test(test-chat-template.cpp) |
| 73 | + |
| 74 | +llama_target_and_test(test-tokenizer-0-llama.cpp NAME test-tokenizer-0-llama ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama.gguf) |
| 75 | +llama_target_and_test(test-tokenizer-0-llama-v3.cpp NAME test-tokenizer-0-llama-v3 ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama-v3.gguf) |
| 76 | +llama_target_and_test(test-tokenizer-0-falcon.cpp NAME test-tokenizer-0-falcon ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-falcon.gguf) |
| 77 | + |
| 78 | +llama_target_and_test(test-tokenizer-0-deepseek-coder.cpp NAME test-tokenizer-0-deepseek-coder ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-deepseek-coder.gguf) |
| 79 | +llama_target_and_test(test-tokenizer-0-deepseek-llm.cpp NAME test-tokenizer-0-deepseek-llm ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-deepseek-llm.gguf) |
| 80 | + |
| 81 | +llama_target_and_test(test-tokenizer-1-llama.cpp NAME test-tokenizer-1-llama ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama.gguf) |
| 82 | +llama_target_and_test(test-tokenizer-1-llama.cpp NAME test-tokenizer-1-baichuan ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-baichuan.gguf) |
| 83 | + |
| 84 | +# build test-tokenizer-1-bpe target once and add many tests |
| 85 | +add_executable(test-tokenizer-1-bpe test-tokenizer-1-bpe.cpp get-model.cpp) |
| 86 | +target_link_libraries(test-tokenizer-1-bpe PRIVATE common) |
| 87 | +install(TARGETS test-tokenizer-1-bpe RUNTIME) |
| 88 | + |
| 89 | +llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-falcon ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-falcon.gguf) |
| 90 | +llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-aquila ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-aquila.gguf) |
| 91 | +llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-mpt ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-mpt.gguf) |
| 92 | +llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-stablelm ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-stablelm.gguf) |
| 93 | +llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-gpt-neox ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-gpt-neox.gguf) |
| 94 | +llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-refact ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-refact.gguf) |
| 95 | +llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-starcoder ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-starcoder.gguf) |
| 96 | +llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-gpt2 ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-gpt2.gguf) |
| 97 | +#llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-bloom ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-bloom.gguf) # BIG |
| 98 | + |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | +llama_target_and_test(test-grammar-parser.cpp) |
| 104 | +llama_target_and_test(test-llama-grammar.cpp) |
| 105 | +llama_target_and_test(test-grammar-integration.cpp) |
| 106 | +llama_target_and_test(test-grad0.cpp) |
| 107 | +# llama_target_and_test(test-opt.cpp) # SLOW |
| 108 | +llama_target_and_test(test-backend-ops.cpp) |
| 109 | + |
| 110 | +llama_target_and_test(test-rope.cpp) |
| 111 | + |
| 112 | +llama_target_and_test(test-model-load-cancel.cpp LABEL "model") |
| 113 | +llama_target_and_test(test-autorelease.cpp LABEL "model") |
| 114 | + |
| 115 | +llama_target_and_test(test-json-schema-to-grammar.cpp WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..) |
77 | 116 | target_include_directories(test-json-schema-to-grammar PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../examples/server)
|
78 | 117 |
|
79 | 118 | # dummy executable - not installed
|
|
0 commit comments