From a32e82e70ca64bb38d14d032b17a4fa8400f8ea0 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Mon, 22 May 2023 19:24:01 -0700 Subject: [PATCH] libsysprof-analyze: add jitmap symbol cache test --- .../tests/test-symbol-cache.c | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/libsysprof-analyze/tests/test-symbol-cache.c b/src/libsysprof-analyze/tests/test-symbol-cache.c index 02956497..2b4ef463 100644 --- a/src/libsysprof-analyze/tests/test-symbol-cache.c +++ b/src/libsysprof-analyze/tests/test-symbol-cache.c @@ -160,6 +160,38 @@ test_interval_tree (void) g_assert_finalize_object (symbols[i].symbol); } +static void +test_jitmap (void) +{ + SysprofSymbolCache *symbol_cache = sysprof_symbol_cache_new (); + + for (guint i = 1; i <= 10000; i++) + { + SysprofAddress begin = 0xE000000000000000 + i; + g_autofree char *name = g_strdup_printf ("%u", i); + SysprofSymbol *symbol = create_symbol (name, begin, begin+1); + + sysprof_symbol_cache_take (symbol_cache, symbol); + } + + g_assert_null (sysprof_symbol_cache_lookup (symbol_cache, 0)); + g_assert_null (sysprof_symbol_cache_lookup (symbol_cache, 10001)); + + for (guint i = 1; i <= 10000; i++) + { + SysprofAddress begin = 0xE000000000000000 + i; + SysprofSymbol *symbol = sysprof_symbol_cache_lookup (symbol_cache, begin); + g_autofree char *name = g_strdup_printf ("%u", i); + + g_assert_nonnull (symbol); + g_assert_cmpint (begin, ==, symbol->begin_address); + g_assert_cmpint (begin+1, ==, symbol->end_address); + g_assert_cmpstr (name, ==, symbol->name); + } + + g_assert_finalize_object (symbol_cache); +} + int main (int argc, char *argv[]) @@ -167,5 +199,7 @@ main (int argc, g_test_init (&argc, &argv, NULL); g_test_add_func ("/libsysprof-analyze/SysprofSymbolCache/interval-tree", test_interval_tree); + g_test_add_func ("/libsysprof-analyze/SysprofSymbolCache/jitmap", + test_jitmap); return g_test_run (); }