github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/pkg/path/testdata/join.txtar (about) 1 // Copyright 2020 CUE Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 16 -- in.cue -- 17 import "path" 18 19 joinSingle: path.Join(["a", "b"]) 20 joinSingle: "a/b" 21 22 Join: unix: _ 23 Join: windows: _ 24 25 Join: [OS=string]: [...{ 26 arg: [...string] 27 28 out: path.Join(arg, OS) 29 }] 30 31 Join: [_]: [ 32 {arg: ["a", "b"]}, 33 {arg: ["a/b", "c/d"]}, 34 35 {arg: ["/"]}, 36 {arg: ["a"]}, 37 38 {arg: ["a", "b"]}, 39 {arg: ["a", ""]}, 40 {arg: ["", "b"]}, 41 {arg: ["/", "a"]}, 42 {arg: ["/", "a/b"]}, 43 {arg: ["/", ""]}, 44 {arg: ["//", "a"]}, 45 46 {arg: ["directory", "file"]}, 47 48 {arg: [#"C:\Windows\"#, #"System32"#]}, 49 {arg: [#"C:\Windows\"#, #""#]}, 50 {arg: [#"C:\"#, #"Windows"#]}, 51 {arg: [#"C:"#, #"a\b"#]}, 52 {arg: [#"C:"#, #"a"#, #"b"#]}, 53 {arg: [#"C:"#, #""#, #""#, #"b"#]}, 54 {arg: [#"C:"#, #""#]}, 55 {arg: [#"C:"#, #""#, #""#]}, 56 {arg: [#"C:."#, #"a"#]}, 57 {arg: [#"C:a"#, #"b"#]}, 58 {arg: [#"\\host\share"#, #"foo"#]}, 59 ] 60 -- out/path -- 61 joinSingle: "a/b" 62 Join: { 63 unix: [{ 64 arg: ["a", "b"] 65 out: "a/b" 66 }, { 67 arg: ["a/b", "c/d"] 68 out: "a/b/c/d" 69 }, { 70 arg: ["/"] 71 out: "/" 72 }, { 73 arg: ["a"] 74 out: "a" 75 }, { 76 arg: ["a", "b"] 77 out: "a/b" 78 }, { 79 arg: ["a", ""] 80 out: "a" 81 }, { 82 arg: ["", "b"] 83 out: "b" 84 }, { 85 arg: ["/", "a"] 86 out: "/a" 87 }, { 88 arg: ["/", "a/b"] 89 out: "/a/b" 90 }, { 91 arg: ["/", ""] 92 out: "/" 93 }, { 94 arg: ["//", "a"] 95 out: "/a" 96 }, { 97 arg: ["directory", "file"] 98 out: "directory/file" 99 }, { 100 arg: [#"C:\Windows\"#, #"System32"#] 101 out: "C:\\Windows\\/System32" 102 }, { 103 arg: [#"C:\Windows\"#, #""#] 104 out: "C:\\Windows\\" 105 }, { 106 arg: [#"C:\"#, #"Windows"#] 107 out: "C:\\/Windows" 108 }, { 109 arg: [#"C:"#, #"a\b"#] 110 out: "C:/a\\b" 111 }, { 112 arg: [#"C:"#, #"a"#, #"b"#] 113 out: "C:/a/b" 114 }, { 115 arg: [#"C:"#, #""#, #""#, #"b"#] 116 out: "C:/b" 117 }, { 118 arg: [#"C:"#, #""#] 119 out: "C:" 120 }, { 121 arg: [#"C:"#, #""#, #""#] 122 out: "C:" 123 }, { 124 arg: [#"C:."#, #"a"#] 125 out: "C:./a" 126 }, { 127 arg: [#"C:a"#, #"b"#] 128 out: "C:a/b" 129 }, { 130 arg: [#"\\host\share"#, #"foo"#] 131 out: "\\\\host\\share/foo" 132 }] 133 windows: [{ 134 arg: ["a", "b"] 135 out: "a\\b" 136 }, { 137 arg: ["a/b", "c/d"] 138 out: "a\\b\\c\\d" 139 }, { 140 arg: ["/"] 141 out: "\\" 142 }, { 143 arg: ["a"] 144 out: "a" 145 }, { 146 arg: ["a", "b"] 147 out: "a\\b" 148 }, { 149 arg: ["a", ""] 150 out: "a" 151 }, { 152 arg: ["", "b"] 153 out: "b" 154 }, { 155 arg: ["/", "a"] 156 out: "\\a" 157 }, { 158 arg: ["/", "a/b"] 159 out: "\\a\\b" 160 }, { 161 arg: ["/", ""] 162 out: "\\" 163 }, { 164 arg: ["//", "a"] 165 out: "\\a" 166 }, { 167 arg: ["directory", "file"] 168 out: "directory\\file" 169 }, { 170 arg: [#"C:\Windows\"#, #"System32"#] 171 out: "C:\\Windows\\System32" 172 }, { 173 arg: [#"C:\Windows\"#, #""#] 174 out: "C:\\Windows" 175 }, { 176 arg: [#"C:\"#, #"Windows"#] 177 out: "C:\\Windows" 178 }, { 179 arg: [#"C:"#, #"a\b"#] 180 out: "C:a\\b" 181 }, { 182 arg: [#"C:"#, #"a"#, #"b"#] 183 out: "C:a\\b" 184 }, { 185 arg: [#"C:"#, #""#, #""#, #"b"#] 186 out: "C:b" 187 }, { 188 arg: [#"C:"#, #""#] 189 out: "C:." 190 }, { 191 arg: [#"C:"#, #""#, #""#] 192 out: "C:." 193 }, { 194 arg: [#"C:."#, #"a"#] 195 out: "C:a" 196 }, { 197 arg: [#"C:a"#, #"b"#] 198 out: "C:a\\b" 199 }, { 200 arg: [#"\\host\share"#, #"foo"#] 201 out: "\\\\host\\share\\foo" 202 }] 203 } 204