summaryrefslogtreecommitdiffstats
path: root/nixos/tests/qlever.nix
blob: 93e390d755d22baa2a30bbace6bbaaf39c0bbebd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
{
  pkgs,
  lib,
  ...
}:

let
  olympics-qleverfile = "${pkgs.qlever-control.src}/src/qlever/Qleverfiles/Qleverfile.olympics";

  olympics-dataset = pkgs.fetchurl {
    url = "https://github.com/wallscope/olympics-rdf/raw/54483d539082641d48e1d49873662b3af628ca4d/data/olympics-nt-nodup.zip";
    hash = "sha256-dY28CQKaMDUUw/pw+p9yX0EtJOnbAAplodMFaedL1B8=";
  };
in

{
  name = "Basic QLever test";
  meta.maintainers = lib.teams.ngi.members;

  nodes = {
    machine =
      {
        pkgs,
        ...
      }:
      {
        environment.systemPackages = with pkgs; [
          qlever
          qlever-control
          unzip
        ];
      };
  };

  testScript =
    # python
    ''
      machine.succeed("cp ${olympics-dataset} /tmp/olympics.zip")
      machine.succeed("cp ${olympics-qleverfile} /tmp/Qleverfile")
      machine.succeed("unzip -q olympics.zip")

      # use qlever binary instead of docker
      machine.succeed("sed -i 's/SYSTEM = docker/SYSTEM = native/' /tmp/Qleverfile")

      machine.succeed("qlever index")

      machine.succeed("qlever start")
      machine.wait_for_open_port(7019) # default server port

      machine.succeed("qlever query")
    '';
}