Re: [PATCH v5 09/10] kunit: Use string_stream for test log

From: kernel test robot
Date: Fri Aug 25 2023 - 03:32:15 EST


Hi Richard,

kernel test robot noticed the following build warnings:

[auto build test WARNING on shuah-kselftest/kunit]
[also build test WARNING on next-20230824]
[cannot apply to shuah-kselftest/kunit-fixes linus/master v6.5-rc7]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Richard-Fitzgerald/kunit-string-stream-Don-t-create-a-fragment-for-empty-strings/20230824-223722
base: https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git kunit
patch link: https://lore.kernel.org/r/20230824143129.1957914-10-rf%40opensource.cirrus.com
patch subject: [PATCH v5 09/10] kunit: Use string_stream for test log
config: hexagon-randconfig-001-20230825 (https://download.01.org/0day-ci/archive/20230825/202308251509.VjWK804c-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230825/202308251509.VjWK804c-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308251509.VjWK804c-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> lib/kunit/kunit-test.c:557:25: warning: cast from 'void (*)(const void *)' to 'kunit_action_t *' (aka 'void (*)(void *)') converts to incompatible function type [-Wcast-function-type-strict]
557 | kunit_add_action(test, (kunit_action_t *)kfree, full_log);
| ^~~~~~~~~~~~~~~~~~~~~~~
lib/kunit/kunit-test.c:564:25: warning: cast from 'void (*)(const void *)' to 'kunit_action_t *' (aka 'void (*)(void *)') converts to incompatible function type [-Wcast-function-type-strict]
564 | kunit_add_action(test, (kunit_action_t *)kfree, full_log);
| ^~~~~~~~~~~~~~~~~~~~~~~
lib/kunit/kunit-test.c:581:26: warning: cast from 'void (*)(const void *)' to 'kunit_action_t *' (aka 'void (*)(void *)') converts to incompatible function type [-Wcast-function-type-strict]
581 | kunit_add_action(test, (kunit_action_t *)kfree, full_log);
| ^~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.


vim +557 lib/kunit/kunit-test.c

533
534 /*
535 * Log tests call string_stream functions, which aren't exported. So only
536 * build this code if this test is built-in.
537 */
538 #if IS_BUILTIN(CONFIG_KUNIT_TEST)
539 static void kunit_log_test(struct kunit *test)
540 {
541 struct kunit_suite suite;
542 char *full_log;
543
544 suite.log = kunit_alloc_string_stream(test, GFP_KERNEL);
545 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, suite.log);
546 string_stream_set_append_newlines(suite.log, true);
547
548 kunit_log(KERN_INFO, test, "put this in log.");
549 kunit_log(KERN_INFO, test, "this too.");
550 kunit_log(KERN_INFO, &suite, "add to suite log.");
551 kunit_log(KERN_INFO, &suite, "along with this.");
552
553 #ifdef CONFIG_KUNIT_DEBUGFS
554 KUNIT_EXPECT_TRUE(test, test->log->append_newlines);
555
556 full_log = string_stream_get_string(test->log);
> 557 kunit_add_action(test, (kunit_action_t *)kfree, full_log);
558 KUNIT_EXPECT_NOT_ERR_OR_NULL(test,
559 strstr(full_log, "put this in log."));
560 KUNIT_EXPECT_NOT_ERR_OR_NULL(test,
561 strstr(full_log, "this too."));
562
563 full_log = string_stream_get_string(suite.log);
564 kunit_add_action(test, (kunit_action_t *)kfree, full_log);
565 KUNIT_EXPECT_NOT_ERR_OR_NULL(test,
566 strstr(full_log, "add to suite log."));
567 KUNIT_EXPECT_NOT_ERR_OR_NULL(test,
568 strstr(full_log, "along with this."));
569 #else
570 KUNIT_EXPECT_NULL(test, test->log);
571 #endif
572 }
573

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki