(t *testing.T)
| 90 | } |
| 91 | |
| 92 | func TestWriteFileHandleMethods(t *testing.T) { |
| 93 | r, vfs, fh := writeHandleCreate(t) |
| 94 | |
| 95 | // String |
| 96 | assert.Equal(t, "file1 (w)", fh.String()) |
| 97 | assert.Equal(t, "<nil *WriteFileHandle>", (*WriteFileHandle)(nil).String()) |
| 98 | assert.Equal(t, "<nil *WriteFileHandle.file>", new(WriteFileHandle).String()) |
| 99 | |
| 100 | // Node |
| 101 | node := fh.Node() |
| 102 | assert.Equal(t, "file1", node.Name()) |
| 103 | |
| 104 | // Offset #1 |
| 105 | assert.Equal(t, int64(0), fh.Offset()) |
| 106 | assert.Equal(t, int64(0), node.Size()) |
| 107 | |
| 108 | // Write (smoke test only since heavy lifting done in WriteAt) |
| 109 | n, err := fh.Write([]byte("hello")) |
| 110 | assert.NoError(t, err) |
| 111 | assert.Equal(t, 5, n) |
| 112 | |
| 113 | // Offset #2 |
| 114 | assert.Equal(t, int64(5), fh.Offset()) |
| 115 | assert.Equal(t, int64(5), node.Size()) |
| 116 | |
| 117 | // Stat |
| 118 | var fi os.FileInfo |
| 119 | fi, err = fh.Stat() |
| 120 | assert.NoError(t, err) |
| 121 | assert.Equal(t, int64(5), fi.Size()) |
| 122 | assert.Equal(t, "file1", fi.Name()) |
| 123 | |
| 124 | // Read |
| 125 | var buf = make([]byte, 16) |
| 126 | _, err = fh.Read(buf) |
| 127 | assert.Equal(t, EPERM, err) |
| 128 | |
| 129 | // ReadAt |
| 130 | _, err = fh.ReadAt(buf, 0) |
| 131 | assert.Equal(t, EPERM, err) |
| 132 | |
| 133 | // Sync |
| 134 | err = fh.Sync() |
| 135 | assert.NoError(t, err) |
| 136 | |
| 137 | // Truncate - can only truncate where the file pointer is |
| 138 | err = fh.Truncate(5) |
| 139 | assert.NoError(t, err) |
| 140 | err = fh.Truncate(6) |
| 141 | assert.Equal(t, EPERM, err) |
| 142 | |
| 143 | // Close |
| 144 | assert.NoError(t, fh.Close()) |
| 145 | |
| 146 | // Check double close |
| 147 | err = fh.Close() |
| 148 | assert.Equal(t, ECLOSED, err) |
| 149 |
nothing calls this directly
no test coverage detected
searching dependent graphs…