Files

33 lines
736 B
Go

//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")
}
}