From 8cb913f512a6653c593f698178d0436ab59ee741 Mon Sep 17 00:00:00 2001 From: InfiniteSwerve Date: Fri, 2 Dec 2022 11:10:04 -0800 Subject: [PATCH 1/4] cleaned up visuals --- .../src/core/block_storage/tests/block_storage_tests.ml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/deku-p/src/core/block_storage/tests/block_storage_tests.ml b/deku-p/src/core/block_storage/tests/block_storage_tests.ml index 305b3ba33..7d97dc37e 100644 --- a/deku-p/src/core/block_storage/tests/block_storage_tests.ml +++ b/deku-p/src/core/block_storage/tests/block_storage_tests.ml @@ -3,6 +3,7 @@ open Deku_crypto open Deku_consensus open Deku_concepts open Deku_gossip +open Deku_block_storage exception Test_finished @@ -37,7 +38,7 @@ let uri = Uri.of_string (Format.sprintf "sqlite3:/tmp/%s.db" file_hash) let make_block_storage env sw = let domains = Eio.Stdenv.domain_mgr env in let worker = Parallel.Worker.make ~domains ~sw in - let storage = Deku_block_storage.Block_storage.make ~worker ~uri in + let storage = Block_storage.make ~worker ~uri in storage let test_empty_block_load env () = @@ -85,14 +86,12 @@ let test_empty_block_and_votes env () = let (Deku_gossip.Message.Message { header = _; content = _; network }) = Deku_gossip.Message.encode ~content in - Deku_block_storage.Block_storage.save_block_and_votes ~level ~network - block_storage; + Block_storage.save_block_and_votes ~level ~network block_storage; let retrieved_block_and_votes = let default_return = (Genesis.block, []) in match - Deku_block_storage.Block_storage.find_block_and_votes_by_level ~level - block_storage + Block_storage.find_block_and_votes_by_level ~level block_storage with | Some (Message.Network.Network_message { raw_header; raw_content }) -> ( let expected = Message.Header.decode ~raw_header in From c3b25504172fe39a0fda6a393f1e26473313a921 Mon Sep 17 00:00:00 2001 From: InfiniteSwerve Date: Fri, 2 Dec 2022 13:24:08 -0800 Subject: [PATCH 2/4] gives unique file hash for each test --- .../block_storage/tests/block_storage_tests.ml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/deku-p/src/core/block_storage/tests/block_storage_tests.ml b/deku-p/src/core/block_storage/tests/block_storage_tests.ml index 7d97dc37e..ba33e4179 100644 --- a/deku-p/src/core/block_storage/tests/block_storage_tests.ml +++ b/deku-p/src/core/block_storage/tests/block_storage_tests.ml @@ -28,17 +28,18 @@ let block ~default_block_size = Producer.produce ~identity ~default_block_size ~above ~withdrawal_handles_hash producer -let file_hash = - let randn = Stdlib.Random.int 230 in - Deku_crypto.BLAKE2b.hash (Int.to_string randn) |> BLAKE2b.to_hex - -(* TODO: change to an in-memory databse *) -let uri = Uri.of_string (Format.sprintf "sqlite3:/tmp/%s.db" file_hash) +(* NOTE: These tests generate new databases in /tmp/ for every test, for every run. *) +let uri () = + let file_hash = + let randn = Stdlib.Random.int 230 in + Deku_crypto.BLAKE2b.hash (Int.to_string randn) |> BLAKE2b.to_hex + in + Uri.of_string (Format.sprintf "sqlite3:/tmp/%s.db" file_hash) let make_block_storage env sw = let domains = Eio.Stdenv.domain_mgr env in let worker = Parallel.Worker.make ~domains ~sw in - let storage = Block_storage.make ~worker ~uri in + let storage = Block_storage.make ~worker ~uri:(uri ()) in storage let test_empty_block_load env () = From 2e60777b9847da3c1a4ade624e0b6df69050c91c Mon Sep 17 00:00:00 2001 From: InfiniteSwerve Date: Thu, 1 Dec 2022 13:56:30 -0800 Subject: [PATCH 3/4] add test for empty block saving and loading by hash --- deku-p/src/core/block_storage/tests/block_storage_tests.ml | 1 + 1 file changed, 1 insertion(+) diff --git a/deku-p/src/core/block_storage/tests/block_storage_tests.ml b/deku-p/src/core/block_storage/tests/block_storage_tests.ml index ba33e4179..3ee76d91c 100644 --- a/deku-p/src/core/block_storage/tests/block_storage_tests.ml +++ b/deku-p/src/core/block_storage/tests/block_storage_tests.ml @@ -29,6 +29,7 @@ let block ~default_block_size = producer (* NOTE: These tests generate new databases in /tmp/ for every test, for every run. *) +(* TODO: change to an in-memory databse *) let uri () = let file_hash = let randn = Stdlib.Random.int 230 in From 2463c856fa2fe7cc4cf99ac57d261313ff7cdbbb Mon Sep 17 00:00:00 2001 From: InfiniteSwerve Date: Fri, 2 Dec 2022 13:31:16 -0800 Subject: [PATCH 4/4] adds 200k block load test --- .../tests/block_storage_tests.ml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/deku-p/src/core/block_storage/tests/block_storage_tests.ml b/deku-p/src/core/block_storage/tests/block_storage_tests.ml index 3ee76d91c..d33f824fc 100644 --- a/deku-p/src/core/block_storage/tests/block_storage_tests.ml +++ b/deku-p/src/core/block_storage/tests/block_storage_tests.ml @@ -112,6 +112,24 @@ let test_empty_block_and_votes env () = Eio.Switch.fail sw Test_finished with _ -> () +let test_200k_block_load env () = + try + Eio.Switch.run @@ fun sw -> + let block_storage = make_block_storage env sw in + let (Block { hash; _ } as block) = block ~default_block_size:200_000 in + Block_storage.save_block ~block block_storage; + let retrieved_block = + match Block_storage.find_block_by_hash ~block_hash:hash block_storage with + | Some block -> block + | None -> Genesis.block + in + Alcotest.(check' block_testable) + ~msg:"hash loaded block is equal to saved block" ~expected:block + ~actual:retrieved_block; + + Eio.Switch.fail sw Test_finished + with _ -> () + let run () = Eio_main.run (fun env -> let open Alcotest in @@ -123,6 +141,8 @@ let run () = (test_empty_block_load env); test_case "empty block and one vote is returned" `Quick (test_empty_block_and_votes env); + test_case "200k_block is returned" `Slow + (test_200k_block_load env); ] ); ])