feat: support explicit instance data deletion
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
//go:build windows
|
||||
|
||||
package files
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"os"
|
||||
"syscall"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestInstanceDataRemoverRejectsWindowsReparsePoint(t *testing.T) {
|
||||
called := false
|
||||
remover := newInstanceDataRemover(func(string) (os.FileInfo, error) {
|
||||
return fakeFileInfo{
|
||||
mode: os.ModeDir,
|
||||
sys: &syscall.Win32FileAttributeData{FileAttributes: syscall.FILE_ATTRIBUTE_REPARSE_POINT},
|
||||
}, nil
|
||||
}, func(string) error {
|
||||
called = true
|
||||
return nil
|
||||
})
|
||||
|
||||
err := remover.RemoveInstanceData(context.Background(), `C:\profiles\junction`)
|
||||
if !errors.Is(err, ErrUnsafeInstanceDataDirectory) {
|
||||
t.Fatalf("RemoveInstanceData() error = %v, want unsafe directory", err)
|
||||
}
|
||||
if called {
|
||||
t.Fatal("reparse point reached removal")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user