mirror of
https://github.com/thelsing/knx.git
synced 2024-12-23 19:09:41 +01:00
57 lines
3.7 KiB
C++
57 lines
3.7 KiB
C++
// Copyright (c) 2021 The Pybind Development Team.
|
|
// All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
#include "pybind11_tests.h"
|
|
|
|
// IUT = Implementation Under Test
|
|
#define CONST_NAME_TESTS(TEST_FUNC, IUT) \
|
|
std::string TEST_FUNC(int selector) { \
|
|
switch (selector) { \
|
|
case 0: \
|
|
return IUT("").text; \
|
|
case 1: \
|
|
return IUT("A").text; \
|
|
case 2: \
|
|
return IUT("Bd").text; \
|
|
case 3: \
|
|
return IUT("Cef").text; \
|
|
case 4: \
|
|
return IUT<int>().text; /*NOLINT(bugprone-macro-parentheses)*/ \
|
|
case 5: \
|
|
return IUT<std::string>().text; /*NOLINT(bugprone-macro-parentheses)*/ \
|
|
case 6: \
|
|
return IUT<true>("T1", "T2").text; /*NOLINT(bugprone-macro-parentheses)*/ \
|
|
case 7: \
|
|
return IUT<false>("U1", "U2").text; /*NOLINT(bugprone-macro-parentheses)*/ \
|
|
case 8: \
|
|
/*NOLINTNEXTLINE(bugprone-macro-parentheses)*/ \
|
|
return IUT<true>(IUT("D1"), IUT("D2")).text; \
|
|
case 9: \
|
|
/*NOLINTNEXTLINE(bugprone-macro-parentheses)*/ \
|
|
return IUT<false>(IUT("E1"), IUT("E2")).text; \
|
|
case 10: \
|
|
return IUT("KeepAtEnd").text; \
|
|
default: \
|
|
break; \
|
|
} \
|
|
throw std::runtime_error("Invalid selector value."); \
|
|
}
|
|
|
|
CONST_NAME_TESTS(const_name_tests, py::detail::const_name)
|
|
|
|
#ifdef PYBIND11_DETAIL_UNDERSCORE_BACKWARD_COMPATIBILITY
|
|
CONST_NAME_TESTS(underscore_tests, py::detail::_)
|
|
#endif
|
|
|
|
TEST_SUBMODULE(const_name, m)
|
|
{
|
|
m.def("const_name_tests", const_name_tests);
|
|
|
|
#if defined(PYBIND11_DETAIL_UNDERSCORE_BACKWARD_COMPATIBILITY)
|
|
m.def("underscore_tests", underscore_tests);
|
|
#else
|
|
m.attr("underscore_tests") = "PYBIND11_DETAIL_UNDERSCORE_BACKWARD_COMPATIBILITY not defined.";
|
|
#endif
|
|
}
|