Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions proxy_agent/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ tower = { version = "0.5.2", features = ["full"] }
tower-http = { version = "0.6.2", features = ["limit"] }
clap = { version = "4.5.17", features =["derive"] } # Command Line Argument Parser
thiserror = "1.0.64"
ctor = "0.3.6" # used for test setup and clean up
libc = "0.2.147"

[dependencies.uuid]
version = "1.3.0"
Expand All @@ -40,7 +40,6 @@ features = [
sysinfo = "0.30.13" # read process information for Linux
aya = "0.13.1" # linux ebpf program loader
uzers = "0.12.1" # get user name
libc = "0.2.147" # linux call

[target.'cfg(not(windows))'.dependencies.nix]
version = "0.29.0"
Expand Down
28 changes: 0 additions & 28 deletions proxy_agent/src/service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,31 +158,3 @@ pub fn stop_service(shared_state: SharedState) {

event_logger::stop();
}

#[cfg(test)]
mod tests {
use ctor::{ctor, dtor};
use proxy_agent_shared::logger::LoggerLevel;
use std::env;
use std::fs;

const TEST_LOGGER_KEY: &str = "proxy_agent_test";

fn get_temp_test_dir() -> std::path::PathBuf {
let mut temp_test_path = env::temp_dir();
temp_test_path.push(TEST_LOGGER_KEY);
temp_test_path
}

#[ctor]
fn setup() {
// Setup logger_manager for unit tests
super::setup_loggers(get_temp_test_dir(), LoggerLevel::Trace);
}

#[dtor]
fn cleanup() {
// clean up and ignore the clean up errors
_ = fs::remove_dir_all(&get_temp_test_dir());
}
}
2 changes: 1 addition & 1 deletion proxy_agent_shared/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ regex = "1.11" # match file name
thiserror = "1.0.64"
tokio = { version = "1", features = ["rt", "macros", "sync", "time"] }
tokio-util = "0.7.11"
libc = "0.2.147"
log = { version = "0.4.26", features = ["std"] }
ctor = "0.3.6" # used for test setup and clean up
hex = "0.4.3" # hex encode
itertools = "0.10.5" # use to sort iterator elements into a new iterator in ascending order
http = "1.1.0"
Expand Down
43 changes: 25 additions & 18 deletions proxy_agent_shared/src/logger/logger_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -195,44 +195,51 @@ fn get_max_system_logger_level() -> LoggerLevel {
mod tests {
use crate::logger::LoggerLevel;
use crate::misc_helpers;
use ctor::{ctor, dtor};
use std::env;
use std::fs;
use std::sync::Once;

const TEST_LOGGER_KEY: &str = "logger_manager_test";
static TEST_INIT: Once = Once::new();

fn get_temp_test_dir() -> std::path::PathBuf {
let mut temp_test_path = env::temp_dir();
temp_test_path.push(TEST_LOGGER_KEY);
temp_test_path
}

#[ctor]
fn setup() {
// Setup logger_manager for unit tests
let logger = crate::logger::rolling_logger::RollingLogger::create_new(
get_temp_test_dir(),
"test.log".to_string(),
200,
6,
);
let mut loggers = std::collections::HashMap::new();
loggers.insert(TEST_LOGGER_KEY.to_string(), logger);
crate::logger::logger_manager::set_loggers(
loggers,
TEST_LOGGER_KEY.to_string(),
LoggerLevel::Trace,
);
TEST_INIT.call_once(|| {
// Setup logger_manager for unit tests
let logger = crate::logger::rolling_logger::RollingLogger::create_new(
get_temp_test_dir(),
"test.log".to_string(),
200,
6,
);
let mut loggers = std::collections::HashMap::new();
loggers.insert(TEST_LOGGER_KEY.to_string(), logger);
crate::logger::logger_manager::set_loggers(
loggers,
TEST_LOGGER_KEY.to_string(),
LoggerLevel::Trace,
);

unsafe {
libc::atexit(cleanup);
}
});
}

#[dtor]
fn cleanup() {
extern "C" fn cleanup() {
// clean up and ignore the clean up errors
_ = fs::remove_dir_all(&get_temp_test_dir());
}

#[test]
fn logger_manager_test() {
setup();

for _ in [0; 20] {
super::write_log(
LoggerLevel::Trace,
Expand Down
Loading