This commit is contained in:
Adam Majer 2025-02-20 19:25:36 +01:00
parent bfeaed40d5
commit ee6d704e1e
3 changed files with 21 additions and 19 deletions

View File

@ -1,4 +1,4 @@
package main
package common
import (
"bytes"

View File

@ -1,28 +1,30 @@
package main
package common_test
import (
"bytes"
"slices"
"strings"
"testing"
"src.opensuse.org/autogits/common"
)
func TestSubmodulesParsing(t *testing.T) {
tests := []struct {
name string
file string
subs []Submodule
subs []common.Submodule
has_error bool
}{
{
name: "Empty submodules file",
file: "",
subs: []Submodule{},
subs: []common.Submodule{},
},
{
name: "Empty single submodule",
file: "[submodule \"Foo\"]",
subs: []Submodule{
subs: []common.Submodule{
{Name: "Foo"},
},
},
@ -59,7 +61,7 @@ func TestSubmodulesParsing(t *testing.T) {
{
name: "Submodule with one entry",
file: "[submodule \"libfoo\"]\npath = foo\n\n",
subs: []Submodule{
subs: []common.Submodule{
{
Name: "libfoo",
Path: "foo",
@ -69,7 +71,7 @@ func TestSubmodulesParsing(t *testing.T) {
{
name: "Submodules with funny entries entries",
file: "[submodule \"libfoo\"]\npath = foo [ bar \n\n [ submodule \"test \" ]\npath=ma ma\nurl= safe",
subs: []Submodule{
subs: []common.Submodule{
{
Name: "libfoo",
Path: "foo [ bar",
@ -84,7 +86,7 @@ func TestSubmodulesParsing(t *testing.T) {
{
name: "Submodule with valid entries",
file: "[submodule \"libfoo\"]\npath=foo\nurl=goo\nupdate=none\nbranch=test\nignore=all\nshallow=true",
subs: []Submodule{
subs: []common.Submodule{
{
Name: "libfoo",
Path: "foo",
@ -105,7 +107,7 @@ func TestSubmodulesParsing(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
mods, err := ParseSubmodulesFile(strings.NewReader(test.file))
mods, err := common.ParseSubmodulesFile(strings.NewReader(test.file))
if test.has_error {
if err == nil {
t.Error("Expected an error")
@ -123,7 +125,7 @@ func TestSubmodulesParsing(t *testing.T) {
func TestSubmodulesWriting(t *testing.T) {
tests := []struct {
name string
subs []Submodule
subs []common.Submodule
output []byte
has_error bool
}{
@ -133,7 +135,7 @@ func TestSubmodulesWriting(t *testing.T) {
},
{
name: "single submodule",
subs: []Submodule{
subs: []common.Submodule{
{
Name: "foo",
Url: "bar",
@ -143,7 +145,7 @@ func TestSubmodulesWriting(t *testing.T) {
},
{
name: "empty name submodule",
subs: []Submodule{
subs: []common.Submodule{
{
Name: "foo",
Url: "bar",
@ -154,7 +156,7 @@ func TestSubmodulesWriting(t *testing.T) {
},
{
name: "submodule with all the things",
subs: []Submodule{
subs: []common.Submodule{
{
Name: "foo",
Url: "bar",
@ -176,7 +178,7 @@ func TestSubmodulesWriting(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
out := bytes.Buffer{}
if err := WriteSubmodules(test.subs, &out); err != nil {
if err := common.WriteSubmodules(test.subs, &out); err != nil {
if !test.has_error {
t.Error(err)
}

View File

@ -262,15 +262,15 @@ func (rs *PRSet) Merge() error {
return fmt.Errorf("Failed fetching data during .gitmodules merge resoulution: %w", err)
}
subs1, err := ParseSubmodulesFile(strings.NewReader(s1))
subs1, err := common.ParseSubmodulesFile(strings.NewReader(s1))
if err != nil {
return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err)
}
subs2, err := ParseSubmodulesFile(strings.NewReader(s2))
subs2, err := common.ParseSubmodulesFile(strings.NewReader(s2))
if err != nil {
return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err)
}
subs3, err := ParseSubmodulesFile(strings.NewReader(s3))
subs3, err := common.ParseSubmodulesFile(strings.NewReader(s3))
if err != nil {
return fmt.Errorf("Failed parsing submodule file [%s] in merge: %w", s.States[0], err)
}
@ -279,7 +279,7 @@ func (rs *PRSet) Merge() error {
// this will update submodules
mergedSubs := slices.Concat(subs1, subs2, subs3)
var filteredSubs []Submodule = make([]Submodule, 0, max(len(subs1), len(subs2), len(subs3)))
var filteredSubs []common.Submodule = make([]common.Submodule, 0, max(len(subs1), len(subs2), len(subs3)))
nextSub:
for subName := range submodules {
@ -296,7 +296,7 @@ func (rs *PRSet) Merge() error {
if err != nil {
return fmt.Errorf("Can't open .gitmodules for writing: %w", err)
}
if err = WriteSubmodules(filteredSubs, out); err != nil {
if err = common.WriteSubmodules(filteredSubs, out); err != nil {
return fmt.Errorf("Can't write .gitmodules: %w", err)
}
if out.Close(); err != nil {