...
1 package embeddedpostgres
2
3 import (
4 "encoding/base64"
5 "os"
6 "testing"
7
8 "go.uber.org/goleak"
9 )
10
11 func createTempXzArchive() (string, func()) {
12 return writeFileWithBase64Content("remote_fetch_test*.txz", "/Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj4Av/AKZdADIaSqdFdWDG5Dyin7tszujmfm9YJn6/1REVUfqW8HwXvgwbrrcDDc4Q2ql+L+ybLTxJ+QNhhaKnawviRjKhUOT3syXi2Ye8k4QMkeurnnCu4a8eoCV+hqNFWkk8/w8MzyMzQZ2D3wtvoaZV/KqJ8jyLbNVj+vsKrzqg5vbSGz5/h7F37nqN1V8ZsdCnKnDMZPzovM8RwtelDd0g3fPC0dG/W9PH4wAAAAC2dqs1k9ZA0QABwgGAGAAAIQZ5XbHEZ/sCAAAAAARZWg==")
13 }
14
15 func createTempZipArchive() (string, func()) {
16 return writeFileWithBase64Content("remote_fetch_test*.zip", "UEsDBBQACAAIAExBSlMAAAAAAAAAAAAAAAAaAAkAcmVtb3RlX2ZldGNoX3Rlc3Q4MDA0NjE5MDVVVAUAAfCfYmEBAAD//1BLBwgAAAAABQAAAAAAAABQSwMEFAAIAAAATEFKUwAAAAAAAAAAAAAAABUACQByZW1vdGVfZmV0Y2hfdGVzdC50eHpVVAUAAfCfYmH9N3pYWgAABObWtEYCACEBFgAAAHQv5aPgBf8Abl0AORlJ/tq+A8rMBye1kCuXLnw2aeeO0gdfXeVHCWpF8/VeZU/MTVkdLzI+XgKLEMlHJukIdxP7iSAuKts+v7aDrJu68RHNgIsXGrGouAjf780FXjTUjX4vXDh08vNY1yOBayt9z9dKHdoG9AeAIgAAAAAOKMpgA1Mm3wABigGADAAAjIVdpbHEZ/sCAAAAAARZWlBLBwhkmQgRsAAAALAAAABQSwECFAMUAAgACABMQUpTAAAAAAUAAAAAAAAAGgAJAAAAAAAAAAAAgIEAAAAAcmVtb3RlX2ZldGNoX3Rlc3Q4MDA0NjE5MDVVVAUAAfCfYmFQSwECFAMUAAgAAABMQUpTZJkIEbAAAACwAAAAFQAJAAAAAAAAAAAApIFWAAAAcmVtb3RlX2ZldGNoX3Rlc3QudHh6VVQFAAHwn2JhUEsFBgAAAAACAAIAnQAAAFIBAAAAAA==")
17 }
18
19 func writeFileWithBase64Content(filename, base64Content string) (string, func()) {
20 tempFile, err := os.CreateTemp("", filename)
21 if err != nil {
22 panic(err)
23 }
24
25 byteContent, err := base64.StdEncoding.DecodeString(base64Content)
26 if err != nil {
27 panic(err)
28 }
29
30 if err := os.WriteFile(tempFile.Name(), byteContent, 0666); err != nil {
31 panic(err)
32 }
33
34 return tempFile.Name(), func() {
35 if err := os.RemoveAll(tempFile.Name()); err != nil {
36 panic(err)
37 }
38 }
39 }
40
41 func shutdownDBAndFail(t *testing.T, err error, db *EmbeddedPostgres) {
42 if db.started {
43 if stopErr := db.Stop(); stopErr != nil {
44 t.Errorf("Failed to shutdown server with error %s", stopErr)
45 }
46 }
47
48 t.Errorf("Failed for version %s with error %s", db.config.version, err)
49 }
50
51 func testVersionStrategy() VersionStrategy {
52 return func() (string, string, PostgresVersion) {
53 return "darwin", "amd64", "1.2.3"
54 }
55 }
56
57 func testCacheLocator() CacheLocator {
58 return func() (s string, b bool) {
59 return "", false
60 }
61 }
62
63 func verifyLeak(t *testing.T) {
64
65 goleak.VerifyNone(t, goleak.IgnoreTopFunction("internal/poll.runtime_pollWait"))
66 }
67
View as plain text