TZ needs to be defined, otherwise it was assumed to be local which then resulted in unpredictable commit hashes. We define it to UTC for unit tests PR have state "open" not "opened"
89 lines
2.7 KiB
Go
89 lines
2.7 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os/exec"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"src.opensuse.org/autogits/common"
|
|
)
|
|
|
|
const LocalCMD = "---"
|
|
|
|
func gitExecs(t *testing.T, git *common.GitHandlerImpl, cmds [][]string) {
|
|
for _, cmd := range cmds {
|
|
if cmd[0] == LocalCMD {
|
|
command := exec.Command(cmd[2], cmd[3:]...)
|
|
command.Dir = filepath.Join(git.GitPath, cmd[1])
|
|
command.Stdin = nil
|
|
command.Env = append([]string{"GIT_CONFIG_COUNT=1", "GIT_CONFIG_KEY_1=protocol.file.allow", "GIT_CONFIG_VALUE_1=always"}, common.ExtraGitParams...)
|
|
_, err := command.CombinedOutput()
|
|
if err != nil {
|
|
t.Errorf(" *** error: %v\n", err)
|
|
}
|
|
} else {
|
|
git.GitExecOrPanic(cmd[0], cmd[1:]...)
|
|
}
|
|
}
|
|
}
|
|
|
|
func commandsForPackages(dir, prefix string, startN, endN int) [][]string {
|
|
commands := make([][]string, (endN-startN+2)*6)
|
|
|
|
if dir == "" {
|
|
dir = "."
|
|
}
|
|
cmdIdx := 0
|
|
for idx := startN; idx <= endN; idx++ {
|
|
pkgDir := fmt.Sprintf("%s%d", prefix, idx)
|
|
|
|
commands[cmdIdx+0] = []string{"", "init", "-q", "--object-format", "sha256", "-b", "testing", pkgDir}
|
|
commands[cmdIdx+1] = []string{LocalCMD, pkgDir, "/usr/bin/touch", "testFile"}
|
|
commands[cmdIdx+2] = []string{pkgDir, "add", "testFile"}
|
|
commands[cmdIdx+3] = []string{pkgDir, "commit", "-m", "added testFile"}
|
|
commands[cmdIdx+4] = []string{pkgDir, "config", "receive.denyCurrentBranch", "ignore"}
|
|
commands[cmdIdx+5] = []string{"prj", "submodule", "add", filepath.Join("..", pkgDir), filepath.Join(dir, pkgDir)}
|
|
|
|
cmdIdx += 6
|
|
}
|
|
|
|
// add all the submodules to the prj
|
|
commands[cmdIdx+0] = []string{"prj", "commit", "-a", "-m", "adding subpackages"}
|
|
|
|
return commands
|
|
}
|
|
|
|
func setupGitForTests(t *testing.T, git *common.GitHandlerImpl) {
|
|
common.ExtraGitParams = []string{
|
|
"TZ=UTC",
|
|
"GIT_CONFIG_COUNT=1",
|
|
"GIT_CONFIG_KEY_0=protocol.file.allow",
|
|
"GIT_CONFIG_VALUE_0=always",
|
|
|
|
"GIT_AUTHOR_NAME=testname",
|
|
"GIT_AUTHOR_EMAIL=test@suse.com",
|
|
"GIT_AUTHOR_DATE='2005-04-07T22:13:13'",
|
|
"GIT_COMMITTER_NAME=testname",
|
|
"GIT_COMMITTER_EMAIL=test@suse.com",
|
|
"GIT_COMMITTER_DATE='2005-04-07T22:13:13'",
|
|
}
|
|
|
|
gitExecs(t, git, [][]string{
|
|
{"", "init", "-q", "--object-format", "sha256", "-b", "testing", "prj"},
|
|
{"", "init", "-q", "--object-format", "sha256", "-b", "testing", "foo"},
|
|
{LocalCMD, "foo", "/usr/bin/touch", "file1"},
|
|
{"foo", "add", "file1"},
|
|
{"foo", "commit", "-m", "first commit"},
|
|
{"prj", "config", "receive.denyCurrentBranch", "ignore"},
|
|
{"prj", "submodule", "init"},
|
|
{"prj", "submodule", "add", "../foo", "testRepo"},
|
|
{"prj", "add", ".gitmodules", "testRepo"},
|
|
{"prj", "commit", "-m", "First instance"},
|
|
{"prj", "submodule", "deinit", "testRepo"},
|
|
{LocalCMD, "foo", "/usr/bin/touch", "file2"},
|
|
{"foo", "add", "file2"},
|
|
{"foo", "commit", "-m", "added file2"},
|
|
})
|
|
}
|