Commit 29427998 authored by Jacob Vosmaer's avatar Jacob Vosmaer

Merge branch 'id-refactor-polling-tests' into 'master'

Use require.Eventually instead of manual polling in tests

See merge request gitlab-org/gitlab!79827
parents 4cf5de97 249b0531
...@@ -284,12 +284,9 @@ func TestUploadHandlerMultipartUploadSizeLimit(t *testing.T) { ...@@ -284,12 +284,9 @@ func TestUploadHandlerMultipartUploadSizeLimit(t *testing.T) {
contentBuffer, contentType := createTestMultipartForm(t, make([]byte, uploadSize)) contentBuffer, contentType := createTestMultipartForm(t, make([]byte, uploadSize))
response := testUploadArtifacts(t, contentType, ts.URL+Path, &contentBuffer) response := testUploadArtifacts(t, contentType, ts.URL+Path, &contentBuffer)
require.Equal(t, http.StatusRequestEntityTooLarge, response.Code) require.Equal(t, http.StatusRequestEntityTooLarge, response.Code)
require.Eventually(t, func() bool {
// Poll because AbortMultipartUpload is async return !os.IsMultipartUpload(test.ObjectPath)
for i := 0; os.IsMultipartUpload(test.ObjectPath) && i < 100; i++ { }, time.Second, time.Millisecond, "MultipartUpload should not be in progress anymore")
time.Sleep(10 * time.Millisecond)
}
require.False(t, os.IsMultipartUpload(test.ObjectPath), "MultipartUpload should not be in progress anymore")
require.Empty(t, os.GetObjectMD5(test.ObjectPath), "upload should have failed, so the object should not exists") require.Empty(t, os.GetObjectMD5(test.ObjectPath), "upload should have failed, so the object should not exists")
} }
......
...@@ -28,29 +28,15 @@ func testDeadline() time.Time { ...@@ -28,29 +28,15 @@ func testDeadline() time.Time {
func requireFileGetsRemovedAsync(t *testing.T, filePath string) { func requireFileGetsRemovedAsync(t *testing.T, filePath string) {
var err error var err error
require.Eventually(t, func() bool {
// Poll because the file removal is async
for i := 0; i < 100; i++ {
_, err = os.Stat(filePath) _, err = os.Stat(filePath)
if err != nil { return err != nil
break }, 10*time.Second, 10*time.Millisecond)
}
time.Sleep(100 * time.Millisecond)
}
require.True(t, os.IsNotExist(err), "File hasn't been deleted during cleanup") require.True(t, os.IsNotExist(err), "File hasn't been deleted during cleanup")
} }
func requireObjectStoreDeletedAsync(t *testing.T, expectedDeletes int, osStub *test.ObjectstoreStub) { func requireObjectStoreDeletedAsync(t *testing.T, expectedDeletes int, osStub *test.ObjectstoreStub) {
// Poll because the object removal is async require.Eventually(t, func() bool { return osStub.DeletesCnt() == expectedDeletes }, time.Second, time.Millisecond, "Object not deleted")
for i := 0; i < 100; i++ {
if osStub.DeletesCnt() == expectedDeletes {
break
}
time.Sleep(10 * time.Millisecond)
}
require.Equal(t, expectedDeletes, osStub.DeletesCnt(), "Object not deleted")
} }
func TestSaveFileWrongSize(t *testing.T) { func TestSaveFileWrongSize(t *testing.T) {
......
...@@ -56,13 +56,7 @@ func testObjectUploadNoErrors(t *testing.T, startObjectStore osFactory, useDelet ...@@ -56,13 +56,7 @@ func testObjectUploadNoErrors(t *testing.T, startObjectStore osFactory, useDelet
if useDeleteURL { if useDeleteURL {
expectedDeleteCnt = 1 expectedDeleteCnt = 1
} }
// Poll because the object removal is async require.Eventually(t, func() bool { return osStub.DeletesCnt() == expectedDeleteCnt }, time.Second, time.Millisecond)
for i := 0; i < 100; i++ {
if osStub.DeletesCnt() == expectedDeleteCnt {
break
}
time.Sleep(10 * time.Millisecond)
}
if useDeleteURL { if useDeleteURL {
require.Equal(t, 1, osStub.DeletesCnt(), "Object hasn't been deleted") require.Equal(t, 1, osStub.DeletesCnt(), "Object hasn't been deleted")
......
...@@ -180,11 +180,7 @@ func TestShutdown(t *testing.T) { ...@@ -180,11 +180,7 @@ func TestShutdown(t *testing.T) {
}() }()
go func() { go func() {
for countWatchers(runnerKey) == 0 { require.Eventually(t, func() bool { return countWatchers(runnerKey) == 1 }, 10*time.Second, time.Millisecond)
time.Sleep(time.Millisecond)
}
require.Equal(t, 1, countWatchers(runnerKey))
Shutdown() Shutdown()
wg.Done() wg.Done()
...@@ -192,11 +188,7 @@ func TestShutdown(t *testing.T) { ...@@ -192,11 +188,7 @@ func TestShutdown(t *testing.T) {
wg.Wait() wg.Wait()
for countWatchers(runnerKey) == 1 { require.Eventually(t, func() bool { return countWatchers(runnerKey) == 0 }, 10*time.Second, time.Millisecond)
time.Sleep(time.Millisecond)
}
require.Equal(t, 0, countWatchers(runnerKey))
// Adding a key after the shutdown should result in an immediate response // Adding a key after the shutdown should result in an immediate response
var val WatchKeyStatus var val WatchKeyStatus
......
...@@ -581,15 +581,9 @@ func newProxy(url string) *proxy.Proxy { ...@@ -581,15 +581,9 @@ func newProxy(url string) *proxy.Proxy {
func waitUntilDeleted(t *testing.T, path string) { func waitUntilDeleted(t *testing.T, path string) {
var err error var err error
require.Eventually(t, func() bool {
// Poll because the file removal is async
for i := 0; i < 100; i++ {
_, err = os.Stat(path) _, err = os.Stat(path)
if err != nil { return err != nil
break }, 10*time.Second, 10*time.Millisecond)
}
time.Sleep(100 * time.Millisecond)
}
require.True(t, os.IsNotExist(err), "expected the file to be deleted") require.True(t, os.IsNotExist(err), "expected the file to be deleted")
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment