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