From 1266c01236969f4aeef002b90f435b946e73150d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20M=C3=BCller?= Date: Tue, 14 Jan 2025 11:46:56 -0800 Subject: [PATCH] Add test for kallsyms-based kernel address symbolization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a test for kallsyms-based kernel address symbolization. We rely on the already present kallsyms copy, as opposed to data from a live system. Signed-off-by: Daniel Müller --- tests/suite/symbolize.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/suite/symbolize.rs b/tests/suite/symbolize.rs index c1741622..ca807ab0 100644 --- a/tests/suite/symbolize.rs +++ b/tests/suite/symbolize.rs @@ -1015,6 +1015,28 @@ fn symbolize_zip_with_custom_dispatch_errors() { let () = test(zip_delayed_error_dispatch); } +/// Test symbolization of a kernel address present in a kallsyms style +/// file. +#[test] +fn symbolize_kernel() { + let kernel = Kernel { + kallsyms: Some( + Path::new(&env!("CARGO_MANIFEST_DIR")) + .join("data") + .join("kallsyms"), + ), + ..Default::default() + }; + let src = Source::Kernel(kernel); + let symbolizer = Symbolizer::new(); + let symbolized = symbolizer + .symbolize_single(&src, Input::AbsAddr(0xc080a470)) + .unwrap(); + let init_task_sym = symbolized.into_sym().unwrap(); + assert_eq!(init_task_sym.name, "init_task"); + assert_eq!(init_task_sym.code_info, None); +} + /// Test symbolization of a kernel address inside a BPF program. #[cfg(linux)] #[test]