1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (C) 2022 Stefan Roese <sr@denx.de> 4 */ 5 6 #include <cyclic.h> 7 #include <dm.h> 8 #include <test/common.h> 9 #include <test/test.h> 10 #include <test/ut.h> 11 #include <watchdog.h> 12 #include <linux/delay.h> 13 14 /* Test that cyclic function is called */ 15 static struct cyclic_test { 16 struct cyclic_info cyclic; 17 bool called; 18 } cyclic_test; 19 test_cb(struct cyclic_info * c)20static void test_cb(struct cyclic_info *c) 21 { 22 struct cyclic_test *t = container_of(c, struct cyclic_test, cyclic); 23 t->called = true; 24 } 25 dm_test_cyclic_running(struct unit_test_state * uts)26static int dm_test_cyclic_running(struct unit_test_state *uts) 27 { 28 cyclic_test.called = false; 29 cyclic_register(&cyclic_test.cyclic, test_cb, 10 * 1000, "cyclic_test"); 30 31 /* Execute all registered cyclic functions */ 32 schedule(); 33 ut_asserteq(true, cyclic_test.called); 34 35 cyclic_unregister(&cyclic_test.cyclic); 36 37 return 0; 38 } 39 COMMON_TEST(dm_test_cyclic_running, 0); 40