mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	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:
		@@ -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 New Issue
	
	Block a user