This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
The following commit(s) were added to refs/heads/master by this push: new 67fa0e89f driverteset_block.c: Reduce the stack consumption 67fa0e89f is described below commit 67fa0e89ff291425491a0b385fbe2f5daeaa7ae1 Author: Yongrong Wang <wangyongr...@xiaomi.com> AuthorDate: Thu Aug 8 16:30:06 2024 +0800 driverteset_block.c: Reduce the stack consumption 1. By reducing the use of local variables geometry 2. Use structure pre_build_s pointers instead of using the structure directly Signed-off-by: Yongrong Wang <wangyongr...@xiaomi.com> --- testing/drivertest/drivertest_block.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/testing/drivertest/drivertest_block.c b/testing/drivertest/drivertest_block.c index df440d61b..d3521674c 100644 --- a/testing/drivertest/drivertest_block.c +++ b/testing/drivertest/drivertest_block.c @@ -201,16 +201,15 @@ static int setup_driver(FAR void **state) ret = find_mtddriver(pre->source, &pre->driver); if (ret != 0) { - struct geometry geometry; ret = find_blockdriver(pre->source, 0, &pre->driver); assert_false(ret != 0); - ret = pre->driver->u.i_bops->geometry(pre->driver, &geometry); + ret = pre->driver->u.i_bops->geometry(pre->driver, &pre->cfg); assert_false(ret < 0); - pre->geo.blocksize = geometry.geo_sectorsize; - pre->geo.erasesize = geometry.geo_sectorsize; - pre->geo.neraseblocks = geometry.geo_nsectors; + pre->geo.blocksize = pre->cfg.geo_sectorsize; + pre->geo.erasesize = pre->cfg.geo_sectorsize; + pre->geo.neraseblocks = pre->cfg.geo_nsectors; } else { @@ -469,20 +468,29 @@ static int teardown_bch(FAR void **state) int main(int argc, FAR char *argv[]) { - struct pre_build_s pre; + struct pre_build_s *pre; + int ret; + + pre = kmm_zalloc(sizeof(*pre)); + if (pre == NULL) + { + return -ENOMEM; + } - parse_commandline(argc, argv, &pre); + parse_commandline(argc, argv, pre); const struct CMUnitTest tests[] = { cmocka_unit_test_prestate_setup_teardown(blktest_stress, setup_bch, - teardown_bch, &pre), + teardown_bch, pre), cmocka_unit_test_prestate_setup_teardown(blktest_single_write, setup_driver, teardown_driver, - &pre), + pre), cmocka_unit_test_prestate_setup_teardown(blktest_cachesize_write, setup_driver, teardown_driver, - &pre), + pre), }; - return cmocka_run_group_tests(tests, NULL, NULL); + ret = cmocka_run_group_tests(tests, NULL, NULL); + kmm_free(pre); + return ret; }