src/rally_runtime_test_db_ffi.erl

-module(rally_runtime_test_db_ffi).
-export([clone_db/1, pt_put/2, pt_get/2]).

clone_db(Template) ->
    {ok, Dest} = esqlite3:open(":memory:"),
    {ok, Backup} = esqlite3:backup_init(Dest, "main", Template, "main"),
    '$done' = esqlite3:backup_step(Backup, -1),
    ok = esqlite3:backup_finish(Backup),
    {ok, Dest}.

pt_put(Key, Value) ->
    persistent_term:put(Key, Value),
    nil.

pt_get(Key, Default) ->
    try persistent_term:get(Key)
    catch error:badarg -> Default
    end.