From 7ba6b03fea7364668aef886095e391075a97e31e Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Thu, 30 Mar 2023 18:12:17 +0200 Subject: [PATCH] test: remove the 'magic' in the mock_statvfs calls It was sensible in the LD_PRELOAD based impl, less so now. --- pageserver/src/disk_usage_eviction_task.rs | 2 +- pageserver/src/statvfs.rs | 24 +++++++------------ .../regress/test_disk_usage_eviction.py | 10 ++------ 3 files changed, 12 insertions(+), 24 deletions(-) diff --git a/pageserver/src/disk_usage_eviction_task.rs b/pageserver/src/disk_usage_eviction_task.rs index e282b44bb4..205c5e7bc3 100644 --- a/pageserver/src/disk_usage_eviction_task.rs +++ b/pageserver/src/disk_usage_eviction_task.rs @@ -68,7 +68,7 @@ pub struct DiskUsageEvictionTaskConfig { #[serde(with = "humantime_serde")] pub period: Duration, #[cfg(feature = "testing")] - pub mock_statvfs: Option, + pub mock_statvfs: Option, } #[derive(Default)] diff --git a/pageserver/src/statvfs.rs b/pageserver/src/statvfs.rs index b3fc9c5a26..d6c87ada2f 100644 --- a/pageserver/src/statvfs.rs +++ b/pageserver/src/statvfs.rs @@ -8,7 +8,7 @@ pub enum Statvfs { } impl Statvfs { - pub fn get(tenants_dir: &Path, mocked: Option<&mock::Config>) -> nix::Result { + pub fn get(tenants_dir: &Path, mocked: Option<&mock::Behavior>) -> nix::Result { if let Some(mocked) = mocked { Ok(Statvfs::Mock(mock::get(tenants_dir, mocked)?)) } else { @@ -51,12 +51,6 @@ pub mod mock { use std::path::Path; use tracing::log::info; - #[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)] - pub struct Config { - magic: String, - behavior: Behavior, - } - #[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)] #[serde(tag = "type")] pub enum Behavior { @@ -84,10 +78,10 @@ pub mod mock { } } - pub fn get(tenants_dir: &Path, config: &Config) -> nix::Result { - info!("running mocked statvfs, magic: {}", config.magic); + pub fn get(tenants_dir: &Path, behavior: &Behavior) -> nix::Result { + info!("running mocked statvfs"); - match config.behavior { + match behavior { Behavior::Success { blocksize, total_blocks, @@ -98,7 +92,7 @@ pub mod mock { // round it up to the nearest block multiple let used_blocks = (used_bytes + (blocksize - 1)) / blocksize; - if used_blocks > total_blocks { + if used_blocks > *total_blocks { panic!( "mocking error: used_blocks > total_blocks: {used_blocks} > {total_blocks}" ); @@ -107,13 +101,13 @@ pub mod mock { let avail_blocks = total_blocks - used_blocks; Ok(Statvfs { - blocks: total_blocks, + blocks: *total_blocks, blocks_available: avail_blocks, - fragment_size: blocksize, - block_size: blocksize, + fragment_size: *blocksize, + block_size: *blocksize, }) } - Behavior::Failure { mocked_error } => Err(mocked_error.into()), + Behavior::Failure { mocked_error } => Err((*mocked_error).into()), } } diff --git a/test_runner/regress/test_disk_usage_eviction.py b/test_runner/regress/test_disk_usage_eviction.py index 618ea3ef6f..6ed09734fe 100644 --- a/test_runner/regress/test_disk_usage_eviction.py +++ b/test_runner/regress/test_disk_usage_eviction.py @@ -1,6 +1,5 @@ import shutil import time -import uuid from dataclasses import dataclass from pathlib import Path from typing import Dict, Tuple @@ -98,16 +97,11 @@ class EvictionEnv: def pageserver_start_with_disk_usage_eviction( self, period, max_usage_pct, min_avail_bytes, mock_behavior ): - magic = str(uuid.uuid4()) - disk_usage_config = { "period": period, "max_usage_pct": max_usage_pct, "min_avail_bytes": min_avail_bytes, - "mock_statvfs": { - "behavior": mock_behavior, - "magic": magic, - }, + "mock_statvfs": mock_behavior, } enc = toml.TomlEncoder() @@ -120,7 +114,7 @@ class EvictionEnv: ) def statvfs_called(): - assert self.neon_env.pageserver.log_contains(".*running mocked statvfs.*" + magic) + assert self.neon_env.pageserver.log_contains(".*running mocked statvfs.*") wait_until(10, 1, statvfs_called)