mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-06 08:30:54 +00:00
b75963d370
This PR formats all the `*.py` files found under the `tests/integration` folder. It also reorders the imports and cleans up a bunch of unused imports. The formatting also takes care of other things like wrapping lines and fixing spaces and indents such that the tests look more readable.
62 lines
2.6 KiB
Python
62 lines
2.6 KiB
Python
import os
|
|
|
|
import pytest
|
|
from helpers.cluster import ClickHouseCluster
|
|
|
|
|
|
@pytest.fixture(scope="function")
|
|
def cluster(request):
|
|
SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
|
|
cluster = ClickHouseCluster(__file__)
|
|
try:
|
|
if request.param == "memory":
|
|
node = cluster.add_instance('node', main_configs=['configs/enable_dictionaries.xml',
|
|
'configs/dictionaries/complex_key_cache_string.xml'])
|
|
if request.param == "ssd":
|
|
node = cluster.add_instance('node', main_configs=['configs/enable_dictionaries.xml',
|
|
'configs/dictionaries/ssd_complex_key_cache_string.xml'])
|
|
cluster.start()
|
|
node.query(
|
|
"create table radars_table (radar_id String, radar_ip String, client_id String) engine=MergeTree() order by radar_id")
|
|
|
|
yield cluster
|
|
finally:
|
|
cluster.shutdown()
|
|
|
|
|
|
@pytest.mark.parametrize("cluster", ["memory", "ssd"], indirect=True)
|
|
def test_memory_consumption(cluster):
|
|
node = cluster.instances['node']
|
|
node.query(
|
|
"insert into radars_table select toString(rand() % 5000), '{0}', '{0}' from numbers(1000)".format('w' * 8))
|
|
node.query(
|
|
"insert into radars_table select toString(rand() % 5000), '{0}', '{0}' from numbers(1000)".format('x' * 16))
|
|
node.query(
|
|
"insert into radars_table select toString(rand() % 5000), '{0}', '{0}' from numbers(1000)".format('y' * 32))
|
|
node.query(
|
|
"insert into radars_table select toString(rand() % 5000), '{0}', '{0}' from numbers(1000)".format('z' * 64))
|
|
|
|
# Fill dictionary
|
|
node.query("select dictGetString('radars', 'client_id', tuple(toString(number))) from numbers(0, 5000)")
|
|
|
|
allocated_first = int(node.query("select bytes_allocated from system.dictionaries where name = 'radars'").strip())
|
|
|
|
alloc_array = []
|
|
for i in xrange(5):
|
|
node.query("select dictGetString('radars', 'client_id', tuple(toString(number))) from numbers(0, 5000)")
|
|
|
|
allocated = int(node.query("select bytes_allocated from system.dictionaries where name = 'radars'").strip())
|
|
alloc_array.append(allocated)
|
|
|
|
# size doesn't grow
|
|
assert all(allocated_first >= a for a in alloc_array)
|
|
|
|
for i in xrange(5):
|
|
node.query("select dictGetString('radars', 'client_id', tuple(toString(number))) from numbers(0, 5000)")
|
|
|
|
allocated = int(node.query("select bytes_allocated from system.dictionaries where name = 'radars'").strip())
|
|
alloc_array.append(allocated)
|
|
|
|
# size doesn't grow
|
|
assert all(allocated_first >= a for a in alloc_array)
|