forked from forgejo/forgejo
[UPGRADE] add sanity checks for [storage*]
Refs: https://forgejo.org/2023-08-release-v1-20-3-0/ (cherry picked from commita266dd0ce3
) (cherry picked from commitb9eb5eccd8
) (cherry picked from commit7fc2028ede
) (cherry picked from commit0c988e6120
) (cherry picked from commit7ba05e8c2b
) (cherry picked from commit2ed5068abe
) (cherry picked from commit353913a26d
) (cherry picked from commit4e63a01a8b
) (cherry picked from commit99f612aed3
) (cherry picked from commitb4fe189cae
) (cherry picked from commit520295a6f5
) (cherry picked from commite5a564044b
) (cherry picked from commit52cc6c26fc
) (cherry picked from commitd58f04bd1d
) (cherry picked from commit1b7213a98b
)
This commit is contained in:
parent
2ea0db1a07
commit
18fd949916
4 changed files with 212 additions and 2 deletions
115
services/forgejo/sanity_v1TOv5_0_1Included_test.go
Normal file
115
services/forgejo/sanity_v1TOv5_0_1Included_test.go
Normal file
|
@ -0,0 +1,115 @@
|
|||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package forgejo
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/models/db"
|
||||
"code.gitea.io/gitea/models/forgejo/semver"
|
||||
"code.gitea.io/gitea/models/unittest"
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestForgejo_v1TOv5_0_1Included(t *testing.T) {
|
||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||
|
||||
logFatal = func(string, ...any) {}
|
||||
defer func() {
|
||||
logFatal = log.Fatal
|
||||
}()
|
||||
|
||||
configWithSoragePath := `
|
||||
[storage]
|
||||
PATH = /something
|
||||
`
|
||||
verifyForgejoV1TOv5_0_1Included(t, configWithSoragePath, "[storage].PATH is set")
|
||||
|
||||
for _, c := range v1TOv5_0_1IncludedStorageSections {
|
||||
config := fmt.Sprintf("[%s]\n[%s]\n", c.section, c.storageSection)
|
||||
verifyForgejoV1TOv5_0_1Included(t, config, fmt.Sprintf("[%s] and [%s]", c.section, c.storageSection))
|
||||
}
|
||||
}
|
||||
|
||||
func verifyForgejoV1TOv5_0_1Included(t *testing.T, config, message string) {
|
||||
ctx := db.DefaultContext
|
||||
e := db.GetEngine(ctx)
|
||||
|
||||
for _, testCase := range []struct {
|
||||
name string
|
||||
dbVersion int64
|
||||
semver string
|
||||
config string
|
||||
}{
|
||||
{
|
||||
name: "5.0.0 with no " + message,
|
||||
dbVersion: ForgejoV5DatabaseVersion,
|
||||
semver: "5.0.0+0-gitea-1.20.1",
|
||||
config: "",
|
||||
},
|
||||
{
|
||||
name: "5.0.1 with no " + message,
|
||||
dbVersion: ForgejoV5DatabaseVersion,
|
||||
semver: "5.0.1+0-gitea-1.20.2",
|
||||
config: "",
|
||||
},
|
||||
{
|
||||
name: "5.0.2 with " + message,
|
||||
dbVersion: ForgejoV5DatabaseVersion,
|
||||
semver: "5.0.2+0-gitea-1.20.3",
|
||||
config: config,
|
||||
},
|
||||
{
|
||||
name: "6.0.0 with " + message,
|
||||
dbVersion: ForgejoV6DatabaseVersion,
|
||||
semver: "6.0.0+0-gitea-1.21.0",
|
||||
config: config,
|
||||
},
|
||||
} {
|
||||
cfg := configFixture(t, testCase.config)
|
||||
semver.SetVersionString(ctx, testCase.semver)
|
||||
assert.NoError(t, v1TOv5_0_1Included(e, testCase.dbVersion, cfg))
|
||||
}
|
||||
|
||||
for _, testCase := range []struct {
|
||||
name string
|
||||
dbVersion int64
|
||||
semver string
|
||||
config string
|
||||
}{
|
||||
{
|
||||
name: "5.0.0 with " + message,
|
||||
dbVersion: ForgejoV5DatabaseVersion,
|
||||
semver: "5.0.0+0-gitea-1.20.1",
|
||||
config: config,
|
||||
},
|
||||
{
|
||||
name: "5.0.1 with " + message,
|
||||
dbVersion: ForgejoV5DatabaseVersion,
|
||||
semver: "5.0.1+0-gitea-1.20.2",
|
||||
config: config,
|
||||
},
|
||||
{
|
||||
//
|
||||
// When upgrading from
|
||||
//
|
||||
// Forgejo >= 5.0.1+0-gitea-1.20.2
|
||||
// Gitea > v1.21
|
||||
//
|
||||
// The version that the server was running prior to the upgrade
|
||||
// is not available.
|
||||
//
|
||||
name: semver.DefaultVersionString + " with " + message,
|
||||
dbVersion: ForgejoV4DatabaseVersion,
|
||||
semver: semver.DefaultVersionString,
|
||||
config: config,
|
||||
},
|
||||
} {
|
||||
cfg := configFixture(t, testCase.config)
|
||||
semver.SetVersionString(ctx, testCase.semver)
|
||||
assert.ErrorContains(t, v1TOv5_0_1Included(e, testCase.dbVersion, cfg), message)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue