(t *testing.T)
| 1252 | } |
| 1253 | |
| 1254 | func TestSetWriteEnabled_FileControlWrite(t *testing.T) { |
| 1255 | client := newWriteTestReplicaClient() |
| 1256 | |
| 1257 | pageSize := uint32(4096) |
| 1258 | initialPage := make([]byte, pageSize) |
| 1259 | createTestLTXFile(t, client, 1, pageSize, 1, map[uint32][]byte{1: initialPage}) |
| 1260 | |
| 1261 | f := setupWriteableVFSFile(t, client) |
| 1262 | |
| 1263 | if err := f.Open(); err != nil { |
| 1264 | t.Fatal(err) |
| 1265 | } |
| 1266 | defer f.Close() |
| 1267 | |
| 1268 | // Disable via FileControl (PRAGMA litestream_write_enabled = 0) |
| 1269 | value := "0" |
| 1270 | _, err := f.FileControl(14, "litestream_write_enabled", &value) |
| 1271 | if err != nil { |
| 1272 | t.Fatal(err) |
| 1273 | } |
| 1274 | |
| 1275 | if f.writeEnabled { |
| 1276 | t.Error("expected writeEnabled to be false after PRAGMA = 0") |
| 1277 | } |
| 1278 | |
| 1279 | // Enable via FileControl (PRAGMA litestream_write_enabled = 1) |
| 1280 | value = "1" |
| 1281 | _, err = f.FileControl(14, "litestream_write_enabled", &value) |
| 1282 | if err != nil { |
| 1283 | t.Fatal(err) |
| 1284 | } |
| 1285 | |
| 1286 | if !f.writeEnabled { |
| 1287 | t.Error("expected writeEnabled to be true after PRAGMA = 1") |
| 1288 | } |
| 1289 | |
| 1290 | // Test alternate values |
| 1291 | value = "off" |
| 1292 | _, err = f.FileControl(14, "litestream_write_enabled", &value) |
| 1293 | if err != nil { |
| 1294 | t.Fatal(err) |
| 1295 | } |
| 1296 | if f.writeEnabled { |
| 1297 | t.Error("expected writeEnabled to be false after PRAGMA = off") |
| 1298 | } |
| 1299 | |
| 1300 | value = "on" |
| 1301 | _, err = f.FileControl(14, "litestream_write_enabled", &value) |
| 1302 | if err != nil { |
| 1303 | t.Fatal(err) |
| 1304 | } |
| 1305 | if !f.writeEnabled { |
| 1306 | t.Error("expected writeEnabled to be true after PRAGMA = on") |
| 1307 | } |
| 1308 | |
| 1309 | value = "false" |
| 1310 | _, err = f.FileControl(14, "litestream_write_enabled", &value) |
| 1311 | if err != nil { |
nothing calls this directly
no test coverage detected