1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
package file
import (
"ior/internal/types"
"strings"
"syscall"
"testing"
)
func TestStringValue(t *testing.T) {
var array [128]byte
copy(array[:], "test string")
if str := types.StringValue(array[:]); str != "test string" {
t.Errorf("epxected 'test string' but got '%s' with bytes '%v'", str, []byte(str))
}
}
func TestNewFdUnknownFlags(t *testing.T) {
fdFile := NewFd(1, "test.txt", -1)
if fdFile.Flags() != unknownFlag {
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())
}
}
|