diff options
| author | Carlos Martín Nieto <[email protected]> | 2014-06-07 18:33:09 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <[email protected]> | 2014-06-07 18:57:46 +0200 |
| commit | 12a3a1e05c03fdc9767ef62e5ff9e0d677946525 (patch) | |
| tree | 0bcdb684f1aa161dead4eb36cc1644554666fda3 /settings | |
| parent | aabeb7f585da1cf966191886eab732db0020a41a (diff) | |
Move the settings into the main git2go
Diffstat (limited to 'settings')
| -rw-r--r-- | settings/settings.go | 108 | ||||
| -rw-r--r-- | settings/settings_test.go | 66 |
2 files changed, 0 insertions, 174 deletions
diff --git a/settings/settings.go b/settings/settings.go deleted file mode 100644 index a7f96c7..0000000 --- a/settings/settings.go +++ /dev/null @@ -1,108 +0,0 @@ -package settings - -/* -#include <git2.h> - -int _go_git_opts_get_search_path(int level, git_buf *buf) -{ - return git_libgit2_opts(GIT_OPT_GET_SEARCH_PATH, level, buf); -} - -int _go_git_opts_set_search_path(int level, const char *path) -{ - return git_libgit2_opts(GIT_OPT_SET_SEARCH_PATH, level, path); -} - -int _go_git_opts_set_size_t(int opt, size_t val) -{ - return git_libgit2_opts(opt, val); -} - -int _go_git_opts_get_size_t(int opt, size_t *val) -{ - return git_libgit2_opts(opt, val); -} - -*/ -import "C" -import ( - "runtime" - "unsafe" - "github.com/libgit2/git2go" -) - -func MakeGitError(err C.int) error { - return git.MakeGitError2(int(err)) -} - -func SearchPath(level git.ConfigLevel) (string, error) { - var buf C.git_buf - defer C.git_buf_free(&buf) - - runtime.LockOSThread() - defer runtime.UnlockOSThread() - - err := C._go_git_opts_get_search_path(C.int(level), &buf) - if err < 0 { - return "", MakeGitError(err) - } - - return C.GoString(buf.ptr), nil -} - -func SetSearchPath(level git.ConfigLevel, path string) error { - cpath := C.CString(path) - defer C.free(unsafe.Pointer(cpath)) - - runtime.LockOSThread() - defer runtime.UnlockOSThread() - - err := C._go_git_opts_set_search_path(C.int(level), cpath) - if err < 0 { - return MakeGitError(err) - } - - return nil -} - -func getSizet(opt C.int) (int, error) { - runtime.LockOSThread() - defer runtime.UnlockOSThread() - - var val C.size_t - err := C._go_git_opts_get_size_t(opt, &val); - if err < 0 { - return 0, MakeGitError(err) - } - - return int(val), nil -} - -func setSizet(opt C.int, val int) error { - runtime.LockOSThread() - defer runtime.UnlockOSThread() - - cval := C.size_t(val) - err := C._go_git_opts_set_size_t(opt, cval); - if err < 0 { - return MakeGitError(err) - } - - return nil -} - -func MwindowSize() (int, error) { - return getSizet(C.GIT_OPT_GET_MWINDOW_SIZE) -} - -func SetMwindowSize(size int) error { - return setSizet(C.GIT_OPT_SET_MWINDOW_SIZE, size) -} - -func MwindowMappedLimit() (int, error) { - return getSizet(C.GIT_OPT_GET_MWINDOW_MAPPED_LIMIT) -} - -func SetMwindowMappedLimit(size int) error { - return setSizet(C.GIT_OPT_SET_MWINDOW_MAPPED_LIMIT, size) -} diff --git a/settings/settings_test.go b/settings/settings_test.go deleted file mode 100644 index 55b08c8..0000000 --- a/settings/settings_test.go +++ /dev/null @@ -1,66 +0,0 @@ -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) -} |
