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