Skip to content

Commit

Permalink
Improving base_58 tests stability.
Browse files Browse the repository at this point in the history
  • Loading branch information
antip00 committed Jan 23, 2025
1 parent e791074 commit 07a6f08
Showing 1 changed file with 70 additions and 51 deletions.
121 changes: 70 additions & 51 deletions base_58/tests/memory_usage.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ def memory_usage_for_column_input(self, node=None):
with Then("I check data is not changed"):
assert expected_result == base64_decoded == base58_decoded, error()

for attempt in retries(timeout=30, delay=3):
for attempt in retries(timeout=100, delay=10):
with attempt:
with Then("I check memory usage is simular"):
with When("I remember memory usages"):
r = node.query(
f"SELECT max(memory_usage) FROM system.query_log WHERE query_id = '2000' FORMAT TabSeparated"
)
Expand All @@ -77,8 +77,19 @@ def memory_usage_for_column_input(self, node=None):
f"SELECT max(memory_usage) FROM system.query_log WHERE query_id = '2003' FORMAT TabSeparated"
)
b58_decode_memory_usage = int(r.output)
assert b58_encode_memory_usage <= b64_encode_memory_usage * 2, error()
assert b58_decode_memory_usage <= b64_decode_memory_usage * 2, error()
debug(f"b58_encode_memory_usage: {b58_encode_memory_usage},\n"
f"b64_encode_memory_usage: {b64_encode_memory_usage},\n"
f"b58_decode_memory_usage: {b58_decode_memory_usage},\n"
f"b64_decode_memory_usage: {b64_decode_memory_usage}")

assert b58_encode_memory_usage > 0, error()
assert b64_encode_memory_usage > 0, error()
assert b58_decode_memory_usage > 0, error()
assert b64_decode_memory_usage > 0, error()

with Then("I check memory usages are similar"):
assert b58_encode_memory_usage <= b64_encode_memory_usage * 2, error()
assert b58_decode_memory_usage <= b64_decode_memory_usage * 2, error()


@TestScenario
Expand All @@ -88,68 +99,76 @@ def memory_usage_for_constant_input(self, node=None):
if node is None:
node = self.context.node

with When("I run base58 encode function"):
r = node.query(
f"SELECT base58Encode('{string_of_all_askii_symbols()*1000}') FORMAT TabSeparated",
query_id=1000,
)
b58_encoded_string = r.output

with When("I run base64 encode function"):
r = node.query(
f"SELECT base64Encode('{string_of_all_askii_symbols()*1000}') FORMAT TabSeparated",
query_id=1001,
)
b64_encoded_string = r.output

with When("I run base58 decode function"):
r = node.query(
f"SELECT base58Decode('{b58_encoded_string}') FORMAT TabSeparated",
query_id=1002,
)
b58_decoded_string = r.output

with When("I run base64 decode function"):
r = node.query(
f"SELECT base64Decode('{b64_encoded_string}') FORMAT TabSeparated",
query_id=1003,
)
b64_decoded_string = r.output

with Then("I check strings are not changed after encode, decode"):
assert b58_decoded_string == string_of_all_askii_symbols() * 1000, error()
assert b64_decoded_string == string_of_all_askii_symbols() * 1000, error()

for attempt in retries(timeout=100, delay=10, initial_delay=10):
for attempt in retries(timeout=100, delay=10):
with attempt:
with When("I remember memory usages"):
id_for_retry = (1000 + attempt.retry_number) * 10

with When("I run base58 encode function"):
r = node.query(
f"SELECT max(memory_usage) FROM system.query_log WHERE query_id = '1000' FORMAT TabSeparated"
f"SELECT base58Encode('{string_of_all_askii_symbols()*1000}') FORMAT TabSeparated",
query_id=id_for_retry + 0,
)
b58_encode_memory_usage = int(r.output)
assert b58_encode_memory_usage > 0, error()
b58_encoded_string = r.output

with When("I run base64 encode function"):
r = node.query(
f"SELECT max(memory_usage) FROM system.query_log WHERE query_id = '1001' FORMAT TabSeparated"
f"SELECT base64Encode('{string_of_all_askii_symbols()*1000}') FORMAT TabSeparated",
query_id=id_for_retry + 1,
)
b64_encode_memory_usage = int(r.output)
assert b64_encode_memory_usage > 0, error()
b64_encoded_string = r.output

with When("I run base58 decode function"):
r = node.query(
f"SELECT max(memory_usage) FROM system.query_log WHERE query_id = '1002' FORMAT TabSeparated"
f"SELECT base58Decode('{b58_encoded_string}') FORMAT TabSeparated",
query_id=id_for_retry + 2,
)
b58_decode_memory_usage = int(r.output)
assert b58_decode_memory_usage > 0, error()
b58_decoded_string = r.output

with When("I run base64 decode function"):
r = node.query(
f"SELECT max(memory_usage) FROM system.query_log WHERE query_id = '1003' FORMAT TabSeparated"
f"SELECT base64Decode('{b64_encoded_string}') FORMAT TabSeparated",
query_id=id_for_retry + 3,
)
b64_decode_memory_usage = int(r.output)
assert b64_decode_memory_usage > 0, error()
b64_decoded_string = r.output

with Then("I check strings are not changed after encode, decode"):
assert b58_decoded_string == string_of_all_askii_symbols() * 1000, error()
assert b64_decoded_string == string_of_all_askii_symbols() * 1000, error()

for attempt_1 in retries(timeout=100, delay=10):
with attempt_1:
with When("I remember memory usages"):
r = node.query(
f"SELECT max(memory_usage) FROM system.query_log WHERE query_id = '{id_for_retry + 0}' FORMAT TabSeparated"
)
b58_encode_memory_usage = int(r.output)
assert b58_encode_memory_usage > 0, error()

r = node.query(
f"SELECT max(memory_usage) FROM system.query_log WHERE query_id = '{id_for_retry + 1}' FORMAT TabSeparated"
)
b64_encode_memory_usage = int(r.output)
assert b64_encode_memory_usage > 0, error()

r = node.query(
f"SELECT max(memory_usage) FROM system.query_log WHERE query_id = '{id_for_retry + 2}' FORMAT TabSeparated"
)
b58_decode_memory_usage = int(r.output)
assert b58_decode_memory_usage > 0, error()

r = node.query(
f"SELECT max(memory_usage) FROM system.query_log WHERE query_id = '{id_for_retry + 3}' FORMAT TabSeparated"
)
b64_decode_memory_usage = int(r.output)
assert b64_decode_memory_usage > 0, error()

with Then("I check memory usages are similar"):
debug(f"""b58_encode_memory_usage: {b58_encode_memory_usage},
b64_encode_memory_usage: {b64_encode_memory_usage},
b58_decode_memory_usage: {b58_decode_memory_usage},
b64_decode_memory_usage: {b64_decode_memory_usage}""")
assert b58_encode_memory_usage <= b64_encode_memory_usage * 2, error()
assert b58_decode_memory_usage <= b64_decode_memory_usage * 4, error()
assert b58_decode_memory_usage <= b64_decode_memory_usage * 2, error()


@TestFeature
Expand Down

0 comments on commit 07a6f08

Please sign in to comment.