1import ./make-test-python.nix ({ pkgs, ... }: {
2 name = "clickhouse";
3 meta.maintainers = with pkgs.lib.maintainers; [ ma27 ];
4
5 nodes.machine = {
6 services.clickhouse.enable = true;
7 virtualisation.memorySize = 4096;
8 };
9
10 testScript =
11 let
12 # work around quote/substitution complexity by Nix, Perl, bash and SQL.
13 tableDDL = pkgs.writeText "ddl.sql" "CREATE TABLE `demo` (`value` FixedString(10)) engine = MergeTree PARTITION BY value ORDER BY tuple();";
14 insertQuery = pkgs.writeText "insert.sql" "INSERT INTO `demo` (`value`) VALUES ('foo');";
15 selectQuery = pkgs.writeText "select.sql" "SELECT * from `demo`";
16 in
17 ''
18 machine.start()
19 machine.wait_for_unit("clickhouse.service")
20 machine.wait_for_open_port(9000)
21
22 machine.succeed(
23 "cat ${tableDDL} | clickhouse-client"
24 )
25 machine.succeed(
26 "cat ${insertQuery} | clickhouse-client"
27 )
28 machine.succeed(
29 "cat ${selectQuery} | clickhouse-client | grep foo"
30 )
31 '';
32})