From 7d5e8b0634cfca3c5c1ba8c6d509236c41d9838f Mon Sep 17 00:00:00 2001 From: Yaroslav Dynnikov <yaroslav.dynnikov@gmail.com> Date: Tue, 22 Nov 2022 01:46:45 +0300 Subject: [PATCH] rename: picolib -> pico --- src/main.rs | 20 +++++++------------- test/conftest.py | 12 ++++++------ test/int/test_basics.py | 8 ++++---- test/int/test_couple.py | 4 ++-- test/int/test_expelling.py | 2 +- test/int/test_joining.py | 2 +- test/int/test_migration.py | 10 +++++----- test/int/test_network_effects.py | 6 +++--- test/int/test_replication.py | 8 ++++---- test/int/test_shutdown.py | 6 +++--- test/int/test_uninitialized.py | 10 +++++----- test/manual/test_benchmark.py | 4 ++-- 12 files changed, 43 insertions(+), 49 deletions(-) diff --git a/src/main.rs b/src/main.rs index 221a7d176f..4dfe3a9ee8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -47,15 +47,9 @@ pub struct InnerTest { fn picolib_setup(args: &args::Run) { set_log_level(args.log_level()); let l = ::tarantool::lua_state(); - let package: tlua::LuaTable<_> = l.get("package").expect("package == nil"); - let loaded: tlua::LuaTable<_> = package.get("loaded").expect("package.loaded == nil"); - loaded.set("picolib", &[()]); - let luamod: tlua::LuaTable<_> = loaded - .get("picolib") - .expect("package.loaded.picolib == nil"); - - // Also add a global picolib variable - l.set("picolib", &luamod); + l.exec("package.loaded.pico = {}").unwrap(); + l.exec("_G.pico = package.loaded.pico").unwrap(); + let luamod: tlua::LuaTable<_> = l.get("pico").unwrap(); luamod.set("VERSION", env!("CARGO_PKG_VERSION")); luamod.set("args", args); @@ -199,7 +193,7 @@ fn picolib_setup(args: &args::Run) { ); l.exec( " - picolib.test_space = function(name) + pico.test_space = function(name) local s = box.schema.space.create(name, {is_sync = true, if_not_exists = true}) s:create_index('pk', {if_not_exists = true}) return s @@ -211,7 +205,7 @@ fn picolib_setup(args: &args::Run) { luamod.set("log", &[()]); #[rustfmt::skip] l.exec_with( - "picolib.log.highlight_key = ...", + "pico.log.highlight_key = ...", tlua::function2(|key: String, color: Option<String>| -> Result<(), String> { let color = match color.as_deref() { None => None, @@ -233,7 +227,7 @@ fn picolib_setup(args: &args::Run) { ) .unwrap(); l.exec_with( - "picolib.log.clear_highlight = ...", + "pico.log.clear_highlight = ...", tlua::function0(tlog::clear_highlight), ) .unwrap(); @@ -242,7 +236,7 @@ fn picolib_setup(args: &args::Run) { r#" function inspect() return - {raft_log = picolib.raft_log()}, + {raft_log = pico.raft_log()}, {raft_state = box.space.raft_state:fselect()}, {raft_group = box.space.raft_group:fselect()} end diff --git a/test/conftest.py b/test/conftest.py index adc6ac0c4b..d89af8e82e 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -216,7 +216,7 @@ class Instance: return f"{self.host}:{self.port}" def current_grade(self): - return self.call("picolib.peer_info", self.instance_id)["current_grade"] + return self.call("pico.peer_info", self.instance_id)["current_grade"] def instance_uuid(self): return self.eval("return box.info.uuid") @@ -396,13 +396,13 @@ class Instance: rmtree(self.data_dir) def _raft_status(self) -> RaftStatus: - status = self.call("picolib.raft_status") + status = self.call("pico.raft_status") assert isinstance(status, dict) return RaftStatus(**status) def raft_propose_eval(self, lua_code: str, timeout_seconds=2): return self.call( - "picolib.raft_propose_eval", + "pico.raft_propose_eval", lua_code, dict(timeout=timeout_seconds), ) @@ -429,14 +429,14 @@ class Instance: AssertionError: if doesn't succeed """ - whoami = self.call("picolib.whoami") + whoami = self.call("pico.whoami") assert isinstance(whoami, dict) assert isinstance(whoami["raft_id"], int) assert isinstance(whoami["instance_id"], str) self.raft_id = whoami["raft_id"] self.instance_id = whoami["instance_id"] - myself = self.call("picolib.peer_info", self.instance_id) + myself = self.call("pico.peer_info", self.instance_id) assert isinstance(myself, dict) assert isinstance(myself["current_grade"], dict) assert myself["current_grade"]["variant"] == "Online" @@ -448,7 +448,7 @@ class Instance: eprint(f"{self} is trying to become a leader") # 1. Force the node to campaign. - self.call("picolib.raft_timeout_now") + self.call("pico.raft_timeout_now") # 2. Wait until the miracle occurs. @funcy.retry(tries=4, timeout=0.1, errors=AssertionError) diff --git a/test/int/test_basics.py b/test/int/test_basics.py index 2e8afff420..200a3e2442 100644 --- a/test/int/test_basics.py +++ b/test/int/test_basics.py @@ -177,7 +177,7 @@ def test_graceful_stop(instance: Instance): def test_whoami(instance: Instance): - assert instance.call("picolib.whoami") == { + assert instance.call("pico.whoami") == { "raft_id": 1, "instance_id": "i1", "cluster_id": instance.cluster_id, @@ -186,7 +186,7 @@ def test_whoami(instance: Instance): def test_peer_info(instance: Instance): def peer_info(iid: str | None = None): - return instance.call("picolib.peer_info", iid) + return instance.call("pico.peer_info", iid) # Don't compare entire structure, a couple of fields is enough myself = peer_info("i1") @@ -204,9 +204,9 @@ def test_peer_info(instance: Instance): def test_raft_log(instance: Instance): # fails due to screen size calculation with pytest.raises(ReturnError) as _: - instance.call("picolib.raft_log") + instance.call("pico.raft_log") - raft_log = instance.call("picolib.raft_log", dict(return_string=True)) + raft_log = instance.call("pico.raft_log", dict(return_string=True)) def strip_spaces(s: str): s = re.sub(r"[ ]*\|[ ]*", "|", s) diff --git a/test/int/test_couple.py b/test/int/test_couple.py index f5c64fb7f9..102f6d7cb5 100644 --- a/test/int/test_couple.py +++ b/test/int/test_couple.py @@ -45,7 +45,7 @@ def test_failover(cluster2: Cluster): retry_call(i2.assert_raft_status, "Follower", leader_id=i1.raft_id) def do_test(): - i2.eval("picolib.raft_tick(20)") + i2.eval("pico.raft_tick(20)") i1.assert_raft_status("Follower", leader_id=i2.raft_id) i2.assert_raft_status("Leader") @@ -114,7 +114,7 @@ def test_restart_both(cluster2: Cluster): wait_alive(i2) # Speed up elections - i2.call("picolib.raft_timeout_now") + i2.call("pico.raft_timeout_now") i1.wait_online() assert i1.current_grade() == dict(variant="Online", incarnation=2) diff --git a/test/int/test_expelling.py b/test/int/test_expelling.py index 2e28f50bae..2e007fd0af 100644 --- a/test/int/test_expelling.py +++ b/test/int/test_expelling.py @@ -9,7 +9,7 @@ def cluster3(cluster: Cluster): def assert_peer_expelled(expelled_peer: Instance, instance: Instance): - peer_info = instance.call("picolib.peer_info", expelled_peer.instance_id) + peer_info = instance.call("pico.peer_info", expelled_peer.instance_id) grades = peer_info["current_grade"]["variant"], peer_info["target_grade"]["variant"] assert ("Expelled", "Expelled") == grades diff --git a/test/int/test_joining.py b/test/int/test_joining.py index 621c237d12..3fb33e2d7c 100644 --- a/test/int/test_joining.py +++ b/test/int/test_joining.py @@ -381,7 +381,7 @@ def test_not_a_leader(cluster: Cluster): box.schema.func.drop(".proc_update_peer") _G[""] = { proc_update_peer = function() box.schema.func.create(".proc_update_peer", {language="C", if_not_exists=true}) - require("net.box").connect("$i2_addr"):call("picolib.raft_timeout_now") + require("net.box").connect("$i2_addr"):call("pico.raft_timeout_now") return {'ErrNotALeader'} end } """ diff --git a/test/int/test_migration.py b/test/int/test_migration.py index 3759db426c..0e47224e74 100644 --- a/test/int/test_migration.py +++ b/test/int/test_migration.py @@ -6,7 +6,7 @@ def test_add_migration(cluster: Cluster): cluster.deploy(instance_count=2) i1, i2 = cluster.instances i1.promote_or_fail() - i1.eval("picolib.add_migration(1, 'migration body')") + i1.eval("pico.add_migration(1, 'migration body')") migrations_table = i2.call("box.space.migrations:select") assert [[1, "migration body"]] == migrations_table @@ -15,7 +15,7 @@ def test_push_schema_version(cluster: Cluster): cluster.deploy(instance_count=2) i1, i2 = cluster.instances i1.promote_or_fail() - i1.eval("picolib.push_schema_version(3)") + i1.eval("pico.push_schema_version(3)") key = "desired_schema_version" assert [[key, 3]] == i2.call("box.space.cluster_state:select", [key]) @@ -33,7 +33,7 @@ def test_apply_migrations(cluster: Cluster): i1.assert_raft_status("Leader") i1.call( - "picolib.add_migration", + "pico.add_migration", 1, """ CREATE TABLE "test_space" ( @@ -41,7 +41,7 @@ def test_apply_migrations(cluster: Cluster): )""", ) i1.call( - "picolib.add_migration", + "pico.add_migration", 2, """ ALTER TABLE "test_space" @@ -49,7 +49,7 @@ def test_apply_migrations(cluster: Cluster): """, ) - i1.call("picolib.push_schema_version", 2) + i1.call("pico.push_schema_version", 2) @funcy.retry(tries=30, timeout=0.2) # type: ignore def assert_space_insert(conn): diff --git a/test/int/test_network_effects.py b/test/int/test_network_effects.py index 4f3ac8f249..45a8034b1a 100644 --- a/test/int/test_network_effects.py +++ b/test/int/test_network_effects.py @@ -90,7 +90,7 @@ def test_log_rollback(cluster3: Cluster): i2.promote_or_fail() retrying(lambda: i3.assert_raft_status("Follower", i2.raft_id)) - print(i2.call("picolib.raft_log", dict(return_string=True))) + print(i2.call("pico.raft_log", dict(return_string=True))) print(i2.call("box.space.raft_state:select")) propose_state_change(i2, "i2 takes the leadership") @@ -123,8 +123,8 @@ def test_leader_disruption(cluster3: Cluster): # Speed up election timeout i3.eval( """ - while picolib.raft_status().raft_state == 'Follower' do - picolib.raft_tick(1) + while pico.raft_status().raft_state == 'Follower' do + pico.raft_tick(1) end """ ) diff --git a/test/int/test_replication.py b/test/int/test_replication.py index a8741c0dad..4021a63606 100644 --- a/test/int/test_replication.py +++ b/test/int/test_replication.py @@ -24,7 +24,7 @@ def cluster3(cluster: Cluster): def wait_repl_master(i: Instance, other_than=None): repl_master = i.eval( """ - local rid = picolib.peer_info(...).replicaset_id + local rid = pico.peer_info(...).replicaset_id return box.space.replicasets:get(rid).master_id """, i.instance_id, @@ -102,7 +102,7 @@ def test_2_of_3_writable(cluster3: Cluster): wait_vclock(i3, rl_vclock) assert [[1], [2]] == i3.eval("return box.space.test_space:select()") - print(i3.call("picolib.raft_log", dict(return_string=True))) + print(i3.call("pico.raft_log", dict(return_string=True))) print(f"{old_leader=}") old_leader.start() @@ -177,7 +177,7 @@ def test_bucket_rebalancing_respects_replication_factor(cluster: Cluster): # check vshard routes requests to both replicasets reached_instances = set() for bucket_id in [1, 3000]: - info = peer.call("vshard.router.callro", bucket_id, "picolib.peer_info") + info = peer.call("vshard.router.callro", bucket_id, "pico.peer_info") reached_instances.add(info["instance_id"]) assert len(reached_instances) == 2 @@ -200,6 +200,6 @@ def test_bucket_rebalancing_respects_replication_factor(cluster: Cluster): # check vshard routes requests to all 3 replicasets reached_instances = set() for bucket_id in [1, 1500, 3000]: - info = peer.call("vshard.router.callro", bucket_id, "picolib.peer_info") + info = peer.call("vshard.router.callro", bucket_id, "pico.peer_info") reached_instances.add(info["instance_id"]) assert len(reached_instances) == 3 diff --git a/test/int/test_shutdown.py b/test/int/test_shutdown.py index 7e15e84efb..c43a449835 100644 --- a/test/int/test_shutdown.py +++ b/test/int/test_shutdown.py @@ -36,7 +36,7 @@ def test_gl119_panic_on_shutdown(cluster2: Cluster): # suspend i1 (leader) and force i2 to start a new term assert i1.process is not None os.killpg(i1.process.pid, signal.SIGSTOP) - i2.call("picolib.raft_timeout_now") + i2.call("pico.raft_timeout_now") # it can't win the election because there is no quorum i2.assert_raft_status("Candidate") @@ -68,7 +68,7 @@ def test_couple_leader_first(cluster2: Cluster): assert not c1.matched i2.assert_raft_status("Leader") - i1_info = i2.call("picolib.peer_info", i1.instance_id) + i1_info = i2.call("pico.peer_info", i1.instance_id) assert i1_info["target_grade"]["variant"] == "Offline" assert i1_info["current_grade"]["variant"] == "Offline" @@ -88,7 +88,7 @@ def test_couple_follower_first(cluster2: Cluster): i2.terminate(kill_after_seconds=1) assert not c2.matched - i2_info = i1.call("picolib.peer_info", i2.instance_id) + i2_info = i1.call("pico.peer_info", i2.instance_id) assert i2_info["target_grade"]["variant"] == "Offline" assert i2_info["current_grade"]["variant"] == "Offline" diff --git a/test/int/test_uninitialized.py b/test/int/test_uninitialized.py index 9e16a994aa..d25a2d14a6 100644 --- a/test/int/test_uninitialized.py +++ b/test/int/test_uninitialized.py @@ -31,11 +31,11 @@ def uninitialized_instance(cluster: Cluster) -> Generator[Instance, None, None]: def test_raft_api(uninitialized_instance: Instance): functions: list[Callable[[Instance], Any]] = [ lambda i: i._raft_status(), - lambda i: i.call("picolib.raft_propose_nop"), - lambda i: i.call("picolib.raft_propose_info", "who cares"), - lambda i: i.call("picolib.whoami"), - lambda i: i.call("picolib.peer_info", "i1"), - lambda i: i.call("picolib.peer_info", "i2"), + lambda i: i.call("pico.raft_propose_nop"), + lambda i: i.call("pico.raft_propose_info", "who cares"), + lambda i: i.call("pico.whoami"), + lambda i: i.call("pico.peer_info", "i1"), + lambda i: i.call("pico.peer_info", "i2"), ] for f in functions: diff --git a/test/manual/test_benchmark.py b/test/manual/test_benchmark.py index 8da3e89955..69163e13b5 100644 --- a/test/manual/test_benchmark.py +++ b/test/manual/test_benchmark.py @@ -127,7 +127,7 @@ def test_benchmark_nop(cluster, tmpdir, cluster_size, fibers, with_flamegraph): local result = 0 while deadline > fiber.clock() do for i=1, 5 do - picolib.raft_propose_nop() + pico.raft_propose_nop() end result = result + 5 end @@ -162,7 +162,7 @@ def test_benchmark_nop(cluster, tmpdir, cluster_size, fibers, with_flamegraph): return state(i)["raft_state"] == "Leader" def state(i: Instance): - return i.eval("return picolib.raft_status()") + return i.eval("return pico.raft_status()") def benchmark(): print(f"===== Cluster size = {cluster_size}, fibers = {fibers} =====") -- GitLab