Skip to content

test: fix flaky test #453

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,9 @@ jobs:
cd "${SRCDIR}"
make deps

- name: Setup tmate session
uses: mxschmitt/action-tmate@v3

- name: Run regression tests
run: |
cd "${SRCDIR}"
Expand Down
91 changes: 46 additions & 45 deletions pool/connection_pool_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
}
}

func makeDialers(servers []string) []tarantool.Dialer {

Check failure on line 52 in pool/connection_pool_test.go

View workflow job for this annotation

GitHub Actions / golangci-lint

func `makeDialers` is unused (unused)

Check failure on line 52 in pool/connection_pool_test.go

View workflow job for this annotation

GitHub Actions / golangci-lint

func `makeDialers` is unused (unused)
dialers := make([]tarantool.Dialer, 0, len(servers))
for _, server := range servers {
dialers = append(dialers, makeDialer(server))
Expand All @@ -57,7 +57,7 @@
return dialers
}

var dialers = makeDialers(servers)

Check failure on line 60 in pool/connection_pool_test.go

View workflow job for this annotation

GitHub Actions / golangci-lint

var `dialers` is unused (unused)

Check failure on line 60 in pool/connection_pool_test.go

View workflow job for this annotation

GitHub Actions / golangci-lint

var `dialers` is unused (unused)

func makeInstance(server string, opts tarantool.Opts) pool.Instance {
return pool.Instance{
Expand Down Expand Up @@ -1111,11 +1111,9 @@
}

func TestConnectionHandlerOpenUpdateClose(t *testing.T) {
poolServers := []string{servers[0], servers[1]}
poolInstances := makeInstances(poolServers, connOpts)
poolInstances := instances[:2]
roles := []bool{false, true}

err := test_helpers.SetClusterRO(makeDialers(poolServers), connOpts, roles)
err := test_helpers.SetClusterRO(poolInstances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

h := &testHandler{}
Expand All @@ -1128,6 +1126,9 @@
connPool, err := pool.ConnectWithOpts(ctx, poolInstances, poolOpts)
require.Nilf(t, err, "failed to connect")
require.NotNilf(t, connPool, "conn is nil after Connect")
for _, err := range h.errs {
t.Errorf("pool.ConnectWithOpts: unexpected error: %s", err)
}

_, err = connPool.Call17("box.cfg", []interface{}{map[string]bool{
"read_only": true,
Expand Down Expand Up @@ -1169,9 +1170,9 @@

discovered = atomic.LoadUint32(&h.discovered)
deactivated = atomic.LoadUint32(&h.deactivated)
require.Equalf(t, uint32(len(poolServers)+1), discovered,
require.Equalf(t, uint32(len(roles)+1), discovered,
"unexpected discovered count")
require.Equalf(t, uint32(len(poolServers)+1), deactivated,
require.Equalf(t, uint32(len(roles)+1), deactivated,
"unexpected deactivated count")
}

Expand Down Expand Up @@ -1246,10 +1247,10 @@

func TestConnectionHandlerUpdateError(t *testing.T) {
poolServers := []string{servers[0], servers[1]}
poolInstances := makeInstances(poolServers, connOpts)
poolInstances := instances[:2]
roles := []bool{false, false}

err := test_helpers.SetClusterRO(makeDialers(poolServers), connOpts, roles)
err := test_helpers.SetClusterRO(poolInstances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

h := &testUpdateErrorHandler{}
Expand Down Expand Up @@ -1320,11 +1321,11 @@
}

func TestConnectionHandlerDeactivated_on_remove(t *testing.T) {
poolServers := []string{servers[0], servers[1]}
poolInstances := makeInstances(poolServers, connOpts)
poolServers := servers[:2]
poolInstances := instances[:2]
roles := []bool{false, false}

err := test_helpers.SetClusterRO(makeDialers(poolServers), connOpts, roles)
err := test_helpers.SetClusterRO(poolInstances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

h := &testDeactivatedErrorHandler{}
Expand Down Expand Up @@ -1413,7 +1414,7 @@
func TestCall(t *testing.T) {
roles := []bool{false, true, false, false, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -1472,7 +1473,7 @@
func TestCall16(t *testing.T) {
roles := []bool{false, true, false, false, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -1531,7 +1532,7 @@
func TestCall17(t *testing.T) {
roles := []bool{false, true, false, false, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -1590,7 +1591,7 @@
func TestEval(t *testing.T) {
roles := []bool{false, true, false, false, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -1670,7 +1671,7 @@

roles := []bool{false, true, false, false, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -1728,7 +1729,7 @@

serversNumber := len(servers)

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -1807,7 +1808,7 @@
servers[4]: true,
}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -1880,7 +1881,7 @@
servers[4]: true,
}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -1965,7 +1966,7 @@

serversNumber := len(servers)

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2044,7 +2045,7 @@
servers[3]: true,
}

err = test_helpers.SetClusterRO(dialers, connOpts, roles)
err = test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

// ANY
Expand Down Expand Up @@ -2111,7 +2112,7 @@
func TestInsert(t *testing.T) {
roles := []bool{true, true, false, true, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2210,7 +2211,7 @@
func TestDelete(t *testing.T) {
roles := []bool{true, true, false, true, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2274,7 +2275,7 @@
func TestUpsert(t *testing.T) {
roles := []bool{true, true, false, true, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2346,7 +2347,7 @@
func TestUpdate(t *testing.T) {
roles := []bool{true, true, false, true, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2435,7 +2436,7 @@
func TestReplace(t *testing.T) {
roles := []bool{true, true, false, true, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2520,7 +2521,7 @@
func TestSelect(t *testing.T) {
roles := []bool{true, true, false, true, false}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand All @@ -2543,13 +2544,13 @@
rwKey := []interface{}{"rw_select_key"}
anyKey := []interface{}{"any_select_key"}

err = test_helpers.InsertOnInstances(makeDialers(roServers), connOpts, spaceNo, roTpl)
err = test_helpers.InsertOnInstances(makeInstances(roServers, connOpts), spaceNo, roTpl)
require.Nil(t, err)

err = test_helpers.InsertOnInstances(makeDialers(rwServers), connOpts, spaceNo, rwTpl)
err = test_helpers.InsertOnInstances(makeInstances(rwServers, connOpts), spaceNo, rwTpl)
require.Nil(t, err)

err = test_helpers.InsertOnInstances(makeDialers(allServers), connOpts, spaceNo, anyTpl)
err = test_helpers.InsertOnInstances(makeInstances(allServers, connOpts), spaceNo, anyTpl)
require.Nil(t, err)

//default: ANY
Expand Down Expand Up @@ -2642,7 +2643,7 @@
func TestPing(t *testing.T) {
roles := []bool{true, true, false, true, false}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2681,7 +2682,7 @@
func TestDo(t *testing.T) {
roles := []bool{true, true, false, true, false}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2717,7 +2718,7 @@
func TestDo_concurrent(t *testing.T) {
roles := []bool{true, true, false, true, false}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2766,7 +2767,7 @@
func TestDoInstance_not_found(t *testing.T) {
roles := []bool{true, true, false, true, false}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2820,7 +2821,7 @@

roles := []bool{true, true, false, true, false}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2892,7 +2893,7 @@

roles := []bool{true, true, false, true, false}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -2922,7 +2923,7 @@

roles := []bool{true, true, false, true, true}

err = test_helpers.SetClusterRO(dialers, connOpts, roles)
err = test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -3013,7 +3014,7 @@

roles := []bool{true, true, false, true, true}

err = test_helpers.SetClusterRO(dialers, connOpts, roles)
err = test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -3103,7 +3104,7 @@

roles := []bool{true, true, false, true, true}

err = test_helpers.SetClusterRO(dialers, connOpts, roles)
err = test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -3214,7 +3215,7 @@

roles := []bool{true, false, false, true, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -3291,7 +3292,7 @@
const initCnt = 2
roles := []bool{true, false, false, true, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

poolOpts := pool.Opts{
Expand Down Expand Up @@ -3338,7 +3339,7 @@
for i, role := range roles {
roles[i] = !role
}
err = test_helpers.SetClusterRO(dialers, connOpts, roles)
err = test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

// Wait for all updated events.
Expand Down Expand Up @@ -3376,7 +3377,7 @@
const expectedCnt = 2
roles := []bool{true, false, false, true, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -3433,7 +3434,7 @@

roles := []bool{true, false, false, true, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down Expand Up @@ -3471,7 +3472,7 @@

roles := []bool{true, false, false, true, true}

err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(instances, roles)
require.Nilf(t, err, "fail to set roles for cluster")

ctx, cancel := test_helpers.GetPoolConnectContext()
Expand Down
6 changes: 2 additions & 4 deletions pool/example_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ var testRoles = []bool{true, true, false, true, true}

func examplePool(roles []bool,
connOpts tarantool.Opts) (*pool.ConnectionPool, error) {
err := test_helpers.SetClusterRO(dialers, connOpts, roles)
err := test_helpers.SetClusterRO(makeInstances(servers, connOpts), roles)
if err != nil {
return nil, fmt.Errorf("ConnectionPool is not established")
}
Expand All @@ -40,7 +40,6 @@ func examplePool(roles []bool,
func exampleFeaturesPool(roles []bool, connOpts tarantool.Opts,
requiredProtocol tarantool.ProtocolInfo) (*pool.ConnectionPool, error) {
poolInstances := []pool.Instance{}
poolDialers := []tarantool.Dialer{}
for _, server := range servers {
dialer := tarantool.NetDialer{
Address: server,
Expand All @@ -53,9 +52,8 @@ func exampleFeaturesPool(roles []bool, connOpts tarantool.Opts,
Dialer: dialer,
Opts: connOpts,
})
poolDialers = append(poolDialers, dialer)
}
err := test_helpers.SetClusterRO(poolDialers, connOpts, roles)
err := test_helpers.SetClusterRO(poolInstances, roles)
if err != nil {
return nil, fmt.Errorf("ConnectionPool is not established")
}
Expand Down
Loading
Loading