Skip to content

Commit 2af7a92

Browse files
committed
fix: windows file paths separator
1 parent 95332a7 commit 2af7a92

File tree

5 files changed

+29
-17
lines changed

5 files changed

+29
-17
lines changed

.github/workflows/go.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- name: Build
2525
run: go build -v ./...
2626
- name: Test
27-
run: go test -v ./...
27+
run: go test -v "-test.v=true" ./...
2828
- name: Check examples
2929
run: |
3030
./_examples/clean.sh

ast/file_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ package ast
22

33
import (
44
"go/ast"
5+
"path/filepath"
56
"testing"
67
)
78

89
func TestFileVisitor(t *testing.T) {
910
fset, pkg, docs := loadTestFileSet(t)
10-
fh, fv, file := testFileVisitor(fset, pkg, "testdata/onetype.go", docs)
11+
fh, fv, file := testFileVisitor(t, fset, pkg, filepath.Join("testdata", "onetype.go"), docs)
1112
ast.Walk(fv, file)
1213

1314
types := make([]*TypeSpec, 0)

ast/parser_test.go

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package ast
33
import (
44
"fmt"
55
"os"
6-
"path"
76
"path/filepath"
87
"strings"
98
"testing"
@@ -14,7 +13,7 @@ import (
1413
)
1514

1615
func TestDataParser(t *testing.T) {
17-
files, err := filepath.Glob("testdata/parser/*.txtar")
16+
files, err := filepath.Glob(filepath.Join("testdata", "parser", "*.txtar"))
1817
if err != nil {
1918
t.Fatalf("failed to list testdata files: %s", err)
2019
}
@@ -23,21 +22,26 @@ func TestDataParser(t *testing.T) {
2322
t.Fatal("no testdata files found")
2423
}
2524

25+
// normalize files
26+
for i, file := range files {
27+
files[i] = filepath.Clean(file)
28+
}
29+
2630
for _, file := range files {
2731
file := file
2832

2933
t.Run(filepath.Base(file), func(t *testing.T) {
30-
t.Parallel()
34+
// TODO: enable parallel tests after fixing #43
35+
// t.Parallel()
3136

37+
t.Logf("Parse txtar file: %q", file)
3238
ar, err := txtar.ParseFile(file)
3339
if err != nil {
3440
t.Fatalf("failed to parse txtar file: %s", err)
3541
}
3642

3743
dir := t.TempDir()
38-
if err := extractTxtar(ar, dir); err != nil {
39-
t.Fatalf("failed to extract txtar: %s", err)
40-
}
44+
extractTxtar(t, ar, dir)
4145

4246
tc := readTestCase(t, dir)
4347
testParser(t, dir, tc)
@@ -305,25 +309,26 @@ func checkTypeRef(t *testing.T, prefix string, expect, res *FieldTypeRef) {
305309
}
306310
}
307311

308-
//---
312+
func extractTxtar(t *testing.T, ar *txtar.Archive, dir string) {
313+
t.Helper()
309314

310-
func extractTxtar(ar *txtar.Archive, dir string) error {
315+
t.Logf("Extracting txtar to %q", dir)
311316
for _, file := range ar.Files {
312317
name := filepath.Join(dir, file.Name)
318+
t.Logf("Extracting %q to %q", file.Name, name)
313319
if err := os.MkdirAll(filepath.Dir(name), 0o777); err != nil {
314-
return err
320+
t.Fatalf("failed to create dir: %s", err)
315321
}
316322
if err := os.WriteFile(name, file.Data, 0o666); err != nil {
317-
return err
323+
t.Fatalf("failed to write file: %s", err)
318324
}
319325
}
320-
return nil
321326
}
322327

323328
func readTestCase(t *testing.T, dir string) parserTestCase {
324329
t.Helper()
325330

326-
testCaseFile, err := os.Open(path.Join(dir, "testcase.yaml"))
331+
testCaseFile, err := os.Open(filepath.Join(dir, "testcase.yaml"))
327332
if err != nil {
328333
t.Fatalf("failed to open testcase file: %s", err)
329334
}

ast/testhelper.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"go/doc"
66
"go/parser"
77
"go/token"
8+
"testing"
89
)
910

1011
type T interface {
@@ -98,10 +99,16 @@ func (h *testFileHandler) onFile(f *FileSpec) interface {
9899
}
99100

100101
//nolint:staticcheck
101-
func testFileVisitor(fset *token.FileSet, pkg *ast.Package, fileName string,
102+
func testFileVisitor(t *testing.T,
103+
fset *token.FileSet, pkg *ast.Package, fileName string,
102104
docs *doc.Package,
103105
) (*testFileHandler, *fileVisitor, *ast.File) {
106+
t.Helper()
107+
104108
fileAst := pkg.Files[fileName]
109+
if fileAst == nil {
110+
t.Fatalf("file %q not found", fileName)
111+
}
105112
fileTkn := fset.File(fileAst.Pos())
106113
fileSpec := &FileSpec{
107114
Name: fileTkn.Name(),

generator_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"bytes"
66
"io"
77
"os"
8-
"path"
98
"path/filepath"
109
"strings"
1110
"testing"
@@ -53,7 +52,7 @@ func TestGenerator(t *testing.T) {
5352
var out bytes.Buffer
5453
runGenerator(t, gen, spec, dir, &out)
5554

56-
expectFile, err := os.Open(path.Join(dir, "expect.txt"))
55+
expectFile, err := os.Open(filepath.Join(dir, "expect.txt"))
5756
if err != nil {
5857
t.Fatalf("failed to open expect.txt: %s", err)
5958
}

0 commit comments

Comments
 (0)