c++: address deduction and concepts [CWG2918]
[official-gcc.git] / libgo / go / path / filepath / example_unix_test.go
blobb364cf0608de2b2464fc7562bb47f4b81a092582
1 // Copyright 2013 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 //go:build !windows && !plan9
7 package filepath_test
9 import (
10 "fmt"
11 "path/filepath"
14 func ExampleSplitList() {
15 fmt.Println("On Unix:", filepath.SplitList("/a/b/c:/usr/bin"))
16 // Output:
17 // On Unix: [/a/b/c /usr/bin]
20 func ExampleRel() {
21 paths := []string{
22 "/a/b/c",
23 "/b/c",
24 "./b/c",
26 base := "/a"
28 fmt.Println("On Unix:")
29 for _, p := range paths {
30 rel, err := filepath.Rel(base, p)
31 fmt.Printf("%q: %q %v\n", p, rel, err)
34 // Output:
35 // On Unix:
36 // "/a/b/c": "b/c" <nil>
37 // "/b/c": "../b/c" <nil>
38 // "./b/c": "" Rel: can't make ./b/c relative to /a
41 func ExampleSplit() {
42 paths := []string{
43 "/home/arnie/amelia.jpg",
44 "/mnt/photos/",
45 "rabbit.jpg",
46 "/usr/local//go",
48 fmt.Println("On Unix:")
49 for _, p := range paths {
50 dir, file := filepath.Split(p)
51 fmt.Printf("input: %q\n\tdir: %q\n\tfile: %q\n", p, dir, file)
53 // Output:
54 // On Unix:
55 // input: "/home/arnie/amelia.jpg"
56 // dir: "/home/arnie/"
57 // file: "amelia.jpg"
58 // input: "/mnt/photos/"
59 // dir: "/mnt/photos/"
60 // file: ""
61 // input: "rabbit.jpg"
62 // dir: ""
63 // file: "rabbit.jpg"
64 // input: "/usr/local//go"
65 // dir: "/usr/local//"
66 // file: "go"
69 func ExampleJoin() {
70 fmt.Println("On Unix:")
71 fmt.Println(filepath.Join("a", "b", "c"))
72 fmt.Println(filepath.Join("a", "b/c"))
73 fmt.Println(filepath.Join("a/b", "c"))
74 fmt.Println(filepath.Join("a/b", "/c"))
76 fmt.Println(filepath.Join("a/b", "../../../xyz"))
78 // Output:
79 // On Unix:
80 // a/b/c
81 // a/b/c
82 // a/b/c
83 // a/b/c
84 // ../xyz
87 func ExampleMatch() {
88 fmt.Println("On Unix:")
89 fmt.Println(filepath.Match("/home/catch/*", "/home/catch/foo"))
90 fmt.Println(filepath.Match("/home/catch/*", "/home/catch/foo/bar"))
91 fmt.Println(filepath.Match("/home/?opher", "/home/gopher"))
92 fmt.Println(filepath.Match("/home/\\*", "/home/*"))
94 // Output:
95 // On Unix:
96 // true <nil>
97 // false <nil>
98 // true <nil>
99 // true <nil>
102 func ExampleBase() {
103 fmt.Println("On Unix:")
104 fmt.Println(filepath.Base("/foo/bar/baz.js"))
105 fmt.Println(filepath.Base("/foo/bar/baz"))
106 fmt.Println(filepath.Base("/foo/bar/baz/"))
107 fmt.Println(filepath.Base("dev.txt"))
108 fmt.Println(filepath.Base("../todo.txt"))
109 fmt.Println(filepath.Base(".."))
110 fmt.Println(filepath.Base("."))
111 fmt.Println(filepath.Base("/"))
112 fmt.Println(filepath.Base(""))
114 // Output:
115 // On Unix:
116 // baz.js
117 // baz
118 // baz
119 // dev.txt
120 // todo.txt
121 // ..
122 // .
123 // /
124 // .
127 func ExampleDir() {
128 fmt.Println("On Unix:")
129 fmt.Println(filepath.Dir("/foo/bar/baz.js"))
130 fmt.Println(filepath.Dir("/foo/bar/baz"))
131 fmt.Println(filepath.Dir("/foo/bar/baz/"))
132 fmt.Println(filepath.Dir("/dirty//path///"))
133 fmt.Println(filepath.Dir("dev.txt"))
134 fmt.Println(filepath.Dir("../todo.txt"))
135 fmt.Println(filepath.Dir(".."))
136 fmt.Println(filepath.Dir("."))
137 fmt.Println(filepath.Dir("/"))
138 fmt.Println(filepath.Dir(""))
140 // Output:
141 // On Unix:
142 // /foo/bar
143 // /foo/bar
144 // /foo/bar/baz
145 // /dirty/path
146 // .
147 // ..
148 // .
149 // .
150 // /
151 // .
154 func ExampleIsAbs() {
155 fmt.Println("On Unix:")
156 fmt.Println(filepath.IsAbs("/home/gopher"))
157 fmt.Println(filepath.IsAbs(".bashrc"))
158 fmt.Println(filepath.IsAbs(".."))
159 fmt.Println(filepath.IsAbs("."))
160 fmt.Println(filepath.IsAbs("/"))
161 fmt.Println(filepath.IsAbs(""))
163 // Output:
164 // On Unix:
165 // true
166 // false
167 // false
168 // false
169 // true
170 // false