ExUnit.start() defmodule Sn.Test do use ExUnit.Case, async: false import Record require KVS defrecord(:msg, id: [], body: []) setup do: (on_exit(fn -> :ok = :kvs.leave();:ok = :kvs_rocks.destroy() end);:kvs.join()) setup kvs, do: [ ] @tag :ignore test "1", kvs do :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "/aco/thug") end, :lists.seq(1,7)) log "all", :kvs.all("/aco/thug") r = KVS.reader(id: rid) = :kvs.save(:kvs.reader("/aco/thug")) log "real readers are good", r r1 = :kvs.take(KVS.reader(r, args: 5, dir: 0)) log "take 5", r1 r3 = :kvs.take(KVS.reader(r1, args: 5, dir: 0)) log "take 2", r3 r5 = KVS.reader(args: args) = :kvs.take(KVS.reader(r3, args: 5, dir: 1)) log "back 5", r5 log "is pretty good", args r6 = :kvs.take(KVS.reader(r5, args: 5, dir: 1)) log "back 2", r6 end @tag :ignore test "2" do {t1,_} = :timer.tc( fn -> :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "АТУ/ЧЕРНІГІВСЬКА ОБЛАСТЬ/МІСТА СНОВСЬКОГО РАЙОНУ/СНОВСЬК/РАЙОНИ ШОТО ТАМ") end, :lists.seq(1,10000)) end) {t,_} = :timer.tc(fn -> :kvs.all("АТУ/ЧЕРНІГІВСЬКА ОБЛАСТЬ/МІСТА СНОВСЬКОГО РАЙОНУ/СНОВСЬК/РАЙОНИ ШОТО ТАМ") end) log "put:", :erlang.float_to_binary(t1 / 1_000_000, [:compact, {:decimals, 10}]) log "all:", :erlang.float_to_binary(t / 1_000_000, [:compact, {:decimals, 10}]) end defp log(x), do: IO.puts '#{inspect(x)}' defp log(m, x), do: IO.puts '#{m} #{inspect(x)}' end