mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-18 14:54:19 +01:00
The package has been deprecated as part of 1.16 and the same functionality is now provided by either the io or the os package. Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
107 lines
1.8 KiB
Go
107 lines
1.8 KiB
Go
//
|
|
// Copyright (c) 2017-2018 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
"path"
|
|
"path/filepath"
|
|
"syscall"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
const (
|
|
testDirMode = os.FileMode(0750)
|
|
testFileMode = os.FileMode(0640)
|
|
)
|
|
|
|
func TestUtilsResolvePathEmptyPath(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
_, err := resolvePath("")
|
|
assert.Error(err)
|
|
}
|
|
|
|
func TestUtilsResolvePathValidPath(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
dir, err := os.MkdirTemp("", "")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
defer func() {
|
|
err = os.RemoveAll(dir)
|
|
assert.NoError(err)
|
|
}()
|
|
|
|
target := path.Join(dir, "target")
|
|
linkDir := path.Join(dir, "a/b/c")
|
|
linkFile := path.Join(linkDir, "link")
|
|
|
|
err = createEmptyFile(target)
|
|
assert.NoError(err)
|
|
|
|
absolute, err := filepath.Abs(target)
|
|
assert.NoError(err)
|
|
|
|
resolvedTarget, err := filepath.EvalSymlinks(absolute)
|
|
assert.NoError(err)
|
|
|
|
err = os.MkdirAll(linkDir, testDirMode)
|
|
assert.NoError(err)
|
|
|
|
err = syscall.Symlink(target, linkFile)
|
|
assert.NoError(err)
|
|
|
|
resolvedLink, err := resolvePath(linkFile)
|
|
assert.NoError(err)
|
|
|
|
assert.Equal(resolvedTarget, resolvedLink)
|
|
}
|
|
|
|
func TestUtilsResolvePathENOENT(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
dir, err := os.MkdirTemp("", "")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
target := path.Join(dir, "target")
|
|
linkDir := path.Join(dir, "a/b/c")
|
|
linkFile := path.Join(linkDir, "link")
|
|
|
|
err = createEmptyFile(target)
|
|
assert.NoError(err)
|
|
|
|
err = os.MkdirAll(linkDir, testDirMode)
|
|
assert.NoError(err)
|
|
|
|
err = syscall.Symlink(target, linkFile)
|
|
assert.NoError(err)
|
|
|
|
cwd, err := os.Getwd()
|
|
assert.NoError(err)
|
|
|
|
defer func() {
|
|
err = os.Chdir(cwd)
|
|
assert.NoError(err)
|
|
}()
|
|
|
|
err = os.Chdir(dir)
|
|
assert.NoError(err)
|
|
|
|
err = os.RemoveAll(dir)
|
|
assert.NoError(err)
|
|
|
|
_, err = resolvePath(filepath.Base(linkFile))
|
|
assert.Error(err)
|
|
}
|