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