@@ -7,6 +7,7 @@ package integration
77import (
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