You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.9 KiB
86 lines
2.9 KiB
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
// -*- Mode: C++ -*-
|
|
//
|
|
// Copyright (C) 2013-2020 Red Hat, Inc.
|
|
|
|
/// @file
|
|
///
|
|
/// This is a collection of unit tests for functions defined in
|
|
/// abg-tgools-utils.cc.
|
|
|
|
#include <iostream>
|
|
#include "abg-tools-utils.h"
|
|
|
|
using namespace abigail::tools_utils;
|
|
using std::cerr;
|
|
|
|
int
|
|
main(int, char**)
|
|
{
|
|
|
|
/// These are unit tests for abigail::tools_utils::decl_names_equal.
|
|
/// Just run the resulting runtesttoolsutils program under the
|
|
/// debugger to debug this if need be.
|
|
|
|
ABG_ASSERT(decl_names_equal("foo", "foo") == true);
|
|
|
|
ABG_ASSERT(decl_names_equal("foo", "bar") == false);
|
|
|
|
ABG_ASSERT(decl_names_equal("__anonymous_struct__1::foo",
|
|
"__anonymous_struct__2::foo") == true);
|
|
|
|
ABG_ASSERT(decl_names_equal
|
|
("__anonymous_struct__1::foo::__anonymous_struct__2::bar",
|
|
"__anonymous_struct__10::foo::__anonymous_struct__11::bar")
|
|
== true);
|
|
|
|
ABG_ASSERT(decl_names_equal
|
|
("__anonymous_union__1::foo::__anonymous_union__2::bar",
|
|
"__anonymous_union__10::foo::__anonymous_union__11::bar")
|
|
== true);
|
|
|
|
ABG_ASSERT(decl_names_equal
|
|
("__anonymous_enum__1::foo::__anonymous_enum__2::bar",
|
|
"__anonymous_enum__10::foo::__anonymous_enum__11::bar")
|
|
== true);
|
|
|
|
ABG_ASSERT(decl_names_equal
|
|
("__anonymous_struct__1::bar::__anonymous_struct__2::baz",
|
|
"__anonymous_struct__10::foo::__anonymous_struct__11::bar")
|
|
== false);
|
|
|
|
ABG_ASSERT(decl_names_equal
|
|
("__anonymous_struct__1::foo::__anonymous_struct__2::baz",
|
|
"__anonymous_struct__10::foo::__anonymous_struct__11::bar")
|
|
== false);
|
|
|
|
ABG_ASSERT(decl_names_equal
|
|
("__anonymous_struct__1::foo::__anonymous_struct__2::bar",
|
|
"__anonymous_struct__10::foo::__anonymous_union__11::bar")
|
|
== false);
|
|
|
|
ABG_ASSERT(decl_names_equal
|
|
("__anonymous_struct__1::foo::__anonymous_struct__2::bar",
|
|
"__anonymous_struct__10::foo::__anonymous_enum__11::bar")
|
|
== false);
|
|
|
|
ABG_ASSERT(decl_names_equal
|
|
("OT::Extension<OT::ExtensionSubst>::__anonymous_union__",
|
|
"OT::Extension<OT::ExtensionSubst>::__anonymous_union__")
|
|
== true);
|
|
|
|
ABG_ASSERT(decl_names_equal("S0::m2", "S0::m12") == false);
|
|
|
|
ABG_ASSERT(!decl_names_equal("S0::S1", "S0"));
|
|
ABG_ASSERT(!decl_names_equal("S0", "S0::S1"));
|
|
ABG_ASSERT(!decl_names_equal("S1::S0", "S0::S1"));
|
|
ABG_ASSERT(!decl_names_equal("__anonymous_struct__::S0", "__anonymous_struct__"));
|
|
ABG_ASSERT(!decl_names_equal("__anonymous_struct__", "__anonymous_struct__::S1"));
|
|
ABG_ASSERT(!decl_names_equal("__anonymous_struct__::S0", "__anonymous_struct__::S1"));
|
|
ABG_ASSERT(!decl_names_equal("S0::__anonymous_struct__", "__anonymous_struct__"));
|
|
ABG_ASSERT(!decl_names_equal("__anonymous_struct__", "S1::__anonymous_struct__"));
|
|
ABG_ASSERT(!decl_names_equal("S0::__anonymous_struct__", "S1::__anonymous_struct__"));
|
|
|
|
return 0;
|
|
}
|