@@ -24,23 +24,45 @@ import (
24
24
"github.com/stretchr/testify/require"
25
25
)
26
26
27
- func TestCppHeaderPriority ( t * testing. T ) {
28
- l1 : = & libraries.Library {Name : "Calculus Lib" , Location : libraries .Sketchbook }
29
- l2 : = & libraries.Library {Name : "Calculus Lib-master " , Location : libraries .Sketchbook }
30
- l3 : = & libraries.Library {Name : "Calculus Lib Improved " , Location : libraries .Sketchbook }
31
- l4 : = & libraries.Library {Name : "Another Calculus Lib" , Location : libraries .Sketchbook }
32
- l5 : = & libraries.Library {Name : "Yet Another Calculus Lib Improved " , Location : libraries .Sketchbook }
33
- l6 : = & libraries.Library {Name : "AnotherLib" , Location : libraries .Sketchbook }
27
+ var l1 = & libraries. Library { Name : "Calculus Lib" , Location : libraries . Sketchbook }
28
+ var l2 = & libraries.Library {Name : "Calculus Lib-master " , Location : libraries .Sketchbook }
29
+ var l3 = & libraries.Library {Name : "Calculus Lib Improved " , Location : libraries .Sketchbook }
30
+ var l4 = & libraries.Library {Name : "Another Calculus Lib" , Location : libraries .Sketchbook }
31
+ var l5 = & libraries.Library {Name : "Yet Another Calculus Lib Improved " , Location : libraries .Sketchbook }
32
+ var l6 = & libraries.Library {Name : "Calculus Unified Lib " , Location : libraries .Sketchbook }
33
+ var l7 = & libraries.Library {Name : "AnotherLib" , Location : libraries .Sketchbook }
34
34
35
+ func TestCppHeaderPriority (t * testing.T ) {
35
36
r1 := computePriority (l1 , "calculus_lib.h" , "avr" )
36
37
r2 := computePriority (l2 , "calculus_lib.h" , "avr" )
37
38
r3 := computePriority (l3 , "calculus_lib.h" , "avr" )
38
39
r4 := computePriority (l4 , "calculus_lib.h" , "avr" )
39
40
r5 := computePriority (l5 , "calculus_lib.h" , "avr" )
40
41
r6 := computePriority (l6 , "calculus_lib.h" , "avr" )
42
+ r7 := computePriority (l7 , "calculus_lib.h" , "avr" )
41
43
require .True (t , r1 > r2 )
42
44
require .True (t , r2 > r3 )
43
45
require .True (t , r3 > r4 )
44
46
require .True (t , r4 > r5 )
45
47
require .True (t , r5 > r6 )
48
+ require .True (t , r6 == r7 )
49
+ }
50
+
51
+ func TestCppHeaderResolver (t * testing.T ) {
52
+ resolve := func (header string , libs ... * libraries.Library ) string {
53
+ resolver := NewCppResolver ()
54
+ librarylist := libraries.List {}
55
+ for _ , lib := range libs {
56
+ librarylist .Add (lib )
57
+ }
58
+ resolver .headers [header ] = librarylist
59
+ return resolver .ResolveFor (header , "avr" ).Name
60
+ }
61
+ require .Equal (t , "Calculus Lib" , resolve ("calculus_lib.h" , l1 , l2 , l3 , l4 , l5 , l6 , l7 ))
62
+ require .Equal (t , "Calculus Lib-master" , resolve ("calculus_lib.h" , l2 , l3 , l4 , l5 , l6 , l7 ))
63
+ require .Equal (t , "Calculus Lib Improved" , resolve ("calculus_lib.h" , l3 , l4 , l5 , l6 , l7 ))
64
+ require .Equal (t , "Another Calculus Lib" , resolve ("calculus_lib.h" , l4 , l5 , l6 , l7 ))
65
+ require .Equal (t , "Yet Another Calculus Lib Improved" , resolve ("calculus_lib.h" , l5 , l6 , l7 ))
66
+ require .Equal (t , "Calculus Unified Lib" , resolve ("calculus_lib.h" , l6 , l7 ))
67
+ require .Equal (t , "Calculus Unified Lib" , resolve ("calculus_lib.h" , l7 , l6 ))
46
68
}
0 commit comments