File: gc.test.lua

package info (click to toggle)
tarantool 2.6.0-1.4
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 85,412 kB
  • sloc: ansic: 513,775; cpp: 69,493; sh: 25,650; python: 19,190; perl: 14,973; makefile: 4,178; yacc: 1,329; sql: 1,074; pascal: 620; ruby: 190; awk: 18; lisp: 7
file content (32 lines) | stat: -rwxr-xr-x 819 bytes parent folder | download | duplicates (3)
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
#!/usr/bin/env tarantool
local tap = require('tap')
local fiber = require('fiber')

box.cfg{}

local debug = type(box.error.injection) == "table" 

-- check box.info.gc() is false if snapshot is not in progress
local test = tap.test('box.info.gc')
test:plan(1 + (debug and 1 or 0))


local gc = box.info.gc()
test:is(gc.checkpoint_is_in_progress, false, "checkpoint is not in progress")

-- check box.info.gc() is true if snapshot is in progress
--
if debug then
    box.error.injection.set("ERRINJ_SNAP_COMMIT_DELAY", true)
    local snapshot_f  = function()
       box.snapshot() 
    end
    fiber.create(snapshot_f)
    local gc = box.info.gc()
    test:is(gc.checkpoint_is_in_progress, true, "checkpoint is in progress")
    box.error.injection.set("ERRINJ_SNAP_COMMIT_DELAY", false)
end

test:check()

os.exit(0)