nixpkgs/nixos/tests/solr.nix
2020-02-13 22:40:47 +01:00

57 lines
1.7 KiB
Nix

import ./make-test-python.nix ({ pkgs, ... }:
{
name = "solr";
meta.maintainers = [ pkgs.stdenv.lib.maintainers.aanderse ];
machine =
{ config, pkgs, ... }:
{
# Ensure the virtual machine has enough memory for Solr to avoid the following error:
#
# OpenJDK 64-Bit Server VM warning:
# INFO: os::commit_memory(0x00000000e8000000, 402653184, 0)
# failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 402653184 bytes for committing reserved memory.
virtualisation.memorySize = 2000;
services.solr.enable = true;
};
testScript = ''
start_all()
machine.wait_for_unit("solr.service")
machine.wait_for_open_port(8983)
machine.succeed("curl --fail http://localhost:8983/solr/")
# adapted from pkgs.solr/examples/films/README.txt
machine.succeed("sudo -u solr solr create -c films")
assert '"status":0' in machine.succeed(
"""
curl http://localhost:8983/solr/films/schema -X POST -H 'Content-type:application/json' --data-binary '{
"add-field" : {
"name":"name",
"type":"text_general",
"multiValued":false,
"stored":true
},
"add-field" : {
"name":"initial_release_date",
"type":"pdate",
"stored":true
}
}'
"""
)
machine.succeed(
"sudo -u solr post -c films ${pkgs.solr}/example/films/films.json"
)
assert '"name":"Batman Begins"' in machine.succeed(
"curl http://localhost:8983/solr/films/query?q=name:batman"
)
'';
})