// Copyright 2024 Woodpecker Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package docker import "testing" func TestMustNotAddWindowsLetterPattern(t *testing.T) { tests := map[string]bool{ `C:\Users`: true, `D:\Data`: true, `\\.\PhysicalDrive0`: true, `//./COM1`: true, `E:`: true, `\\server\share`: true, // UNC path `.\relative\path`: true, // Relative path `./path`: true, // Relative with forward slash `//server/share`: true, // UNC with forward slashes `not/a/windows/path`: false, ``: false, `/usr/local`: false, `COM1`: false, `\\.`: false, // Incomplete device path `//`: false, } for testCase, expected := range tests { result := MustNotAddWindowsLetterPattern.MatchString(testCase) if result != expected { t.Errorf("Test case %q: expected %v but got %v", testCase, expected, result) } } }