Files
wehub-resource-sync 1b8708893a
Security Scan / tests (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:12:26 +08:00

76 lines
1.9 KiB
Go

package http_test
import (
"os"
"path/filepath"
"testing"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)
var (
tmpdir string
modelDir string
// Backend directory and the mock-backend binary path. Resolved by
// findMockBackendBinary() from the same prebuilt artifact that
// tests/e2e uses, so the suite no longer needs llama-cpp / transformers
// / whisper / piper / stablediffusion-ggml builds.
backendDir string
mockBackendPath string
)
// findMockBackendBinary locates the mock-backend binary built by
// `make build-mock-backend`. Mirrors the lookup used by
// tests/e2e/e2e_suite_test.go so both suites consume the same artifact.
func findMockBackendBinary() (string, bool) {
candidates := []string{
filepath.Join("..", "..", "tests", "e2e", "mock-backend", "mock-backend"),
filepath.Join("tests", "e2e", "mock-backend", "mock-backend"),
filepath.Join("..", "e2e", "mock-backend", "mock-backend"),
}
if wd, err := os.Getwd(); err == nil {
candidates = append(candidates,
filepath.Join(wd, "..", "..", "tests", "e2e", "mock-backend", "mock-backend"),
)
}
for _, p := range candidates {
if info, err := os.Stat(p); err == nil && !info.IsDir() {
abs, absErr := filepath.Abs(p)
if absErr == nil {
return abs, true
}
return p, true
}
}
return "", false
}
func TestLocalAI(t *testing.T) {
RegisterFailHandler(Fail)
var err error
tmpdir, err = os.MkdirTemp("", "")
Expect(err).ToNot(HaveOccurred())
modelDir = filepath.Join(tmpdir, "models")
err = os.Mkdir(modelDir, 0750)
Expect(err).ToNot(HaveOccurred())
backendDir = filepath.Join(tmpdir, "backends")
Expect(os.Mkdir(backendDir, 0750)).To(Succeed())
if p, ok := findMockBackendBinary(); ok {
mockBackendPath = p
// Make sure it's executable for the path the suite owns.
_ = os.Chmod(mockBackendPath, 0755)
}
AfterSuite(func() {
err := os.RemoveAll(tmpdir)
Expect(err).ToNot(HaveOccurred())
})
RunSpecs(t, "LocalAI HTTP test suite")
}