From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [RFC v1 08/12] kunit: mock: add basic matchers and actions
Date: Sat, 19 Sep 2020 08:24:26 +0800 [thread overview]
Message-ID: <202009190847.lHCvkJDK%lkp@intel.com> (raw)
In-Reply-To: <20200918183114.2571146-9-dlatypov@google.com>
[-- Attachment #1: Type: text/plain, Size: 43238 bytes --]
Hi Daniel,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on 10b82d5176488acee2820e5a2cf0f2ec5c3488b6]
url: https://github.com/0day-ci/linux/commits/Daniel-Latypov/kunit-introduce-class-mocking-support/20200919-023253
base: 10b82d5176488acee2820e5a2cf0f2ec5c3488b6
config: arm-randconfig-r013-20200917 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 0ff28fa6a75617d61b1aeea77463d6a1684c3c89)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> lib/kunit/common-mocks.c:105:1: warning: no previous prototype for function 'to_mock_u8_matcher' [-Wmissing-prototypes]
DEFINE_MATCHER(u8);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:89:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_TO_MATCHER_STRUCT(type_name) \
^
lib/kunit/common-mocks.c:37:3: note: expanded from macro 'DEFINE_TO_MATCHER_STRUCT'
to_mock_##type_name##_matcher( \
^
<scratch space>:32:1: note: expanded from here
to_mock_u8_matcher
^
lib/kunit/common-mocks.c:105:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:89:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_TO_MATCHER_STRUCT(type_name) \
^
lib/kunit/common-mocks.c:36:3: note: expanded from macro 'DEFINE_TO_MATCHER_STRUCT'
struct mock_##type_name##_matcher * \
^
>> lib/kunit/common-mocks.c:105:1: warning: no previous prototype for function 'match_u8_eq' [-Wmissing-prototypes]
DEFINE_MATCHER(u8);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:90:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, eq, ==) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:42:1: note: expanded from here
match_u8_eq
^
lib/kunit/common-mocks.c:105:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:90:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, eq, ==) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:105:1: warning: no previous prototype for function 'match_u8_ne' [-Wmissing-prototypes]
DEFINE_MATCHER(u8);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:92:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ne, !=) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:59:1: note: expanded from here
match_u8_ne
^
lib/kunit/common-mocks.c:105:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:92:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ne, !=) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:105:1: warning: no previous prototype for function 'match_u8_le' [-Wmissing-prototypes]
DEFINE_MATCHER(u8);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:94:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, le, <=) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:76:1: note: expanded from here
match_u8_le
^
lib/kunit/common-mocks.c:105:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:94:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, le, <=) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:105:1: warning: no previous prototype for function 'match_u8_lt' [-Wmissing-prototypes]
DEFINE_MATCHER(u8);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:96:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, lt, <) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:93:1: note: expanded from here
match_u8_lt
^
lib/kunit/common-mocks.c:105:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:96:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, lt, <) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:105:1: warning: no previous prototype for function 'match_u8_ge' [-Wmissing-prototypes]
DEFINE_MATCHER(u8);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:98:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ge, >=) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:110:1: note: expanded from here
match_u8_ge
^
lib/kunit/common-mocks.c:105:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:98:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ge, >=) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:105:1: warning: no previous prototype for function 'match_u8_gt' [-Wmissing-prototypes]
DEFINE_MATCHER(u8);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:100:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, gt, >) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:127:1: note: expanded from here
match_u8_gt
^
lib/kunit/common-mocks.c:105:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:100:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, gt, >) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:106:1: warning: no previous prototype for function 'to_mock_u16_matcher' [-Wmissing-prototypes]
DEFINE_MATCHER(u16);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:89:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_TO_MATCHER_STRUCT(type_name) \
^
lib/kunit/common-mocks.c:37:3: note: expanded from macro 'DEFINE_TO_MATCHER_STRUCT'
to_mock_##type_name##_matcher( \
^
<scratch space>:145:1: note: expanded from here
to_mock_u16_matcher
^
lib/kunit/common-mocks.c:106:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:89:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_TO_MATCHER_STRUCT(type_name) \
^
lib/kunit/common-mocks.c:36:3: note: expanded from macro 'DEFINE_TO_MATCHER_STRUCT'
struct mock_##type_name##_matcher * \
^
>> lib/kunit/common-mocks.c:106:1: warning: no previous prototype for function 'match_u16_eq' [-Wmissing-prototypes]
DEFINE_MATCHER(u16);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:90:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, eq, ==) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:155:1: note: expanded from here
match_u16_eq
^
lib/kunit/common-mocks.c:106:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:90:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, eq, ==) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:106:1: warning: no previous prototype for function 'match_u16_ne' [-Wmissing-prototypes]
DEFINE_MATCHER(u16);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:92:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ne, !=) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:172:1: note: expanded from here
match_u16_ne
^
lib/kunit/common-mocks.c:106:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:92:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ne, !=) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:106:1: warning: no previous prototype for function 'match_u16_le' [-Wmissing-prototypes]
DEFINE_MATCHER(u16);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:94:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, le, <=) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:189:1: note: expanded from here
match_u16_le
^
lib/kunit/common-mocks.c:106:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:94:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, le, <=) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:106:1: warning: no previous prototype for function 'match_u16_lt' [-Wmissing-prototypes]
DEFINE_MATCHER(u16);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:96:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, lt, <) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:206:1: note: expanded from here
match_u16_lt
^
lib/kunit/common-mocks.c:106:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:96:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, lt, <) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:106:1: warning: no previous prototype for function 'match_u16_ge' [-Wmissing-prototypes]
DEFINE_MATCHER(u16);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:98:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ge, >=) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:223:1: note: expanded from here
match_u16_ge
^
lib/kunit/common-mocks.c:106:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:98:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ge, >=) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:106:1: warning: no previous prototype for function 'match_u16_gt' [-Wmissing-prototypes]
DEFINE_MATCHER(u16);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:100:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, gt, >) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:240:1: note: expanded from here
match_u16_gt
^
lib/kunit/common-mocks.c:106:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:100:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, gt, >) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:107:1: warning: no previous prototype for function 'to_mock_u32_matcher' [-Wmissing-prototypes]
DEFINE_MATCHER(u32);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:89:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_TO_MATCHER_STRUCT(type_name) \
^
lib/kunit/common-mocks.c:37:3: note: expanded from macro 'DEFINE_TO_MATCHER_STRUCT'
to_mock_##type_name##_matcher( \
^
<scratch space>:258:1: note: expanded from here
to_mock_u32_matcher
^
lib/kunit/common-mocks.c:107:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:89:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_TO_MATCHER_STRUCT(type_name) \
^
lib/kunit/common-mocks.c:36:3: note: expanded from macro 'DEFINE_TO_MATCHER_STRUCT'
struct mock_##type_name##_matcher * \
^
>> lib/kunit/common-mocks.c:107:1: warning: no previous prototype for function 'match_u32_eq' [-Wmissing-prototypes]
DEFINE_MATCHER(u32);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:90:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, eq, ==) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:268:1: note: expanded from here
match_u32_eq
^
lib/kunit/common-mocks.c:107:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:90:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, eq, ==) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:107:1: warning: no previous prototype for function 'match_u32_ne' [-Wmissing-prototypes]
DEFINE_MATCHER(u32);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:92:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ne, !=) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:285:1: note: expanded from here
match_u32_ne
^
lib/kunit/common-mocks.c:107:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:92:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ne, !=) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:107:1: warning: no previous prototype for function 'match_u32_le' [-Wmissing-prototypes]
DEFINE_MATCHER(u32);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:94:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, le, <=) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:302:1: note: expanded from here
match_u32_le
^
lib/kunit/common-mocks.c:107:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:94:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, le, <=) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:107:1: warning: no previous prototype for function 'match_u32_lt' [-Wmissing-prototypes]
DEFINE_MATCHER(u32);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:96:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, lt, <) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:15:1: note: expanded from here
match_u32_lt
^
lib/kunit/common-mocks.c:107:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:96:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, lt, <) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
>> lib/kunit/common-mocks.c:107:1: warning: no previous prototype for function 'match_u32_ge' [-Wmissing-prototypes]
DEFINE_MATCHER(u32);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:98:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ge, >=) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:32:1: note: expanded from here
match_u32_ge
^
lib/kunit/common-mocks.c:107:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:98:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, ge, >=) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
lib/kunit/common-mocks.c:107:1: warning: no previous prototype for function 'match_u32_gt' [-Wmissing-prototypes]
DEFINE_MATCHER(u32);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:100:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, gt, >) \
^
lib/kunit/common-mocks.c:46:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
<scratch space>:49:1: note: expanded from here
match_u32_gt
^
lib/kunit/common-mocks.c:107:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:100:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, gt, >) \
^
lib/kunit/common-mocks.c:46:3: note: expanded from macro 'DEFINE_MATCH_FUNC'
bool match_##type_name##_##op_name( \
^
lib/kunit/common-mocks.c:108:1: warning: no previous prototype for function 'to_mock_u64_matcher' [-Wmissing-prototypes]
DEFINE_MATCHER(u64);
^
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:89:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_TO_MATCHER_STRUCT(type_name) \
^
lib/kunit/common-mocks.c:37:3: note: expanded from macro 'DEFINE_TO_MATCHER_STRUCT'
to_mock_##type_name##_matcher( \
^
<scratch space>:67:1: note: expanded from here
to_mock_u64_matcher
^
lib/kunit/common-mocks.c:108:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^
lib/kunit/common-mocks.c:89:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_TO_MATCHER_STRUCT(type_name) \
^
lib/kunit/common-mocks.c:36:3: note: expanded from macro 'DEFINE_TO_MATCHER_STRUCT'
struct mock_##type_name##_matcher * \
^
lib/kunit/common-mocks.c:108:1: warning: format specifies type 'int' but the argument has type 'u64' (aka 'unsigned long long') [-Wformat]
DEFINE_MATCHER(u64);
^~~~~~~~~~~~~~~~~~~
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/kunit/common-mocks.c:90:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, eq, ==) \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/kunit/common-mocks.c:59:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
actual, \
^~~~~~
lib/kunit/common-mocks.c:108:1: warning: format specifies type 'int' but the argument has type 'u64' (aka 'unsigned long long') [-Wformat]
DEFINE_MATCHER(u64);
^~~~~~~~~~~~~~~~~~~
lib/kunit/common-mocks.c:103:30: note: expanded from macro 'DEFINE_MATCHER'
#define DEFINE_MATCHER(type) DEFINE_MATCHER_WITH_TYPENAME(type, type)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/kunit/common-mocks.c:90:3: note: expanded from macro 'DEFINE_MATCHER_WITH_TYPENAME'
DEFINE_MATCH_FUNC(type_name, type, eq, ==) \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/kunit/common-mocks.c:60:8: note: expanded from macro 'DEFINE_MATCH_FUNC'
matcher->expected); \
^~~~~~~~~~~~~~~~~
lib/kunit/common-mocks.c:108:1: warning: format specifies type 'int' but the argument has type 'u64' (aka 'unsigned long long') [-Wformat]
DEFINE_MATCHER(u64);
# https://github.com/0day-ci/linux/commit/32db0336f68431c2ad957f5dcd80ce827488660f
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Daniel-Latypov/kunit-introduce-class-mocking-support/20200919-023253
git checkout 32db0336f68431c2ad957f5dcd80ce827488660f
vim +/to_mock_u8_matcher +105 lib/kunit/common-mocks.c
104
> 105 DEFINE_MATCHER(u8);
> 106 DEFINE_MATCHER(u16);
> 107 DEFINE_MATCHER(u32);
> 108 DEFINE_MATCHER(u64);
> 109 DEFINE_MATCHER(char);
> 110 DEFINE_MATCHER_WITH_TYPENAME(uchar, unsigned char);
> 111 DEFINE_MATCHER_WITH_TYPENAME(schar, signed char);
> 112 DEFINE_MATCHER(short);
> 113 DEFINE_MATCHER_WITH_TYPENAME(ushort, unsigned short);
> 114 DEFINE_MATCHER(int);
> 115 DEFINE_MATCHER_WITH_TYPENAME(uint, unsigned int);
> 116 DEFINE_MATCHER(long);
> 117 DEFINE_MATCHER_WITH_TYPENAME(ulong, unsigned long);
> 118 DEFINE_MATCHER_WITH_TYPENAME(longlong, long long);
> 119 DEFINE_MATCHER_WITH_TYPENAME(ulonglong, unsigned long long);
120
> 121 DEFINE_MATCHER_WITH_TYPENAME(ptr, void *);
122
123 struct mock_memeq_matcher {
124 struct mock_param_matcher matcher;
125 const void *expected;
126 size_t size;
127 };
128
129 static bool match_memeq(struct mock_param_matcher *pmatcher,
130 struct kunit_stream *stream,
131 const void *pactual)
132 {
133 struct mock_memeq_matcher *matcher =
134 container_of(pmatcher,
135 struct mock_memeq_matcher,
136 matcher);
137 const void *actual = CONVERT_TO_ACTUAL_TYPE(const void *, pactual);
138 bool matches = !memcmp(actual, matcher->expected, matcher->size);
139 int i;
140
141 for (i = 0; i < matcher->size; i++)
142 kunit_stream_add(stream, "%02x, ", ((const char *) actual)[i]);
143 if (matches)
144 kunit_stream_add(stream, "== ");
145 else
146 kunit_stream_add(stream, "!= ");
147 for (i = 0; i < matcher->size; i++)
148 kunit_stream_add(stream,
149 "%02x, ",
150 ((const char *) matcher->expected)[i]);
151
152 return matches;
153 }
154
155 struct mock_param_matcher *kunit_memeq(struct kunit *test,
156 const void *buf,
157 size_t size)
158 {
159 struct mock_memeq_matcher *matcher;
160
161 matcher = kunit_kzalloc(test, sizeof(*matcher), GFP_KERNEL);
162 if (!matcher)
163 return NULL;
164
165 matcher->matcher.match = match_memeq;
166 matcher->expected = buf;
167 matcher->size = size;
168
169 return &matcher->matcher;
170 }
171
172 struct mock_streq_matcher {
173 struct mock_param_matcher matcher;
174 const char *expected;
175 };
176
177 static bool match_streq(struct mock_param_matcher *pmatcher,
178 struct kunit_stream *stream,
179 const void *pactual)
180 {
181 struct mock_streq_matcher *matcher =
182 container_of(pmatcher,
183 struct mock_streq_matcher,
184 matcher);
185 const char *actual = CONVERT_TO_ACTUAL_TYPE(const char *, pactual);
186 bool matches = !strcmp(actual, matcher->expected);
187
188 if (matches)
189 kunit_stream_add(stream, "%s == %s", actual, matcher->expected);
190 else
191 kunit_stream_add(stream, "%s != %s", actual, matcher->expected);
192
193 return matches;
194 }
195
196 struct mock_param_matcher *kunit_streq(struct kunit *test, const char *str)
197 {
198 struct mock_streq_matcher *matcher;
199
200 matcher = kunit_kzalloc(test, sizeof(*matcher), GFP_KERNEL);
201 if (!matcher)
202 return NULL;
203
204 matcher->matcher.match = match_streq;
205 matcher->expected = str;
206
207 return &matcher->matcher;
208 }
209
210 #define DEFINE_RETURN_ACTION_STRUCT(type_name, type) \
211 struct mock_##type_name##_action { \
212 struct mock_action action; \
213 type ret; \
214 }
215
216 #define DEFINE_RETURN_ACTION_FUNC(type_name, type) \
217 void *do_##type_name##_return(struct mock_action *paction, \
218 const void **params, \
219 int len) \
220 { \
221 struct mock_##type_name##_action *action = \
222 container_of(paction, \
223 struct mock_##type_name##_action,\
224 action); \
225 \
226 return (void *) &action->ret; \
227 }
228
229 #define DEFINE_RETURN_ACTION_FACTORY(type_name, type) \
230 struct mock_action *kunit_##type_name##_return( \
231 struct kunit *test, \
232 type ret) \
233 { \
234 struct mock_##type_name##_action *action; \
235 \
236 action = kunit_kmalloc(test, \
237 sizeof(*action), \
238 GFP_KERNEL); \
239 if (!action) \
240 return NULL; \
241 \
242 action->action.do_action = do_##type_name##_return; \
243 action->ret = ret; \
244 \
245 return &action->action; \
246 }
247
248 #define DEFINE_RETURN_ACTION_WITH_TYPENAME(type_name, type) \
249 DEFINE_RETURN_ACTION_STRUCT(type_name, type); \
250 DEFINE_RETURN_ACTION_FUNC(type_name, type); \
251 DEFINE_RETURN_ACTION_FACTORY(type_name, type)
252
253 #define DEFINE_RETURN_ACTION(type) \
254 DEFINE_RETURN_ACTION_WITH_TYPENAME(type, type)
255
> 256 DEFINE_RETURN_ACTION(u8);
> 257 DEFINE_RETURN_ACTION(u16);
> 258 DEFINE_RETURN_ACTION(u32);
> 259 DEFINE_RETURN_ACTION(u64);
> 260 DEFINE_RETURN_ACTION(char);
> 261 DEFINE_RETURN_ACTION_WITH_TYPENAME(uchar, unsigned char);
> 262 DEFINE_RETURN_ACTION_WITH_TYPENAME(schar, signed char);
> 263 DEFINE_RETURN_ACTION(short);
> 264 DEFINE_RETURN_ACTION_WITH_TYPENAME(ushort, unsigned short);
> 265 DEFINE_RETURN_ACTION(int);
> 266 DEFINE_RETURN_ACTION_WITH_TYPENAME(uint, unsigned int);
> 267 DEFINE_RETURN_ACTION(long);
> 268 DEFINE_RETURN_ACTION_WITH_TYPENAME(ulong, unsigned long);
> 269 DEFINE_RETURN_ACTION_WITH_TYPENAME(longlong, long long);
> 270 DEFINE_RETURN_ACTION_WITH_TYPENAME(ulonglong, unsigned long long);
> 271 DEFINE_RETURN_ACTION_WITH_TYPENAME(ptr, void *);
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 40422 bytes --]
next prev parent reply other threads:[~2020-09-19 0:24 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-18 18:31 [RFC v1 00/12] kunit: introduce class mocking support Daniel Latypov
2020-09-18 18:31 ` [RFC v1 01/12] Revert "kunit: move string-stream.h to lib/kunit" Daniel Latypov
2020-09-18 22:53 ` kernel test robot
2020-09-18 18:31 ` [RFC v1 02/12] kunit: test: add kunit_stream a std::stream like logger Daniel Latypov
2020-09-18 18:31 ` [RFC v1 03/12] kunit: test: add concept of post conditions Daniel Latypov
2020-09-18 18:31 ` [RFC v1 04/12] checkpatch: add support for struct MOCK(foo) syntax Daniel Latypov
2020-09-18 18:31 ` [RFC v1 05/12] kunit: mock: add parameter list manipulation macros Daniel Latypov
2020-09-18 18:31 ` [RFC v1 06/12] kunit: expose kunit_set_failure() for use by mocking Daniel Latypov
2020-09-18 18:31 ` [RFC v1 07/12] kunit: mock: add internal mock infrastructure Daniel Latypov
2020-09-18 18:31 ` [RFC v1 08/12] kunit: mock: add basic matchers and actions Daniel Latypov
2020-09-18 21:27 ` kernel test robot
2020-09-18 21:27 ` [RFC PATCH] kunit: mock: to_mock_u8_matcher can be static kernel test robot
2020-09-19 0:24 ` kernel test robot [this message]
2020-09-18 18:31 ` [RFC v1 09/12] kunit: mock: add macro machinery to pick correct format args Daniel Latypov
2020-09-18 18:31 ` [RFC v1 10/12] kunit: mock: add class mocking support Daniel Latypov
2020-09-18 20:27 ` kernel test robot
2020-09-18 22:30 ` kernel test robot
2020-09-18 22:46 ` kernel test robot
2020-09-18 22:46 ` [RFC PATCH] kunit: mock: one_param can be static kernel test robot
2020-09-18 18:31 ` [RFC v1 11/12] kunit: mock: add struct param matcher Daniel Latypov
2020-09-18 18:31 ` [RFC v1 12/12] kunit: mock: implement nice, strict and naggy mock distinctions Daniel Latypov
2020-09-23 0:24 ` [RFC v1 00/12] kunit: introduce class mocking support Daniel Latypov
2020-09-28 23:24 ` Brendan Higgins
2020-10-01 21:49 ` Daniel Latypov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202009190847.lHCvkJDK%lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.