Re: [PATCH v7] fat: Add KUnit tests for checksums and timestamps

From: kernel test robot
Date: Wed Nov 04 2020 - 11:02:25 EST


Hi David,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.10-rc2 next-20201104]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/David-Gow/fat-Add-KUnit-tests-for-checksums-and-timestamps/20201029-062211
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 23859ae44402f4d935b9ee548135dd1e65e2cbf4
config: parisc-randconfig-s031-20201104 (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-76-gf680124b-dirty
# https://github.com/0day-ci/linux/commit/2703274109bdea879973719332569f6754dce440
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review David-Gow/fat-Add-KUnit-tests-for-checksums-and-timestamps/20201029-062211
git checkout 2703274109bdea879973719332569f6754dce440
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=parisc

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


"sparse warnings: (new ones prefixed by >>)"
fs/fat/fat_test.c:38:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:38:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:38:25: sparse: got int
fs/fat/fat_test.c:45:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] time @@ got int @@
fs/fat/fat_test.c:45:25: sparse: expected restricted __le16 [usertype] time
fs/fat/fat_test.c:45:25: sparse: got int
fs/fat/fat_test.c:46:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:46:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:46:25: sparse: got int
fs/fat/fat_test.c:54:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:54:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:54:25: sparse: got int
fs/fat/fat_test.c:61:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] time @@ got int @@
fs/fat/fat_test.c:61:25: sparse: expected restricted __le16 [usertype] time
fs/fat/fat_test.c:61:25: sparse: got int
fs/fat/fat_test.c:62:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:62:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:62:25: sparse: got int
fs/fat/fat_test.c:70:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:70:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:70:25: sparse: got int
fs/fat/fat_test.c:78:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:78:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:78:25: sparse: got int
fs/fat/fat_test.c:86:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:86:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:86:25: sparse: got int
fs/fat/fat_test.c:93:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] time @@ got int @@
fs/fat/fat_test.c:93:25: sparse: expected restricted __le16 [usertype] time
fs/fat/fat_test.c:93:25: sparse: got int
fs/fat/fat_test.c:94:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:94:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:94:25: sparse: got int
fs/fat/fat_test.c:101:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] time @@ got int @@
fs/fat/fat_test.c:101:25: sparse: expected restricted __le16 [usertype] time
fs/fat/fat_test.c:101:25: sparse: got int
fs/fat/fat_test.c:102:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:102:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:102:25: sparse: got int
fs/fat/fat_test.c:109:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] time @@ got int @@
fs/fat/fat_test.c:109:25: sparse: expected restricted __le16 [usertype] time
fs/fat/fat_test.c:109:25: sparse: got int
fs/fat/fat_test.c:110:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:110:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:110:25: sparse: got int
fs/fat/fat_test.c:118:25: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] date @@ got int @@
fs/fat/fat_test.c:118:25: sparse: expected restricted __le16 [usertype] date
fs/fat/fat_test.c:118:25: sparse: got int
>> fs/fat/fat_test.c:164:17: sparse: sparse: incorrect type in initializer (different base types) @@ expected long long left_value @@ got restricted __le16 __left @@
fs/fat/fat_test.c:164:17: sparse: expected long long left_value
>> fs/fat/fat_test.c:164:17: sparse: got restricted __le16 __left
fs/fat/fat_test.c:164:17: sparse: sparse: incorrect type in initializer (different base types) @@ expected long long right_value @@ got restricted __le16 __right @@
fs/fat/fat_test.c:164:17: sparse: expected long long right_value
fs/fat/fat_test.c:164:17: sparse: got restricted __le16 __right
fs/fat/fat_test.c:169:17: sparse: sparse: incorrect type in initializer (different base types) @@ expected long long left_value @@ got restricted __le16 __left @@
fs/fat/fat_test.c:169:17: sparse: expected long long left_value
fs/fat/fat_test.c:169:17: sparse: got restricted __le16 __left
fs/fat/fat_test.c:169:17: sparse: sparse: incorrect type in initializer (different base types) @@ expected long long right_value @@ got restricted __le16 __right @@
fs/fat/fat_test.c:169:17: sparse: expected long long right_value
fs/fat/fat_test.c:169:17: sparse: got restricted __le16 __right

vim +164 fs/fat/fat_test.c

150
151 static void fat_time_unix2fat_test(struct kunit *test)
152 {
153 static struct msdos_sb_info fake_sb;
154 int i;
155 __le16 date, time;
156 u8 cs;
157
158 for (i = 0; i < ARRAY_SIZE(time_test_cases); ++i) {
159 fake_sb.options.tz_set = 1;
160 fake_sb.options.time_offset = time_test_cases[i].time_offset;
161
162 fat_time_unix2fat(&fake_sb, &time_test_cases[i].ts,
163 &time, &date, &cs);
> 164 KUNIT_EXPECT_EQ_MSG(test,
165 time_test_cases[i].time,
166 time,
167 "Time mismatch in case \"%s\"\n",
168 time_test_cases[i].name);
169 KUNIT_EXPECT_EQ_MSG(test,
170 time_test_cases[i].date,
171 date,
172 "Date mismatch in case \"%s\"\n",
173 time_test_cases[i].name);
174 KUNIT_EXPECT_EQ_MSG(test,
175 time_test_cases[i].cs,
176 cs,
177 "Centisecond mismatch in case \"%s\"\n",
178 time_test_cases[i].name);
179 }
180 }
181

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip