wip: add support of building multiple packages at once

This commit is contained in:
2025-02-12 14:11:46 +03:00
parent 083df3c7aa
commit e773e3ee12
7 changed files with 309 additions and 218 deletions

View File

@ -191,7 +191,7 @@ rm -f %s`, tmpFilePath)
fl, err := syntax.NewParser().Parse(strings.NewReader(testScript), "alr.sh")
assert.NoError(t, err)
_, err = b.executeFirstPass(fl)
_, _, err = b.executeFirstPass(fl)
assert.NoError(t, err)
_, err = os.Stat(tmpFilePath)
@ -203,7 +203,7 @@ func TestExecuteFirstPassIsCorrect(t *testing.T) {
Name string
Script string
Opts types.BuildOpts
Expected func(t *testing.T, vars *types.BuildVars)
Expected func(t *testing.T, vars []*types.BuildVars)
}
for _, tc := range []testCase{{
@ -220,12 +220,13 @@ maintainer='Ivan Ivanov'
Manager: &TestManager{},
Interactive: false,
},
Expected: func(t *testing.T, vars *types.BuildVars) {
assert.Equal(t, vars.Name, "test")
assert.Equal(t, vars.Version, "1.0.0")
assert.Equal(t, vars.Release, int(1))
assert.Equal(t, vars.Epoch, uint(2))
assert.Equal(t, vars.Description, "Test package")
Expected: func(t *testing.T, vars []*types.BuildVars) {
assert.Equal(t, 1, len(vars))
assert.Equal(t, vars[0].Name, "test")
assert.Equal(t, vars[0].Version, "1.0.0")
assert.Equal(t, vars[0].Release, int(1))
assert.Equal(t, vars[0].Epoch, uint(2))
assert.Equal(t, vars[0].Description, "Test package")
},
}, {
Name: "multiple packages",
@ -248,13 +249,14 @@ meta_bar() {
}
`,
Opts: types.BuildOpts{
Package: "foo",
Packages: []string{"foo"},
Manager: &TestManager{},
Interactive: false,
},
Expected: func(t *testing.T, vars *types.BuildVars) {
assert.Equal(t, vars.Name, "foo")
assert.Equal(t, vars.Description, "Foo package")
Expected: func(t *testing.T, vars []*types.BuildVars) {
assert.Equal(t, 1, len(vars))
assert.Equal(t, vars[0].Name, "foo")
assert.Equal(t, vars[0].Description, "Foo package")
},
}} {
t.Run(tc.Name, func(t *testing.T) {
@ -275,10 +277,10 @@ meta_bar() {
fl, err := syntax.NewParser().Parse(strings.NewReader(tc.Script), "alr.sh")
assert.NoError(t, err)
vars, err := b.executeFirstPass(fl)
_, allVars, err := b.executeFirstPass(fl)
assert.NoError(t, err)
tc.Expected(t, vars)
tc.Expected(t, allVars)
})
}
}