diff options
author | Vincent Ambo <mail@tazj.in> | 2024-10-13T10·19+0300 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-10-13T14·31+0000 |
commit | 5faf7c9d7b5fcf8fb2795b5879aece45d7c62b21 (patch) | |
tree | 4ccc1959a7ee0047f4724ccd0ff7e60a7b166c9c /tvix/nix-compat/src/narinfo | |
parent | cb032b250e7b46ebc28038c8efb48f6a9c0ac75b (diff) |
refactor(tvix/nix-compat): remove use of lazy_static r/8802
This is now supported in the standard library via std::sync::LazyLock, but requires some manual shuffling around of code. I found at least one dead variable along the way, which I deleted. Change-Id: I8600c87c49078fb5ff72671994c77b919259e67b Reviewed-on: https://cl.tvl.fyi/c/depot/+/12608 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su>
Diffstat (limited to 'tvix/nix-compat/src/narinfo')
-rw-r--r-- | tvix/nix-compat/src/narinfo/mod.rs | 28 | ||||
-rw-r--r-- | tvix/nix-compat/src/narinfo/signature.rs | 22 |
2 files changed, 20 insertions, 30 deletions
diff --git a/tvix/nix-compat/src/narinfo/mod.rs b/tvix/nix-compat/src/narinfo/mod.rs index 21aecf80b5a2..35146a927b39 100644 --- a/tvix/nix-compat/src/narinfo/mod.rs +++ b/tvix/nix-compat/src/narinfo/mod.rs @@ -417,8 +417,8 @@ const DUMMY_VERIFYING_KEY: &str = #[cfg(test)] mod test { use hex_literal::hex; - use lazy_static::lazy_static; use pretty_assertions::assert_eq; + use std::sync::LazyLock; use std::{io, str}; use crate::{ @@ -428,20 +428,18 @@ mod test { use super::{Flags, NarInfo}; - lazy_static! { - static ref CASES: &'static [&'static str] = { - let data = zstd::decode_all(io::Cursor::new(include_bytes!( - "../../testdata/narinfo.zst" - ))) - .unwrap(); - let data = str::from_utf8(Vec::leak(data)).unwrap(); - Vec::leak( - data.split_inclusive("\n\n") - .map(|s| s.strip_suffix('\n').unwrap()) - .collect::<Vec<_>>(), - ) - }; - } + static CASES: LazyLock<&'static [&'static str]> = LazyLock::new(|| { + let data = zstd::decode_all(io::Cursor::new(include_bytes!( + "../../testdata/narinfo.zst" + ))) + .unwrap(); + let data = str::from_utf8(Vec::leak(data)).unwrap(); + Vec::leak( + data.split_inclusive("\n\n") + .map(|s| s.strip_suffix('\n').unwrap()) + .collect::<Vec<_>>(), + ) + }); #[test] fn roundtrip() { diff --git a/tvix/nix-compat/src/narinfo/signature.rs b/tvix/nix-compat/src/narinfo/signature.rs index 37a7b0a30605..8df77019cd8f 100644 --- a/tvix/nix-compat/src/narinfo/signature.rs +++ b/tvix/nix-compat/src/narinfo/signature.rs @@ -150,32 +150,24 @@ mod test { use data_encoding::BASE64; use ed25519_dalek::VerifyingKey; use hex_literal::hex; - use lazy_static::lazy_static; + use std::sync::LazyLock; use super::Signature; use rstest::rstest; const FINGERPRINT: &str = "1;/nix/store/syd87l2rxw8cbsxmxl853h0r6pdwhwjr-curl-7.82.0-bin;sha256:1b4sb93wp679q4zx9k1ignby1yna3z7c4c2ri3wphylbc2dwsys0;196040;/nix/store/0jqd0rlxzra1rs38rdxl43yh6rxchgc6-curl-7.82.0,/nix/store/6w8g7njm4mck5dmjxws0z1xnrxvl81xa-glibc-2.34-115,/nix/store/j5jxw3iy7bbz4a57fh9g2xm2gxmyal8h-zlib-1.2.12,/nix/store/yxvjs9drzsphm9pcf42a4byzj1kb9m7k-openssl-1.1.1n"; - // The signing key labelled as `cache.nixos.org-1`, - lazy_static! { - static ref PUB_CACHE_NIXOS_ORG_1: VerifyingKey = ed25519_dalek::VerifyingKey::from_bytes( + /// The signing key labelled as `cache.nixos.org-1`, + static PUB_CACHE_NIXOS_ORG_1: LazyLock<VerifyingKey> = LazyLock::new(|| { + ed25519_dalek::VerifyingKey::from_bytes( BASE64 .decode(b"6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=") .unwrap()[..] .try_into() - .unwrap() + .unwrap(), ) - .unwrap(); - static ref PUB_TEST_1: VerifyingKey = ed25519_dalek::VerifyingKey::from_bytes( - BASE64 - .decode(b"tLAEn+EeaBUJYqEpTd2yeerr7Ic6+0vWe+aXL/vYUpE=") - .unwrap()[..] - .try_into() - .unwrap() - ) - .unwrap(); - } + .expect("embedded public key is valid") + }); #[rstest] #[case::valid_cache_nixos_org_1(&PUB_CACHE_NIXOS_ORG_1, &"cache.nixos.org-1:TsTTb3WGTZKphvYdBHXwo6weVILmTytUjLB+vcX89fOjjRicCHmKA4RCPMVLkj6TMJ4GMX3HPVWRdD1hkeKZBQ==", FINGERPRINT, true)] |