]> Git Repo - binutils.git/blob - gdb/unittests/unique_xmalloc_ptr_char.c
Automatic date update in version.in
[binutils.git] / gdb / unittests / unique_xmalloc_ptr_char.c
1 /* Self tests for gdb::unique_xmalloc_ptr<char>.
2
3    Copyright (C) 2022 Free Software Foundation, Inc.
4
5    This file is part of GDB.
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 3 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
20 #include "defs.h"
21 #include "gdbsupport/selftest.h"
22 #include "selftest-arch.h"
23 #include "gdbsupport/gdb_unique_ptr.h"
24
25 namespace selftests {
26 namespace unpack {
27
28 static void
29 unique_xmalloc_ptr_char ()
30 {
31   gdb::unique_xmalloc_ptr<char> a = make_unique_xstrdup ("abc");
32   gdb::unique_xmalloc_ptr<char> b = make_unique_xstrndup ("defghi", 3);
33
34   SELF_CHECK (strcmp (a.get (), "abc") == 0);
35   SELF_CHECK (strcmp (b.get (), "def") == 0);
36
37   std::string str = "xxx";
38
39   /* Check the operator+= overload.  */
40   str += a;
41   SELF_CHECK (str == "xxxabc");
42
43   /* Check the operator+ overload.  */
44   str = str + b;
45   SELF_CHECK (str == "xxxabcdef");
46 }
47
48 }
49 }
50
51 void _initialize_unique_xmalloc_ptr_char ();
52 void
53 _initialize_unique_xmalloc_ptr_char ()
54 {
55   selftests::register_test ("unique_xmalloc_ptr_char",
56                             selftests::unpack::unique_xmalloc_ptr_char);
57 }
This page took 0.027483 seconds and 4 git commands to generate.