summaryrefslogtreecommitdiffstats
path: root/nixos/tests/bees.nix
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2019-11-24 01:10:17 +0100
committerRobin Gloster <mail@glob.in>2019-11-24 18:49:35 +0100
commitca12e08caabcb9c4a0d55d0e5b8f50821b88db11 (patch)
tree3793b411b841f2ca0baab5b320f14a488e7499b6 /nixos/tests/bees.nix
parent2d49ee8727920dcc7c863e75a8f37dc531ac7033 (diff)
nixosTests.bees: port to python
Diffstat (limited to 'nixos/tests/bees.nix')
-rw-r--r--nixos/tests/bees.nix37
1 files changed, 22 insertions, 15 deletions
diff --git a/nixos/tests/bees.nix b/nixos/tests/bees.nix
index 6f68c2f834f1..6e6a9c3446b0 100644
--- a/nixos/tests/bees.nix
+++ b/nixos/tests/bees.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, ... }:
+import ./make-test-python.nix ({ lib, pkgs, ... }:
{
name = "bees";
@@ -29,27 +29,34 @@ import ./make-test.nix ({ lib, ... }:
testScript =
let
- withRetry = content: maxTests: sleepTime: ''
- max_tests=${lib.escapeShellArg maxTests}; sleep_time=${lib.escapeShellArg sleepTime}; for ((i=0; i<max_tests; i++)); do ${content} && exit 0; sleep "$sleep_time"; done; exit 1;
+ someContentIsShared = loc: pkgs.writeShellScript "some-content-is-shared" ''
+ [[ $(btrfs fi du -s --raw ${lib.escapeShellArg loc}/dedup-me-{1,2} | awk 'BEGIN { count=0; } NR>1 && $3 == 0 { count++ } END { print count }') -eq 0 ]]
'';
- someContentIsShared = loc: ''[[ $(btrfs fi du -s --raw ${lib.escapeShellArg loc}/dedup-me-{1,2} | awk 'BEGIN { count=0; } NR>1 && $3 == 0 { count++ } END { print count }') -eq 0 ]]'';
in ''
# shut down the instance started by systemd at boot, so we can test our test procedure
- $machine->succeed("systemctl stop beesd\@aux1.service");
+ machine.succeed("systemctl stop beesd@aux1.service")
- $machine->succeed("dd if=/dev/urandom of=/aux1/dedup-me-1 bs=1M count=8");
- $machine->succeed("cp --reflink=never /aux1/dedup-me-1 /aux1/dedup-me-2");
- $machine->succeed("cp --reflink=never /aux1/* /aux2/");
- $machine->succeed("sync");
- $machine->fail(q(${someContentIsShared "/aux1"}));
- $machine->fail(q(${someContentIsShared "/aux2"}));
- $machine->succeed("systemctl start beesd\@aux1.service");
+ machine.succeed(
+ "dd if=/dev/urandom of=/aux1/dedup-me-1 bs=1M count=8",
+ "cp --reflink=never /aux1/dedup-me-1 /aux1/dedup-me-2",
+ "cp --reflink=never /aux1/* /aux2/",
+ "sync",
+ )
+ machine.fail(
+ "${someContentIsShared "/aux1"}",
+ "${someContentIsShared "/aux2"}",
+ )
+ machine.succeed("systemctl start beesd@aux1.service")
# assert that "Set Shared" column is nonzero
- $machine->succeed(q(${withRetry (someContentIsShared "/aux1") 20 2}));
- $machine->fail(q(${someContentIsShared "/aux2"}));
+ machine.wait_until_succeeds(
+ "${someContentIsShared "/aux1"}",
+ )
+ machine.fail("${someContentIsShared "/aux2"}")
# assert that 16MB hash table size requested was honored
- $machine->succeed(q([[ $(stat -c %s /aux1/.beeshome/beeshash.dat) = $(( 16 * 1024 * 1024)) ]]))
+ machine.succeed(
+ "[[ $(stat -c %s /aux1/.beeshome/beeshash.dat) = $(( 16 * 1024 * 1024)) ]]"
+ )
'';
})