Files
ollama/integration/reg_groups_test.go
T
Jesse Gross bef41f710a tokenizer, ml: remove dead code
Several pieces outlived the code that used them. The root tokenizer
package implemented the GGUF-side vocabularies for the Go engine and the
safetensors-to-GGUF converter; nothing has imported it since the
converter went. ml/backend.go held the Go engine's Backend, Context and
Tensor interfaces, with fs.Config existing only to be returned from them,
and a single CUDA template instance under ml/backend/ggml survived the
engine removal along with the gitattributes entries for that tree and the
CI change-filter globs for it and for the long-gone llama/llama.cpp. From
the image generation engine, an integration test group that no test
registers, its build tag, and the StepBar progress widget remained.
DeviceInfo.IsBetter has no caller at all.

All of it goes. Tidying the module file drops the regexp2 dependency and
leaves protobuf as an indirect requirement. The llama3.2 tokenizer
fixtures stay: the MLX runner's tokenizer uses them for its GGML parity
test.
2026-09-16 14:06:08 -07:00

143 lines
2.4 KiB
Go

//go:build integration && (fast || release || library)
package integration
import (
"strings"
"testing"
)
func runIntegrationGroup(t *testing.T, cases ...string) {
t.Helper()
selected := map[string]struct{}{}
for _, c := range cases {
selected[c] = struct{}{}
}
var ran bool
for _, c := range integrationCases {
if _, ok := selected[c.Case]; !ok {
continue
}
ran = true
c := c
name := c.Case
if c.Model != "" {
name += "/" + testName(c.Model)
}
t.Run(name, c.Run)
}
if !ran {
t.Skip("no integration cases selected")
}
}
func TestAPI(t *testing.T) {
runIntegrationGroup(t,
"api-generate",
"api-chat",
"api-list-models",
"api-show-model",
"generate-logprobs",
"chat-logprobs",
)
}
func TestBasic(t *testing.T) {
runIntegrationGroup(t,
"blue-sky",
"unicode-input",
"unicode-output",
"unicode-model-dir",
"num-predict",
"thinking-enabled",
"thinking-suppressed",
)
}
func TestChat(t *testing.T) {
runIntegrationGroup(t,
"chat",
"chat-history",
)
}
func TestEmbedding(t *testing.T) {
runIntegrationGroup(t,
"embed",
"embed-correlation",
"embedding-api",
"embed-api",
"embed-api-batch",
"embed-api-truncate",
"embed-truncation",
"embed-large-input",
"embed-status-code",
)
}
func TestVision(t *testing.T) {
runIntegrationGroup(t,
"vision-multiturn",
"vision-count",
"vision-scene",
"vision-spatial",
"vision-detail",
"vision-multi-image",
"vision-description",
"vision-ocr-document",
"vision-split-batch",
"vision-text",
)
}
func TestAudio(t *testing.T) {
runIntegrationGroup(t,
"audio-transcription",
"audio-response",
"openai-audio-transcription",
"openai-chat-audio",
)
}
func TestContext(t *testing.T) {
runIntegrationGroup(t,
"context-long-input",
"context-exhaustion",
"generate-history",
"parallel-generate-history",
"parallel-chat-history",
)
}
func TestConcurrency(t *testing.T) {
runIntegrationGroup(t,
"concurrent-chat",
"scheduler-multimodel",
"scheduler-max-queue",
)
}
func TestTools(t *testing.T) {
runIntegrationGroup(t,
"tools",
"tools-routes",
"tools-stress",
)
}
func TestCreate(t *testing.T) {
runIntegrationGroup(t,
"create-safetensors",
"create-gguf",
"create-gguf-blob-transfer",
)
}
func TestQuantization(t *testing.T) {
runIntegrationGroup(t, "quantization")
}
func testName(s string) string {
return strings.NewReplacer("/", "~", " ", "_").Replace(s)
}