]> Cypherpunks repositories - gostls13.git/commitdiff
path: add IsAbs
authorIvan Krasin <krasin@golang.org>
Thu, 9 Sep 2010 05:42:43 +0000 (01:42 -0400)
committerRuss Cox <rsc@golang.org>
Thu, 9 Sep 2010 05:42:43 +0000 (01:42 -0400)
R=rsc, imkrasin, r
CC=golang-dev
https://golang.org/cl/1969042

src/pkg/path/path.go
src/pkg/path/path_test.go

index 8ed6a28d580085c2422d18422a00171cf64047ee..79b30009307cc858ae76639ce6ae61f307d1ea25 100644 (file)
@@ -208,3 +208,9 @@ func Base(name string) string {
        }
        return name
 }
+
+// IsAbs returns true if the path is absolute.
+func IsAbs(path string) bool {
+       // TODO: Add Windows support
+       return strings.HasPrefix(path, "/")
+}
index 6915b48bbb089aaf4254e697ad7f4f38d9e0959c..513dcd967c469ce7df1a5316767142fe7b2663ec 100644 (file)
@@ -307,3 +307,27 @@ func TestBase(t *testing.T) {
                }
        }
 }
+
+type IsAbsTest struct {
+       path  string
+       isAbs bool
+}
+
+var isAbsTests = []IsAbsTest{
+       IsAbsTest{"", false},
+       IsAbsTest{"/", true},
+       IsAbsTest{"/usr/bin/gcc", true},
+       IsAbsTest{"..", false},
+       IsAbsTest{"/a/../bb", true},
+       IsAbsTest{".", false},
+       IsAbsTest{"./", false},
+       IsAbsTest{"lala", false},
+}
+
+func TestIsAbs(t *testing.T) {
+       for _, test := range isAbsTests {
+               if r := IsAbs(test.path); r != test.isAbs {
+                       t.Errorf("IsAbs(%q) = %v, want %v", test.path, r, test.isAbs)
+               }
+       }
+}