Changes in uspace/lib/system/test/system.c [a72f3b8:ca48672] in mainline
- File:
-
- 1 edited
-
uspace/lib/system/test/system.c (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/system/test/system.c
ra72f3b8 rca48672 1 1 /* 2 * Copyright (c) 202 4Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 46 46 void test_system_conn(ipc_call_t *, void *); 47 47 48 static errno_t test_shutdown(void *); 48 static errno_t test_poweroff(void *); 49 static errno_t test_restart(void *); 49 50 50 51 static void test_sys_shutdown_complete(void *); … … 52 53 53 54 static system_ops_t test_system_srv_ops = { 54 .shutdown = test_shutdown 55 .poweroff = test_poweroff, 56 .restart = test_restart 55 57 }; 56 58 … … 66 68 errno_t rc; 67 69 68 bool shutdown_called; 70 bool poweroff_called; 71 bool restart_called; 69 72 bool shutdown_complete_called; 70 73 bool shutdown_failed_called; … … 90 93 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 91 94 92 rc = loc_service_register(srv, test_system_svc, &sid);95 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 93 96 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 94 97 … … 103 106 } 104 107 105 /** system_ shutdown() with server returning error response works */106 PCUT_TEST( shutdown_failure)107 { 108 errno_t rc; 109 service_id_t sid; 110 system_t *system = NULL; 111 test_response_t resp; 112 loc_srv_t *srv; 113 114 async_set_fallback_port_handler(test_system_conn, &resp); 115 116 // FIXME This causes this test to be non-reentrant! 117 rc = loc_server_register(test_system_server, &srv); 118 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 119 120 rc = loc_service_register(srv, test_system_svc, &sid);108 /** system_poweroff() with server returning error response works */ 109 PCUT_TEST(poweroff_failure) 110 { 111 errno_t rc; 112 service_id_t sid; 113 system_t *system = NULL; 114 test_response_t resp; 115 loc_srv_t *srv; 116 117 async_set_fallback_port_handler(test_system_conn, &resp); 118 119 // FIXME This causes this test to be non-reentrant! 120 rc = loc_server_register(test_system_server, &srv); 121 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 122 123 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 121 124 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 122 125 … … 126 129 127 130 resp.rc = ENOMEM; 128 resp. shutdown_called = false;129 130 rc = system_ shutdown(system);131 PCUT_ASSERT_TRUE(resp. shutdown_called);131 resp.poweroff_called = false; 132 133 rc = system_poweroff(system); 134 PCUT_ASSERT_TRUE(resp.poweroff_called); 132 135 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 133 136 … … 138 141 } 139 142 140 /** system_ shutdown() with server returning success response works */141 PCUT_TEST( shutdown_success)142 { 143 errno_t rc; 144 service_id_t sid; 145 system_t *system = NULL; 146 test_response_t resp; 147 loc_srv_t *srv; 148 149 async_set_fallback_port_handler(test_system_conn, &resp); 150 151 // FIXME This causes this test to be non-reentrant! 152 rc = loc_server_register(test_system_server, &srv); 153 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 154 155 rc = loc_service_register(srv, test_system_svc, &sid);143 /** system_poweroff() with server returning success response works */ 144 PCUT_TEST(poweroff_success) 145 { 146 errno_t rc; 147 service_id_t sid; 148 system_t *system = NULL; 149 test_response_t resp; 150 loc_srv_t *srv; 151 152 async_set_fallback_port_handler(test_system_conn, &resp); 153 154 // FIXME This causes this test to be non-reentrant! 155 rc = loc_server_register(test_system_server, &srv); 156 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 157 158 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 156 159 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 157 160 … … 161 164 162 165 resp.rc = EOK; 163 resp.shutdown_called = false; 164 165 rc = system_shutdown(system); 166 PCUT_ASSERT_TRUE(resp.shutdown_called); 166 resp.poweroff_called = false; 167 168 rc = system_poweroff(system); 169 PCUT_ASSERT_TRUE(resp.poweroff_called); 170 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 171 172 system_close(system); 173 rc = loc_service_unregister(srv, sid); 174 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 175 loc_server_unregister(srv); 176 } 177 178 /** system_restart() with server returning error response works */ 179 PCUT_TEST(restart_failure) 180 { 181 errno_t rc; 182 service_id_t sid; 183 system_t *system = NULL; 184 test_response_t resp; 185 loc_srv_t *srv; 186 187 async_set_fallback_port_handler(test_system_conn, &resp); 188 189 // FIXME This causes this test to be non-reentrant! 190 rc = loc_server_register(test_system_server, &srv); 191 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 192 193 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 194 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 195 196 rc = system_open(test_system_svc, NULL, NULL, &system); 197 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 198 PCUT_ASSERT_NOT_NULL(system); 199 200 resp.rc = ENOMEM; 201 resp.restart_called = false; 202 203 rc = system_restart(system); 204 PCUT_ASSERT_TRUE(resp.restart_called); 205 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 206 207 system_close(system); 208 rc = loc_service_unregister(srv, sid); 209 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 210 loc_server_unregister(srv); 211 } 212 213 /** system_restart() with server returning success response works */ 214 PCUT_TEST(restart_success) 215 { 216 errno_t rc; 217 service_id_t sid; 218 system_t *system = NULL; 219 test_response_t resp; 220 loc_srv_t *srv; 221 222 async_set_fallback_port_handler(test_system_conn, &resp); 223 224 // FIXME This causes this test to be non-reentrant! 225 rc = loc_server_register(test_system_server, &srv); 226 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 227 228 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 229 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 230 231 rc = system_open(test_system_svc, NULL, NULL, &system); 232 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 233 PCUT_ASSERT_NOT_NULL(system); 234 235 resp.rc = EOK; 236 resp.restart_called = false; 237 238 rc = system_restart(system); 239 PCUT_ASSERT_TRUE(resp.restart_called); 167 240 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 168 241 … … 190 263 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 191 264 192 rc = loc_service_register(srv, test_system_svc, &sid);265 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 193 266 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 194 267 … … 234 307 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 235 308 236 rc = loc_service_register(srv, test_system_svc, &sid);309 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 237 310 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 238 311 … … 279 352 } 280 353 281 /** Test system shutdown.354 /** Test system poweroff. 282 355 * 283 356 * @param arg Argument (test_response_t *) 284 357 */ 285 static errno_t test_ shutdown(void *arg)358 static errno_t test_poweroff(void *arg) 286 359 { 287 360 test_response_t *resp = (test_response_t *)arg; 288 361 289 resp->shutdown_called = true; 362 resp->poweroff_called = true; 363 return resp->rc; 364 } 365 366 /** Test system restart. 367 * 368 * @param arg Argument (test_response_t *) 369 */ 370 static errno_t test_restart(void *arg) 371 { 372 test_response_t *resp = (test_response_t *)arg; 373 374 resp->restart_called = true; 290 375 return resp->rc; 291 376 }
Note:
See TracChangeset
for help on using the changeset viewer.
