| package settings |
| |
| import ( |
| "testing" |
| "runtime" |
| "github.com/libgit2/git2go" |
| ) |
| |
| type pathPair struct { |
| Level git.ConfigLevel |
| Path string |
| } |
| |
| func TestSearchPath(t *testing.T) { |
| paths := []pathPair{ |
| pathPair{git.ConfigLevelSystem, "/tmp/system"}, |
| pathPair{git.ConfigLevelGlobal, "/tmp/global"}, |
| pathPair{git.ConfigLevelXDG, "/tmp/xdg"}, |
| } |
| |
| for _, pair := range paths { |
| err := SetSearchPath(pair.Level, pair.Path) |
| checkFatal(t, err) |
| |
| actual, err := SearchPath(pair.Level) |
| checkFatal(t, err) |
| |
| if pair.Path != actual { |
| t.Fatal("Search paths don't match") |
| } |
| } |
| } |
| |
| func TestMmapSizes(t *testing.T) { |
| size := 42 * 1024 |
| |
| err := SetMwindowSize(size) |
| checkFatal(t, err) |
| |
| actual, err := MwindowSize() |
| if size != actual { |
| t.Fatal("Sizes don't match") |
| } |
| |
| err = SetMwindowMappedLimit(size) |
| checkFatal(t, err) |
| |
| actual, err = MwindowMappedLimit() |
| if size != actual { |
| t.Fatal("Sizes don't match") |
| } |
| } |
| |
| func checkFatal(t *testing.T, err error) { |
| if err == nil { |
| return |
| } |
| |
| // The failure happens at wherever we were called, not here |
| _, file, line, ok := runtime.Caller(1) |
| if !ok { |
| t.Fatal() |
| } |
| |
| t.Fatalf("Fail at %v:%v; %v", file, line, err) |
| } |