defmodule KVS.Check do require KVS def check do id1 = {:basic, :kvs.seq([], [])} id2 = {:basic, :kvs.seq([], [])} x = 5 :kvs.save(:kvs.writer(id1)) :kvs.save(:kvs.writer(id2)) :lists.map( fn _ -> :kvs.save(:kvs.add(KVS.writer(:kvs.writer(id1), args: {:"$msg", [], [], [], [], []}))) end, :lists.seq(1, x) ) :lists.map(fn _ -> :kvs.append({:"$msg", [], [], [], [], []}, id2) end, :lists.seq(1, x)) r1 = :kvs.save(:kvs.reader(id1)) r2 = :kvs.save(:kvs.reader(id2)) x1 = :kvs.take(KVS.reader(:kvs.load_reader(KVS.reader(r1, :id)), args: 20)) x2 = :kvs.take(KVS.reader(:kvs.load_reader(KVS.reader(r2, :id)), args: 20)) b = :kvs.feed(id1) case :application.get_env(:kvs, :dba_st, :kvs_st) do :kvs_st -> c = :kvs.all(id2) :lists.reverse(c) == KVS.reader(x2, :args) _ -> [] end :lists.all(fn x -> x == true end, [ :lists.reverse(KVS.reader(x1, :args)) == :lists.reverse(b), length(KVS.reader(x1, :args)) == length(KVS.reader(x2, :args)), x == length(b) ]) end end