1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import pytest
from testlib.fixtures.file_helper import with_files
from testlib.fixtures.nix import Nix
from testlib.utils import get_global_asset_pack
@with_files(get_global_asset_pack("dependencies"))
@pytest.mark.parametrize("algorithm", ["br", "zstd", "xz"])
def test_cache_compressions(nix: Nix, algorithm: str):
nix.settings.add_xp_feature("nix-command")
cache_uri = f"file://{nix.env.dirs.cache_dir}?compression={algorithm}"
res = nix.nix_build(["dependencies.nix", "--no-out-link"]).run().ok()
out_path = res.stdout_plain
res = nix.nix(["copy", "--to", cache_uri, out_path]).run().ok()
assert "copying 4 paths..." in res.stderr_plain
hash1 = nix.hash_path(out_path)
# clear the "cache cache"
for f in (nix.env.dirs.home / ".cache" / "nix").glob("test-binary-cache*"):
f.unlink()
nix.clear_store()
res = nix.nix(["copy", "--from", cache_uri, out_path, "--no-check-sigs"]).run().ok()
assert "copying 4 paths..." in res.stderr_plain
hash2 = nix.hash_path(out_path)
assert hash1 == hash2
|