Skip to content

Commit 731a231

Browse files
committed
Test the go-clang-dump binary without compiling it
1 parent 999ec98 commit 731a231

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

cmd/go-clang-dump/main.go

+17-6
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,37 @@ import (
1616
var fname = flag.String("fname", "", "the file to analyze")
1717

1818
func main() {
19+
os.Exit(cmd(os.Args[1:]))
20+
}
21+
22+
func cmd(args []string) int {
1923
fmt.Printf(":: go-clang-dump...\n")
20-
flag.Parse()
24+
if err := flag.CommandLine.Parse(args); err != nil {
25+
fmt.Printf("ERROR: %s", err)
26+
27+
return 1
28+
}
29+
2130
fmt.Printf(":: fname: %s\n", *fname)
2231
fmt.Printf(":: args: %v\n", flag.Args())
2332

2433
if *fname == "" {
2534
flag.Usage()
2635
fmt.Printf("please provide a file name to analyze\n")
2736

28-
os.Exit(1)
37+
return 1
2938
}
3039

3140
idx := clang.NewIndex(0, 1)
3241
defer idx.Dispose()
3342

34-
args := []string{}
43+
tuArgs := []string{}
3544
if len(flag.Args()) > 0 && flag.Args()[0] == "-" {
36-
args = make([]string, len(flag.Args()[1:]))
37-
copy(args, flag.Args()[1:])
45+
tuArgs = make([]string, len(flag.Args()[1:]))
46+
copy(tuArgs, flag.Args()[1:])
3847
}
3948

40-
tu := idx.ParseTranslationUnit(*fname, args, nil, 0)
49+
tu := idx.ParseTranslationUnit(*fname, tuArgs, nil, 0)
4150
defer tu.Dispose()
4251

4352
fmt.Printf("tu: %s\n", tu.Spelling())
@@ -76,4 +85,6 @@ func main() {
7685
}
7786

7887
fmt.Printf(":: bye.\n")
88+
89+
return 0
7990
}

cmd/go-clang-dump/main_test.go

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
1-
package main_test
1+
package main
22

33
import (
4-
"os/exec"
54
"testing"
5+
6+
"github.com/stretchr/testify/assert"
67
)
78

89
func TestGoClangDump(t *testing.T) {
910
for _, fname := range []string{
1011
"../../testdata/basicparsing.c",
1112
} {
12-
cmd := exec.Command("go-clang-dump", "-fname", fname)
13-
err := cmd.Run()
14-
if err != nil {
15-
t.Fatalf("error running go-clang-dump on %q: %v\n", fname, err)
16-
}
13+
assert.Equal(t, 0, cmd([]string{"-fname", fname}))
1714
}
1815
}

0 commit comments

Comments
 (0)