@@ -149,29 +149,35 @@ let test_200k_block_load env () =
149149 Eio.Switch. fail sw Test_finished
150150 with _ -> ()
151151
152- let test_200k_block_load env () =
152+ let test_200k_block_and_votes env () =
153153 Eio.Switch. run @@ fun sw ->
154154 let block_storage = make_block_storage env sw in
155155 let (Block { hash; level; _ } as block) = block ~default_block_size: 200_000 in
156- Block_storage. save_block ~block block_storage;
157- let retrieved_block =
158- match Block_storage. find_block_by_hash ~block_hash: hash block_storage with
159- | Some json -> Block. t_of_yojson json
160- | None -> Genesis. block
156+ let vote = make_vote ~hash identity in
157+ let votes = Verified_signature.Set. add vote Verified_signature.Set. empty in
158+ let votes = Verified_signature.Set. elements votes in
159+ let content = Deku_gossip.Message.Content. accepted ~block ~votes in
160+ let (Deku_gossip.Message. Message { header = _; content = _; network }) =
161+ Deku_gossip.Message. encode ~content
161162 in
162- Alcotest. (check' block_testable)
163- ~msg: " hash loaded block is equal to saved block" ~expected: block
164- ~actual: retrieved_block;
165-
166- let retrieved_block =
167- match Block_storage. find_block_by_level ~level block_storage with
168- | Some json -> Block. t_of_yojson json
169- | None -> Genesis. block
163+ Block_storage. save_block_and_votes ~level ~network block_storage;
164+
165+ let retrieved_block_and_votes =
166+ let default_return = (Genesis. block, [] ) in
167+ match Block_storage. find_block_and_votes_by_level ~level block_storage with
168+ | Some (Message.Network. Network_message { raw_header; raw_content } ) -> (
169+ let expected = Message.Header. decode ~raw_header in
170+ let (Message. Message { content; _ }) =
171+ Message. decode ~expected ~raw_content
172+ in
173+ match content with
174+ | Content_accepted { block; votes } -> (block, votes)
175+ | _ -> default_return)
176+ | None -> default_return
170177 in
171-
172- Alcotest. (check' block_testable)
173- ~msg: " level loaded block is equal to saved block" ~expected: block
174- ~actual: retrieved_block;
178+ Alcotest. (check' (pair block_testable (list vote_testable)))
179+ ~msg: " retrieved empty block and one vote equal saved"
180+ ~expected: (block, votes) ~actual: retrieved_block_and_votes;
175181
176182 (* TODO: Fail the switch and capture the exception instead *)
177183 let (Block_storage. Storage { worker; _ }) = block_storage in
@@ -194,6 +200,7 @@ let run () =
194200 (test_empty_block_and_votes env);
195201 test_case " 200k_block is returned" `Slow
196202 (test_200k_block_load env);
203+ test_case " 200k_block_and_votes is returned" `Slow (test_200k_block_and_votes env)
197204 ] );
198205 ])
199206
0 commit comments