Skip to content

Commit

Permalink
Add integrated test for log rotation
Browse files Browse the repository at this point in the history
This is the follow-up to [this PR][0].

[0]: #308
  • Loading branch information
jezen committed Feb 19, 2025
1 parent 7fb5255 commit d7dffe6
Showing 1 changed file with 52 additions and 3 deletions.
55 changes: 52 additions & 3 deletions vm.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,50 @@
testers.nixosTest {
name = "vm-test";

nodes.server = { ... }: {
nodes.server = { pkgs, ... }: {

environment = {
etc = {

"nc.sh" = {
text = ''
#!/bin/sh
while true; do
${pkgs.netcat}/bin/nc -l "$PORT" <<'EOF'
HTTP/1.1 200 OK
Content-Length: 13
Connection: close
Hello, world!
EOF
done
'';
mode = "0755";
};

"keter.yaml".text = ''
stanzas:
- type: webapp
exec: ../nc.sh
hosts:
- localhost
'';

"deploy.sh" = {
text = ''
mkdir -p /tmp/bundle/config
cp /etc/nc.sh /tmp/bundle/nc.sh
cp /etc/keter.yaml /tmp/bundle/config/keter.yaml
tar -C /tmp/bundle -czvf /tmp/nc.keter .
cp /tmp/nc.keter /opt/keter/incoming
'';
mode = "0755";
};

};

systemPackages = [ pkgs.netcat ];
};

imports = [
./keter.nix
Expand All @@ -19,7 +62,7 @@ testers.nixosTest {
package = self.packages.x86_64-linux.keter;
globalKeterConfig = ''
root: /opt/keter
rotate-logs: false
rotate-logs: true
listeners:
- host: "*4"
port: 80
Expand All @@ -32,6 +75,12 @@ testers.nixosTest {
server.start()
server.wait_for_unit("keter-ng.service")
server.wait_for_open_port(80)
server.succeed("curl localhost")
server.succeed(". /etc/deploy.sh")
server.sleep(10)
server.succeed("curl localhost | grep 'Hello, world!'")
server.succeed("! grep -q 'file is locked' /opt/keter/log/keter.log")
server.succeed("touch /opt/keter/incoming/nc.keter")
server.sleep(10)
server.succeed("! grep -q 'file is locked' /opt/keter/log/keter.log")
'';
}

0 comments on commit d7dffe6

Please sign in to comment.