I tried to add clang-tidy locally to support static analysis code, but UT failed due to the following error (even if I added an empty .clang-tidy
)
In file included from ../fault-monitor/fru-fault-monitor.cpp:1:
In file included from ../fault-monitor/fru-fault-monitor.hpp:5:
In file included from /usr/local/include/sdbusplus/bus.hpp:6:
In file included from /usr/local/include/sdbusplus/exception.hpp:5:
In file included from /usr/local/include/sdbusplus/sdbus.hpp:5:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/chrono:45:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/sstream:40:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/istream:40:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/ios:44:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/ios_base.h:41:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/locale_classes.h:40:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/string:58:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/memory_resource.h:41:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/uses_allocator_args.h:38:
/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/tuple:691:2: error: pack expansion contains parameter pack '_UTypes' that has a different length (1 vs. 3) from outer parameter packs
691 | using __convertible = __and_<is_convertible<_UTypes, _Types>...>;
| ^~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/tuple:853:27: note: in instantiation of template type alias '__convertible' requested here
853 | = _TCC<true>::template __convertible<_Args...>::value;
| ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/tuple:948:12: note: in instantiation of static data member 'std::tuple<std::tuple<std::basic_string<char>, std::basic_string<char>, std::basic_string<char>> &>::__convertible<std::basic_string<char> &, std::basic_string<char> &, std::basic_string<char> &>' requested here
948 | explicit(!__convertible<_UElements&...>)
| ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/tuple:2014:36: note: while substituting deduced template arguments into function template 'tuple' [with _UElements = <std::basic_string<char>, std::basic_string<char>, std::basic_string<char>>]
2014 | { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); }
| ^
/usr/local/include/sdbusplus/message/read.hpp:549:30: note: in instantiation of function template specialization 'std::forward_as_tuple<std::tuple<std::basic_string<char>, std::basic_string<char>, std::basic_string<char>> &>' requested here
549 | read_tuple(intf, m, std::forward_as_tuple(std::forward<Arg>(arg)));
| ^
/usr/local/include/sdbusplus/message/read.hpp:585:14: note: in instantiation of function template specialization 'sdbusplus::message::details::read_grouping<std::tuple<>, std::tuple<std::basic_string<char>, std::basic_string<char>, std::basic_string<char>> &>' requested here
585 | details::read_grouping(intf, m, std::make_tuple(),
| ^
/usr/local/include/sdbusplus/message/read.hpp:235:33: note: (skipping 6 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
235 | sdbusplus::message::read(intf, m, s);
| ^
/usr/local/include/sdbusplus/message/read.hpp:478:34: note: in instantiation of function template specialization 'sdbusplus::message::details::read_single<std::variant<std::vector<std::tuple<std::basic_string<char>, std::basic_string<char>, std::basic_string<char>>>>>::op<std::variant<std::vector<std::tuple<std::basic_string<char>, std::basic_string<char>, std::basic_string<char>>>> &>' requested here
478 | read_single_t<itemType>::op(intf, m,
| ^
/usr/local/include/sdbusplus/message/read.hpp:549:5: note: in instantiation of function template specialization 'sdbusplus::message::details::read_tuple<std::tuple<std::variant<std::vector<std::tuple<std::basic_string<char>, std::basic_string<char>, std::basic_string<char>>>> &>>' requested here
549 | read_tuple(intf, m, std::forward_as_tuple(std::forward<Arg>(arg)));
| ^
/usr/local/include/sdbusplus/message/read.hpp:585:14: note: in instantiation of function template specialization 'sdbusplus::message::details::read_grouping<std::tuple<>, std::variant<std::vector<std::tuple<std::basic_string<char>, std::basic_string<char>, std::basic_string<char>>>> &>' requested here
585 | details::read_grouping(intf, m, std::make_tuple(),
| ^
/usr/local/include/sdbusplus/message.hpp:156:29: note: in instantiation of function template specialization 'sdbusplus::message::read<std::variant<std::vector<std::tuple<std::basic_string<char>, std::basic_string<char>, std::basic_string<char>>>> &>' requested here
156 | sdbusplus::message::read(_intf, _msg.get(),
| ^
../fault-monitor/fru-fault-monitor.cpp:240:19: note: in instantiation of function template specialization 'sdbusplus::message::message::read<std::variant<std::vector<std::tuple<std::basic_string<char>, std::basic_string<char>, std::basic_string<char>>>> &>' requested here
240 | reply.read(assoc);
| ^
I'm not sure if it's a problem with sdbusplus, I hope experts can help check it out, thanks.