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