|
7 | 7 | package semver
|
8 | 8 |
|
9 | 9 | import (
|
| 10 | + "cmp" |
| 11 | + "fmt" |
10 | 12 | "testing"
|
| 13 | + |
| 14 | + "github.com/stretchr/testify/require" |
11 | 15 | )
|
12 | 16 |
|
13 | 17 | func FuzzParser(f *testing.F) {
|
@@ -149,3 +153,69 @@ func FuzzParser(f *testing.F) {
|
149 | 153 | }
|
150 | 154 | })
|
151 | 155 | }
|
| 156 | + |
| 157 | +func FuzzComparators(f *testing.F) { |
| 158 | + f.Add("1.2.4", "0.0.1-rc.0") |
| 159 | + f.Add("1.3.0-rc.0+build", "0.0.1-rc.0+build") |
| 160 | + f.Add("1.3.0", "0.0.1-rc.1") |
| 161 | + f.Add("1.3.0+build", "0.0.1") |
| 162 | + f.Add("0.0.1+build", "0.0.1-rc.0") |
| 163 | + f.Add("0.0.2-rc.1", "0.0.1-rc.0+build") |
| 164 | + f.Add("0.0.2-rc.1+build", "0.0.1-rc.1") |
| 165 | + f.Add("0.0.2", "0.0.1") |
| 166 | + f.Add("0.0.2+build", "0.0.1+build") |
| 167 | + f.Add("0.0.3-rc.1", "0.0.2-rc.1") |
| 168 | + f.Add("0.0.3-rc.2", "0.0.2-rc.1+build") |
| 169 | + f.Add("0.0.3", "0.0.2") |
| 170 | + f.Add("0.1.0", "0.0.2+build") |
| 171 | + f.Add("0.3.3-rc.0", "0.0.3-rc.1") |
| 172 | + f.Add("0.3.3-rc.1", "0.0.3-rc.2") |
| 173 | + f.Add("0.3.3", "0.0.3") |
| 174 | + f.Add("0.3.3+build", "0.1.0") |
| 175 | + f.Add("0.3.4-rc.1", "0.3.3-rc.0") |
| 176 | + f.Add("0.3.4", "0.3.3-rc.1") |
| 177 | + f.Add("0.4.0", "0.3.3") |
| 178 | + f.Add("1.0.0-rc", "0.3.3+build") |
| 179 | + f.Add("1.0.0", "0.3.4-rc.1") |
| 180 | + f.Add("1.0.0+build", "0.3.4") |
| 181 | + f.Add("1.2.1-rc", "0.4.0") |
| 182 | + f.Add("1.2.1", "1.0.0-rc") |
| 183 | + f.Add("1.2.1+build", "1.0.0") |
| 184 | + f.Add("1.2.3-rc.2", "1.0.0+build") |
| 185 | + f.Add("1.2.3-rc.2+build", "1.2.1-rc") |
| 186 | + f.Add("1.2.3", "1.2.1") |
| 187 | + f.Add("1.2.3+build", "1.2.1+build") |
| 188 | + f.Add("1.2.4", "1.2.3-rc.2") |
| 189 | + f.Add("1.3.0-rc.0+build", "1.2.3-rc.2+build") |
| 190 | + f.Add("1.3.0", "1.2.3") |
| 191 | + f.Add("1.3.0+build", "1.2.3+build") |
| 192 | + f.Add("1.3.1-rc.0", "1.2.4") |
| 193 | + f.Add("1.3.1-rc.1", "1.3.0-rc.0+build") |
| 194 | + f.Add("1.3.1", "1.3.0") |
| 195 | + f.Add("1.3.5", "1.3.0+build") |
| 196 | + f.Add("2.0.0-rc", "1.3.1-rc.0") |
| 197 | + f.Add("2.0.0-rc+build", "1.3.1-rc.1") |
| 198 | + f.Add("2.0.0", "1.3.1") |
| 199 | + f.Add("2.0.0+build", "1.3.5") |
| 200 | + f.Add("2.1.0-rc", "2.0.0-rc") |
| 201 | + f.Add("2.1.0-rc+build", "2.0.0-rc+build") |
| 202 | + f.Add("2.1.0", "2.0.0") |
| 203 | + f.Add("2.1.0+build", "2.0.0+build") |
| 204 | + f.Add("2.1.3-rc", "2.1.0-rc") |
| 205 | + f.Add("2.1.3", "2.1.0-rc+build") |
| 206 | + f.Add("2.3.0", "2.1.0") |
| 207 | + f.Add("2.3.1", "2.1.0+build") |
| 208 | + f.Add("3.0.0", "2.1.3-rc") |
| 209 | + f.Fuzz(func(t *testing.T, a, b string) { |
| 210 | + va, err := Parse(a) |
| 211 | + if err != nil { |
| 212 | + return |
| 213 | + } |
| 214 | + vb, err := Parse(b) |
| 215 | + if err != nil { |
| 216 | + return |
| 217 | + } |
| 218 | + fmt.Println(va.SortableString(), vb.SortableString()) |
| 219 | + require.Equal(t, va.CompareTo(vb), cmp.Compare(va.SortableString(), vb.SortableString()), "Comparing: %s and %s", a, b) |
| 220 | + }) |
| 221 | +} |
0 commit comments