@@ -24,23 +24,45 @@ import (
2424 "github.com/stretchr/testify/require"
2525)
2626
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 }
3434
35+ func TestCppHeaderPriority (t * testing.T ) {
3536 r1 := computePriority (l1 , "calculus_lib.h" , "avr" )
3637 r2 := computePriority (l2 , "calculus_lib.h" , "avr" )
3738 r3 := computePriority (l3 , "calculus_lib.h" , "avr" )
3839 r4 := computePriority (l4 , "calculus_lib.h" , "avr" )
3940 r5 := computePriority (l5 , "calculus_lib.h" , "avr" )
4041 r6 := computePriority (l6 , "calculus_lib.h" , "avr" )
42+ r7 := computePriority (l7 , "calculus_lib.h" , "avr" )
4143 require .True (t , r1 > r2 )
4244 require .True (t , r2 > r3 )
4345 require .True (t , r3 > r4 )
4446 require .True (t , r4 > r5 )
4547 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 ))
4668}
0 commit comments