Changeset 81c4e6ec in mainline for uspace/srv/sysman/test/job_closure.c
- Timestamp:
- 2020-07-05T20:46:27Z (5 years ago)
- Parents:
- a73aaec1
- git-author:
- Matthieu Riolo <matthieu.riolo@…> (2020-07-05 20:37:10)
- git-committer:
- Matthieu Riolo <matthieu.riolo@…> (2020-07-05 20:46:27)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/sysman/test/job_closure.c
ra73aaec1 r81c4e6ec 40 40 PCUT_TEST_SUITE(job_closure); 41 41 42 static array_t exp_closure;43 static array_t act_closure;42 static list_t exp_closure; 43 static list_t act_closure; 44 44 45 45 static bool same_job(job_t *expected, job_t *actual) … … 49 49 } 50 50 51 static bool same_jobs( array_t *expected, array_t *actual)52 { 53 if ( expected->size != actual->size) {51 static bool same_jobs(list_t *expected, list_t *actual) 52 { 53 if (list_count(expected) != list_count(actual)) { 54 54 printf("%s: |expected|, |actual| = %zu, %zu\n", 55 __func__, expected->size, actual->size);55 __func__, list_count(expected), list_count(actual)); 56 56 return false; 57 57 } 58 58 59 59 /* Verify expected \subseteq actual (we've compared sizes) */ 60 array_foreach(*expected, job_t *, it_exp) {60 list_foreach(*expected, link, job_link_t, it_exp) { 61 61 bool found = false; 62 array_foreach(*actual, job_t *, it_act) {63 if (same_job( *it_exp, *it_act)) {62 list_foreach(*actual, link, job_link_t, it_act) { 63 if (same_job(it_exp->job, it_act->job)) { 64 64 found = true; 65 65 break; … … 68 68 if (!found) { 69 69 printf("%s: expected job for %s\n", 70 __func__, unit_name( (*it_exp)->unit));70 __func__, unit_name(it_exp->job->unit)); 71 71 return false; 72 72 } … … 79 79 { 80 80 bool found = false; 81 array_foreach(blocking_job->blocked_jobs, job_t *, it) {82 if ( *it== blocked_job) {81 list_foreach(blocking_job->blocked_jobs, link, job_link_t, it) { 82 if (it->job == blocked_job) { 83 83 found = true; 84 84 break; … … 94 94 } 95 95 96 static void dummy_add_closure( array_t *closure)97 { 98 array_foreach(*closure, job_t *, it) {99 (*it)->unit->job = *it;100 } 101 } 102 103 static void destroy_job_closure( array_t *closure)104 { 105 array_foreach(*closure, job_t *, it) {106 job_del_ref(& (*it));96 static void dummy_add_closure(list_t *closure) 97 { 98 list_foreach(*closure, link, job_link_t, it) { 99 it->job->unit->job = it->job; 100 } 101 } 102 103 static void destroy_job_closure(list_t *closure) 104 { 105 list_foreach(*closure, link, job_link_t, it) { 106 job_del_ref(&it->job); 107 107 } 108 108 } … … 113 113 mock_set_units_state(STATE_STOPPED); 114 114 115 array_initialize(&exp_closure, job_t *); 116 errno_t rc = array_reserve(&exp_closure, MAX_TYPES * MAX_UNITS); 117 assert(rc == EOK); 118 119 array_initialize(&act_closure, job_t *); 120 rc = array_reserve(&act_closure, MAX_TYPES * MAX_UNITS); 121 assert(rc == EOK); 115 list_initialize(&exp_closure); 116 list_initialize(&act_closure); 122 117 123 118 repo_init(); … … 127 122 { 128 123 destroy_job_closure(&act_closure); 129 array_destroy(&act_closure); 124 while (!list_empty(&act_closure)) { 125 job_link_t *job_link = list_pop(&act_closure, job_link_t, link); 126 free(job_link); 127 } 130 128 131 129 destroy_job_closure(&exp_closure); 132 array_destroy(&exp_closure); 130 while (!list_empty(&exp_closure)) { 131 job_link_t *job_link = list_pop(&exp_closure, job_link_t, link); 132 free(job_link); 133 } 133 134 134 135 mock_destroy_units(); … … 156 157 PCUT_ASSERT_INT_EQUALS(EOK, rc); 157 158 158 array_append(&exp_closure, job_t *, dummy_job(u1, STATE_STARTED)); 159 array_append(&exp_closure, job_t *, dummy_job(u2, STATE_STARTED)); 160 array_append(&exp_closure, job_t *, dummy_job(u3, STATE_STARTED)); 159 job_link_t *job_link = calloc(1, sizeof(job_link_t)); 160 PCUT_ASSERT_NOT_NULL(job_link); 161 job_link->job = dummy_job(u1, STATE_STARTED); 162 163 list_append(&job_link->link, &exp_closure); 164 165 job_link = calloc(1, sizeof(job_link_t)); 166 PCUT_ASSERT_NOT_NULL(job_link); 167 job_link->job = dummy_job(u2, STATE_STARTED); 168 169 list_append(&job_link->link, &exp_closure); 170 171 job_link = calloc(1, sizeof(job_link_t)); 172 PCUT_ASSERT_NOT_NULL(job_link); 173 job_link->job = dummy_job(u3, STATE_STARTED); 174 175 list_append(&job_link->link, &exp_closure); 161 176 162 177 dummy_add_closure(&act_closure); … … 188 203 PCUT_ASSERT_INT_EQUALS(EOK, rc); 189 204 190 array_append(&exp_closure, job_t *, dummy_job(u1, STATE_STARTED)); 191 array_append(&exp_closure, job_t *, dummy_job(u2, STATE_STARTED)); 192 array_append(&exp_closure, job_t *, dummy_job(u3, STATE_STARTED)); 205 job_link_t *job_link = calloc(1, sizeof(job_link_t)); 206 PCUT_ASSERT_NOT_NULL(job_link); 207 job_link->job = dummy_job(u1, STATE_STARTED); 208 209 list_append(&job_link->link, &exp_closure); 210 211 job_link = calloc(1, sizeof(job_link_t)); 212 PCUT_ASSERT_NOT_NULL(job_link); 213 job_link->job = dummy_job(u2, STATE_STARTED); 214 215 list_append(&job_link->link, &exp_closure); 216 217 job_link = calloc(1, sizeof(job_link_t)); 218 PCUT_ASSERT_NOT_NULL(job_link); 219 job_link->job = dummy_job(u3, STATE_STARTED); 220 221 list_append(&job_link->link, &exp_closure); 193 222 194 223 dummy_add_closure(&act_closure); … … 222 251 PCUT_ASSERT_INT_EQUALS(EOK, rc); 223 252 224 array_append(&exp_closure, job_t *, dummy_job(u1, STATE_STARTED)); 225 array_append(&exp_closure, job_t *, dummy_job(u2, STATE_STARTED)); 226 array_append(&exp_closure, job_t *, dummy_job(u3, STATE_STARTED)); 253 job_link_t *job_link = calloc(1, sizeof(job_link_t)); 254 PCUT_ASSERT_NOT_NULL(job_link); 255 job_link->job = dummy_job(u1, STATE_STARTED); 256 257 list_append(&job_link->link, &exp_closure); 258 259 job_link = calloc(1, sizeof(job_link_t)); 260 PCUT_ASSERT_NOT_NULL(job_link); 261 job_link->job = dummy_job(u2, STATE_STARTED); 262 263 list_append(&job_link->link, &exp_closure); 264 265 job_link = calloc(1, sizeof(job_link_t)); 266 PCUT_ASSERT_NOT_NULL(job_link); 267 job_link->job = dummy_job(u3, STATE_STARTED); 268 269 list_append(&job_link->link, &exp_closure); 227 270 228 271 dummy_add_closure(&act_closure); … … 270 313 PCUT_ASSERT_INT_EQUALS(EOK, rc); 271 314 272 array_append(&exp_closure, job_t *, dummy_job(u0, STATE_STOPPED)); 273 array_append(&exp_closure, job_t *, dummy_job(u1, STATE_STARTED)); 274 array_append(&exp_closure, job_t *, dummy_job(u2, STATE_STARTED)); 275 array_append(&exp_closure, job_t *, dummy_job(u3, STATE_STOPPED)); 276 array_append(&exp_closure, job_t *, dummy_job(u4, STATE_STOPPED)); 277 array_append(&exp_closure, job_t *, dummy_job(u5, STATE_STOPPED)); 278 array_append(&exp_closure, job_t *, dummy_job(u6, STATE_STOPPED)); 315 job_link_t *job_link = calloc(1, sizeof(job_link_t)); 316 PCUT_ASSERT_NOT_NULL(job_link); 317 job_link->job = dummy_job(u0, STATE_STOPPED); 318 319 list_append(&job_link->link, &exp_closure); 320 321 job_link = calloc(1, sizeof(job_link_t)); 322 PCUT_ASSERT_NOT_NULL(job_link); 323 job_link->job = dummy_job(u1, STATE_STARTED); 324 325 list_append(&job_link->link, &exp_closure); 326 327 job_link = calloc(1, sizeof(job_link_t)); 328 PCUT_ASSERT_NOT_NULL(job_link); 329 job_link->job = dummy_job(u2, STATE_STARTED); 330 331 list_append(&job_link->link, &exp_closure); 332 333 job_link = calloc(1, sizeof(job_link_t)); 334 PCUT_ASSERT_NOT_NULL(job_link); 335 job_link->job = dummy_job(u3, STATE_STOPPED); 336 337 list_append(&job_link->link, &exp_closure); 338 339 job_link = calloc(1, sizeof(job_link_t)); 340 PCUT_ASSERT_NOT_NULL(job_link); 341 job_link->job = dummy_job(u4, STATE_STOPPED); 342 343 list_append(&job_link->link, &exp_closure); 344 345 job_link = calloc(1, sizeof(job_link_t)); 346 PCUT_ASSERT_NOT_NULL(job_link); 347 job_link->job = dummy_job(u5, STATE_STOPPED); 348 349 list_append(&job_link->link, &exp_closure); 350 351 job_link = calloc(1, sizeof(job_link_t)); 352 PCUT_ASSERT_NOT_NULL(job_link); 353 job_link->job = dummy_job(u6, STATE_STOPPED); 354 355 list_append(&job_link->link, &exp_closure); 279 356 280 357 dummy_add_closure(&act_closure);
Note:
See TracChangeset
for help on using the changeset viewer.