This commit is contained in:
wxiaoguang
2026-04-25 19:16:29 +08:00
parent 888f4daa31
commit f310b1c3af
4 changed files with 34 additions and 13 deletions

View File

@@ -22,6 +22,8 @@ import (
func TestMigratePackages(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
t.Log("DebugLogs", setting.DebugGetLogs())
creator := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
content := "package main\n\nfunc main() {\nfmt.Println(\"hi\")\n}\n"

View File

@@ -19,7 +19,6 @@ import (
"code.gitea.io/gitea/modules/setting/config"
"code.gitea.io/gitea/modules/storage"
"code.gitea.io/gitea/modules/tempdir"
"code.gitea.io/gitea/modules/testlogger"
"code.gitea.io/gitea/modules/util"
"github.com/stretchr/testify/assert"
@@ -41,34 +40,40 @@ func MainTest(m *testing.M, testOptsArg ...*TestOptions) {
}
func mainTest(m *testing.M, testOptsArg ...*TestOptions) int {
reportError := func(msg string, a ...any) int {
_, _ = fmt.Fprintf(os.Stderr, msg+"\n", a...)
return 1
}
testOpts := util.OptionalArg(testOptsArg, &TestOptions{})
appDataPath, appDataCleanup, err := tempdir.OsTempDir("gitea-test").MkdirTempRandom("unit-test-data-")
if err != nil {
testlogger.Panicf("TempDir: %v\n", err)
return reportError("Failed to create temp dir for app data path: %v", err)
}
// FIXME: debug
_, _ = fmt.Fprintf(os.Stderr, "Prepare APP_DATA_PATH for SetupGiteaTestEnv: %s\n", appDataPath)
setting.DebugAppendLog("Prepare APP_DATA_PATH for SetupGiteaTestEnv: %s", appDataPath)
defer func() {
_, _ = fmt.Fprintf(os.Stderr, "Remove APP_DATA_PATH for SetupGiteaTestEnv: %s\n", appDataPath)
setting.DebugAppendLog("Remove APP_DATA_PATH for SetupGiteaTestEnv: %s", appDataPath)
appDataCleanup()
}()
_ = os.Setenv("GITEA_TEST_CONF_CONTENT", `
[server]
APP_DATA_PATH = `+appDataPath+`
`)
setting.SetupGiteaTestEnv()
if setting.RepoRootPath == "" || setting.AppDataPath == "" {
_, _ = fmt.Fprintln(os.Stderr, "SetupGiteaTestEnv failed, paths are not initialized")
os.Exit(1)
return reportError("SetupGiteaTestEnv failed, paths are not initialized")
}
giteaRoot := setting.GetGiteaTestSourceRoot()
fixturesOpts := FixturesOptions{Dir: filepath.Join(giteaRoot, "models", "fixtures"), Files: testOpts.FixtureFiles}
if err := CreateTestEngine(fixturesOpts); err != nil {
_, _ = fmt.Fprintf(os.Stderr, "Error creating test database engine: %v\n", err)
os.Exit(1)
return reportError("Error creating test database engine: %v", err)
}
setting.AppURL = "https://try.gitea.io/"
@@ -86,22 +91,22 @@ APP_DATA_PATH = `+appDataPath+`
config.SetDynGetter(system.NewDatabaseDynKeyGetter())
if err = cache.Init(); err != nil {
testlogger.Panicf("cache.Init: %v\n", err)
return reportError("cache.Init: %v", err)
}
if err = storage.Init(); err != nil {
testlogger.Panicf("storage.Init: %v\n", err)
return reportError("storage.Init: %v", err)
}
if err = SyncDirs(filepath.Join(giteaRoot, "tests", "gitea-repositories-meta"), setting.RepoRootPath); err != nil {
testlogger.Panicf("util.SyncDirs: %v\n", err)
return reportError("util.SyncDirs: %v", err)
}
if err = git.InitFull(); err != nil {
testlogger.Panicf("git.Init: %v\n", err)
return reportError("git.Init: %v", err)
}
if testOpts.SetUp != nil {
if err := testOpts.SetUp(); err != nil {
testlogger.Panicf("set up failed: %v\n", err)
return reportError("set up failed: %v", err)
}
}
@@ -109,7 +114,7 @@ APP_DATA_PATH = `+appDataPath+`
if testOpts.TearDown != nil {
if err := testOpts.TearDown(); err != nil {
testlogger.Panicf("tear down failed: %v\n", err)
return reportError("tear down failed: %v", err)
}
}
return exitStatus

View File

@@ -282,7 +282,7 @@ func loadServerFrom(rootCfg ConfigProvider) {
// FIXME: debug
bufCustomConf, _ := os.ReadFile(CustomConf)
log.Error("Set AppDataPath=%s (CustomConf=%s)\n%s\n%s\n", AppDataPath, CustomConf, string(bufCustomConf), log.Stack(2))
DebugAppendLog("Set AppDataPath=%s (CustomConf=%s)\n%s\n%s\n", AppDataPath, CustomConf, string(bufCustomConf), log.Stack(2))
if !filepath.IsAbs(AppDataPath) {
AppDataPath = filepath.ToSlash(filepath.Join(AppWorkPath, AppDataPath))
}

View File

@@ -21,6 +21,19 @@ func GetGiteaTestSourceRoot() string {
return *giteaTestSourceRoot
}
func DebugAppendLog(msg string, a ...any) {
f, _ := os.OpenFile("/tmp/debug.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644)
if f != nil {
defer f.Close()
fmt.Fprintf(f, msg+"\n", a...)
}
}
func DebugGetLogs() string {
buf, _ := os.ReadFile("/tmp/debug.log")
return string(buf)
}
func SetupGiteaTestEnv() {
if giteaTestSourceRoot != nil {
return // already initialized
@@ -69,6 +82,7 @@ func SetupGiteaTestEnv() {
// FIXME: debug
log.Error("SetupGiteaTestEnv CustomConf=%s\n%s\n%s\n", CustomConf, os.Getenv("GITEA_TEST_CONF_CONTENT"), log.Stack(2))
DebugAppendLog("SetupGiteaTestEnv CustomConf=%s\n%s\n%s\n", CustomConf, os.Getenv("GITEA_TEST_CONF_CONTENT"), log.Stack(2))
} else {
// CustomConf must be absolute path to make tests pass,
CustomConf = filepath.Join(AppWorkPath, giteaConf)