77 "math/big"
88 "math/rand"
99 "net"
10+ "path/filepath"
1011 "testing"
1112 "time"
1213
@@ -17,7 +18,7 @@ import (
1718func TestReader (t * testing.T ) {
1819 for _ , recordSize := range []uint {24 , 28 , 32 } {
1920 for _ , ipVersion := range []uint {4 , 6 } {
20- fileName := fmt .Sprintf ("test-data/test-data/ MaxMind-DB-test-ipv%d-%d.mmdb" , ipVersion , recordSize )
21+ fileName := fmt .Sprintf (testFile ( " MaxMind-DB-test-ipv%d-%d.mmdb") , ipVersion , recordSize )
2122 reader , err := Open (fileName )
2223 require .NoError (t , err , "unexpected error while opening database: %v" , err )
2324 checkMetadata (t , reader , ipVersion , recordSize )
@@ -34,7 +35,7 @@ func TestReader(t *testing.T) {
3435func TestReaderBytes (t * testing.T ) {
3536 for _ , recordSize := range []uint {24 , 28 , 32 } {
3637 for _ , ipVersion := range []uint {4 , 6 } {
37- fileName := fmt .Sprintf ("test-data/test-data/ MaxMind-DB-test-ipv%d-%d.mmdb" , ipVersion , recordSize )
38+ fileName := fmt .Sprintf (testFile ( " MaxMind-DB-test-ipv%d-%d.mmdb") , ipVersion , recordSize )
3839 bytes , _ := ioutil .ReadFile (fileName )
3940 reader , err := FromBytes (bytes )
4041 require .NoError (t , err , "unexpected error while opening bytes: %v" , err )
@@ -51,7 +52,7 @@ func TestReaderBytes(t *testing.T) {
5152}
5253
5354func TestDecodingToInterface (t * testing.T ) {
54- reader , err := Open ("test-data/test-data/ MaxMind-DB-test-decoder.mmdb" )
55+ reader , err := Open (testFile ( " MaxMind-DB-test-decoder.mmdb") )
5556 require .NoError (t , err , "unexpected error while opening database: %v" , err )
5657
5758 var recordInterface interface {}
@@ -98,7 +99,7 @@ type TestType struct {
9899}
99100
100101func TestDecoder (t * testing.T ) {
101- reader , err := Open ("test-data/test-data/ MaxMind-DB-test-decoder.mmdb" )
102+ reader , err := Open (testFile ( " MaxMind-DB-test-decoder.mmdb") )
102103 require .NoError (t , err )
103104
104105 verify := func (result TestType ) {
@@ -156,7 +157,7 @@ func (t *TestType) method() bool {
156157func TestStructInterface (t * testing.T ) {
157158 var result TestInterface = & TestType {}
158159
159- reader , err := Open ("test-data/test-data/ MaxMind-DB-test-decoder.mmdb" )
160+ reader , err := Open (testFile ( " MaxMind-DB-test-decoder.mmdb") )
160161 require .NoError (t , err )
161162
162163 require .NoError (t , reader .Lookup (net .ParseIP ("::1.1.1.0" ), & result ))
@@ -167,7 +168,7 @@ func TestStructInterface(t *testing.T) {
167168func TestNonEmptyNilInterface (t * testing.T ) {
168169 var result TestInterface
169170
170- reader , err := Open ("test-data/test-data/ MaxMind-DB-test-decoder.mmdb" )
171+ reader , err := Open (testFile ( " MaxMind-DB-test-decoder.mmdb") )
171172 require .NoError (t , err )
172173
173174 err = reader .Lookup (net .ParseIP ("::1.1.1.0" ), & result )
@@ -186,7 +187,7 @@ func TestEmbeddedStructAsInterface(t *testing.T) {
186187 var city City
187188 var result interface {} = city .Traits
188189
189- db , err := Open ("test-data/test-data/ GeoIP2-ISP-Test.mmdb" )
190+ db , err := Open (testFile ( " GeoIP2-ISP-Test.mmdb") )
190191 require .NoError (t , err )
191192
192193 assert .NoError (t , db .Lookup (net .ParseIP ("1.128.0.0" ), & result ))
@@ -210,7 +211,7 @@ func TesValueTypeInterface(t *testing.T) {
210211 var result ValueTypeTestType
211212 result .Boolean = Bool (false )
212213
213- reader , err := Open ("test-data/test-data/ MaxMind-DB-test-decoder.mmdb" )
214+ reader , err := Open (testFile ( " MaxMind-DB-test-decoder.mmdb") )
214215 require .NoError (t , err )
215216 require .NoError (t , reader .Lookup (net .ParseIP ("::1.1.1.0" ), & result ))
216217
@@ -251,7 +252,7 @@ type TestPointerType struct {
251252}
252253
253254func TestComplexStructWithNestingAndPointer (t * testing.T ) {
254- reader , err := Open ("test-data/test-data/ MaxMind-DB-test-decoder.mmdb" )
255+ reader , err := Open (testFile ( " MaxMind-DB-test-decoder.mmdb") )
255256 assert .NoError (t , err )
256257
257258 var result TestPointerType
@@ -282,7 +283,7 @@ func TestComplexStructWithNestingAndPointer(t *testing.T) {
282283}
283284
284285func TestNestedOffsetDecode (t * testing.T ) {
285- db , err := Open ("test-data/test-data/ GeoIP2-City-Test.mmdb" )
286+ db , err := Open (testFile ( " GeoIP2-City-Test.mmdb") )
286287 require .NoError (t , err )
287288
288289 off , err := db .LookupOffset (net .ParseIP ("81.2.69.142" ))
@@ -321,7 +322,7 @@ func TestNestedOffsetDecode(t *testing.T) {
321322}
322323
323324func TestDecodingUint16IntoInt (t * testing.T ) {
324- reader , err := Open ("test-data/test-data/ MaxMind-DB-test-decoder.mmdb" )
325+ reader , err := Open (testFile ( " MaxMind-DB-test-decoder.mmdb") )
325326 require .NoError (t , err , "unexpected error while opening database: %v" , err )
326327
327328 var result struct {
@@ -334,7 +335,7 @@ func TestDecodingUint16IntoInt(t *testing.T) {
334335}
335336
336337func TestIpv6inIpv4 (t * testing.T ) {
337- reader , err := Open ("test-data/test-data/ MaxMind-DB-test-ipv4-24.mmdb" )
338+ reader , err := Open (testFile ( " MaxMind-DB-test-ipv4-24.mmdb") )
338339 require .NoError (t , err , "unexpected error while opening database: %v" , err )
339340
340341 var result TestType
@@ -349,7 +350,7 @@ func TestIpv6inIpv4(t *testing.T) {
349350}
350351
351352func TestBrokenDoubleDatabase (t * testing.T ) {
352- reader , err := Open ("test-data/test-data/ GeoIP2-City-Test-Broken-Double-Format.mmdb" )
353+ reader , err := Open (testFile ( " GeoIP2-City-Test-Broken-Double-Format.mmdb") )
353354 require .NoError (t , err , "unexpected error while opening database: %v" , err )
354355
355356 var result interface {}
@@ -361,7 +362,7 @@ func TestBrokenDoubleDatabase(t *testing.T) {
361362}
362363
363364func TestInvalidNodeCountDatabase (t * testing.T ) {
364- _ , err := Open ("test-data/test-data/ GeoIP2-City-Test-Invalid-Node-Count.mmdb" )
365+ _ , err := Open (testFile ( " GeoIP2-City-Test-Invalid-Node-Count.mmdb") )
365366
366367 expected := newInvalidDatabaseError ("the MaxMind DB contains invalid metadata" )
367368 assert .Equal (t , err , expected )
@@ -380,7 +381,7 @@ func TestNonDatabase(t *testing.T) {
380381}
381382
382383func TestDecodingToNonPointer (t * testing.T ) {
383- reader , _ := Open ("test-data/test-data/ MaxMind-DB-test-decoder.mmdb" )
384+ reader , _ := Open (testFile ( " MaxMind-DB-test-decoder.mmdb") )
384385
385386 var recordInterface interface {}
386387 err := reader .Lookup (net .ParseIP ("::1.1.1.0" ), recordInterface )
@@ -389,7 +390,7 @@ func TestDecodingToNonPointer(t *testing.T) {
389390}
390391
391392func TestNilLookup (t * testing.T ) {
392- reader , _ := Open ("test-data/test-data/ MaxMind-DB-test-decoder.mmdb" )
393+ reader , _ := Open (testFile ( " MaxMind-DB-test-decoder.mmdb") )
393394
394395 var recordInterface interface {}
395396 err := reader .Lookup (nil , recordInterface )
@@ -398,7 +399,7 @@ func TestNilLookup(t *testing.T) {
398399}
399400
400401func TestUsingClosedDatabase (t * testing.T ) {
401- reader , _ := Open ("test-data/test-data/ MaxMind-DB-test-decoder.mmdb" )
402+ reader , _ := Open (testFile ( " MaxMind-DB-test-decoder.mmdb") )
402403 reader .Close ()
403404
404405 var recordInterface interface {}
@@ -565,3 +566,7 @@ func randomIPv4Address(r *rand.Rand, ip []byte) {
565566 ip [2 ] = byte (num >> 8 )
566567 ip [3 ] = byte (num )
567568}
569+
570+ func testFile (file string ) string {
571+ return filepath .Join ("test-data/test-data" , file )
572+ }
0 commit comments