Skip to content

Commit 4768f80

Browse files
committed
fix(ci): run go test under bash on Windows; fix errcheck in model tests
PowerShell treats coverage.out as property access, breaking -coverprofile. Complete errcheck fixes in model tests and remaining csghub models_test handlers. Made-with: Cursor
1 parent fcb433a commit 4768f80

File tree

5 files changed

+48
-16
lines changed

5 files changed

+48
-16
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,17 @@ jobs:
4040
with:
4141
go-version: ${{ matrix.go-version }}
4242

43+
# Use bash on Windows too: PowerShell parses coverage.out as member access on $coverage.
4344
- name: Run tests
45+
shell: bash
4446
run: go test -race -count=1 -coverprofile=coverage.out ./...
4547

4648
- name: Build binary
49+
shell: bash
4750
run: go build -o bin/csghub-lite ./cmd/csghub-lite
4851

4952
- name: Verify version flag
53+
shell: bash
5054
run: ./bin/csghub-lite --version
5155

5256
- name: Upload coverage

internal/csghub/models_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ func TestGetModelTree(t *testing.T) {
8888
{Name: "model.safetensors", Type: "file", Size: 2200119664, LFS: true, LFSSHA256: "abc123"},
8989
},
9090
}
91-
json.NewEncoder(w).Encode(resp)
91+
_ = json.NewEncoder(w).Encode(resp)
9292
}))
9393
defer server.Close()
9494

@@ -123,7 +123,7 @@ func TestSearchModels(t *testing.T) {
123123
Data: []Model{{Name: "llama-7b"}},
124124
Total: 5,
125125
}
126-
json.NewEncoder(w).Encode(resp)
126+
_ = json.NewEncoder(w).Encode(resp)
127127
}))
128128
defer server.Close()
129129

internal/model/manager_test.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ func TestManager_List_WithModels(t *testing.T) {
3131
{Namespace: "ns1", Name: "model1", Format: FormatGGUF, Size: 100, DownloadedAt: time.Now()},
3232
{Namespace: "ns2", Name: "model2", Format: FormatSafeTensors, Size: 200, DownloadedAt: time.Now()},
3333
} {
34-
SaveManifest(dir, m)
34+
if err := SaveManifest(dir, m); err != nil {
35+
t.Fatal(err)
36+
}
3537
}
3638

3739
models, err := mgr.List()
@@ -54,7 +56,9 @@ func TestManager_Get(t *testing.T) {
5456
Format: FormatGGUF,
5557
Size: 1024,
5658
}
57-
SaveManifest(dir, lm)
59+
if err := SaveManifest(dir, lm); err != nil {
60+
t.Fatal(err)
61+
}
5862

5963
got, err := mgr.Get("test/model")
6064
if err != nil {
@@ -86,7 +90,9 @@ func TestManager_Remove(t *testing.T) {
8690
Name: "removeme",
8791
Format: FormatGGUF,
8892
}
89-
SaveManifest(dir, lm)
93+
if err := SaveManifest(dir, lm); err != nil {
94+
t.Fatal(err)
95+
}
9096

9197
if err := mgr.Remove("test/removeme"); err != nil {
9298
t.Fatalf("Remove error: %v", err)

internal/model/manifest_test.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,12 @@ func TestFindModelFile(t *testing.T) {
119119
dir := t.TempDir()
120120

121121
// Create a GGUF file
122-
os.WriteFile(filepath.Join(dir, "model.gguf"), []byte("gguf"), 0o644)
123-
os.WriteFile(filepath.Join(dir, "config.json"), []byte("{}"), 0o644)
122+
if err := os.WriteFile(filepath.Join(dir, "model.gguf"), []byte("gguf"), 0o644); err != nil {
123+
t.Fatal(err)
124+
}
125+
if err := os.WriteFile(filepath.Join(dir, "config.json"), []byte("{}"), 0o644); err != nil {
126+
t.Fatal(err)
127+
}
124128

125129
path, format, err := FindModelFile(dir)
126130
if err != nil {
@@ -137,7 +141,9 @@ func TestFindModelFile(t *testing.T) {
137141
func TestFindModelFile_SafeTensors(t *testing.T) {
138142
dir := t.TempDir()
139143

140-
os.WriteFile(filepath.Join(dir, "model.safetensors"), []byte("st"), 0o644)
144+
if err := os.WriteFile(filepath.Join(dir, "model.safetensors"), []byte("st"), 0o644); err != nil {
145+
t.Fatal(err)
146+
}
141147

142148
path, format, err := FindModelFile(dir)
143149
if err != nil {
@@ -153,7 +159,9 @@ func TestFindModelFile_SafeTensors(t *testing.T) {
153159

154160
func TestFindModelFile_NotFound(t *testing.T) {
155161
dir := t.TempDir()
156-
os.WriteFile(filepath.Join(dir, "config.json"), []byte("{}"), 0o644)
162+
if err := os.WriteFile(filepath.Join(dir, "config.json"), []byte("{}"), 0o644); err != nil {
163+
t.Fatal(err)
164+
}
157165

158166
_, _, err := FindModelFile(dir)
159167
if err == nil {
@@ -163,8 +171,12 @@ func TestFindModelFile_NotFound(t *testing.T) {
163171

164172
func TestFindModelFile_PicksHighestPrecisionGGUF(t *testing.T) {
165173
dir := t.TempDir()
166-
os.WriteFile(filepath.Join(dir, "low-Q4_0.gguf"), []byte("a"), 0o644)
167-
os.WriteFile(filepath.Join(dir, "high-Q8_0.gguf"), []byte("b"), 0o644)
174+
if err := os.WriteFile(filepath.Join(dir, "low-Q4_0.gguf"), []byte("a"), 0o644); err != nil {
175+
t.Fatal(err)
176+
}
177+
if err := os.WriteFile(filepath.Join(dir, "high-Q8_0.gguf"), []byte("b"), 0o644); err != nil {
178+
t.Fatal(err)
179+
}
168180

169181
path, format, err := FindModelFile(dir)
170182
if err != nil {

internal/model/storage_test.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,12 @@ func TestRemoveModelDir(t *testing.T) {
4343

4444
// Create model directory with a file
4545
modelDir := filepath.Join(dir, "ns", "model")
46-
os.MkdirAll(modelDir, 0o755)
47-
os.WriteFile(filepath.Join(modelDir, "test.txt"), []byte("test"), 0o644)
46+
if err := os.MkdirAll(modelDir, 0o755); err != nil {
47+
t.Fatal(err)
48+
}
49+
if err := os.WriteFile(filepath.Join(modelDir, "test.txt"), []byte("test"), 0o644); err != nil {
50+
t.Fatal(err)
51+
}
4852

4953
if err := RemoveModelDir(dir, "ns", "model"); err != nil {
5054
t.Fatalf("RemoveModelDir error: %v", err)
@@ -65,9 +69,15 @@ func TestRemoveModelDir_KeepsOtherModels(t *testing.T) {
6569
dir := t.TempDir()
6670

6771
// Create two models in the same namespace
68-
os.MkdirAll(filepath.Join(dir, "ns", "model1"), 0o755)
69-
os.MkdirAll(filepath.Join(dir, "ns", "model2"), 0o755)
70-
os.WriteFile(filepath.Join(dir, "ns", "model2", "file.txt"), []byte("keep"), 0o644)
72+
if err := os.MkdirAll(filepath.Join(dir, "ns", "model1"), 0o755); err != nil {
73+
t.Fatal(err)
74+
}
75+
if err := os.MkdirAll(filepath.Join(dir, "ns", "model2"), 0o755); err != nil {
76+
t.Fatal(err)
77+
}
78+
if err := os.WriteFile(filepath.Join(dir, "ns", "model2", "file.txt"), []byte("keep"), 0o644); err != nil {
79+
t.Fatal(err)
80+
}
7181

7282
if err := RemoveModelDir(dir, "ns", "model1"); err != nil {
7383
t.Fatalf("RemoveModelDir error: %v", err)

0 commit comments

Comments
 (0)