Skip to content

Commit a2e7446

Browse files
GustedEarl Warren
authored andcommitted
chore: use eventually for mysql collation test (#8301)
- Regression of removing `time.Sleep(5 * time.Second)` in forgejo/forgejo#7917. - Ref: https://codeberg.org/forgejo/forgejo/issues/8221#issuecomment-5532035 Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8301 Reviewed-by: Earl Warren <[email protected]> Co-authored-by: Gusted <[email protected]> Co-committed-by: Gusted <[email protected]>
1 parent 7ad20a2 commit a2e7446

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

tests/integration/db_collation_test.go

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package integration
77
import (
88
"net/http"
99
"testing"
10+
"time"
1011

1112
"forgejo.org/models/db"
1213
"forgejo.org/modules/setting"
@@ -97,9 +98,13 @@ func TestDatabaseCollation(t *testing.T) {
9798
defer test.MockVariableValue(&setting.Database.CharsetCollation, "utf8mb4_bin")()
9899
require.NoError(t, db.ConvertDatabaseTable())
99100

100-
r, err := db.CheckCollations(x)
101-
require.NoError(t, err)
102-
assert.Equal(t, "utf8mb4_bin", r.DatabaseCollation)
101+
var r *db.CheckCollationsResult
102+
assert.Eventually(t, func() bool {
103+
r, err = db.CheckCollations(x)
104+
require.NoError(t, err)
105+
106+
return r.DatabaseCollation == "utf8mb4_bin"
107+
}, time.Second*30, time.Second)
103108
assert.True(t, r.CollationEquals(r.ExpectedCollation, r.DatabaseCollation))
104109
assert.Empty(t, r.InconsistentCollationColumns)
105110

@@ -117,9 +122,13 @@ func TestDatabaseCollation(t *testing.T) {
117122
defer test.MockVariableValue(&setting.Database.CharsetCollation, "utf8mb4_general_ci")()
118123
require.NoError(t, db.ConvertDatabaseTable())
119124

120-
r, err := db.CheckCollations(x)
121-
require.NoError(t, err)
122-
assert.Equal(t, "utf8mb4_general_ci", r.DatabaseCollation)
125+
var r *db.CheckCollationsResult
126+
assert.Eventually(t, func() bool {
127+
r, err = db.CheckCollations(x)
128+
require.NoError(t, err)
129+
130+
return r.DatabaseCollation == "utf8mb4_general_ci"
131+
}, time.Second*30, time.Second)
123132
assert.True(t, r.CollationEquals(r.ExpectedCollation, r.DatabaseCollation))
124133
assert.Empty(t, r.InconsistentCollationColumns)
125134

@@ -137,9 +146,15 @@ func TestDatabaseCollation(t *testing.T) {
137146
defer test.MockVariableValue(&setting.Database.CharsetCollation, "")()
138147
require.NoError(t, db.ConvertDatabaseTable())
139148

149+
var r *db.CheckCollationsResult
140150
r, err := db.CheckCollations(x)
141151
require.NoError(t, err)
142-
assert.True(t, r.IsCollationCaseSensitive(r.DatabaseCollation))
152+
assert.Eventually(t, func() bool {
153+
r, err = db.CheckCollations(x)
154+
require.NoError(t, err)
155+
156+
return r.IsCollationCaseSensitive(r.DatabaseCollation)
157+
}, time.Second*30, time.Second)
143158
assert.True(t, r.CollationEquals(r.ExpectedCollation, r.DatabaseCollation))
144159
assert.Empty(t, r.InconsistentCollationColumns)
145160
})

0 commit comments

Comments
 (0)