llcppsigfetch:conveter config

This commit is contained in:
luoliwoshang
2024-08-19 18:01:46 +08:00
parent 090e689689
commit 48efd6689e
5 changed files with 127 additions and 69 deletions

View File

@@ -29,7 +29,10 @@ func TestFuncDecl() {
}
for i, content := range testCases {
converter, err := parse.NewConverter(content, true)
converter, err := parse.NewConverter(&parse.Config{
File: content,
Temp: true,
})
if err != nil {
panic(err)
}
@@ -68,7 +71,10 @@ func TestScope() {
}
for i, content := range testCases {
converter, err := parse.NewConverter(content, true)
converter, err := parse.NewConverter(&parse.Config{
File: content,
Temp: true,
})
if err != nil {
panic(err)
}
@@ -114,7 +120,10 @@ void foo();`,
}
for i, content := range testCases {
converter, err := parse.NewConverter(content, true)
converter, err := parse.NewConverter(&parse.Config{
File: content,
Temp: true,
})
if err != nil {
panic(err)
}
@@ -148,7 +157,10 @@ func TestStructDecl() {
}
for i, content := range testCases {
converter, err := parse.NewConverter(content, true)
converter, err := parse.NewConverter(&parse.Config{
File: content,
Temp: true,
})
if err != nil {
panic(err)
}
@@ -179,7 +191,10 @@ func TestClassDecl() {
}
for i, content := range testCases {
converter, err := parse.NewConverter(content, true)
converter, err := parse.NewConverter(&parse.Config{
File: content,
Temp: true,
})
if err != nil {
panic(err)
}
@@ -216,7 +231,10 @@ func TestEnumDecl() {
}
for i, content := range testCases {
converter, err := parse.NewConverter(content, true)
converter, err := parse.NewConverter(&parse.Config{
File: content,
Temp: true,
})
if err != nil {
panic(err)
}

View File

@@ -17,7 +17,10 @@ func TestDefine() {
}
for i, content := range testCases {
converter, err := parse.NewConverter(content, true)
converter, err := parse.NewConverter(&parse.Config{
File: content,
Temp: true,
})
if err != nil {
panic(err)
}
@@ -41,7 +44,10 @@ func TestInclude() {
}
for i, content := range testCases {
converter, err := parse.NewConverter(content, true)
converter, err := parse.NewConverter(&parse.Config{
File: content,
Temp: true,
})
if err != nil {
panic(err)
}

View File

@@ -14,39 +14,39 @@ func main() {
func TestBuiltinType() {
tests := []struct {
name string
typeKind clang.TypeKind
typ *clang.Type
expected ast.BuiltinType
}{
{"Void", clang.TypeVoid, ast.BuiltinType{Kind: ast.Void}},
{"Bool", clang.TypeBool, ast.BuiltinType{Kind: ast.Bool}},
{"Char_S", clang.TypeCharS, ast.BuiltinType{Kind: ast.Char, Flags: ast.Signed}},
{"Char_U", clang.TypeCharU, ast.BuiltinType{Kind: ast.Char, Flags: ast.Unsigned}},
{"Char16", clang.TypeChar16, ast.BuiltinType{Kind: ast.Char16}},
{"Char32", clang.TypeChar32, ast.BuiltinType{Kind: ast.Char32}},
{"WChar", clang.TypeWChar, ast.BuiltinType{Kind: ast.WChar}},
{"Short", clang.TypeShort, ast.BuiltinType{Kind: ast.Int, Flags: ast.Short}},
{"UShort", clang.TypeUShort, ast.BuiltinType{Kind: ast.Int, Flags: ast.Short | ast.Unsigned}},
{"Int", clang.TypeInt, ast.BuiltinType{Kind: ast.Int}},
{"UInt", clang.TypeUInt, ast.BuiltinType{Kind: ast.Int, Flags: ast.Unsigned}},
{"Long", clang.TypeLong, ast.BuiltinType{Kind: ast.Int, Flags: ast.Long}},
{"ULong", clang.TypeULong, ast.BuiltinType{Kind: ast.Int, Flags: ast.Long | ast.Unsigned}},
{"LongLong", clang.TypeLongLong, ast.BuiltinType{Kind: ast.Int, Flags: ast.LongLong}},
{"ULongLong", clang.TypeULongLong, ast.BuiltinType{Kind: ast.Int, Flags: ast.LongLong | ast.Unsigned}},
{"Int128", clang.TypeInt128, ast.BuiltinType{Kind: ast.Int128}},
{"UInt128", clang.TypeUInt128, ast.BuiltinType{Kind: ast.Int128, Flags: ast.Unsigned}},
{"Float", clang.TypeFloat, ast.BuiltinType{Kind: ast.Float}},
{"Half", clang.TypeHalf, ast.BuiltinType{Kind: ast.Float16}},
{"Float16", clang.TypeFloat16, ast.BuiltinType{Kind: ast.Float16}},
{"Double", clang.TypeDouble, ast.BuiltinType{Kind: ast.Float, Flags: ast.Double}},
{"LongDouble", clang.TypeLongDouble, ast.BuiltinType{Kind: ast.Float, Flags: ast.Long | ast.Double}},
{"Float128", clang.TypeFloat128, ast.BuiltinType{Kind: ast.Float128}},
{"Unknown", clang.TypeIbm128, ast.BuiltinType{Kind: ast.Void}},
{"Void", btType(clang.TypeVoid), ast.BuiltinType{Kind: ast.Void}},
{"Bool", btType(clang.TypeBool), ast.BuiltinType{Kind: ast.Bool}},
{"Char_S", btType(clang.TypeCharS), ast.BuiltinType{Kind: ast.Char, Flags: ast.Signed}},
{"Char_U", btType(clang.TypeCharU), ast.BuiltinType{Kind: ast.Char, Flags: ast.Unsigned}},
{"Char16", btType(clang.TypeChar16), ast.BuiltinType{Kind: ast.Char16}},
{"Char32", btType(clang.TypeChar32), ast.BuiltinType{Kind: ast.Char32}},
{"WChar", btType(clang.TypeWChar), ast.BuiltinType{Kind: ast.WChar}},
{"Short", btType(clang.TypeShort), ast.BuiltinType{Kind: ast.Int, Flags: ast.Short}},
{"UShort", btType(clang.TypeUShort), ast.BuiltinType{Kind: ast.Int, Flags: ast.Short | ast.Unsigned}},
{"Int", btType(clang.TypeInt), ast.BuiltinType{Kind: ast.Int}},
{"UInt", btType(clang.TypeUInt), ast.BuiltinType{Kind: ast.Int, Flags: ast.Unsigned}},
{"Long", btType(clang.TypeLong), ast.BuiltinType{Kind: ast.Int, Flags: ast.Long}},
{"ULong", btType(clang.TypeULong), ast.BuiltinType{Kind: ast.Int, Flags: ast.Long | ast.Unsigned}},
{"LongLong", btType(clang.TypeLongLong), ast.BuiltinType{Kind: ast.Int, Flags: ast.LongLong}},
{"ULongLong", btType(clang.TypeULongLong), ast.BuiltinType{Kind: ast.Int, Flags: ast.LongLong | ast.Unsigned}},
{"Int128", btType(clang.TypeInt128), ast.BuiltinType{Kind: ast.Int128}},
{"UInt128", btType(clang.TypeUInt128), ast.BuiltinType{Kind: ast.Int128, Flags: ast.Unsigned}},
{"Float", btType(clang.TypeFloat), ast.BuiltinType{Kind: ast.Float}},
{"Half", btType(clang.TypeHalf), ast.BuiltinType{Kind: ast.Float16}},
{"Float16", btType(clang.TypeFloat16), ast.BuiltinType{Kind: ast.Float16}},
{"Double", btType(clang.TypeDouble), ast.BuiltinType{Kind: ast.Float, Flags: ast.Double}},
{"LongDouble", btType(clang.TypeLongDouble), ast.BuiltinType{Kind: ast.Float, Flags: ast.Long | ast.Double}},
{"Float128", btType(clang.TypeFloat128), ast.BuiltinType{Kind: ast.Float128}},
{"Unknown", btType(clang.TypeIbm128), ast.BuiltinType{Kind: ast.Void}},
}
converter := &parse.Converter{}
converter.Convert()
for _, bt := range tests {
t := clang.Type{Kind: bt.typeKind}
res := converter.ProcessBuiltinType(t)
res := converter.ProcessBuiltinType(*bt.typ)
if res.Kind != bt.expected.Kind {
fmt.Printf("%s Kind mismatch:got %d want %d, \n", bt.name, res.Kind, bt.expected.Kind)
}
@@ -56,3 +56,7 @@ func TestBuiltinType() {
fmt.Printf("%s:flags:%d kind:%d\n", bt.name, res.Flags, res.Kind)
}
}
func btType(kind clang.TypeKind) *clang.Type {
return &clang.Type{Kind: kind}
}