@@ -68,24 +68,40 @@ func TestLicensesAreCompatible(t *testing.T) {
68
68
{"compatible (diff case equal): Apache-2.0, APACHE-2.0" , & nodePair {
69
69
getLicenseNode ("Apache-2.0" , false ),
70
70
getLicenseNode ("APACHE-2.0" , false )}, true },
71
- // {"compatible (same version with +): Apache-1.0+, Apache-1.0", &nodePair{
72
- // getLicenseNode("Apache-1.0+", true),
73
- // getLicenseNode("Apache-1.0", false)}, true},
74
- // {"compatible (later version with +): Apache-1.0+, Apache-2.0", &nodePair{
75
- // getLicenseNode("Apache-1.0+", true),
76
- // getLicenseNode("Apache-2.0", false)}, true},
77
- // {"compatible (same version with -or-later): GPL-2.0-or-later, GPL-2.0", &nodePair{
78
- // getLicenseNode("GPL-2.0-or-later", true),
79
- // getLicenseNode("GPL-2.0", false)}, true},
80
- // {"compatible (same version with -or-later and -only): GPL-2.0-or-later, GPL-2.0-only", &nodePair{
81
- // getLicenseNode("GPL-2.0-or-later", true),
82
- // getLicenseNode("GPL-2.0-only", false)}, true}, // TODO: Double check that -or-later and -only should be true for GT
83
- // {"compatible (later version with -or-later): GPL-2.0-or-later, GPL-3.0", &nodePair{
84
- // getLicenseNode("GPL-2.0-or-later", true),
85
- // getLicenseNode("GPL-3.0", false)}, true},
86
- // {"incompatible (different versions using -only): GPL-3.0-only, GPL-2.0-only", &nodePair{
87
- // getLicenseNode("GPL-3.0-only", false),
88
- // getLicenseNode("GPL-2.0-only", false)}, false},
71
+ {"compatible (same version with +): Apache-1.0+, Apache-1.0" , & nodePair {
72
+ getLicenseNode ("Apache-1.0" , true ),
73
+ getLicenseNode ("Apache-1.0" , false )}, true },
74
+ {"compatible (later version with +): Apache-1.0+, Apache-2.0" , & nodePair {
75
+ getLicenseNode ("Apache-1.0" , true ),
76
+ getLicenseNode ("Apache-2.0" , false )}, true },
77
+ {"compatible (second version with +): Apache-2.0, Apache-1.0+" , & nodePair {
78
+ getLicenseNode ("Apache-2.0" , false ),
79
+ getLicenseNode ("Apache-1.0" , true )}, true },
80
+ {"compatible (later version with both +): Apache-1.0+, Apache-2.0+" , & nodePair {
81
+ getLicenseNode ("Apache-1.0" , true ),
82
+ getLicenseNode ("Apache-2.0" , true )}, true },
83
+ {"compatible (same version with -or-later): GPL-2.0-or-later, GPL-2.0" , & nodePair {
84
+ getLicenseNode ("GPL-2.0-or-later" , true ),
85
+ getLicenseNode ("GPL-2.0" , false )}, true },
86
+ {"compatible (same version with -or-later and -only): GPL-2.0-or-later, GPL-2.0-only" , & nodePair {
87
+ getLicenseNode ("GPL-2.0-or-later" , true ),
88
+ getLicenseNode ("GPL-2.0-only" , false )}, true }, // TODO: Double check that -or-later and -only should be true for GT
89
+ {"compatible (later version with -or-later): GPL-2.0-or-later, GPL-3.0" , & nodePair {
90
+ getLicenseNode ("GPL-2.0-or-later" , true ),
91
+ getLicenseNode ("GPL-3.0" , false )}, true },
92
+ {"incompatible (same version with -or-later exception): GPL-2.0, GPL-2.0-or-later WITH Bison-exception-2.2" , & nodePair {
93
+ getLicenseNode ("GPL-2.0" , true ),
94
+ & node {
95
+ role : licenseNode ,
96
+ exp : nil ,
97
+ lic : & licenseNodePartial {
98
+ license : "GPL-2.0" , hasPlus : true ,
99
+ hasException : true , exception : "Bison-exception-2.2" },
100
+ ref : nil ,
101
+ }}, false },
102
+ {"incompatible (different versions using -only): GPL-3.0-only, GPL-2.0-only" , & nodePair {
103
+ getLicenseNode ("GPL-3.0-only" , false ),
104
+ getLicenseNode ("GPL-2.0-only" , false )}, false },
89
105
{"incompatible (different versions with letter): LPPL-1.3c, LPPL-1.3a" , & nodePair {
90
106
getLicenseNode ("LPPL-1.3c" , false ),
91
107
getLicenseNode ("LPPL-1.3a" , false )}, false },
@@ -99,8 +115,8 @@ func TestLicensesAreCompatible(t *testing.T) {
99
115
getLicenseNode ("MIT" , false ),
100
116
getLicenseNode ("ISC" , false )}, false },
101
117
{"not simple license: (MIT OR ISC), GPL-3.0" , & nodePair {
102
- getLicenseNode ("(MIT OR ISC)" , false ),
103
- getLicenseNode ("GPL-3.0" , false )}, false }, // TODO: should it raise error?
118
+ getParsedNode ("(MIT OR ISC)" ),
119
+ getLicenseNode ("GPL-3.0" , false )}, false },
104
120
}
105
121
106
122
for _ , test := range tests {
@@ -120,9 +136,9 @@ func TestRangesAreCompatible(t *testing.T) {
120
136
{"compatible - both use -or-later" , & nodePair {
121
137
firstNode : getLicenseNode ("GPL-1.0-or-later" , true ),
122
138
secondNode : getLicenseNode ("GPL-2.0-or-later" , true )}, true },
123
- // {"compatible - both use +", &nodePair{ // TODO: fails here and in js, but passes js satisfies
124
- // firstNode: getLicenseNode("Apache-1.0", true),
125
- // secondNode: getLicenseNode("Apache-2.0", true)}, true},
139
+ {"compatible - both use +" , & nodePair {
140
+ firstNode : getLicenseNode ("Apache-1.0" , true ),
141
+ secondNode : getLicenseNode ("Apache-2.0" , true )}, true },
126
142
{"not compatible" , & nodePair {
127
143
firstNode : getLicenseNode ("GPL-1.0-or-later" , true ),
128
144
secondNode : getLicenseNode ("LGPL-3.0-or-later" , true )}, false },
@@ -136,32 +152,6 @@ func TestRangesAreCompatible(t *testing.T) {
136
152
}
137
153
}
138
154
139
- func TestLicenseInRange (t * testing.T ) {
140
- tests := []struct {
141
- name string
142
- license string
143
- licenseRange []string
144
- result bool
145
- }{
146
- {"in range" , "GPL-3.0" , []string {
147
- "GPL-1.0-or-later" ,
148
- "GPL-2.0-or-later" ,
149
- "GPL-3.0" ,
150
- "GPL-3.0-only" ,
151
- "GPL-3.0-or-later" }, true },
152
- {"not in range" , "GPL-3.0" , []string {
153
- "GPL-2.0" ,
154
- "GPL-2.0-only" }, false },
155
- }
156
-
157
- for _ , test := range tests {
158
- test := test
159
- t .Run (test .name , func (t * testing.T ) {
160
- assert .Equal (t , test .result , licenseInRange (test .license , test .licenseRange ))
161
- })
162
- }
163
- }
164
-
165
155
func TestIdentifierInRange (t * testing.T ) {
166
156
tests := []struct {
167
157
name string
@@ -173,10 +163,10 @@ func TestIdentifierInRange(t *testing.T) {
173
163
secondNode : getLicenseNode ("GPL-2.0-or-later" , true )}, true },
174
164
{"in or-later range (same)" , & nodePair {
175
165
firstNode : getLicenseNode ("GPL-2.0" , false ),
176
- secondNode : getLicenseNode ("GPL-2.0-or-later" , true )}, false }, // TODO: why doesn't this
177
- {"in + range" , & nodePair {
166
+ secondNode : getLicenseNode ("GPL-2.0-or-later" , true )}, true },
167
+ {"in + range (1.0+) " , & nodePair {
178
168
firstNode : getLicenseNode ("Apache-2.0" , false ),
179
- secondNode : getLicenseNode ("Apache-1.0+ " , true )}, false }, // TODO: think this doesn't match because Apache doesn't have any -or-later
169
+ secondNode : getLicenseNode ("Apache-1.0" , true )}, true },
180
170
{"not in range" , & nodePair {
181
171
firstNode : getLicenseNode ("GPL-1.0" , false ),
182
172
secondNode : getLicenseNode ("GPL-2.0-or-later" , true )}, false },
0 commit comments