Yet another attempt to fix the intermittent failure of gpg git test (#9146)
* Yet another attempt to fix the race in gpg_git_test * add some fail nows * Need to set preparetestenv * Ensure that http messages go to the correct server
This commit is contained in:
parent
055f6d2296
commit
9d9e6ac411
2 changed files with 33 additions and 5 deletions
|
@ -91,6 +91,7 @@ func onGiteaRun(t *testing.T, callback func(*testing.T, *url.URL), prepare ...bo
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
listener, err := net.Listen("tcp", u.Host)
|
listener, err := net.Listen("tcp", u.Host)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
u.Host = listener.Addr().String()
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
|
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
|
||||||
|
|
|
@ -23,6 +23,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGPGGit(t *testing.T) {
|
func TestGPGGit(t *testing.T) {
|
||||||
|
prepareTestEnv(t)
|
||||||
username := "user2"
|
username := "user2"
|
||||||
|
|
||||||
// OK Set a new GPG home
|
// OK Set a new GPG home
|
||||||
|
@ -125,11 +126,19 @@ func TestGPGGit(t *testing.T) {
|
||||||
t.Run("CreateCRUDFile-Always", crudActionCreateFile(
|
t.Run("CreateCRUDFile-Always", crudActionCreateFile(
|
||||||
t, testCtx, user, "master", "always", "signed-always.txt", func(t *testing.T, response api.FileResponse) {
|
t, testCtx, user, "master", "always", "signed-always.txt", func(t *testing.T, response api.FileResponse) {
|
||||||
assert.True(t, response.Verification.Verified)
|
assert.True(t, response.Verification.Verified)
|
||||||
|
if !response.Verification.Verified {
|
||||||
|
t.FailNow()
|
||||||
|
return
|
||||||
|
}
|
||||||
assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email)
|
assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email)
|
||||||
}))
|
}))
|
||||||
t.Run("CreateCRUDFile-ParentSigned-always", crudActionCreateFile(
|
t.Run("CreateCRUDFile-ParentSigned-always", crudActionCreateFile(
|
||||||
t, testCtx, user, "parentsigned", "parentsigned-always", "signed-parent2.txt", func(t *testing.T, response api.FileResponse) {
|
t, testCtx, user, "parentsigned", "parentsigned-always", "signed-parent2.txt", func(t *testing.T, response api.FileResponse) {
|
||||||
assert.True(t, response.Verification.Verified)
|
assert.True(t, response.Verification.Verified)
|
||||||
|
if !response.Verification.Verified {
|
||||||
|
t.FailNow()
|
||||||
|
return
|
||||||
|
}
|
||||||
assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email)
|
assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email)
|
||||||
}))
|
}))
|
||||||
})
|
})
|
||||||
|
@ -144,6 +153,10 @@ func TestGPGGit(t *testing.T) {
|
||||||
t.Run("CreateCRUDFile-Always-ParentSigned", crudActionCreateFile(
|
t.Run("CreateCRUDFile-Always-ParentSigned", crudActionCreateFile(
|
||||||
t, testCtx, user, "always", "always-parentsigned", "signed-always-parentsigned.txt", func(t *testing.T, response api.FileResponse) {
|
t, testCtx, user, "always", "always-parentsigned", "signed-always-parentsigned.txt", func(t *testing.T, response api.FileResponse) {
|
||||||
assert.True(t, response.Verification.Verified)
|
assert.True(t, response.Verification.Verified)
|
||||||
|
if !response.Verification.Verified {
|
||||||
|
t.FailNow()
|
||||||
|
return
|
||||||
|
}
|
||||||
assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email)
|
assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email)
|
||||||
}))
|
}))
|
||||||
})
|
})
|
||||||
|
@ -160,6 +173,10 @@ func TestGPGGit(t *testing.T) {
|
||||||
assert.NotNil(t, branch.Commit)
|
assert.NotNil(t, branch.Commit)
|
||||||
assert.NotNil(t, branch.Commit.Verification)
|
assert.NotNil(t, branch.Commit.Verification)
|
||||||
assert.True(t, branch.Commit.Verification.Verified)
|
assert.True(t, branch.Commit.Verification.Verified)
|
||||||
|
if !branch.Commit.Verification.Verified {
|
||||||
|
t.FailNow()
|
||||||
|
return
|
||||||
|
}
|
||||||
assert.Equal(t, "gitea@fake.local", branch.Commit.Verification.Signer.Email)
|
assert.Equal(t, "gitea@fake.local", branch.Commit.Verification.Signer.Email)
|
||||||
}))
|
}))
|
||||||
})
|
})
|
||||||
|
@ -170,7 +187,8 @@ func TestGPGGit(t *testing.T) {
|
||||||
|
|
||||||
t.Run("AlwaysSign-Initial-CRUD-Never", func(t *testing.T) {
|
t.Run("AlwaysSign-Initial-CRUD-Never", func(t *testing.T) {
|
||||||
defer PrintCurrentTest(t)()
|
defer PrintCurrentTest(t)()
|
||||||
testCtx := NewAPITestContext(t, username, "initial-always")
|
testCtx := NewAPITestContext(t, username, "initial-always-never")
|
||||||
|
t.Run("CreateRepository", doAPICreateRepository(testCtx, false))
|
||||||
t.Run("CreateCRUDFile-Never", crudActionCreateFile(
|
t.Run("CreateCRUDFile-Never", crudActionCreateFile(
|
||||||
t, testCtx, user, "master", "never", "unsigned-never.txt", func(t *testing.T, response api.FileResponse) {
|
t, testCtx, user, "master", "never", "unsigned-never.txt", func(t *testing.T, response api.FileResponse) {
|
||||||
assert.False(t, response.Verification.Verified)
|
assert.False(t, response.Verification.Verified)
|
||||||
|
@ -180,13 +198,17 @@ func TestGPGGit(t *testing.T) {
|
||||||
setting.Repository.Signing.CRUDActions = []string{"parentsigned"}
|
setting.Repository.Signing.CRUDActions = []string{"parentsigned"}
|
||||||
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
||||||
u.Path = baseAPITestContext.GitPath()
|
u.Path = baseAPITestContext.GitPath()
|
||||||
|
|
||||||
t.Run("AlwaysSign-Initial-CRUD-ParentSigned-On-Always", func(t *testing.T) {
|
t.Run("AlwaysSign-Initial-CRUD-ParentSigned-On-Always", func(t *testing.T) {
|
||||||
defer PrintCurrentTest(t)()
|
defer PrintCurrentTest(t)()
|
||||||
testCtx := NewAPITestContext(t, username, "initial-always")
|
testCtx := NewAPITestContext(t, username, "initial-always-parent")
|
||||||
|
t.Run("CreateRepository", doAPICreateRepository(testCtx, false))
|
||||||
t.Run("CreateCRUDFile-ParentSigned", crudActionCreateFile(
|
t.Run("CreateCRUDFile-ParentSigned", crudActionCreateFile(
|
||||||
t, testCtx, user, "master", "parentsigned", "signed-parent.txt", func(t *testing.T, response api.FileResponse) {
|
t, testCtx, user, "master", "parentsigned", "signed-parent.txt", func(t *testing.T, response api.FileResponse) {
|
||||||
assert.True(t, response.Verification.Verified)
|
assert.True(t, response.Verification.Verified)
|
||||||
|
if !response.Verification.Verified {
|
||||||
|
t.FailNow()
|
||||||
|
return
|
||||||
|
}
|
||||||
assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email)
|
assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email)
|
||||||
}))
|
}))
|
||||||
})
|
})
|
||||||
|
@ -197,10 +219,15 @@ func TestGPGGit(t *testing.T) {
|
||||||
|
|
||||||
t.Run("AlwaysSign-Initial-CRUD-Always", func(t *testing.T) {
|
t.Run("AlwaysSign-Initial-CRUD-Always", func(t *testing.T) {
|
||||||
defer PrintCurrentTest(t)()
|
defer PrintCurrentTest(t)()
|
||||||
testCtx := NewAPITestContext(t, username, "initial-always")
|
testCtx := NewAPITestContext(t, username, "initial-always-always")
|
||||||
|
t.Run("CreateRepository", doAPICreateRepository(testCtx, false))
|
||||||
t.Run("CreateCRUDFile-Always", crudActionCreateFile(
|
t.Run("CreateCRUDFile-Always", crudActionCreateFile(
|
||||||
t, testCtx, user, "master", "always", "signed-always.txt", func(t *testing.T, response api.FileResponse) {
|
t, testCtx, user, "master", "always", "signed-always.txt", func(t *testing.T, response api.FileResponse) {
|
||||||
assert.True(t, response.Verification.Verified)
|
assert.True(t, response.Verification.Verified)
|
||||||
|
if !response.Verification.Verified {
|
||||||
|
t.FailNow()
|
||||||
|
return
|
||||||
|
}
|
||||||
assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email)
|
assert.Equal(t, "gitea@fake.local", response.Verification.Signer.Email)
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
@ -287,7 +314,7 @@ func crudActionCreateFile(t *testing.T, ctx APITestContext, user *models.User, f
|
||||||
Email: user.Email,
|
Email: user.Email,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Content: base64.StdEncoding.EncodeToString([]byte("This is new text")),
|
Content: base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("This is new text for %s", path))),
|
||||||
}, callback...)
|
}, callback...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue