Re: [PATCH 2/2] lib: add test for bitmap_parselist()

From: kbuild test robot
Date: Wed Aug 09 2017 - 00:11:29 EST


Hi Yury,

[auto build test WARNING on linus/master]
[also build test WARNING on v4.13-rc4 next-20170808]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Yury-Norov/lib-make-bitmap_parselist-thread-safe-and-much-faster/20170809-105307
config: xtensa-allmodconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 4.9.0
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=xtensa

All warnings (new ones prefixed by >>):

lib/test_bitmap.c:180:5: warning: large integer implicitly truncated to unsigned type [-Woverflow]
0xfffffffe, 0x3333333311111111, 0xffffffff77777777};
^
lib/test_bitmap.c:180:5: warning: large integer implicitly truncated to unsigned type [-Woverflow]
lib/test_bitmap.c:181:1: warning: large integer implicitly truncated to unsigned type [-Woverflow]
static const unsigned long exp2[] = {0x3333333311111111, 0xffffffff77777777};
^
lib/test_bitmap.c:181:1: warning: large integer implicitly truncated to unsigned type [-Woverflow]
lib/test_bitmap.c: In function 'test_bitmap_parselist':
>> lib/test_bitmap.c:235:4: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'cycles_t' [-Wformat=]
pr_err("test %d: input is '%s' OK, Time: %lu\n",
^

vim +235 lib/test_bitmap.c

177
178 static const unsigned long exp[] = {1, 2, 0x0000ffff, 0xffff0000, 0x55555555,
179 0xaaaaaaaa, 0x11111111, 0x22222222, 0xffffffff,
> 180 0xfffffffe, 0x3333333311111111, 0xffffffff77777777};
181 static const unsigned long exp2[] = {0x3333333311111111, 0xffffffff77777777};
182
183 static const struct test_bitmap_parselist parselist_tests[] __initconst = {
184 {0, "0", &exp[0], 8, 0},
185 {0, "1", &exp[1], 8, 0},
186 {0, "0-15", &exp[2], 32, 0},
187 {0, "16-31", &exp[3], 32, 0},
188 {0, "0-31:1/2", &exp[4], 32, 0},
189 {0, "1-31:1/2", &exp[5], 32, 0},
190 {0, "0-31:1/4", &exp[6], 32, 0},
191 {0, "1-31:1/4", &exp[7], 32, 0},
192 {0, "0-31:4/4", &exp[8], 32, 0},
193 {0, "1-31:4/4", &exp[9], 32, 0},
194 {0, "0-31:1/4,32-63:2/4", &exp[10], 64, 0},
195 {0, "0-31:3/4,32-63:4/4", &exp[11], 64, 0},
196
197 {0, "0-31:1/4,32-63:2/4,64-95:3/4,96-127:4/4", exp2, 128, 0},
198
199 {0, "0-2047:128/256", NULL, 2048, PARSE_TIME},
200
201 {-EINVAL, "-1", NULL, 8, 0},
202 {-EINVAL, "-0", NULL, 8, 0},
203 {-EINVAL, "10-1", NULL, 8, 0},
204 {-EINVAL, "0-31:10/1", NULL, 8, 0},
205 };
206
207 static void __init test_bitmap_parselist(void)
208 {
209 int i;
210 int err;
211 cycles_t cycles;
212 DECLARE_BITMAP(bmap, 2048);
213
214 for (i = 0; i < ARRAY_SIZE(parselist_tests); i++) {
215 #define ptest parselist_tests[i]
216
217 cycles = get_cycles();
218 err = bitmap_parselist(ptest.in, bmap, ptest.nbits);
219 cycles = get_cycles() - cycles;
220
221 if (err != ptest.errno) {
222 pr_err("test %d: input is %s, errno is %d, expected %d\n",
223 i, ptest.in, err, ptest.errno);
224 continue;
225 }
226
227 if (!err && ptest.expected
228 && !__bitmap_equal(bmap, ptest.expected, ptest.nbits)) {
229 pr_err("test %d: input is %s, result is 0x%lx, expected 0x%lx\n",
230 i, ptest.in, bmap[0], *ptest.expected);
231 continue;
232 }
233
234 if (ptest.flags & PARSE_TIME)
> 235 pr_err("test %d: input is '%s' OK, Time: %lu\n",
236 i, ptest.in, cycles);
237 }
238 }
239

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip