mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
7a7357dae1
This enables docker cp and ADD/COPY docker build support for LCOW. Originally, the graphdriver.Get() interface returned a local path to the container root filesystem. This does not work for LCOW, so the Get() method now returns an interface that LCOW implements to support copying to and from the container. Signed-off-by: Akash Gupta <akagup@microsoft.com>
53 lines
1.7 KiB
Go
53 lines
1.7 KiB
Go
// +build windows
|
|
|
|
package dockerfile
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/docker/docker/internal/testutil"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestNormalizeDest(t *testing.T) {
|
|
tests := []struct{ current, requested, expected, etext string }{
|
|
{``, `D:\`, ``, `Windows does not support destinations not on the system drive (C:)`},
|
|
{``, `e:/`, ``, `Windows does not support destinations not on the system drive (C:)`},
|
|
{`invalid`, `./c1`, ``, `Current WorkingDir invalid is not platform consistent`},
|
|
{`C:`, ``, ``, `Current WorkingDir C: is not platform consistent`},
|
|
{`C`, ``, ``, `Current WorkingDir C is not platform consistent`},
|
|
{`D:\`, `.`, ``, "Windows does not support relative paths when WORKDIR is not the system drive"},
|
|
{``, `D`, `D`, ``},
|
|
{``, `./a1`, `.\a1`, ``},
|
|
{``, `.\b1`, `.\b1`, ``},
|
|
{``, `/`, `\`, ``},
|
|
{``, `\`, `\`, ``},
|
|
{``, `c:/`, `\`, ``},
|
|
{``, `c:\`, `\`, ``},
|
|
{``, `.`, `.`, ``},
|
|
{`C:\wdd`, `./a1`, `\wdd\a1`, ``},
|
|
{`C:\wde`, `.\b1`, `\wde\b1`, ``},
|
|
{`C:\wdf`, `/`, `\`, ``},
|
|
{`C:\wdg`, `\`, `\`, ``},
|
|
{`C:\wdh`, `c:/`, `\`, ``},
|
|
{`C:\wdi`, `c:\`, `\`, ``},
|
|
{`C:\wdj`, `.`, `\wdj`, ``},
|
|
{`C:\wdk`, `foo/bar`, `\wdk\foo\bar`, ``},
|
|
{`C:\wdl`, `foo\bar`, `\wdl\foo\bar`, ``},
|
|
{`C:\wdm`, `foo/bar/`, `\wdm\foo\bar\`, ``},
|
|
{`C:\wdn`, `foo\bar/`, `\wdn\foo\bar\`, ``},
|
|
}
|
|
for _, testcase := range tests {
|
|
msg := fmt.Sprintf("Input: %s, %s", testcase.current, testcase.requested)
|
|
actual, err := normalizeDest(testcase.current, testcase.requested, "windows")
|
|
if testcase.etext == "" {
|
|
if !assert.NoError(t, err, msg) {
|
|
continue
|
|
}
|
|
assert.Equal(t, testcase.expected, actual, msg)
|
|
} else {
|
|
testutil.ErrorContains(t, err, testcase.etext)
|
|
}
|
|
}
|
|
}
|