diff options
author | Florian Klink <flokli@flokli.de> | 2024-10-13T16·09+0300 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2024-10-17T22·15+0000 |
commit | 1c80bc4b5b2736e9421fc8a6f833f1e592e08642 (patch) | |
tree | a4d58eec75f230bbf559933a85d19c25ed35e8b7 /tvix/store/src/tests/fixtures.rs | |
parent | f0d594789ee01df43de50198adef91a11e2a355a (diff) |
refactor(tvix/store): remove use of lazy_static r/8825
This is now supported in the standard library via std::sync::LazyLock, but requires some manual shuffling around of code. Change-Id: Ifca792f4d2dbc36b703de4a4dfa406015ab86da7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12614 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: flokli <flokli@flokli.de> Reviewed-by: edef <edef@edef.eu> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/store/src/tests/fixtures.rs')
-rw-r--r-- | tvix/store/src/tests/fixtures.rs | 138 |
1 files changed, 72 insertions, 66 deletions
diff --git a/tvix/store/src/tests/fixtures.rs b/tvix/store/src/tests/fixtures.rs index 91628f2fee79..48edbcb7c232 100644 --- a/tvix/store/src/tests/fixtures.rs +++ b/tvix/store/src/tests/fixtures.rs @@ -1,11 +1,10 @@ use crate::pathinfoservice::PathInfo; -use lazy_static::lazy_static; use nix_compat::nixhash::{CAHash, NixHash}; use nix_compat::store_path::StorePath; use rstest::{self, *}; use rstest_reuse::*; use std::io; -use std::sync::Arc; +use std::sync::{Arc, LazyLock}; use tvix_castore::fixtures::{ DIRECTORY_COMPLICATED, DIRECTORY_WITH_KEEP, DUMMY_DIGEST, EMPTY_BLOB_CONTENTS, EMPTY_BLOB_DIGEST, HELLOWORLD_BLOB_CONTENTS, HELLOWORLD_BLOB_DIGEST, @@ -19,69 +18,75 @@ use tvix_castore::{ pub const DUMMY_PATH_STR: &str = "00000000000000000000000000000000-dummy"; pub const DUMMY_PATH_DIGEST: [u8; 20] = [0; 20]; -lazy_static! { - pub static ref DUMMY_PATH: StorePath<String> = StorePath::from_name_and_digest_fixed("dummy", DUMMY_PATH_DIGEST).unwrap(); +pub static DUMMY_PATH: LazyLock<StorePath<String>> = + LazyLock::new(|| StorePath::from_name_and_digest_fixed("dummy", DUMMY_PATH_DIGEST).unwrap()); - pub static ref CASTORE_NODE_SYMLINK: Node = Node::Symlink { - target: "/nix/store/somewhereelse".try_into().unwrap(), - }; +pub static CASTORE_NODE_SYMLINK: LazyLock<Node> = LazyLock::new(|| Node::Symlink { + target: "/nix/store/somewhereelse".try_into().unwrap(), +}); - /// The NAR representation of a symlink pointing to `/nix/store/somewhereelse` - pub static ref NAR_CONTENTS_SYMLINK: Vec<u8> = vec![ - 13, 0, 0, 0, 0, 0, 0, 0, b'n', b'i', b'x', b'-', b'a', b'r', b'c', b'h', b'i', b'v', b'e', b'-', b'1', 0, - 0, 0, // "nix-archive-1" +/// The NAR representation of a symlink pointing to `/nix/store/somewhereelse` +pub static NAR_CONTENTS_SYMLINK: LazyLock<Vec<u8>> = LazyLock::new(|| { + vec![ + 13, 0, 0, 0, 0, 0, 0, 0, b'n', b'i', b'x', b'-', b'a', b'r', b'c', b'h', b'i', b'v', b'e', + b'-', b'1', 0, 0, 0, // "nix-archive-1" 1, 0, 0, 0, 0, 0, 0, 0, b'(', 0, 0, 0, 0, 0, 0, 0, // "(" 4, 0, 0, 0, 0, 0, 0, 0, b't', b'y', b'p', b'e', 0, 0, 0, 0, // "type" 7, 0, 0, 0, 0, 0, 0, 0, b's', b'y', b'm', b'l', b'i', b'n', b'k', 0, // "symlink" 6, 0, 0, 0, 0, 0, 0, 0, b't', b'a', b'r', b'g', b'e', b't', 0, 0, // target - 24, 0, 0, 0, 0, 0, 0, 0, b'/', b'n', b'i', b'x', b'/', b's', b't', b'o', b'r', b'e', b'/', b's', b'o', - b'm', b'e', b'w', b'h', b'e', b'r', b'e', b'e', b'l', b's', + 24, 0, 0, 0, 0, 0, 0, 0, b'/', b'n', b'i', b'x', b'/', b's', b't', b'o', b'r', b'e', b'/', + b's', b'o', b'm', b'e', b'w', b'h', b'e', b'r', b'e', b'e', b'l', b's', b'e', // "/nix/store/somewhereelse" - 1, 0, 0, 0, 0, 0, 0, 0, b')', 0, 0, 0, 0, 0, 0, 0 // ")" - ]; + 1, 0, 0, 0, 0, 0, 0, 0, b')', 0, 0, 0, 0, 0, 0, 0, // ")" + ] +}); - pub static ref CASTORE_NODE_HELLOWORLD: Node = Node::File { - digest: HELLOWORLD_BLOB_DIGEST.clone(), - size: HELLOWORLD_BLOB_CONTENTS.len() as u64, - executable: false, - }; +pub static CASTORE_NODE_HELLOWORLD: LazyLock<Node> = LazyLock::new(|| Node::File { + digest: HELLOWORLD_BLOB_DIGEST.clone(), + size: HELLOWORLD_BLOB_CONTENTS.len() as u64, + executable: false, +}); - /// The NAR representation of a regular file with the contents "Hello World!" - pub static ref NAR_CONTENTS_HELLOWORLD: Vec<u8> = vec![ - 13, 0, 0, 0, 0, 0, 0, 0, b'n', b'i', b'x', b'-', b'a', b'r', b'c', b'h', b'i', b'v', b'e', b'-', b'1', 0, - 0, 0, // "nix-archive-1" +/// The NAR representation of a regular file with the contents "Hello World!" +pub static NAR_CONTENTS_HELLOWORLD: LazyLock<Vec<u8>> = LazyLock::new(|| { + vec![ + 13, 0, 0, 0, 0, 0, 0, 0, b'n', b'i', b'x', b'-', b'a', b'r', b'c', b'h', b'i', b'v', b'e', + b'-', b'1', 0, 0, 0, // "nix-archive-1" 1, 0, 0, 0, 0, 0, 0, 0, b'(', 0, 0, 0, 0, 0, 0, 0, // "(" 4, 0, 0, 0, 0, 0, 0, 0, b't', b'y', b'p', b'e', 0, 0, 0, 0, // "type" 7, 0, 0, 0, 0, 0, 0, 0, b'r', b'e', b'g', b'u', b'l', b'a', b'r', 0, // "regular" 8, 0, 0, 0, 0, 0, 0, 0, b'c', b'o', b'n', b't', b'e', b'n', b't', b's', // "contents" - 12, 0, 0, 0, 0, 0, 0, 0, b'H', b'e', b'l', b'l', b'o', b' ', b'W', b'o', b'r', b'l', b'd', b'!', 0, 0, - 0, 0, // "Hello World!" - 1, 0, 0, 0, 0, 0, 0, 0, b')', 0, 0, 0, 0, 0, 0, 0 // ")" - ]; + 12, 0, 0, 0, 0, 0, 0, 0, b'H', b'e', b'l', b'l', b'o', b' ', b'W', b'o', b'r', b'l', b'd', + b'!', 0, 0, 0, 0, // "Hello World!" + 1, 0, 0, 0, 0, 0, 0, 0, b')', 0, 0, 0, 0, 0, 0, 0, // ")" + ] +}); - pub static ref CASTORE_NODE_TOO_BIG: Node = Node::File { - digest: HELLOWORLD_BLOB_DIGEST.clone(), - size: 42, // <- note the wrong size here! - executable: false, - }; - pub static ref CASTORE_NODE_TOO_SMALL: Node = Node::File { - digest: HELLOWORLD_BLOB_DIGEST.clone(), - size: 2, // <- note the wrong size here! - executable: false, - }; +pub static CASTORE_NODE_TOO_BIG: LazyLock<Node> = LazyLock::new(|| Node::File { + digest: HELLOWORLD_BLOB_DIGEST.clone(), + size: 42, // <- note the wrong size here! + executable: false, +}); +pub static CASTORE_NODE_TOO_SMALL: LazyLock<Node> = LazyLock::new(|| Node::File { + digest: HELLOWORLD_BLOB_DIGEST.clone(), + size: 2, // <- note the wrong size here! + executable: false, +}); - pub static ref CASTORE_NODE_COMPLICATED: Node = Node::Directory { - digest: DIRECTORY_COMPLICATED.digest(), - size: DIRECTORY_COMPLICATED.size(), - }; +pub static CASTORE_NODE_COMPLICATED: LazyLock<Node> = LazyLock::new(|| Node::Directory { + digest: DIRECTORY_COMPLICATED.digest(), + size: DIRECTORY_COMPLICATED.size(), +}); - /// The NAR representation of a more complicated directory structure. - pub static ref NAR_CONTENTS_COMPLICATED: Vec<u8> = vec![ - 13, 0, 0, 0, 0, 0, 0, 0, b'n', b'i', b'x', b'-', b'a', b'r', b'c', b'h', b'i', b'v', b'e', b'-', b'1', 0, - 0, 0, // "nix-archive-1" +/// The NAR representation of a more complicated directory structure. +pub static NAR_CONTENTS_COMPLICATED: LazyLock<Vec<u8>> = LazyLock::new(|| { + vec![ + 13, 0, 0, 0, 0, 0, 0, 0, b'n', b'i', b'x', b'-', b'a', b'r', b'c', b'h', b'i', b'v', b'e', + b'-', b'1', 0, 0, 0, // "nix-archive-1" 1, 0, 0, 0, 0, 0, 0, 0, b'(', 0, 0, 0, 0, 0, 0, 0, // "(" 4, 0, 0, 0, 0, 0, 0, 0, b't', b'y', b'p', b'e', 0, 0, 0, 0, // "type" - 9, 0, 0, 0, 0, 0, 0, 0, b'd', b'i', b'r', b'e', b'c', b't', b'o', b'r', b'y', 0, 0, 0, 0, 0, 0, 0, // "directory" + 9, 0, 0, 0, 0, 0, 0, 0, b'd', b'i', b'r', b'e', b'c', b't', b'o', b'r', b'y', 0, 0, 0, 0, + 0, 0, 0, // "directory" 5, 0, 0, 0, 0, 0, 0, 0, b'e', b'n', b't', b'r', b'y', 0, 0, 0, // "entry" 1, 0, 0, 0, 0, 0, 0, 0, b'(', 0, 0, 0, 0, 0, 0, 0, // "(" 4, 0, 0, 0, 0, 0, 0, 0, b'n', b'a', b'm', b'e', 0, 0, 0, 0, // "name" @@ -103,8 +108,8 @@ lazy_static! { 4, 0, 0, 0, 0, 0, 0, 0, b't', b'y', b'p', b'e', 0, 0, 0, 0, // "type" 7, 0, 0, 0, 0, 0, 0, 0, b's', b'y', b'm', b'l', b'i', b'n', b'k', 0, // "symlink" 6, 0, 0, 0, 0, 0, 0, 0, b't', b'a', b'r', b'g', b'e', b't', 0, 0, // target - 24, 0, 0, 0, 0, 0, 0, 0, b'/', b'n', b'i', b'x', b'/', b's', b't', b'o', b'r', b'e', b'/', b's', b'o', - b'm', b'e', b'w', b'h', b'e', b'r', b'e', b'e', b'l', b's', + 24, 0, 0, 0, 0, 0, 0, 0, b'/', b'n', b'i', b'x', b'/', b's', b't', b'o', b'r', b'e', b'/', + b's', b'o', b'm', b'e', b'w', b'h', b'e', b'r', b'e', b'e', b'l', b's', b'e', // "/nix/store/somewhereelse" 1, 0, 0, 0, 0, 0, 0, 0, b')', 0, 0, 0, 0, 0, 0, 0, // ")" 1, 0, 0, 0, 0, 0, 0, 0, b')', 0, 0, 0, 0, 0, 0, 0, // ")" @@ -115,7 +120,8 @@ lazy_static! { 4, 0, 0, 0, 0, 0, 0, 0, b'n', b'o', b'd', b'e', 0, 0, 0, 0, // "node" 1, 0, 0, 0, 0, 0, 0, 0, b'(', 0, 0, 0, 0, 0, 0, 0, // "(" 4, 0, 0, 0, 0, 0, 0, 0, b't', b'y', b'p', b'e', 0, 0, 0, 0, // "type" - 9, 0, 0, 0, 0, 0, 0, 0, b'd', b'i', b'r', b'e', b'c', b't', b'o', b'r', b'y', 0, 0, 0, 0, 0, 0, 0, // "directory" + 9, 0, 0, 0, 0, 0, 0, 0, b'd', b'i', b'r', b'e', b'c', b't', b'o', b'r', b'y', 0, 0, 0, 0, + 0, 0, 0, // "directory" 5, 0, 0, 0, 0, 0, 0, 0, b'e', b'n', b't', b'r', b'y', 0, 0, 0, // "entry" 1, 0, 0, 0, 0, 0, 0, 0, b'(', 0, 0, 0, 0, 0, 0, 0, // "(" 4, 0, 0, 0, 0, 0, 0, 0, b'n', b'a', b'm', b'e', 0, 0, 0, 0, // "name" @@ -131,23 +137,23 @@ lazy_static! { 1, 0, 0, 0, 0, 0, 0, 0, b')', 0, 0, 0, 0, 0, 0, 0, // ")" 1, 0, 0, 0, 0, 0, 0, 0, b')', 0, 0, 0, 0, 0, 0, 0, // ")" 1, 0, 0, 0, 0, 0, 0, 0, b')', 0, 0, 0, 0, 0, 0, 0, // ")" - ]; + ] +}); - /// A PathInfo message - pub static ref PATH_INFO: PathInfo = PathInfo { - store_path: DUMMY_PATH.clone(), - node: tvix_castore::Node::Directory { - digest: DUMMY_DIGEST.clone(), - size: 0, - }, - references: vec![DUMMY_PATH.clone()], - nar_sha256: [0; 32], - nar_size: 0, - signatures: vec![], - deriver: None, - ca: Some(CAHash::Nar(NixHash::Sha256([0; 32]))), - }; -} +/// A PathInfo message +pub static PATH_INFO: LazyLock<PathInfo> = LazyLock::new(|| PathInfo { + store_path: DUMMY_PATH.clone(), + node: tvix_castore::Node::Directory { + digest: DUMMY_DIGEST.clone(), + size: 0, + }, + references: vec![DUMMY_PATH.clone()], + nar_sha256: [0; 32], + nar_size: 0, + signatures: vec![], + deriver: None, + ca: Some(CAHash::Nar(NixHash::Sha256([0; 32]))), +}); #[fixture] pub(crate) fn blob_service() -> Arc<dyn BlobService> { |