runners_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package runners
  2. import (
  3. "log/slog"
  4. "os"
  5. "path"
  6. "runtime"
  7. "strings"
  8. "testing"
  9. "testing/fstest"
  10. )
  11. func TestRefreshRunners(t *testing.T) {
  12. slog.SetLogLoggerLevel(slog.LevelDebug)
  13. payloadFS := fstest.MapFS{
  14. path.Join(runtime.GOOS, runtime.GOARCH, "foo", "ollama_llama_server"): {Data: []byte("hello, world\n")},
  15. }
  16. tmpDir, err := os.MkdirTemp("", "testing")
  17. if err != nil {
  18. t.Fatalf("failed to make tmp dir %s", err)
  19. }
  20. t.Setenv("OLLAMA_TMPDIR", tmpDir)
  21. rDir, err := Refresh(payloadFS)
  22. if err != nil {
  23. t.Fatalf("failed to extract to %s %s", tmpDir, err)
  24. }
  25. if !strings.Contains(rDir, tmpDir) {
  26. t.Fatalf("runner dir %s was not in tmp dir %s", rDir, tmpDir)
  27. }
  28. // spot check results
  29. servers := GetAvailableServers(rDir)
  30. if len(servers) < 1 {
  31. t.Fatalf("expected at least 1 server")
  32. }
  33. // Refresh contents
  34. rDir, err = extractRunners(payloadFS)
  35. if err != nil {
  36. t.Fatalf("failed to extract to %s %s", tmpDir, err)
  37. }
  38. if !strings.Contains(rDir, tmpDir) {
  39. t.Fatalf("runner dir %s was not in tmp dir %s", rDir, tmpDir)
  40. }
  41. cleanupTmpDirs()
  42. Cleanup(payloadFS)
  43. }