Add solver tests from fixtures

Try to load with the recipe builder and solve simple installation queries.
Also adapt tests to the more accuracy from simple parser
This commit is contained in:
Ettore Di Giacinto
2019-10-31 12:35:34 +01:00
parent 47128e932d
commit 66631f9af9
3 changed files with 16 additions and 22 deletions

View File

@@ -26,8 +26,8 @@ import (
type FakeParser struct {
}
func (f *FakeParser) ScanEbuild(path string) ([]pkg.Package, error) {
return []pkg.Package{&pkg.DefaultPackage{Name: "Fake"}}, nil
func (f *FakeParser) ScanEbuild(path string, t pkg.Tree) ([]pkg.Package, error) {
return []pkg.Package{&pkg.DefaultPackage{Name: path}}, nil
}
var _ = Describe("GentooBuilder", func() {

View File

@@ -33,13 +33,13 @@ var _ = Describe("GentooBuilder", func() {
Expect(tree.GetPackageSet().Clean()).ToNot(HaveOccurred())
}()
Expect(len(tree.GetPackageSet().GetPackages())).To(Equal(10))
Expect(len(tree.GetPackageSet().GetPackages())).To(Equal(11))
for _, pid := range tree.GetPackageSet().GetPackages() {
p, err := tree.GetPackageSet().GetPackage(pid)
Expect(err).ToNot(HaveOccurred())
Expect(p.GetName()).To(ContainSubstring("pinentry"))
Expect(p.GetVersion()).To(ContainSubstring("1."))
// Expect(p.GetVersion()).To(ContainSubstring("1."))
}
})

View File

@@ -36,7 +36,7 @@ var _ = Describe("Recipe", func() {
Expect(tree.GetPackageSet().Clean()).ToNot(HaveOccurred())
}()
Expect(len(tree.GetPackageSet().GetPackages())).To(Equal(10))
Expect(len(tree.GetPackageSet().GetPackages())).To(Equal(11))
generalRecipe := NewGeneralRecipe()
generalRecipe.WithTree(tree)
@@ -58,7 +58,7 @@ var _ = Describe("Recipe", func() {
Expect(tree.GetPackageSet().Clean()).ToNot(HaveOccurred())
}()
Expect(len(tree.GetPackageSet().GetPackages())).To(Equal(10))
Expect(len(tree.GetPackageSet().GetPackages())).To(Equal(11))
generalRecipe := NewGeneralRecipe()
generalRecipe.WithTree(tree)
@@ -72,13 +72,12 @@ var _ = Describe("Recipe", func() {
Expect(err).ToNot(HaveOccurred())
Expect(generalRecipe.Tree()).ToNot(BeNil()) // It should be populated back at this point
Expect(len(generalRecipe.Tree().GetPackageSet().GetPackages())).To(Equal(10))
Expect(len(generalRecipe.Tree().GetPackageSet().GetPackages())).To(Equal(11))
for _, pid := range tree.GetPackageSet().GetPackages() {
p, err := tree.GetPackageSet().GetPackage(pid)
Expect(err).ToNot(HaveOccurred())
Expect(p.GetName()).To(ContainSubstring("pinentry"))
Expect(p.GetVersion()).To(ContainSubstring("1."))
}
})
})
@@ -96,9 +95,9 @@ var _ = Describe("Recipe", func() {
Expect(tree.GetPackageSet().Clean()).ToNot(HaveOccurred())
}()
Expect(len(tree.GetPackageSet().GetPackages())).To(Equal(10))
Expect(len(tree.GetPackageSet().GetPackages())).To(Equal(11))
pack, err := tree.FindPackage(&pkg.DefaultPackage{Name: "pinentry", Version: "1.0.0-r2"})
pack, err := tree.FindPackage(&pkg.DefaultPackage{Name: "pinentry", Version: "1.0.0-r2", Category: "app-crypt"}) // Note: the definition depends on pinentry-base without an explicit version
Expect(err).ToNot(HaveOccurred())
world, err := tree.World()
Expect(err).ToNot(HaveOccurred())
@@ -108,18 +107,13 @@ var _ = Describe("Recipe", func() {
Expect(err).ToNot(HaveOccurred())
Expect(len(solution)).To(Equal(3))
// for _, assertion := range solution {
// fmt.Println(assertion.Package, assertion.Value)
// for _, req := range assertion.Package.GetRequires() {
// fmt.Println("\t-> ", req)
// }
// for _, con := range assertion.Package.GetConflicts() {
// fmt.Println("\t!! ", con)
// }
// }
var allSol string
for _, sol := range solution {
allSol = allSol + "\n" + sol.ToString()
}
Expect(allSol).To(ContainSubstring("app-crypt/pinentry-base installed: true"))
Expect(allSol).To(ContainSubstring("app-crypt/pinentry 1.1.0-r2 installed: false"))
Expect(allSol).To(ContainSubstring("app-crypt/pinentry 1.0.0-r2 installed: true"))
})
})
})