MCPcopy
hub / github.com/benbjohnson/litestream / TestSetWriteEnabled_FileControlWrite

Function TestSetWriteEnabled_FileControlWrite

vfs_write_test.go:1254–1326  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1252}
1253
1254func 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 {

Callers

nothing calls this directly

Calls 7

setupWriteableVFSFileFunction · 0.85
createTestLTXFileFunction · 0.70
OpenMethod · 0.45
CloseMethod · 0.45
FileControlMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected