57 lines
1.7 KiB
Nix
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"
|
||
|
)
|
||
|
'';
|
||
|
})
|