summaryrefslogtreecommitdiff
path: root/internal/file
diff options
context:
space:
mode:
Diffstat (limited to 'internal/file')
-rw-r--r--internal/file/file_test.go86
1 files changed, 86 insertions, 0 deletions
diff --git a/internal/file/file_test.go b/internal/file/file_test.go
index 726de5a..684a7d8 100644
--- a/internal/file/file_test.go
+++ b/internal/file/file_test.go
@@ -2,6 +2,8 @@ package file
import (
"ior/internal/types"
+ "strings"
+ "syscall"
"testing"
)
@@ -20,3 +22,87 @@ func TestNewFdUnknownFlags(t *testing.T) {
t.Errorf("expected unknown flags, got %v", fdFile.Flags())
}
}
+
+func TestNewFdEmptyName(t *testing.T) {
+ fdFile := NewFd(1, "", 0)
+ str := fdFile.String()
+ if !strings.Contains(str, "E:name") {
+ t.Errorf("expected String() to contain 'E:name' for empty name, got '%s'", str)
+ }
+}
+
+func TestFlagsIsUnknown(t *testing.T) {
+ f := unknownFlag
+ if f.Is(syscall.O_RDONLY) {
+ t.Errorf("expected Is(O_RDONLY) to be false for unknownFlag")
+ }
+ if f.Is(syscall.O_WRONLY) {
+ t.Errorf("expected Is(O_WRONLY) to be false for unknownFlag")
+ }
+ if f.Is(syscall.O_RDWR) {
+ t.Errorf("expected Is(O_RDWR) to be false for unknownFlag")
+ }
+}
+
+func TestFlagsStringUnknown(t *testing.T) {
+ f := Flags(-1)
+ if f.String() != "O_NONE" {
+ t.Errorf("expected 'O_NONE' for unknown flags, got '%s'", f.String())
+ }
+}
+
+func TestNewOldnameNewnameEmpty(t *testing.T) {
+ var oldname, newname [128]byte
+ f := NewOldnameNewname(oldname[:], newname[:])
+ if f.Name() != "" {
+ t.Errorf("expected empty Name(), got '%s'", f.Name())
+ }
+ if !strings.Contains(f.String(), "old:") || !strings.Contains(f.String(), "->new:") {
+ t.Errorf("expected String() to contain 'old:' and '->new:', got '%s'", f.String())
+ }
+}
+
+func TestNewPathnameEmpty(t *testing.T) {
+ var pathname [128]byte
+ f := NewPathname(pathname[:])
+ if f.Name() != "" {
+ t.Errorf("expected empty Name(), got '%s'", f.Name())
+ }
+ if !strings.Contains(f.String(), "pathname:") {
+ t.Errorf("expected String() to contain 'pathname:', got '%s'", f.String())
+ }
+}
+
+func TestFdFileSetFlags(t *testing.T) {
+ fdFile := NewFd(1, "test.txt", 0)
+ if fdFile.Flags() != Flags(0) {
+ t.Errorf("expected flags 0, got %v", fdFile.Flags())
+ }
+ fdFile.SetFlags(syscall.O_WRONLY)
+ if fdFile.Flags() != Flags(syscall.O_WRONLY) {
+ t.Errorf("expected O_WRONLY after SetFlags, got %v", fdFile.Flags())
+ }
+}
+
+func TestFdFileAddFlags(t *testing.T) {
+ fdFile := NewFd(1, "test.txt", syscall.O_RDWR)
+ fdFile.AddFlags(syscall.O_APPEND)
+ expected := Flags(syscall.O_RDWR | syscall.O_APPEND)
+ if fdFile.Flags() != expected {
+ t.Errorf("expected O_RDWR|O_APPEND after AddFlags, got %v", fdFile.Flags())
+ }
+}
+
+func TestFdFileDup(t *testing.T) {
+ fdFile := NewFd(1, "original.txt", syscall.O_RDONLY)
+ duped := fdFile.Dup(42)
+ if duped.Name() != "original.txt" {
+ t.Errorf("expected duped name 'original.txt', got '%s'", duped.Name())
+ }
+ if !strings.Contains(duped.String(), "42") {
+ t.Errorf("expected duped String() to contain fd 42, got '%s'", duped.String())
+ }
+ if strings.Contains(duped.String(), "%(1,") {
+ t.Errorf("expected duped String() to NOT contain old fd 1, got '%s'", duped.String())
+ }
+}