summaryrefslogtreecommitdiffstats
path: root/src/path/filepath/example_unix_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/path/filepath/example_unix_test.go')
-rw-r--r--src/path/filepath/example_unix_test.go171
1 files changed, 171 insertions, 0 deletions
diff --git a/src/path/filepath/example_unix_test.go b/src/path/filepath/example_unix_test.go
new file mode 100644
index 0000000..b364cf0
--- /dev/null
+++ b/src/path/filepath/example_unix_test.go
@@ -0,0 +1,171 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !windows && !plan9
+
+package filepath_test
+
+import (
+ "fmt"
+ "path/filepath"
+)
+
+func ExampleSplitList() {
+ fmt.Println("On Unix:", filepath.SplitList("/a/b/c:/usr/bin"))
+ // Output:
+ // On Unix: [/a/b/c /usr/bin]
+}
+
+func ExampleRel() {
+ paths := []string{
+ "/a/b/c",
+ "/b/c",
+ "./b/c",
+ }
+ base := "/a"
+
+ fmt.Println("On Unix:")
+ for _, p := range paths {
+ rel, err := filepath.Rel(base, p)
+ fmt.Printf("%q: %q %v\n", p, rel, err)
+ }
+
+ // Output:
+ // On Unix:
+ // "/a/b/c": "b/c" <nil>
+ // "/b/c": "../b/c" <nil>
+ // "./b/c": "" Rel: can't make ./b/c relative to /a
+}
+
+func ExampleSplit() {
+ paths := []string{
+ "/home/arnie/amelia.jpg",
+ "/mnt/photos/",
+ "rabbit.jpg",
+ "/usr/local//go",
+ }
+ fmt.Println("On Unix:")
+ for _, p := range paths {
+ dir, file := filepath.Split(p)
+ fmt.Printf("input: %q\n\tdir: %q\n\tfile: %q\n", p, dir, file)
+ }
+ // Output:
+ // On Unix:
+ // input: "/home/arnie/amelia.jpg"
+ // dir: "/home/arnie/"
+ // file: "amelia.jpg"
+ // input: "/mnt/photos/"
+ // dir: "/mnt/photos/"
+ // file: ""
+ // input: "rabbit.jpg"
+ // dir: ""
+ // file: "rabbit.jpg"
+ // input: "/usr/local//go"
+ // dir: "/usr/local//"
+ // file: "go"
+}
+
+func ExampleJoin() {
+ fmt.Println("On Unix:")
+ fmt.Println(filepath.Join("a", "b", "c"))
+ fmt.Println(filepath.Join("a", "b/c"))
+ fmt.Println(filepath.Join("a/b", "c"))
+ fmt.Println(filepath.Join("a/b", "/c"))
+
+ fmt.Println(filepath.Join("a/b", "../../../xyz"))
+
+ // Output:
+ // On Unix:
+ // a/b/c
+ // a/b/c
+ // a/b/c
+ // a/b/c
+ // ../xyz
+}
+
+func ExampleMatch() {
+ fmt.Println("On Unix:")
+ fmt.Println(filepath.Match("/home/catch/*", "/home/catch/foo"))
+ fmt.Println(filepath.Match("/home/catch/*", "/home/catch/foo/bar"))
+ fmt.Println(filepath.Match("/home/?opher", "/home/gopher"))
+ fmt.Println(filepath.Match("/home/\\*", "/home/*"))
+
+ // Output:
+ // On Unix:
+ // true <nil>
+ // false <nil>
+ // true <nil>
+ // true <nil>
+}
+
+func ExampleBase() {
+ fmt.Println("On Unix:")
+ fmt.Println(filepath.Base("/foo/bar/baz.js"))
+ fmt.Println(filepath.Base("/foo/bar/baz"))
+ fmt.Println(filepath.Base("/foo/bar/baz/"))
+ fmt.Println(filepath.Base("dev.txt"))
+ fmt.Println(filepath.Base("../todo.txt"))
+ fmt.Println(filepath.Base(".."))
+ fmt.Println(filepath.Base("."))
+ fmt.Println(filepath.Base("/"))
+ fmt.Println(filepath.Base(""))
+
+ // Output:
+ // On Unix:
+ // baz.js
+ // baz
+ // baz
+ // dev.txt
+ // todo.txt
+ // ..
+ // .
+ // /
+ // .
+}
+
+func ExampleDir() {
+ fmt.Println("On Unix:")
+ fmt.Println(filepath.Dir("/foo/bar/baz.js"))
+ fmt.Println(filepath.Dir("/foo/bar/baz"))
+ fmt.Println(filepath.Dir("/foo/bar/baz/"))
+ fmt.Println(filepath.Dir("/dirty//path///"))
+ fmt.Println(filepath.Dir("dev.txt"))
+ fmt.Println(filepath.Dir("../todo.txt"))
+ fmt.Println(filepath.Dir(".."))
+ fmt.Println(filepath.Dir("."))
+ fmt.Println(filepath.Dir("/"))
+ fmt.Println(filepath.Dir(""))
+
+ // Output:
+ // On Unix:
+ // /foo/bar
+ // /foo/bar
+ // /foo/bar/baz
+ // /dirty/path
+ // .
+ // ..
+ // .
+ // .
+ // /
+ // .
+}
+
+func ExampleIsAbs() {
+ fmt.Println("On Unix:")
+ fmt.Println(filepath.IsAbs("/home/gopher"))
+ fmt.Println(filepath.IsAbs(".bashrc"))
+ fmt.Println(filepath.IsAbs(".."))
+ fmt.Println(filepath.IsAbs("."))
+ fmt.Println(filepath.IsAbs("/"))
+ fmt.Println(filepath.IsAbs(""))
+
+ // Output:
+ // On Unix:
+ // true
+ // false
+ // false
+ // false
+ // true
+ // false
+}