mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-11 07:15:54 +03:00
nixos/monetdb: Init nixos test
This commit is contained in:
parent
a5c5309799
commit
1cd1834ec0
@ -542,6 +542,7 @@ in {
|
|||||||
mod_perl = handleTest ./mod_perl.nix {};
|
mod_perl = handleTest ./mod_perl.nix {};
|
||||||
molly-brown = handleTest ./molly-brown.nix {};
|
molly-brown = handleTest ./molly-brown.nix {};
|
||||||
monado = handleTest ./monado.nix {};
|
monado = handleTest ./monado.nix {};
|
||||||
|
monetdb = handleTest ./monetdb.nix {};
|
||||||
monica = handleTest ./web-apps/monica.nix {};
|
monica = handleTest ./web-apps/monica.nix {};
|
||||||
mongodb = handleTest ./mongodb.nix {};
|
mongodb = handleTest ./mongodb.nix {};
|
||||||
moodle = handleTest ./moodle.nix {};
|
moodle = handleTest ./moodle.nix {};
|
||||||
|
77
nixos/tests/monetdb.nix
Normal file
77
nixos/tests/monetdb.nix
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
import ./make-test-python.nix ({ pkgs, ...} :
|
||||||
|
let creds = pkgs.writeText ".monetdb" ''
|
||||||
|
user=monetdb
|
||||||
|
password=monetdb
|
||||||
|
'';
|
||||||
|
createUser = pkgs.writeText "createUser.sql" ''
|
||||||
|
CREATE USER "voc" WITH PASSWORD 'voc' NAME 'VOC Explorer' SCHEMA "sys";
|
||||||
|
CREATE SCHEMA "voc" AUTHORIZATION "voc";
|
||||||
|
ALTER USER "voc" SET SCHEMA "voc";
|
||||||
|
'';
|
||||||
|
credsVoc = pkgs.writeText ".monetdb" ''
|
||||||
|
user=voc
|
||||||
|
password=voc
|
||||||
|
'';
|
||||||
|
transaction = pkgs.writeText "transaction" ''
|
||||||
|
START TRANSACTION;
|
||||||
|
CREATE TABLE test (id int, data varchar(30));
|
||||||
|
ROLLBACK;
|
||||||
|
'';
|
||||||
|
vocData = pkgs.fetchzip {
|
||||||
|
url = "https://dev.monetdb.org/Assets/VOC/voc_dump.zip";
|
||||||
|
hash = "sha256-sQ5acTsSAiXQfOgt2PhN7X7Z9TZGZtLrPPxgQT2pCGQ=";
|
||||||
|
};
|
||||||
|
onboardPeople = pkgs.writeText "onboardPeople" ''
|
||||||
|
CREATE VIEW onboard_people AS
|
||||||
|
SELECT * FROM (
|
||||||
|
SELECT 'craftsmen' AS type, craftsmen.* FROM craftsmen
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'impotenten' AS type, impotenten.* FROM impotenten
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'passengers' AS type, passengers.* FROM passengers
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'seafarers' AS type, seafarers.* FROM seafarers
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'soldiers' AS type, soldiers.* FROM soldiers
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'total' AS type, total.* FROM total
|
||||||
|
) AS onboard_people_table;
|
||||||
|
SELECT type, COUNT(*) AS total
|
||||||
|
FROM onboard_people GROUP BY type ORDER BY type;
|
||||||
|
'';
|
||||||
|
onboardExpected = pkgs.lib.strings.replaceStrings ["\n"] ["\\n"] ''
|
||||||
|
+------------+-------+
|
||||||
|
| type | total |
|
||||||
|
+============+=======+
|
||||||
|
| craftsmen | 2349 |
|
||||||
|
| impotenten | 938 |
|
||||||
|
| passengers | 2813 |
|
||||||
|
| seafarers | 4468 |
|
||||||
|
| soldiers | 4177 |
|
||||||
|
| total | 2467 |
|
||||||
|
+------------+-------+
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
name = "monetdb";
|
||||||
|
meta = with pkgs.lib.maintainers; {
|
||||||
|
maintainers = [ StillerHarpo ];
|
||||||
|
};
|
||||||
|
nodes.machine.services.monetdb.enable = true;
|
||||||
|
testScript = ''
|
||||||
|
machine.start()
|
||||||
|
machine.wait_for_unit("monetdb")
|
||||||
|
machine.succeed("monetdbd create mydbfarm")
|
||||||
|
machine.succeed("monetdbd start mydbfarm")
|
||||||
|
machine.succeed("monetdb create voc")
|
||||||
|
machine.succeed("monetdb release voc")
|
||||||
|
machine.succeed("cp ${creds} ./.monetdb")
|
||||||
|
assert "hello world" in machine.succeed("mclient -d voc -s \"SELECT 'hello world'\"")
|
||||||
|
machine.succeed("mclient -d voc ${createUser}")
|
||||||
|
machine.succeed("cp ${credsVoc} ./.monetdb")
|
||||||
|
machine.succeed("mclient -d voc ${transaction}")
|
||||||
|
machine.succeed("mclient -d voc ${vocData}/voc_dump.sql")
|
||||||
|
assert "8131" in machine.succeed("mclient -d voc -s \"SELECT count(*) FROM voyages\"")
|
||||||
|
assert "${onboardExpected}" in machine.succeed("mclient -d voc ${onboardPeople}")
|
||||||
|
|
||||||
|
'';
|
||||||
|
})
|
Loading…
Reference in New Issue
Block a user