...

Source file src/github.com/fergusstrange/embedded-postgres/test_util_test.go

Documentation: github.com/fergusstrange/embedded-postgres

     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  	// Ideally, there should be no exceptions here.
    65  	goleak.VerifyNone(t, goleak.IgnoreTopFunction("internal/poll.runtime_pollWait"))
    66  }
    67  

View as plain text