@@ -10,71 +10,72 @@ function onlymatch(f, collection)
10
10
end
11
11
12
12
@testset " JuliaLibWrapping.jl" begin
13
- @testset " parselog" begin
14
- entrypoints, typedescs, forwarddecls = parselog (" bindinginfo_libsimple.json" )
13
+ @testset " import_abi_info" begin
14
+ abi_info = import_abi_info (" bindinginfo_libsimple.json" )
15
+ (; entrypoints, typeinfo) = abi_info
15
16
16
17
methdesc = onlymatch (md -> md. symbol == " copyto_and_sum" , entrypoints)
17
- @test typedescs [methdesc. return_type]. name == " Float32"
18
+ @test typeinfo [methdesc. return_type]. name == " Float32"
18
19
@test length (methdesc. args) == 1
19
20
argdesc = only (methdesc. args)
20
21
@test argdesc. name == " fromto"
21
- @test typedescs [argdesc. type]. name == " CVectorPair{Float32}"
22
+ @test typeinfo [argdesc. type]. name == " CVectorPair{Float32}"
22
23
@test argdesc. isva == false
23
24
24
25
methdesc = onlymatch (md -> md. symbol == " countsame" , entrypoints)
25
- @test typedescs [methdesc. return_type]. name == " Int32"
26
+ @test typeinfo [methdesc. return_type]. name == " Int32"
26
27
@test length (methdesc. args) == 2
27
28
argdesc1, argdesc2 = methdesc. args
28
29
@test argdesc1. name == " list"
29
- @test typedescs [argdesc1. type]. name == " Ptr{MyTwoVec}"
30
+ @test typeinfo [argdesc1. type]. name == " Ptr{MyTwoVec}"
30
31
@test argdesc1. isva == false
31
32
@test argdesc2. name == " n"
32
- @test typedescs [argdesc2. type]. name == " Int32"
33
+ @test typeinfo [argdesc2. type]. name == " Int32"
33
34
@test argdesc2. isva == false
34
35
35
- @test length (typedescs ) >= 3
36
+ @test length (typeinfo ) >= 3
36
37
findtype (descs, name) = (k = collect (keys (descs)); k[findfirst ((id)-> descs[id]. name === name, k)])
37
38
38
- tdesc = typedescs [findtype (typedescs , " CVectorPair{Float32}" )]
39
+ tdesc = typeinfo [findtype (typeinfo , " CVectorPair{Float32}" )]
39
40
@test tdesc. name == " CVectorPair{Float32}"
40
41
@test length (tdesc. fields) == 2
41
42
@test tdesc. fields[1 ]. name == " from"
42
- @test typedescs [tdesc. fields[1 ]. type]. name == " CVector{Float32}"
43
+ @test typeinfo [tdesc. fields[1 ]. type]. name == " CVector{Float32}"
43
44
@test tdesc. fields[1 ]. offset == 0
44
45
@test tdesc. fields[2 ]. name == " to"
45
- @test typedescs [tdesc. fields[2 ]. type]. name == " CVector{Float32}"
46
+ @test typeinfo [tdesc. fields[2 ]. type]. name == " CVector{Float32}"
46
47
@test tdesc. fields[2 ]. offset == 16
47
48
@test tdesc. size == 32
48
- tdesc = typedescs [findtype (typedescs , " CVector{Float32}" )]
49
+ tdesc = typeinfo [findtype (typeinfo , " CVector{Float32}" )]
49
50
@test tdesc. name == " CVector{Float32}"
50
51
@test length (tdesc. fields) == 2
51
52
@test tdesc. fields[1 ]. name == " length"
52
- @test typedescs [tdesc. fields[1 ]. type]. name == " Int32"
53
+ @test typeinfo [tdesc. fields[1 ]. type]. name == " Int32"
53
54
@test tdesc. fields[1 ]. offset == 0
54
55
@test tdesc. fields[2 ]. name == " data"
55
- @test typedescs [tdesc. fields[2 ]. type]. name == " Ptr{Float32}"
56
+ @test typeinfo [tdesc. fields[2 ]. type]. name == " Ptr{Float32}"
56
57
@test tdesc. fields[2 ]. offset == 8
57
58
@test tdesc. size == 16
58
- tdesc = typedescs [findtype (typedescs , " MyTwoVec" )]
59
+ tdesc = typeinfo [findtype (typeinfo , " MyTwoVec" )]
59
60
@test tdesc. name == " MyTwoVec"
60
61
@test length (tdesc. fields) == 2
61
62
@test tdesc. fields[1 ]. name == " x"
62
- @test typedescs [tdesc. fields[1 ]. type]. name == " Int32"
63
+ @test typeinfo [tdesc. fields[1 ]. type]. name == " Int32"
63
64
@test tdesc. fields[1 ]. offset == 0
64
65
@test tdesc. fields[2 ]. name == " y"
65
- @test typedescs [tdesc. fields[2 ]. type]. name == " Int32"
66
+ @test typeinfo [tdesc. fields[2 ]. type]. name == " Int32"
66
67
@test tdesc. fields[2 ]. offset == 4
67
68
@test tdesc. size == 8
68
- name2idx = Dict (desc. name => i for (i, desc) in enumerate (values (typedescs )))
69
+ name2idx = Dict (desc. name => i for (i, desc) in enumerate (values (typeinfo )))
69
70
@test name2idx[" CVectorPair{Float32}" ] > name2idx[" CVector{Float32}" ]
70
71
end
71
72
72
73
@testset " C wrapper" begin
73
74
mktempdir () do path
74
75
mkpath (path)
75
76
dest = CProject (path, " libsimple" )
76
- entrypoints, typedescs, forwarddecls = parselog (" bindinginfo_libsimple.json" )
77
- wrapper (dest, entrypoints, typedescs, forwarddecls )
77
+ abi_info = import_abi_info (" bindinginfo_libsimple.json" )
78
+ wrapper (dest, abi_info )
78
79
79
80
headerfile = joinpath (dest. dir, dest. headerbase * " .h" )
80
81
@test isfile (headerfile)
0 commit comments