diff --git a/aur/aur_test.go b/aur/aur_test.go index cae7b454..19c0968a 100644 --- a/aur/aur_test.go +++ b/aur/aur_test.go @@ -1,11 +1,13 @@ package aur import ( + "os" "reflect" "testing" ) func TestSearch(t *testing.T) { + eN := "yay" eD := "Yet another yogurt. Pacman wrapper with AUR support written in go." result, _, err := Search("yay", true) @@ -27,6 +29,7 @@ func TestSearch(t *testing.T) { } func benchmarkSearch(search string, sort bool, b *testing.B) { + for n := 0; n < b.N; n++ { Search(search, sort) } @@ -38,6 +41,7 @@ func BenchmarkSearchSimpleSorted(b *testing.B) { benchmarkSearch("yay", true, b func BenchmarkSearchComplexSorted(b *testing.B) { benchmarkSearch("linux", true, b) } func TestInfo(t *testing.T) { + eN := "yay" eD := "Yet another yogurt. Pacman wrapper with AUR support written in go." eM := []string{"go", "git"} @@ -60,14 +64,26 @@ func TestInfo(t *testing.T) { } func TestUpgrade(t *testing.T) { + old := os.Stdout + _, w, _ := os.Pipe() + os.Stdout = w + err := Upgrade([]string{}) if err != nil { t.Fatalf("Expected err to be nil but it was %s", err) } + + os.Stdout = old } func BenchmarkUpgrade(b *testing.B) { + old := os.Stdout + _, w, _ := os.Pipe() + os.Stdout = w + for n := 0; n < b.N; n++ { Upgrade([]string{}) } + + os.Stdout = old } diff --git a/pacman/pacman.go b/pacman/pacman.go index 1b33ab12..6f91612f 100644 --- a/pacman/pacman.go +++ b/pacman/pacman.go @@ -26,12 +26,6 @@ type Result struct { // PacmanConf describes the default pacman config file const PacmanConf string = "/etc/pacman.conf" -// Determines NumberMenu and Search Order -const ( - DownTop = iota - TopDown -) - var conf alpm.PacmanConfig func init() { @@ -85,7 +79,7 @@ func Search(pkgName string) (s RepoSearch, n int, err error) { var installed bool dbS := dbList.Slice() var f int - if util.SortMode == DownTop { + if util.SortMode == util.BottomUp { f = len(dbS) - 1 } else { f = 0 @@ -95,7 +89,7 @@ func Search(pkgName string) (s RepoSearch, n int, err error) { pkgS := dbS[f].PkgCache().Slice() var i int - if util.SortMode == DownTop { + if util.SortMode == util.BottomUp { i = len(pkgS) - 1 } else { i = 0 @@ -120,7 +114,7 @@ func Search(pkgName string) (s RepoSearch, n int, err error) { n++ } - if util.SortMode == DownTop { + if util.SortMode == util.BottomUp { if i > 0 { i-- } else { @@ -135,7 +129,7 @@ func Search(pkgName string) (s RepoSearch, n int, err error) { } } - if util.SortMode == DownTop { + if util.SortMode == util.BottomUp { if f > 0 { f-- } else { diff --git a/pacman/pacman_test.go b/pacman/pacman_test.go index 4f17f5f3..e6685f40 100644 --- a/pacman/pacman_test.go +++ b/pacman/pacman_test.go @@ -2,20 +2,58 @@ package pacman import "testing" import "github.com/jguer/yay/util" +import "os" + +func benchmarkPrintSearch(search string, b *testing.B) { + old := os.Stdout + _, w, _ := os.Pipe() + os.Stdout = w + + for n := 0; n < b.N; n++ { + res, _, _ := Search(search) + res.PrintSearch() + } + os.Stdout = old +} + +func BenchmarkPrintSearchSimpleTopDown(b *testing.B) { + util.SortMode = util.TopDown + benchmarkPrintSearch("chromium", b) +} +func BenchmarkPrintSearchComplexTopDown(b *testing.B) { + util.SortMode = util.TopDown + benchmarkPrintSearch("linux", b) +} + +func BenchmarkPrintSearchSimpleBottomUp(b *testing.B) { + util.SortMode = util.BottomUp + benchmarkPrintSearch("chromium", b) +} +func BenchmarkPrintSearchComplexBottomUp(b *testing.B) { + util.SortMode = util.BottomUp + benchmarkPrintSearch("linux", b) +} func benchmarkSearch(search string, b *testing.B) { for n := 0; n < b.N; n++ { Search(search) } } - func BenchmarkSearchSimpleTopDown(b *testing.B) { - util.SortMode = TopDown + util.SortMode = util.TopDown benchmarkSearch("chromium", b) } -func BenchmarkSearchComplexTopDown(b *testing.B) { util.SortMode = TopDown; benchmarkSearch("linux", b) } -func BenchmarkSearchSimpleDownTop(b *testing.B) { - util.SortMode = DownTop + +func BenchmarkSearchSimpleBottomUp(b *testing.B) { + util.SortMode = util.BottomUp benchmarkSearch("chromium", b) } -func BenchmarkSearchComplexDownTop(b *testing.B) { util.SortMode = DownTop; benchmarkSearch("linux", b) } + +func BenchmarkSearchComplexTopDown(b *testing.B) { + util.SortMode = util.TopDown + benchmarkSearch("linux", b) +} +func BenchmarkSearchComplexBottomUp(b *testing.B) { + util.SortMode = util.BottomUp + benchmarkSearch("linux", b) +}