From 3b01dafe9324d65d7dda19ef752910409259ecb6 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Wed, 4 Jun 2014 14:51:47 +0200 Subject: Fix the tests. --- test/plop_test.erl | 86 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 53 insertions(+), 33 deletions(-) (limited to 'test/plop_test.erl') diff --git a/test/plop_test.erl b/test/plop_test.erl index 26ac354..ce2a052 100644 --- a/test/plop_test.erl +++ b/test/plop_test.erl @@ -12,10 +12,14 @@ adding_verifying_test() -> %%Pid = start(), Pubkey = plop:testing_get_pubkey(), - add(0, Pubkey), - add(1, Pubkey), - sth(0, Pubkey). + add_sth_add_sth(Pubkey). %%stop(Pid). + +%% "Entries can be retrieved." +get_entries_test_() -> + Entries = plop:get(1, 2), + [?_assertEqual(2, length(Entries)), + ?_assertMatch(#mtl{}, hd(Entries))]. %%% Setup. %% start() -> @@ -31,44 +35,60 @@ adding_verifying_test() -> %% ?_assertEqual(Pid, whereis(plop))]. %%% Helpers. + +add_sth_add_sth(Pubkey) -> + add(0, Pubkey), + STH0 = sth(Pubkey), + add(1, Pubkey), + STH1 = sth(Pubkey), + ?assertNotEqual(STH0, STH1). + add(0, Pubkey) -> - Msg = <<"some data">>, - Entry = #timestamped_entry{timestamp = 4711, - entry = #plop_entry{type = test, - data = Msg}}, - SPT = plop:add(Entry), - <> = SPT, - Signed = <<0:8, 0:8, 4711:64, 2:16, Msg/binary>>, + Msg = crypto:rand_bytes(32), + Entry = #timestamped_entry{ + timestamp = 4711, + entry = #plop_entry{ + type = test, + data = Msg}}, + DataSigned = <<0:8, 0:8, 4711:64, 2:16, Msg/binary>>, + #spt{ + version = Version, + timestamp = Timestamp, + signature = #signature{signature = Signature} + } = plop:add(Entry), ?assertEqual(0, Version), ?assertEqual(4711, Timestamp), - ?assert(public_key:verify(Signed, sha256, Signature, Pubkey)); - + ?assert(public_key:verify(DataSigned, sha256, Signature, Pubkey)); add(1, Pubkey) -> - Msg = <<"some more data">>, - Entry = #timestamped_entry{timestamp = 4712, - entry = #plop_entry{type = test, - data = Msg}}, - <> = plop:add(Entry), - Signed = <<0:8, 0:8, 4712:64, 2:16, Msg/binary>>, + Msg = crypto:rand_bytes(32), + Entry = #timestamped_entry{ + timestamp = 4712, + entry = #plop_entry{ + type = test, + data = Msg}}, + DataSigned = <<0:8, 0:8, 4712:64, 2:16, Msg/binary>>, + #spt{ + version = Version, + timestamp = Timestamp, + signature = #signature{signature = Signature} + } = plop:add(Entry), ?assertEqual(0, Version), ?assertEqual(4712, Timestamp), - ?assert(public_key:verify(Signed, sha256, Signature, Pubkey)). + ?assert(public_key:verify(DataSigned, sha256, Signature, Pubkey)). +%% TODO %% add(2) -> %% TestVector = <<>>, %% %% Same data as in 0, should not result in new database entry. -%% Entry = #timestamped_entry{timestamp = 4713, entry_type = test, entry = <<"some data">>}, -%% SPT = plop:add(#spt{signature_type = test, entry = Entry}), -%% ?assertEqual(TestVector, SPT), -%% ?assertEqual(fixme, fixme). -sth(0, Pubkey) -> - STH = plop:sth(), - %%io:format(element(2, file:open("testdata", write)), "~p", [STH]), - <> = STH, - ?assertEqual(2, Treesize), - Data = <<0:8, 2:8, Timestamp:64, Treesize:64, Roothash:256>>, - ?assert(public_key:verify(Data, sha256, Signature, Pubkey)). +sth(Pubkey) -> + #sth{ + treesize = Treesize, + timestamp = Timestamp, + roothash = Roothash, + signature = #signature{signature = Signature} + } = STH = plop:sth(), + Data = list_to_binary([<<0:8, 1:8, Timestamp:64, Treesize:64>>, Roothash]), + ?assert(public_key:verify(Data, sha256, Signature, Pubkey)), + STH. + -- cgit v1.1