nixos/mod_perl: add test

launchpad/nixpkgs/master
Stig Palmquist 3 years ago
parent c4095d0e41
commit 5e13c58f78
  1. 1
      nixos/tests/all-tests.nix
  2. 53
      nixos/tests/mod_perl.nix

@ -255,6 +255,7 @@ in
miniflux = handleTest ./miniflux.nix {};
minio = handleTest ./minio.nix {};
misc = handleTest ./misc.nix {};
mod_perl = handleTest ./mod_perl.nix {};
moinmoin = handleTest ./moinmoin.nix {};
mongodb = handleTest ./mongodb.nix {};
moodle = handleTest ./moodle.nix {};

@ -0,0 +1,53 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "mod_perl";
meta = with pkgs.lib.maintainers; {
maintainers = [ sgo ];
};
machine = { config, lib, pkgs, ... }: {
services.httpd = {
enable = true;
adminAddr = "admin@localhost";
virtualHosts."modperl" =
let
inc = pkgs.writeTextDir "ModPerlTest.pm" ''
package ModPerlTest;
use strict;
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::Const -compile => qw(OK);
sub handler {
my $r = shift;
$r->content_type('text/plain');
print "Hello mod_perl!\n";
return Apache2::Const::OK;
}
1;
'';
startup = pkgs.writeScript "startup.pl" ''
use lib "${inc}",
split ":","${with pkgs.perl.pkgs; makeFullPerlPath ([ mod_perl2 ])}";
1;
'';
in
{
extraConfig = ''
PerlRequire ${startup}
'';
locations."/modperl" = {
extraConfig = ''
SetHandler perl-script
PerlResponseHandler ModPerlTest
'';
};
};
enablePerl = true;
};
};
testScript = { ... }: ''
machine.wait_for_unit("httpd.service")
response = machine.succeed("curl -fvvv -s http://127.0.0.1:80/modperl")
assert "Hello mod_perl!" in response, "/modperl handler did not respond"
'';
})
Loading…
Cancel
Save