mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-14 17:44:26 -06:00
"/foo" is not an absolute path on Windows. Adjust the FileDetector tests to take that into account when verifying the results. Fixes FileDetector test failures on Windows.
89 lines
1.8 KiB
Go
89 lines
1.8 KiB
Go
package module
|
|
|
|
import (
|
|
"runtime"
|
|
"testing"
|
|
)
|
|
|
|
type fileTest struct {
|
|
in, pwd, out string
|
|
err bool
|
|
}
|
|
|
|
var fileTests = []fileTest{
|
|
{"./foo", "/pwd", "file:///pwd/foo", false},
|
|
{"./foo?foo=bar", "/pwd", "file:///pwd/foo?foo=bar", false},
|
|
{"foo", "/pwd", "file:///pwd/foo", false},
|
|
}
|
|
|
|
var unixFileTests = []fileTest{
|
|
{"/foo", "/pwd", "file:///foo", false},
|
|
{"/foo?bar=baz", "/pwd", "file:///foo?bar=baz", false},
|
|
}
|
|
|
|
var winFileTests = []fileTest{
|
|
{"/foo", "/pwd", "file:///pwd/foo", false},
|
|
{`C:\`, `/pwd`, `file:///C:/`, false},
|
|
{`C:\?bar=baz`, `/pwd`, `file:///C:/?bar=baz`, false},
|
|
}
|
|
|
|
func TestFileDetector(t *testing.T) {
|
|
if runtime.GOOS == "windows" {
|
|
fileTests = append(fileTests, winFileTests...)
|
|
} else {
|
|
fileTests = append(fileTests, unixFileTests...)
|
|
}
|
|
|
|
f := new(FileDetector)
|
|
for i, tc := range fileTests {
|
|
out, ok, err := f.Detect(tc.in, tc.pwd)
|
|
if err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
if !ok {
|
|
t.Fatal("not ok")
|
|
}
|
|
|
|
if out != tc.out {
|
|
t.Fatalf("%d: bad: %#v", i, out)
|
|
}
|
|
}
|
|
}
|
|
|
|
var noPwdFileTests = []fileTest{
|
|
{in: "./foo", pwd: "", out: "", err: true},
|
|
{in: "foo", pwd: "", out: "", err: true},
|
|
}
|
|
|
|
var noPwdUnixFileTests = []fileTest{
|
|
{in: "/foo", pwd: "", out: "file:///foo", err: false},
|
|
}
|
|
|
|
var noPwdWinFileTests = []fileTest{
|
|
{in: "/foo", pwd: "", out: "", err: true},
|
|
{in: `C:\`, pwd: ``, out: `file:///C:/`, err: false},
|
|
}
|
|
|
|
func TestFileDetector_noPwd(t *testing.T) {
|
|
if runtime.GOOS == "windows" {
|
|
noPwdFileTests = append(noPwdFileTests, noPwdWinFileTests...)
|
|
} else {
|
|
noPwdFileTests = append(noPwdFileTests, noPwdUnixFileTests...)
|
|
}
|
|
|
|
f := new(FileDetector)
|
|
for i, tc := range noPwdFileTests {
|
|
out, ok, err := f.Detect(tc.in, tc.pwd)
|
|
if (err != nil) != tc.err {
|
|
t.Fatalf("%d: err: %s", i, err)
|
|
}
|
|
if !ok {
|
|
t.Fatal("not ok")
|
|
}
|
|
|
|
if out != tc.out {
|
|
t.Fatalf("%d: bad: %#v", i, out)
|
|
}
|
|
}
|
|
}
|