From b6309284f4d8135e2da85c3818f5419626c8de17 Mon Sep 17 00:00:00 2001 From: Peter Zhang Date: Mon, 18 Nov 2024 16:44:40 +0800 Subject: [PATCH] add snapshot test --- tests/snapshot_test.py | 36 ++++++++++++++++++++++++++ tests/test_framework/test_framework.py | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 tests/snapshot_test.py diff --git a/tests/snapshot_test.py b/tests/snapshot_test.py new file mode 100644 index 0000000..cdb260b --- /dev/null +++ b/tests/snapshot_test.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 + +import os +import shutil +from test_framework.test_framework import TestFramework +from utility.utils import wait_until + +class SnapshotTask(TestFramework): + def setup_params(self): + self.num_nodes = 2 + + def run_test(self): + # Stop the last node to verify historical file sync + + # Submit and upload files on node 0 + data_root_1 = self.__upload_file__(0, 256 * 1024) + data_root_2 = self.__upload_file__(0, 256 * 1024) + wait_until(lambda: self.nodes[1].zgs_get_file_info(data_root_1) is not None) + wait_until(lambda: self.nodes[1].zgs_get_file_info(data_root_1)["finalized"]) + wait_until(lambda: self.nodes[1].zgs_get_file_info(data_root_2) is not None) + wait_until(lambda: self.nodes[1].zgs_get_file_info(data_root_2)["finalized"]) + + # Start the last node to verify historical file sync + self.nodes[1].shutdown() + shutil.rmtree(os.path.join(self.nodes[1].data_dir, 'data_db')) + + self.start_storage_node(1) + self.nodes[1].wait_for_rpc_connection() + + wait_until(lambda: self.nodes[1].zgs_get_file_info(data_root_1) is not None) + wait_until(lambda: self.nodes[1].zgs_get_file_info(data_root_1)["finalized"]) + wait_until(lambda: self.nodes[1].zgs_get_file_info(data_root_2) is not None) + wait_until(lambda: self.nodes[1].zgs_get_file_info(data_root_2)["finalized"]) + +if __name__ == "__main__": + SnapshotTask().main() diff --git a/tests/test_framework/test_framework.py b/tests/test_framework/test_framework.py index 0fc03a3..a940d7a 100644 --- a/tests/test_framework/test_framework.py +++ b/tests/test_framework/test_framework.py @@ -44,7 +44,7 @@ class TestFramework: self.num_blockchain_nodes = 1 self.num_nodes = 1 self.blockchain_nodes = [] - self.nodes = [] + self.nodes: list[ZgsNode] = [] self.contract = None self.blockchain_node_configs = {} self.zgs_node_configs = {}