diff options
-rw-r--r-- | test/functional/cases/210_clickhouse/001_migration.robot | 10 | ||||
-rw-r--r-- | test/functional/configs/clickhouse-config.xml | 288 | ||||
-rw-r--r-- | test/functional/lib/rspamd.py | 9 | ||||
-rw-r--r-- | test/functional/lib/rspamd.robot | 2 |
4 files changed, 22 insertions, 287 deletions
diff --git a/test/functional/cases/210_clickhouse/001_migration.robot b/test/functional/cases/210_clickhouse/001_migration.robot index d1b357415..9ee526c6c 100644 --- a/test/functional/cases/210_clickhouse/001_migration.robot +++ b/test/functional/cases/210_clickhouse/001_migration.robot @@ -63,10 +63,10 @@ Clickhouse Setup ${config} = Replace Variables ${template} Create File ${TMPDIR}/clickhouse-config.xml ${config} Copy File ${TESTDIR}/configs/clickhouse-users.xml ${TMPDIR}/users.xml - Create Directory ${TMPDIR}/metadata - Create Directory ${TMPDIR}/metadata/default - Create Directory ${TMPDIR}/data/default - ${result} = Run Process clickhouse-server --daemon --config-file\=${TMPDIR}/clickhouse-config.xml --pid-file\=${TMPDIR}/clickhouse.pid + Create Directory ${TMPDIR}/clickhouse + Set Directory Ownership ${TMPDIR}/clickhouse clickhouse clickhouse + ${result} = Run Process + ... su -s /bin/sh clickhouse -c clickhouse-server --daemon --config-file\=${TMPDIR}/clickhouse-config.xml --pid-file\=${TMPDIR}/clickhouse/clickhouse.pid Run Keyword If ${result.rc} != 0 Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Wait Until Keyword Succeeds 5 sec 50 ms TCP Connect localhost ${CLICKHOUSE_PORT} @@ -76,7 +76,7 @@ Clickhouse Setup Clickhosue Teardown # Sleep 30 - ${clickhouse_pid} = Get File ${TMPDIR}/clickhouse.pid + ${clickhouse_pid} = Get File ${TMPDIR}/clickhouse/clickhouse.pid Shutdown Process With Children ${clickhouse_pid} Simple Teardown diff --git a/test/functional/configs/clickhouse-config.xml b/test/functional/configs/clickhouse-config.xml index b210748ba..30f556f0c 100644 --- a/test/functional/configs/clickhouse-config.xml +++ b/test/functional/configs/clickhouse-config.xml @@ -2,53 +2,20 @@ <yandex> <logger> <!-- Possible levels: https://github.com/pocoproject/poco/blob/develop/Foundation/include/Poco/Logger.h#L105 --> - <level>trace</level> - <log>${TMPDIR}/clickhouse-server.log</log> - <errorlog>${TMPDIR}/clickhouse-server.err.log</errorlog> + <level>debug</level> + <log>${TMPDIR}/clickhouse/clickhouse-server.log</log> + <errorlog>${TMPDIR}/clickhouse/clickhouse-server.err.log</errorlog> <size>1000M</size> <count>10</count> <!-- <console>1</console> --> <!-- Default behavior is autodetection (log to console if not daemon mode and is tty) --> </logger> - <!--display_name>production</display_name--> <!-- It is the name that will be shown in the client --> - <http_port>${CLICKHOUSE_PORT}</http_port> - <tcp_port>19000</tcp_port> - - <!-- For HTTPS and SSL over native protocol. --> - <!-- - <https_port>8443</https_port> - <tcp_port_secure>9440</tcp_port_secure> - --> - - <!-- Default root page on http[s] server. For example load UI from https://tabix.io/ when opening http://localhost:8123 --> - <!-- - <http_server_default_response><![CDATA[<html ng-app="SMI2"><head><base href="http://ui.tabix.io/"></head><body><div ui-view="" class="content-ui"></div><script src="http://loader.tabix.io/master.js"></script></body></html>]]></http_server_default_response> - --> - - <!-- Port for communication between replicas. Used for data exchange. --> - <interserver_http_port>19009</interserver_http_port> - - <!-- Hostname that is used by other replicas to request this server. - If not specified, than it is determined analoguous to 'hostname -f' command. - This setting could be used to switch replication to another network interface. - --> - <!-- - <interserver_http_host>example.yandex.ru</interserver_http_host> - --> - - <!-- Listen specified host. use :: (wildcard IPv6 address), if you want to accept connections both with IPv4 and IPv6 from everywhere. --> - <!-- <listen_host>::</listen_host> --> - <!-- Same for hosts with disabled ipv6: --> - <!-- <listen_host>0.0.0.0</listen_host> --> - <!-- Default values - try listen localhost on ipv4 and ipv6: --> - <!-- - <listen_host>::1</listen_host> <listen_host>127.0.0.1</listen_host> - --> - <!-- Don't exit if ipv6 or ipv4 unavailable, but listen_host with this protocol specified --> - <!-- <listen_try>0</listen_try> --> + <http_port>${CLICKHOUSE_PORT}</http_port> + + <!-- Path to configuration file with users, access rights, profiles of settings, quotas. --> + <users_config>${TMPDIR}/users.xml</users_config> - <!-- Allow listen on same address:port --> <!-- <listen_reuse_port>0</listen_reuse_port> --> <!-- <listen_backlog>64</listen_backlog> --> @@ -63,31 +30,14 @@ correct maximum value. --> <max_open_files>256</max_open_files> - <!-- Size of cache of uncompressed blocks of data, used in tables of MergeTree family. - In bytes. Cache is single for server. Memory is allocated only on demand. - Cache is used when 'use_uncompressed_cache' user setting turned on (off by default). - Uncompressed cache is advantageous only for very short queries and in rare cases. - --> - <uncompressed_cache_size>8589934592</uncompressed_cache_size> - <!-- Approximate size of mark cache, used in tables of MergeTree family. In bytes. Cache is single for server. Memory is allocated only on demand. You should not lower this value. --> <mark_cache_size>5368709120</mark_cache_size> - <!-- Path to data directory, with trailing slash. --> - <path>${TMPDIR}/</path> - - <!-- Path to temporary data for processing hard queries. --> - <tmp_path>${TMPDIR}</tmp_path> - - <!-- Directory with user provided files that are accessible by 'file' table function. --> - <user_files_path>${TMPDIR}</user_files_path> - - <!-- Path to configuration file with users, access rights, profiles of settings, quotas. --> - <users_config>${TMPDIR}/users.xml</users_config> + <path>${TMPDIR}/clickhouse/</path> <!-- Default profile of settings. --> <default_profile>default</default_profile> @@ -117,226 +67,4 @@ --> <!-- <umask>022</umask> --> - <!-- Configuration of clusters that could be used in Distributed tables. - https://clickhouse.yandex/docs/en/table_engines/distributed/ - --> -<!-- - <remote_servers incl="clickhouse_remote_servers" > - <!– Test only shard config for testing distributed storage –> - <test_shard_localhost> - <shard> - <replica> - <host>localhost</host> - <port>19000</port> - </replica> - </shard> - </test_shard_localhost> - <test_shard_localhost_secure> - <shard> - <replica> - <host>localhost</host> - <port>19440</port> - <secure>1</secure> - </replica> - </shard> - </test_shard_localhost_secure> - </remote_servers> ---> - - - <!-- If element has 'incl' attribute, then for it's value will be used corresponding substitution from another file. - By default, path to file with substitutions is /etc/metrika.xml. It could be changed in config in 'include_from' element. - Values for substitutions are specified in /yandex/name_of_substitution elements in that file. - --> - - <!-- ZooKeeper is used to store metadata about replicas, when using Replicated tables. - Optional. If you don't use replicated tables, you could omit that. - - See https://clickhouse.yandex/docs/en/table_engines/replication/ - --> - <zookeeper incl="zookeeper-servers" optional="true" /> - - <!-- Substitutions for parameters of replicated tables. - Optional. If you don't use replicated tables, you could omit that. - - See https://clickhouse.yandex/docs/en/table_engines/replication/#creating-replicated-tables - --> - <macros incl="macros" optional="true" /> - - - <!-- Reloading interval for embedded dictionaries, in seconds. Default: 3600. --> - <builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval> - - - <!-- Maximum session timeout, in seconds. Default: 3600. --> - <max_session_timeout>3600</max_session_timeout> - - <!-- Default session timeout, in seconds. Default: 60. --> - <default_session_timeout>60</default_session_timeout> - - <!-- Sending data to Graphite for monitoring. Several sections can be defined. --> - <!-- - interval - send every X second - root_path - prefix for keys - hostname_in_path - append hostname to root_path (default = true) - metrics - send data from table system.metrics - events - send data from table system.events - asynchronous_metrics - send data from table system.asynchronous_metrics - --> - <!-- - <graphite> - <host>localhost</host> - <port>42000</port> - <timeout>0.1</timeout> - <interval>60</interval> - <root_path>one_min</root_path> - <hostname_in_path>true</hostname_in_path> - - <metrics>true</metrics> - <events>true</events> - <asynchronous_metrics>true</asynchronous_metrics> - </graphite> - <graphite> - <host>localhost</host> - <port>42000</port> - <timeout>0.1</timeout> - <interval>1</interval> - <root_path>one_sec</root_path> - - <metrics>true</metrics> - <events>true</events> - <asynchronous_metrics>false</asynchronous_metrics> - </graphite> - --> - - - <!-- Query log. Used only for queries with setting log_queries = 1. --> - <query_log> - <!-- What table to insert data. If table is not exist, it will be created. - When query log structure is changed after system update, - then old table will be renamed and new table will be created automatically. - --> - <database>system</database> - <table>query_log</table> - <!-- - PARTITION BY expr https://clickhouse.yandex/docs/en/table_engines/custom_partitioning_key/ - Example: - event_date - toMonday(event_date) - toYYYYMM(event_date) - toStartOfHour(event_time) - --> - <partition_by>toYYYYMM(event_date)</partition_by> - <!-- Interval of flushing data. --> - <flush_interval_milliseconds>7500</flush_interval_milliseconds> - </query_log> - - - <!-- Uncomment if use part_log - <part_log> - <database>system</database> - <table>part_log</table> - - <flush_interval_milliseconds>7500</flush_interval_milliseconds> - </part_log> - --> - - - <!-- Parameters for embedded dictionaries, used in Yandex.Metrica. - See https://clickhouse.yandex/docs/en/dicts/internal_dicts/ - --> - - <!-- Path to file with region hierarchy. --> - <!-- <path_to_regions_hierarchy_file>/opt/geo/regions_hierarchy.txt</path_to_regions_hierarchy_file> --> - - <!-- Path to directory with files containing names of regions --> - <!-- <path_to_regions_names_files>/opt/geo/</path_to_regions_names_files> --> - - - <!-- Configuration of external dictionaries. See: - https://clickhouse.yandex/docs/en/dicts/external_dicts/ - --> - <dictionaries_config>*_dictionary.xml</dictionaries_config> - - <!-- Uncomment if you want data to be compressed 30-100% better. - Don't do that if you just started using ClickHouse. - --> - <compression incl="clickhouse_compression"> - <!-- - <!- - Set of variants. Checked in order. Last matching case wins. If nothing matches, lz4 will be used. - -> - <case> - - <!- - Conditions. All must be satisfied. Some conditions may be omitted. - -> - <min_part_size>10000000000</min_part_size> <!- - Min part size in bytes. - -> - <min_part_size_ratio>0.01</min_part_size_ratio> <!- - Min size of part relative to whole table size. - -> - - <!- - What compression method to use. - -> - <method>zstd</method> - </case> - --> - </compression> - - <!-- Allow to execute distributed DDL queries (CREATE, DROP, ALTER, RENAME) on cluster. - Works only if ZooKeeper is enabled. Comment it if such functionality isn't required. --> - <distributed_ddl> - <!-- Path in ZooKeeper to queue with DDL queries --> - <path>/clickhouse/task_queue/ddl</path> - - <!-- Settings from this profile will be used to execute DDL queries --> - <!-- <profile>default</profile> --> - </distributed_ddl> - - <!-- Settings to fine tune MergeTree tables. See documentation in source code, in MergeTreeSettings.h --> - <!-- - <merge_tree> - <max_suspicious_broken_parts>5</max_suspicious_broken_parts> - </merge_tree> - --> - - <!-- Protection from accidental DROP. - If size of a MergeTree table is greater than max_table_size_to_drop (in bytes) than table could not be dropped with any DROP query. - If you want do delete one table and don't want to restart clickhouse-server, you could create special file <clickhouse-path>/flags/force_drop_table and make DROP once. - By default max_table_size_to_drop is 50GB, max_table_size_to_drop=0 allows to DROP any tables. - Uncomment to disable protection. - --> - <!-- <max_table_size_to_drop>0</max_table_size_to_drop> --> - - <!-- Example of parameters for GraphiteMergeTree table engine --> - <graphite_rollup_example> - <pattern> - <regexp>click_cost</regexp> - <function>any</function> - <retention> - <age>0</age> - <precision>3600</precision> - </retention> - <retention> - <age>86400</age> - <precision>60</precision> - </retention> - </pattern> - <default> - <function>max</function> - <retention> - <age>0</age> - <precision>60</precision> - </retention> - <retention> - <age>3600</age> - <precision>300</precision> - </retention> - <retention> - <age>86400</age> - <precision>3600</precision> - </retention> - </default> - </graphite_rollup_example> - - <!-- Directory in <clickhouse-path> containing schema files for various input formats. - The directory will be created if it doesn't exist. - --> - <format_schema_path>/var/lib/clickhouse/format_schemas/</format_schema_path> - - <!-- Uncomment to disable ClickHouse internal DNS caching. --> - <!-- <disable_internal_dns_cache>1</disable_internal_dns_cache> --> </yandex> diff --git a/test/functional/lib/rspamd.py b/test/functional/lib/rspamd.py index ee76a9b45..9f7176ca9 100644 --- a/test/functional/lib/rspamd.py +++ b/test/functional/lib/rspamd.py @@ -102,7 +102,14 @@ def HTTP(method, host, port, path, data=None, headers={}): return [s, t] def make_temporary_directory(): - return tempfile.mkdtemp() + """Creates and returns a unique temporary directory + + Example: + | ${TMPDIR} = | Make Temporary Directory | + """ + dirname = tempfile.mkdtemp() + os.chmod(dirname, 0755) + return dirname def make_temporary_file(): return tempfile.mktemp() diff --git a/test/functional/lib/rspamd.robot b/test/functional/lib/rspamd.robot index 7572e78a4..1e18a61a8 100644 --- a/test/functional/lib/rspamd.robot +++ b/test/functional/lib/rspamd.robot @@ -71,7 +71,7 @@ Generic Teardown Run Keyword If '${CONTROLLER_ERRORS}' == 'True' Check Controller Errors Shutdown Process With Children ${RSPAMD_PID} Log does not contain segfault record - Save Run Results ${TMPDIR} rspamd.log redis.log rspamd.conf clickhouse-server.log clickhouse-server.err.log clickhouse-config.xml + Save Run Results ${TMPDIR} rspamd.log redis.log rspamd.conf clickhouse-config.xml Collect Lua Coverage Cleanup Temporary Directory ${TMPDIR} |