Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion download.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@

versions = [
"0.110.2",
"0.117.0" "0.201.0",
"0.117.0",
"0.201.0",
] # Replace with your versions

DOWNLOAD_DIR = "download"
Expand Down
196 changes: 33 additions & 163 deletions test_cases/fiber/devnet/compatibility/test_data.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,33 @@
import time

import pytest

from framework.basic_fiber import FiberTest
from framework.test_fiber import FiberConfigPath


class TestData(FiberTest):

def test_old_fiber_020(self):
@pytest.mark.skip("migration failed")
def test_old_fiber_0311(self):
"""
1. start fiber 0.2.0
2. open_channel with fiber
3. stop fiber
4. migration and restart fiber 0.3.0
5. send_payment
6. shutdown_channel
1. start fiber 0.5.0
2. open_channel with fiber
3. stress test with fiber
4. stop fiber
5. restart fiber
6. sleep 10 seconds
7. restart other fiber
8. send_payment
Returns:

"""
# 1. start fiber 0.2.0
# 1. start fiber 0.5.0
old_fiber_1 = self.start_new_fiber(
self.generate_account(10000), fiber_version=FiberConfigPath.V020_DEV
self.generate_account(10000), fiber_version=FiberConfigPath.V050_DEV
)
old_fiber_2 = self.start_new_fiber(
self.generate_account(10000), fiber_version=FiberConfigPath.V020_DEV
self.generate_account(10000), fiber_version=FiberConfigPath.V050_DEV
)
old_fiber_1.connect_peer(old_fiber_2)
time.sleep(1)
Expand All @@ -31,177 +36,42 @@ def test_old_fiber_020(self):
self.open_channel(
old_fiber_1, old_fiber_2, 1000 * 100000000, 1000 * 100000000, 1000, 1000
)
self.send_payment(old_fiber_1, old_fiber_2, 100)

# 3. stop fiber
old_fiber_1.stop()
old_fiber_2.stop()

# 4. migration and restart fiber 0.3.0
old_fiber_1.fiber_config_enum = FiberConfigPath.CURRENT_DEV
old_fiber_2.fiber_config_enum = FiberConfigPath.CURRENT_DEV
old_fiber_1.migration()
old_fiber_1.start()
old_fiber_2.migration()
old_fiber_2.start()

# 5. send_payment
self.send_payment(old_fiber_1, old_fiber_2, 100)
self.send_payment(old_fiber_2, old_fiber_1, 200)
channels = old_fiber_1.get_client().list_channels({})
old_fiber_1.get_client().shutdown_channel(
{
"channel_id": channels["channels"][0]["channel_id"],
"close_script": self.get_account_script(self.Config.ACCOUNT_PRIVATE_1),
"fee_rate": "0x3FC",
}
)
tx_hash = self.wait_and_check_tx_pool_fee(1000, False, 120)
tx_message = self.get_tx_message(tx_hash)
print("tx message:", tx_message)
assert {
"args": self.get_account_script(old_fiber_2.account_private)["args"],
"capacity": 106200000000,
} in tx_message["output_cells"]

def test_old_fiber_021(self):
"""
1. start fiber 0.2.1
2. open_channel with fiber
3. stop fiber
4. migration and restart fiber 0.3.0
5. send_payment
6. shutdown_channel
Returns:

"""
# 1. start fiber 0.2.0
old_fiber_1 = self.start_new_fiber(
self.generate_account(10000), fiber_version=FiberConfigPath.V021_DEV
)
old_fiber_2 = self.start_new_fiber(
self.generate_account(10000), fiber_version=FiberConfigPath.V021_DEV
)
old_fiber_1.connect_peer(old_fiber_2)
time.sleep(1)

# 2. open_channel with fiber
self.open_channel(
old_fiber_1, old_fiber_2, 1000 * 100000000, 1000 * 100000000, 1000, 1000
)
self.send_payment(old_fiber_1, old_fiber_2, 100)
# 3. stress test with fiber
for i in range(20):
self.send_payment(old_fiber_1, old_fiber_2, 1, False)
self.send_payment(old_fiber_2, old_fiber_1, 1, False)

# 3. stop fiber
# 4. stop fiber
old_fiber_1.stop()
old_fiber_2.stop()

# 4. migration and restart fiber 0.3.0
old_fiber_1.fiber_config_enum = FiberConfigPath.CURRENT_DEV
old_fiber_2.fiber_config_enum = FiberConfigPath.CURRENT_DEV
# 5. restart fiber
old_fiber_1.migration()
time.sleep(5)
old_fiber_1.start()
time.sleep(5)
old_fiber_2.migration()
old_fiber_2.start()

# 5. send_payment
self.send_payment(old_fiber_1, old_fiber_2, 100)
self.send_payment(old_fiber_2, old_fiber_1, 200)
channels = old_fiber_1.get_client().list_channels({})
old_fiber_1.get_client().shutdown_channel(
{
"channel_id": channels["channels"][0]["channel_id"],
"close_script": self.get_account_script(self.Config.ACCOUNT_PRIVATE_1),
"fee_rate": "0x3FC",
}
)
tx_hash = self.wait_and_check_tx_pool_fee(1000, False, 120)
tx_message = self.get_tx_message(tx_hash)
print("tx message:", tx_message)
assert {
"args": self.get_account_script(old_fiber_2.account_private)["args"],
"capacity": 106200000000,
} in tx_message["output_cells"]
# 6. sleep 10 seconds
time.sleep(10)
old_fiber_1.get_client().list_channels({})

def test_old_fiber_030(self):
# 1. start fiber 0.2.0
old_fiber_1 = self.start_new_fiber(
self.generate_account(10000), fiber_version=FiberConfigPath.V030_DEV
)
old_fiber_2 = self.start_new_fiber(
self.generate_account(10000), fiber_version=FiberConfigPath.V030_DEV
)
old_fiber_1.connect_peer(old_fiber_2)
time.sleep(1)
# 2. open_channel with fiber
self.open_channel(
old_fiber_1, old_fiber_2, 1000 * 100000000, 1000 * 100000000, 1000, 1000
)
self.send_payment(old_fiber_1, old_fiber_2, 100)
# todo assert
# self.send_payment(old_fiber_1, old_fiber_2, 1,False)
# list_peers
# old_fiber_1.get_client().list_peers()

# 3. stop fiber
old_fiber_1.stop()
# 7. restart other fiber
old_fiber_2.stop()

# 4. migration and restart fiber 0.3.0
old_fiber_1.fiber_config_enum = FiberConfigPath.CURRENT_DEV
old_fiber_2.fiber_config_enum = FiberConfigPath.CURRENT_DEV
old_fiber_1.migration()
time.sleep(5)
old_fiber_1.start()
time.sleep(5)
old_fiber_2.migration()
old_fiber_2.start()
time.sleep(10)
# 8. send_payment
self.send_payment(old_fiber_1, old_fiber_2, 1)

# 5. send_payment
self.send_payment(old_fiber_1, old_fiber_2, 100)
self.send_payment(old_fiber_2, old_fiber_1, 200)
channels = old_fiber_1.get_client().list_channels({})
old_fiber_1.get_client().shutdown_channel(
{
"channel_id": channels["channels"][0]["channel_id"],
"close_script": self.get_account_script(self.Config.ACCOUNT_PRIVATE_1),
"fee_rate": "0x3FC",
}
)
tx_hash = self.wait_and_check_tx_pool_fee(1000, False, 120)
tx_message = self.get_tx_message(tx_hash)
print("tx message:", tx_message)
assert {
"args": self.get_account_script(old_fiber_2.account_private)["args"],
"capacity": 106200000000,
} in tx_message["output_cells"]

def test_old_fiber_031(self):
# 1. start fiber 0.2.0
old_fiber_1 = self.start_new_fiber(
self.generate_account(10000), fiber_version=FiberConfigPath.V031_DEV
)
old_fiber_2 = self.start_new_fiber(
self.generate_account(10000), fiber_version=FiberConfigPath.V031_DEV
)
old_fiber_1.connect_peer(old_fiber_2)
time.sleep(1)
# 2. open_channel with fiber
self.open_channel(
old_fiber_1, old_fiber_2, 1000 * 100000000, 1000 * 100000000, 1000, 1000
)
self.send_payment(old_fiber_1, old_fiber_2, 100)

# 3. stop fiber
old_fiber_1.stop()
old_fiber_2.stop()

# 4. migration and restart fiber 0.3.0
old_fiber_1.fiber_config_enum = FiberConfigPath.CURRENT_DEV
old_fiber_2.fiber_config_enum = FiberConfigPath.CURRENT_DEV
old_fiber_1.migration()
time.sleep(5)
old_fiber_1.start()
time.sleep(5)
old_fiber_2.migration()
old_fiber_2.start()
time.sleep(10)

# 5. send_payment
self.send_payment(old_fiber_1, old_fiber_2, 100)
Expand Down
48 changes: 17 additions & 31 deletions test_cases/fiber/devnet/compatibility/test_p2p.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,28 @@

class TestP2p(FiberTest):

@pytest.mark.skip("not support old fiber")
def test_old_fiber(self):
"""
1. start 0.2.0 node
2. open_channel with node 0.2.0
3. send_payment with node 0.2.0
Returns:

"""
old_fiber = self.start_new_fiber(
self.generate_account(10000), fiber_version=FiberConfigPath.V020_DEV
self.generate_account(10000), fiber_version=FiberConfigPath.V050_DEV
)
old_fiber.connect_peer(self.fiber1)
time.sleep(1)
old_fiber.get_client().open_channel(
{
"peer_id": self.fiber1.get_peer_id(),
"funding_amount": hex(1000 + 62 * 100000000),
"tlc_fee_proportional_millionths": hex(1000),
"public": True,
}
with pytest.raises(Exception) as exc_info:
self.fiber1.get_client().open_channel(
{
"peer_id": old_fiber.get_peer_id(),
"funding_amount": hex(1000 + 62 * 100000000),
"tlc_fee_proportional_millionths": hex(1000),
"public": True,
}
)
expected_error_message = "feature not found"
assert expected_error_message in exc_info.value.args[0], (
f"Expected substring '{expected_error_message}' "
f"not found in actual string '{exc_info.value.args[0]}'"
)

old_fiber.get_client().open_channel(
Expand All @@ -39,21 +40,6 @@ def test_old_fiber(self):
"public": True,
}
)
self.fiber1.get_client().open_channel(
{
"peer_id": old_fiber.get_peer_id(),
"funding_amount": hex(2000 * 100000000),
"tlc_fee_proportional_millionths": hex(1000),
"public": True,
}
)
self.open_channel(
self.fiber1, self.fiber2, 1000 * 100000000, 1000 * 100000000, 1000, 1000
)
with pytest.raises(Exception) as exc_info:
self.send_payment(old_fiber, self.fiber1, 100)
expected_error_message = "no path found"
assert expected_error_message in exc_info.value.args[0], (
f"Expected substring '{expected_error_message}' "
f"not found in actual string '{exc_info.value.args[0]}'"
)
time.sleep(1)
channel = old_fiber.get_client().list_channels({})
assert len(channel["channels"]) == 0
5 changes: 5 additions & 0 deletions test_cases/fiber/devnet/graph_nodes/test_graph_nodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@ def test_node_info(self):
# udt_cfg_infos
assert node["udt_cfg_infos"] == node_info["udt_cfg_infos"]

# features
assert (
node["features"] == node_info["features"]
), f"node:{node}, node_info:{node_info}"

# @pytest.mark.skip("其他节点的graph_nodes 不一定会更新")
def test_change_node_info(self):
"""
Expand Down
6 changes: 4 additions & 2 deletions test_cases/fiber/devnet/node_info/test_node_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

class TestNodeInfo(FiberTest):

@pytest.mark.skip("https://github.com/nervosnetwork/fiber/issues/631")
# @pytest.mark.skip("https://github.com/nervosnetwork/fiber/issues/631")
def test_commit_hash(self):
"""

Expand Down Expand Up @@ -71,14 +71,16 @@ def test_commit_hash(self):

# tlc_max_value
# https://github.com/nervosnetwork/fiber/issues/631
assert node_info["tlc_max_value"] == hex(0)
# assert node_info["tlc_max_value"] == hex(0)

# tlc_fee_proportional_millionths
assert node_info["tlc_fee_proportional_millionths"] == hex(1000)

# peers_count
assert node_info["peers_count"] == hex(1)

assert node_info["features"] is not None, "features should not be None"

def test_channel_count(self):
"""
check channel_count
Expand Down