mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-10-31 14:41:27 +00:00
nixosTests.bees: port to python
This commit is contained in:
parent
2d49ee8727
commit
ca12e08caa
@ -28,6 +28,7 @@ in
|
|||||||
babeld = handleTest ./babeld.nix {};
|
babeld = handleTest ./babeld.nix {};
|
||||||
bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
|
bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
|
||||||
beanstalkd = handleTest ./beanstalkd.nix {};
|
beanstalkd = handleTest ./beanstalkd.nix {};
|
||||||
|
bees = handleTest ./bees.nix {};
|
||||||
bind = handleTest ./bind.nix {};
|
bind = handleTest ./bind.nix {};
|
||||||
bittorrent = handleTest ./bittorrent.nix {};
|
bittorrent = handleTest ./bittorrent.nix {};
|
||||||
#blivet = handleTest ./blivet.nix {}; # broken since 2017-07024
|
#blivet = handleTest ./blivet.nix {}; # broken since 2017-07024
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import ./make-test.nix ({ lib, ... }:
|
import ./make-test-python.nix ({ lib, pkgs, ... }:
|
||||||
{
|
{
|
||||||
name = "bees";
|
name = "bees";
|
||||||
|
|
||||||
@ -29,27 +29,34 @@ import ./make-test.nix ({ lib, ... }:
|
|||||||
|
|
||||||
testScript =
|
testScript =
|
||||||
let
|
let
|
||||||
withRetry = content: maxTests: sleepTime: ''
|
someContentIsShared = loc: pkgs.writeShellScript "some-content-is-shared" ''
|
||||||
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;
|
[[ $(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 ''
|
in ''
|
||||||
# shut down the instance started by systemd at boot, so we can test our test procedure
|
# 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(
|
||||||
$machine->succeed("cp --reflink=never /aux1/dedup-me-1 /aux1/dedup-me-2");
|
"dd if=/dev/urandom of=/aux1/dedup-me-1 bs=1M count=8",
|
||||||
$machine->succeed("cp --reflink=never /aux1/* /aux2/");
|
"cp --reflink=never /aux1/dedup-me-1 /aux1/dedup-me-2",
|
||||||
$machine->succeed("sync");
|
"cp --reflink=never /aux1/* /aux2/",
|
||||||
$machine->fail(q(${someContentIsShared "/aux1"}));
|
"sync",
|
||||||
$machine->fail(q(${someContentIsShared "/aux2"}));
|
)
|
||||||
$machine->succeed("systemctl start beesd\@aux1.service");
|
machine.fail(
|
||||||
|
"${someContentIsShared "/aux1"}",
|
||||||
|
"${someContentIsShared "/aux2"}",
|
||||||
|
)
|
||||||
|
machine.succeed("systemctl start beesd@aux1.service")
|
||||||
|
|
||||||
# assert that "Set Shared" column is nonzero
|
# assert that "Set Shared" column is nonzero
|
||||||
$machine->succeed(q(${withRetry (someContentIsShared "/aux1") 20 2}));
|
machine.wait_until_succeeds(
|
||||||
$machine->fail(q(${someContentIsShared "/aux2"}));
|
"${someContentIsShared "/aux1"}",
|
||||||
|
)
|
||||||
|
machine.fail("${someContentIsShared "/aux2"}")
|
||||||
|
|
||||||
# assert that 16MB hash table size requested was honored
|
# 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)) ]]"
|
||||||
|
)
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user