From d5f4488f09b811b0ca44e687da2acbc286d84d4a Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Mon, 9 Apr 2018 15:45:39 -0400 Subject: Add selftests for range_contains and insert_into_bit_range_vector Add some selftests for these two functions. To to make it easier to compare sequences of ranges, add operator== and operator!= to compare two gdb::array_view, and add operator== in struct range. gdb/ChangeLog: * value.c: Include "selftest.h" and "common/array-view.h". (struct range) : New. (test_ranges_contain): New. (check_ranges_vector): New. (test_insert_into_bit_range_vector): New. (_initialize_values): Register selftests. * common/array-view.h (operator==, operator!=): New. --- gdb/common/array-view.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gdb/common/array-view.h') diff --git a/gdb/common/array-view.h b/gdb/common/array-view.h index 3a09ec7..319ea99 100644 --- a/gdb/common/array-view.h +++ b/gdb/common/array-view.h @@ -174,6 +174,33 @@ private: size_type m_size; }; +/* Compare LHS and RHS for (deep) equality. That is, whether LHS and + RHS have the same sizes, and whether each pair of elements of LHS + and RHS at the same position compares equal. */ + +template +bool +operator== (const gdb::array_view &lhs, const gdb::array_view &rhs) +{ + if (lhs.size () != rhs.size ()) + return false; + + for (size_t i = 0; i < lhs.size (); i++) + if (!(lhs[i] == rhs[i])) + return false; + + return true; +} + +/* Compare two array_views for inequality. */ + +template +bool +operator!= (const gdb::array_view &lhs, const gdb::array_view &rhs) +{ + return !(lhs == rhs); +} + } /* namespace gdb */ #endif -- cgit v1.1