Skip to content

Commit

Permalink
agent: move assert_result macro to test_utils file
Browse files Browse the repository at this point in the history
Move the assert_result macro to the shared test_utils file
so that it is not duplicated in individual files.

Fixes: #4093

Signed-off-by: Braden Rayhorn <bradenrayhorn@fastmail.com>
  • Loading branch information
bradenrayhorn committed Apr 19, 2022
1 parent 604a795 commit 0e7f1a5
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 53 deletions.
28 changes: 2 additions & 26 deletions src/agent/src/config.rs
Expand Up @@ -432,39 +432,15 @@ fn get_container_pipe_size(param: &str) -> Result<i32> {

#[cfg(test)]
mod tests {
use crate::assert_result;

use super::*;
use anyhow::anyhow;
use std::fs::File;
use std::io::Write;
use std::time;
use tempfile::tempdir;

// Parameters:
//
// 1: expected Result
// 2: actual Result
// 3: string used to identify the test on error
macro_rules! assert_result {
($expected_result:expr, $actual_result:expr, $msg:expr) => {
if $expected_result.is_ok() {
let expected_level = $expected_result.as_ref().unwrap();
let actual_level = $actual_result.unwrap();
assert!(*expected_level == actual_level, "{}", $msg);
} else {
let expected_error = $expected_result.as_ref().unwrap_err();
let expected_error_msg = format!("{:?}", expected_error);

if let Err(actual_error) = $actual_result {
let actual_error_msg = format!("{:?}", actual_error);

assert!(expected_error_msg == actual_error_msg, "{}", $msg);
} else {
assert!(expected_error_msg == "expected error, got OK", "{}", $msg);
}
}
};
}

#[test]
fn test_new() {
let config: AgentConfig = Default::default();
Expand Down
28 changes: 1 addition & 27 deletions src/agent/src/rpc.rs
Expand Up @@ -1894,37 +1894,11 @@ fn load_kernel_module(module: &protocols::agent::KernelModule) -> Result<()> {
#[cfg(test)]
mod tests {
use super::*;
use crate::{namespace::Namespace, protocols::agent_ttrpc::AgentService as _};
use crate::{assert_result, namespace::Namespace, protocols::agent_ttrpc::AgentService as _};
use oci::{Hook, Hooks, Linux, LinuxNamespace};
use tempfile::{tempdir, TempDir};
use ttrpc::{r#async::TtrpcContext, MessageHeader};

// Parameters:
//
// 1: expected Result
// 2: actual Result
// 3: string used to identify the test on error
macro_rules! assert_result {
($expected_result:expr, $actual_result:expr, $msg:expr) => {
if $expected_result.is_ok() {
let expected_level = $expected_result.as_ref().unwrap();
let actual_level = $actual_result.unwrap();
assert!(*expected_level == actual_level, "{}", $msg);
} else {
let expected_error = $expected_result.as_ref().unwrap_err();
let expected_error_msg = format!("{:?}", expected_error);

if let Err(actual_error) = $actual_result {
let actual_error_msg = format!("{:?}", actual_error);

assert!(expected_error_msg == actual_error_msg, "{}", $msg);
} else {
assert!(expected_error_msg == "expected error, got OK", "{}", $msg);
}
}
};
}

fn mk_ttrpc_context() -> TtrpcContext {
TtrpcContext {
fd: -1,
Expand Down
25 changes: 25 additions & 0 deletions src/agent/src/test_utils.rs
Expand Up @@ -53,4 +53,29 @@ mod test_utils {
}
};
}

// Parameters:
//
// 1: expected Result
// 2: actual Result
// 3: string used to identify the test on error
#[macro_export]
macro_rules! assert_result {
($expected_result:expr, $actual_result:expr, $msg:expr) => {
if $expected_result.is_ok() {
let expected_value = $expected_result.as_ref().unwrap();
let actual_value = $actual_result.unwrap();
assert!(*expected_value == actual_value, "{}", $msg);
} else {
assert!($actual_result.is_err(), "{}", $msg);

let expected_error = $expected_result.as_ref().unwrap_err();
let expected_error_msg = format!("{:?}", expected_error);

let actual_error_msg = format!("{:?}", $actual_result.unwrap_err());

assert!(expected_error_msg == actual_error_msg, "{}", $msg);
}
};
}
}

0 comments on commit 0e7f1a5

Please sign in to comment.