From 49c1527724d8485d5ebd834723b09d61ced8b2d3 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Tue, 4 Apr 2017 14:53:24 +0200 Subject: [PATCH] vendor: Update github.com/calmh/du (ref #4079) --- vendor/github.com/calmh/du/README.md | 14 ---------- .../github.com/calmh/du/diskusage_windows.go | 11 ++++++-- .../calmh/du/diskusage_windows_test.go | 27 +++++++++++++++++++ vendor/manifest | 4 +-- 4 files changed, 38 insertions(+), 18 deletions(-) delete mode 100644 vendor/github.com/calmh/du/README.md create mode 100644 vendor/github.com/calmh/du/diskusage_windows_test.go diff --git a/vendor/github.com/calmh/du/README.md b/vendor/github.com/calmh/du/README.md deleted file mode 100644 index 0cb5e5d73..000000000 --- a/vendor/github.com/calmh/du/README.md +++ /dev/null @@ -1,14 +0,0 @@ -du -== - -Get total and available disk space on a given volume. - -Documentation -------------- - -http://godoc.org/github.com/calmh/du - -License -------- - -Public Domain diff --git a/vendor/github.com/calmh/du/diskusage_windows.go b/vendor/github.com/calmh/du/diskusage_windows.go index 6ed5e52e2..c007f195a 100644 --- a/vendor/github.com/calmh/du/diskusage_windows.go +++ b/vendor/github.com/calmh/du/diskusage_windows.go @@ -1,6 +1,7 @@ package du import ( + "runtime" "syscall" "unsafe" ) @@ -13,14 +14,20 @@ func Get(path string) (Usage, error) { var u Usage + pathw, err := syscall.UTF16PtrFromString(path) + if err != nil { + return Usage{}, err + } + ret, _, err := c.Call( - uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(path))), + uintptr(unsafe.Pointer(pathw)), uintptr(unsafe.Pointer(&u.FreeBytes)), uintptr(unsafe.Pointer(&u.TotalBytes)), uintptr(unsafe.Pointer(&u.AvailBytes))) + runtime.KeepAlive(pathw) if ret == 0 { - return u, err + return Usage{}, err } return u, nil diff --git a/vendor/github.com/calmh/du/diskusage_windows_test.go b/vendor/github.com/calmh/du/diskusage_windows_test.go new file mode 100644 index 000000000..84542d2c6 --- /dev/null +++ b/vendor/github.com/calmh/du/diskusage_windows_test.go @@ -0,0 +1,27 @@ +package du + +import "testing" + +func TestDiskUsage(t *testing.T) { + cases := []struct { + path string + ok bool + }{ + {"c:\\", true}, + {"c:\\windows", true}, + {"c:\\aux", false}, + {"c:\\does-not-exist-09sadkjhdsa98234bj23hgasd98", false}, + } + for _, tc := range cases { + res, err := Get(tc.path) + if tc.ok { + if err != nil { + t.Errorf("Unexpected error Get(%q) => %v", tc.path, err) + } else if res.TotalBytes == 0 || res.AvailBytes == 0 || res.FreeBytes == 0 { + t.Errorf("Suspicious result Get(%q) => %v", tc.path, res) + } + } else if err == nil { + t.Errorf("Unexpected nil error in Get(%q)", tc.path) + } + } +} diff --git a/vendor/manifest b/vendor/manifest index c61edb430..c3e0bead0 100644 --- a/vendor/manifest +++ b/vendor/manifest @@ -34,8 +34,8 @@ { "importpath": "github.com/calmh/du", "repository": "https://github.com/calmh/du", - "vcs": "", - "revision": "3c0690cca16228b97741327b1b6781397afbdb24", + "vcs": "git", + "revision": "dd9dc2043353249b2910b29dcfd6f6d4e64f39be", "branch": "master" }, {