ac18432dc5
* initial test * add parenthesis * remove pipeline * add few todos * use docker image for environment * use pipeline * fix * add missing steps * invoke with bash * disable protoc * try using golang image * try as root * Disable install-awscli.sh temporarily * Debugging * debugging part 2 * Set absolute path for debugging * Remove absolute path * Dont run as root * Install unzip * Dont forget to apt-get update * Put into folder that is in PATH * disable IPv6 Test * add verbose info and check protobuf * make integration non-parallel * remove -v and make checkout part of build * make a single block for linting * fix echo * update * try using things directly * try add xunit output * fix name * don't print empty lines * skip testsuites without any tests * remove coverage, because it's not showing the right thing * try using dockerfile * fix deb source * fix typos * setup postgres * use the right flag * try using postgresdb * expose different port * remove port mapping * start postgres * export * use env block * try using different host for integration tests * eat standard ports * try building images and binaries * remove if statement * add steps * do before verification * add go get goversioninfo * make separate jenkinsfile * add check * don't add empty packages * disable logging to reduce output size * add timeout * add comment about mfridman * Revert Absolute Path * Add aws to PATH * PATH Changes * Docker Env Fixes * PATH Simplification * Debugging the PATH * Debug Logs * Debugging * Update PATH Handling * Rename * revert changes to Jenkinsfile
72 lines
1.6 KiB
Go
72 lines
1.6 KiB
Go
// Copyright (C) 2019 Storj Labs, Inc.
|
|
// See LICENSE for copying information.
|
|
|
|
package postgreskv
|
|
|
|
import (
|
|
"flag"
|
|
"testing"
|
|
|
|
"storj.io/storj/storage"
|
|
"storj.io/storj/storage/testsuite"
|
|
)
|
|
|
|
var (
|
|
doAltTests = flag.Bool("test-postgreskv-alt", false, "Run the KeyValueStore tests against the alternate PG implementation")
|
|
)
|
|
|
|
func newTestAlternatePostgres(t testing.TB) (store *AlternateClient, cleanup func()) {
|
|
if !*doAltTests {
|
|
t.Skip("alternate-implementation PG tests not enabled.")
|
|
}
|
|
if *testPostgres == "" {
|
|
t.Skipf("postgres flag missing, example:\n-postgres-test-db=%s", defaultPostgresConn)
|
|
}
|
|
|
|
pgdb, err := AltNew(*testPostgres)
|
|
if err != nil {
|
|
t.Fatalf("init: %v", err)
|
|
}
|
|
|
|
return pgdb, func() {
|
|
if err := pgdb.Close(); err != nil {
|
|
t.Fatalf("failed to close db: %v", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestSuiteAlt(t *testing.T) {
|
|
store, cleanup := newTestAlternatePostgres(t)
|
|
defer cleanup()
|
|
|
|
// zap := zaptest.NewLogger(t)
|
|
// loggedStore := storelogger.New(zap, store)
|
|
testsuite.RunTests(t, store)
|
|
}
|
|
|
|
func BenchmarkSuiteAlt(b *testing.B) {
|
|
store, cleanup := newTestAlternatePostgres(b)
|
|
defer cleanup()
|
|
|
|
testsuite.RunBenchmarks(b, store)
|
|
}
|
|
|
|
type pgAltLongBenchmarkStore struct {
|
|
*AlternateClient
|
|
}
|
|
|
|
func (store *pgAltLongBenchmarkStore) BulkImport(iter storage.Iterator) error {
|
|
return bulkImport(store.pgConn, iter)
|
|
}
|
|
|
|
func (store *pgAltLongBenchmarkStore) BulkDelete() error {
|
|
return bulkDelete(store.pgConn)
|
|
}
|
|
|
|
func BenchmarkSuiteLongAlt(b *testing.B) {
|
|
store, cleanup := newTestAlternatePostgres(b)
|
|
defer cleanup()
|
|
|
|
testsuite.BenchmarkPathOperationsInLargeDb(b, &pgAltLongBenchmarkStore{store})
|
|
}
|