diff --git a/tools/tht/internal/safeio/private_windows_test.go b/tools/tht/internal/safeio/private_windows_test.go index 84e66845..8b238614 100644 --- a/tools/tht/internal/safeio/private_windows_test.go +++ b/tools/tht/internal/safeio/private_windows_test.go @@ -342,7 +342,28 @@ func TestCreateCanonicalNewPrivateFileInstallsOwnerOnlyDACLAtCreation(t *testing } defer file.Close() if err := ValidatePrivateRegular(path); err != nil { - t.Fatalf("new lock DACL error = %v", err) + parents, target, parentErr := openCanonicalWindowsParent(path) + if parentErr != nil { + t.Fatalf("new lock DACL error = %T %v; raw parent open = %T %v", err, err, parentErr, parentErr) + } + defer parents.Close() + handle, openErr := openWindowsRelativeObject( + parents.handles[len(parents.handles)-1], + target, + windows.GENERIC_READ, + windows.FILE_OPEN, + windows.FILE_NON_DIRECTORY_FILE|windows.FILE_SYNCHRONOUS_IO_NONALERT|windows.FILE_OPEN_REPARSE_POINT, + nil, + ) + if openErr != nil { + t.Fatalf("new lock DACL error = %T %v; raw regular open = %T %v", err, err, openErr, openErr) + } + defer windows.CloseHandle(handle) + var info windows.ByHandleFileInformation + infoErr := windows.GetFileInformationByHandle(handle, &info) + daclErr := validateOwnerOnlyDACL(handle) + t.Fatalf("new lock DACL error = %T %v; raw info = %T %v attributes=%#x links=%d; raw dacl = %T %v", + err, err, infoErr, infoErr, info.FileAttributes, info.NumberOfLinks, daclErr, daclErr) } }