Browse Source

add/remove test

Namdak Tonpa 5 years ago
parent
commit
66233bf91b
5 changed files with 33 additions and 6 deletions
  1. 2 1
      man/kvs_st.htm
  2. 5 2
      man/kvs_stream.htm
  3. 1 1
      mix.exs
  4. 3 1
      src/layers/kvs_stream.erl
  5. 22 1
      test/test_helper.exs

+ 2 - 1
man/kvs_st.htm

@@ -24,7 +24,8 @@
   </div>
   </div>
 </nav>
 </nav>
 <header>
 <header>
-    <a href="../index.html"><img src="https://openmoji.org/data/color/svg/1F4BF.svg"/></a>
+    <a href="../index.html">
+    <img src="https://openmoji.org/data/color/svg/1F4BF.svg"/></a>
     <h1>ST</h1>
     <h1>ST</h1>
 </header>
 </header>
 <main>
 <main>

+ 5 - 2
man/kvs_stream.htm

@@ -1,6 +1,9 @@
-<!DOCTYPE html><html><head><meta charset="utf-8" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!DOCTYPE html>
+<html><head><meta charset="utf-8" />
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-<meta name="description" content="" /><meta name="author" content="Maxim Sokhatsky" />
+<meta name="description" content="" />
+<meta name="author" content="Maxim Sokhatsky" />
 <title>STREAM</title>
 <title>STREAM</title>
 <link rel="stylesheet" href="https://n2o.dev/blank.css" />
 <link rel="stylesheet" href="https://n2o.dev/blank.css" />
 <link rel="stylesheet" href="https://n2o.dev/zima.css" />
 <link rel="stylesheet" href="https://n2o.dev/zima.css" />

+ 1 - 1
mix.exs

@@ -26,7 +26,7 @@ defmodule KVS.Mixfile do
   defp deps do
   defp deps do
     [
     [
       {:ex_doc, "~> 0.11", only: :dev},
       {:ex_doc, "~> 0.11", only: :dev},
-#      {:rocksdb, "~> 1.3.2"}
+#            {:rocksdb, "~> 1.3.2"}
     ]
     ]
   end
   end
 end
 end

+ 3 - 1
src/layers/kvs_stream.erl

@@ -93,7 +93,9 @@ add(M,#writer{cache=V1,count=S}=C) ->
     N=sp(sn(M,[]),id(V)), P=sn(V,id(M)), kvs:put([N,P]),
     N=sp(sn(M,[]),id(V)), P=sn(V,id(M)), kvs:put([N,P]),
     C#writer{cache=N,count=S+1}.
     C#writer{cache=N,count=S+1}.
 
 
-remove(Rec,Feed) -> -1.
+remove(Rec,Feed) ->
+   {ok,W=#writer{count=Count}} = kvs:get(writer,Feed),
+   kvs:save(W#writer{count=Count-1}).
 
 
 append(Rec,Feed) ->
 append(Rec,Feed) ->
    kvs:ensure(#writer{id=Feed}),
    kvs:ensure(#writer{id=Feed}),

+ 22 - 1
test/test_helper.exs

@@ -32,6 +32,7 @@ defmodule BPE.Test do
         assert :lists.reverse(c) == KVS.reader(x2, :args)
         assert :lists.reverse(c) == KVS.reader(x2, :args)
 
 
       _ ->
       _ ->
+        # mnesia doesn't support `all` over feeds (only for tables)
         []
         []
     end
     end
 
 
@@ -40,6 +41,26 @@ defmodule BPE.Test do
     assert x == length(b)
     assert x == length(b)
   end
   end
 
 
+  test "sym" do
+    id = {:sym, :kvs.seq([], [])}
+    :kvs.save(:kvs.writer(id))
+    x = 5
+
+    :lists.map(
+      fn
+        z ->
+          :kvs.remove(KVS.writer(z, :cache), id)
+      end, :lists.map(
+        fn _ ->
+          :kvs.save(:kvs.add(KVS.writer(:kvs.writer(id), args: {:"$msg", [], [], [], [], []})))
+        end,
+        :lists.seq(1, x)
+      )
+    )
+
+    {:ok, KVS.writer(count: 0)} = :kvs.get(:writer, id)
+  end
+
   test "take" do
   test "take" do
     id = {:partial, :kvs.seq([], [])}
     id = {:partial, :kvs.seq([], [])}
     x = 5
     x = 5
@@ -88,6 +109,6 @@ defmodule BPE.Test do
     IO.inspect({cache, t, a})
     IO.inspect({cache, t, a})
     assert length(a) == 1
     assert length(a) == 1
 
 
-    assert :lists.reverse(z1++z2++z3) == :kvs.feed(id)
+    assert :lists.reverse(z1 ++ z2 ++ z3) == :kvs.feed(id)
   end
   end
 end
 end