1 /* Selftests for typed-splay-tree.h.
2 Copyright (C) 2016-2019 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free
8 Software Foundation; either version 3, or (at your option) any later
11 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3. If not see
18 <http://www.gnu.org/licenses/>. */
22 #include "coretypes.h"
23 #include "typed-splay-tree.h"
30 /* Callback for use by test_str_to_int. */
33 append_cb (const char *, int value
, void *user_data
)
35 auto_vec
<int> *vec
= (auto_vec
<int> *)user_data
;
36 vec
->safe_push (value
);
40 /* Test of typed_splay_tree <const char *, int>. */
45 typed_splay_tree
<const char *, int> t (strcmp
, NULL
, NULL
);
54 ASSERT_EQ (1, t
.lookup ("a"));
55 ASSERT_EQ (2, t
.lookup ("b"));
56 ASSERT_EQ (3, t
.lookup ("c"));
58 ASSERT_EQ (2, t
.predecessor ("c"));
59 ASSERT_EQ (3, t
.successor ("b"));
60 ASSERT_EQ (1, t
.min ());
61 ASSERT_EQ (3, t
.max ());
63 /* Test foreach by appending to a vec, and verifying the vec. */
65 t
.foreach (append_cb
, &v
);
66 ASSERT_EQ (3, v
.length ());
72 /* Run all of the selftests within this file. */
75 typed_splay_tree_c_tests ()
80 } // namespace selftest
82 #endif /* #if CHECKING_P */