From a03dd9f33d85b2b150b2d482a05d78f80d24c8f8 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Tue, 25 Apr 2017 21:33:22 -0400 Subject: [PATCH] Use bt_clock_class_priority_map_add_clock_class() to change a priority MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Proulx Signed-off-by: Jérémie Galarneau --- lib/graph/clock-class-priority-map.c | 8 +++++--- tests/lib/test_cc_prio_map.c | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/graph/clock-class-priority-map.c b/lib/graph/clock-class-priority-map.c index 2d4fac11..7e6543b4 100644 --- a/lib/graph/clock-class-priority-map.c +++ b/lib/graph/clock-class-priority-map.c @@ -234,12 +234,12 @@ int bt_clock_class_priority_map_add_clock_class( goto end; } - /* Check for duplicate clock classes */ + /* Check for existing clock class */ prio_ptr = g_hash_table_lookup(cc_prio_map->prios, clock_class); if (prio_ptr) { + *prio_ptr = priority; prio_ptr = NULL; - ret = -1; - goto end; + goto set_highest_prio; } prio_ptr = g_new(uint64_t, 1); @@ -253,6 +253,8 @@ int bt_clock_class_priority_map_add_clock_class( g_ptr_array_add(cc_prio_map->entries, clock_class); g_hash_table_insert(cc_prio_map->prios, clock_class, prio_ptr); prio_ptr = NULL; + +set_highest_prio: cc_prio = bt_ctf_clock_class_priority_map_current_highest_prio( cc_prio_map); assert(cc_prio.clock_class); diff --git a/tests/lib/test_cc_prio_map.c b/tests/lib/test_cc_prio_map.c index 23305c2a..d2d128a8 100644 --- a/tests/lib/test_cc_prio_map.c +++ b/tests/lib/test_cc_prio_map.c @@ -23,7 +23,7 @@ #include "tap/tap.h" -#define NR_TESTS 18 +#define NR_TESTS 21 static void test_clock_class_priority_map(void) { @@ -100,7 +100,17 @@ static void test_clock_class_priority_map(void) "bt_clock_class_priority_map_get_clock_class_priority() returns the expected priority (3, copy)"); cc = bt_clock_class_priority_map_get_highest_priority_clock_class(cc_prio_map_copy); ok(cc == cc3, - "bt_clock_class_priority_map_get_highest_priority_clock_class() returns the expected clock class (3, copy)"); + "bt_clock_class_priority_map_get_highest_priority_clock_class() returns the expected clock class (copy)"); + BT_PUT(cc); + ret = bt_clock_class_priority_map_add_clock_class(cc_prio_map_copy, cc3, 253); + ok(ret == 0, "bt_clock_class_priority_map_add_clock_class() succeeds for an existing clock class"); + ret = bt_clock_class_priority_map_get_clock_class_priority(cc_prio_map_copy, cc3, &prio); + assert(ret == 0); + ok(prio == 253, + "bt_clock_class_priority_map_get_clock_class_priority() returns the expected priority (updated, copy)"); + cc = bt_clock_class_priority_map_get_highest_priority_clock_class(cc_prio_map_copy); + ok(cc == cc2, + "bt_clock_class_priority_map_get_highest_priority_clock_class() returns the expected clock class (updated, copy)"); BT_PUT(cc); BT_PUT(cc3); -- 2.34.1