X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Funittests%2Farray-view-selftests.c;h=9e12a5af36d4eb539d3f9056565bb3fe9330075b;hb=deeafabb678e59d8585be6d765c7fbd0e7060b6c;hp=3116ab27216510baf5fda47b0e95e9798a2903c5;hpb=b926417afaea99ed17663e06d6654d0048536017;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/unittests/array-view-selftests.c b/gdb/unittests/array-view-selftests.c index 3116ab2721..9e12a5af36 100644 --- a/gdb/unittests/array-view-selftests.c +++ b/gdb/unittests/array-view-selftests.c @@ -1,6 +1,6 @@ /* Self tests for array_view for GDB, the GNU debugger. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -18,8 +18,8 @@ along with this program. If not, see . */ #include "defs.h" -#include "selftest.h" -#include "common/array-view.h" +#include "gdbsupport/selftest.h" +#include "gdbsupport/array-view.h" #include namespace selftests { @@ -259,7 +259,7 @@ require_not_constructible () /* Check the array_view(PTR, SIZE) ctor, when T is a pointer. */ -void +static void check_ptr_size_ctor2 () { struct A {}; @@ -483,6 +483,41 @@ run_tests () gdb::array_view view_elem = elem; SELF_CHECK (view_elem.size () == 1); } + + /* gdb::make_array_view, int length. */ + { + gdb_byte data[] = {0x55, 0x66, 0x77, 0x88}; + int len = sizeof (data) / sizeof (data[0]); + auto view = gdb::make_array_view (data, len); + + SELF_CHECK (view.data () == data); + SELF_CHECK (view.size () == len); + + for (size_t i = 0; i < len; i++) + SELF_CHECK (view[i] == data[i]); + } + + /* Test slicing. */ + { + gdb_byte data[] = {0x55, 0x66, 0x77, 0x88, 0x99}; + gdb::array_view view = data; + + { + auto slc = view.slice (1, 3); + SELF_CHECK (slc.data () == data + 1); + SELF_CHECK (slc.size () == 3); + SELF_CHECK (slc[0] == data[1]); + SELF_CHECK (slc[0] == view[1]); + } + + { + auto slc = view.slice (2); + SELF_CHECK (slc.data () == data + 2); + SELF_CHECK (slc.size () == 3); + SELF_CHECK (slc[0] == view[2]); + SELF_CHECK (slc[0] == data[2]); + } + } } } /* namespace array_view_tests */