Changeset d4ec49e in mainline for uspace/app/tester/proc/task_wait.c
- Timestamp:
- 2019-08-07T05:25:59Z (6 years ago)
- Children:
- 3ea98e8
- Parents:
- 55fe220
- git-author:
- Michal Koutný <xm.koutny+hos@…> (2015-10-14 23:13:41)
- git-committer:
- Matthieu Riolo <matthieu.riolo@…> (2019-08-07 05:25:59)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/tester/proc/task_wait.c
r55fe220 rd4ec49e 74 74 75 75 TPRINTF("waiting..."); 76 rc = task_wait(&wait, &texit, &retval); 77 TPRINTF("done.\n"); 78 TASSERT(rc == EOK); 76 texit = TASK_EXIT_RUNNING; retval = 255; 77 rc = task_wait(&wait, &texit, &retval); 78 TPRINTF("done.\n"); 79 TASSERT(rc == EOK); 80 TASSERT(task_wait_get(&wait) == 0); 79 81 TASSERT(texit == TASK_EXIT_UNEXPECTED); 80 82 TPRINTF("OK\n"); … … 88 90 89 91 TPRINTF("waiting..."); 92 texit = TASK_EXIT_RUNNING; retval = 255; 90 93 rc = task_wait(&wait, &texit, &retval); 91 94 TPRINTF("done.\n"); 92 95 TASSERT(rc == EINVAL); 96 TASSERT(task_wait_get(&wait) == 0); 93 97 TPRINTF("OK\n"); 94 98 /* ---- */ … … 101 105 102 106 TPRINTF("waiting..."); 103 rc = task_wait(&wait, &texit, &retval); 104 TPRINTF("done.\n"); 105 TASSERT(rc == EOK); 107 texit = TASK_EXIT_RUNNING; retval = 255; 108 rc = task_wait(&wait, &texit, &retval); 109 TPRINTF("done.\n"); 110 TASSERT(rc == EOK); 111 TASSERT(task_wait_get(&wait) == 0); 106 112 TASSERT(texit == TASK_EXIT_UNEXPECTED); 107 113 /* retval is undefined */ … … 109 115 /* ---- */ 110 116 111 TPRINTF("21 ignore retval \n");117 TPRINTF("21 ignore retval and still wait for exit\n"); 112 118 113 119 task_wait_set(&wait, TASK_WAIT_EXIT); 114 rc = dummy_task_spawn(&tid, &wait, STR_JOB_OK); 115 TASSERT(rc == EOK); 116 117 TPRINTF("waiting..."); 118 rc = task_wait(&wait, &texit, &retval); 119 TPRINTF("done.\n"); 120 TASSERT(rc == EOK); 120 /* STR_JOB_OK to emulate daemon that eventually terminates */ 121 rc = dummy_task_spawn(&tid, &wait, STR_JOB_OK); 122 TASSERT(rc == EOK); 123 124 TPRINTF("waiting..."); 125 texit = TASK_EXIT_RUNNING; retval = 255; 126 rc = task_wait(&wait, &texit, &retval); 127 TPRINTF("done.\n"); 128 TASSERT(rc == EOK); 129 TASSERT(task_wait_get(&wait) == 0); 121 130 TASSERT(texit == TASK_EXIT_NORMAL); 122 131 /* retval is unknown */ … … 131 140 132 141 TPRINTF("waiting..."); 133 rc = task_wait(&wait, &texit, &retval); 134 TPRINTF("done.\n"); 135 TASSERT(rc == EOK); 142 texit = TASK_EXIT_RUNNING; retval = 255; 143 rc = task_wait(&wait, &texit, &retval); 144 TPRINTF("done.\n"); 145 TASSERT(rc == EOK); 146 TASSERT(task_wait_get(&wait) == 0); 136 147 /* exit is not expected */ 137 148 TASSERT(retval == EOK); … … 142 153 TPRINTF("23 partial match (non-exited task)\n"); 143 154 144 // TODO should update wait for synchronized exit waiting145 155 task_wait_set(&wait, TASK_WAIT_RETVAL | TASK_WAIT_EXIT); 146 156 rc = dummy_task_spawn(&tid, &wait, STR_DAEMON); … … 148 158 149 159 TPRINTF("waiting..."); 150 rc = task_wait(&wait, &texit, &retval); 151 TPRINTF("done.\n"); 152 TASSERT(rc == EOK); 160 texit = TASK_EXIT_RUNNING; retval = 255; 161 rc = task_wait(&wait, &texit, &retval); 162 TPRINTF("done.\n"); 163 TASSERT(rc == EOK); 164 TASSERT(task_wait_get(&wait) == TASK_WAIT_EXIT); 153 165 /* exit is not expected */ 154 166 TASSERT(retval == EOK); … … 164 176 165 177 TPRINTF("waiting..."); 166 rc = task_wait(&wait, &texit, &retval); 167 TPRINTF("done.\n"); 168 TASSERT(rc == EOK); 178 texit = TASK_EXIT_RUNNING; retval = 255; 179 rc = task_wait(&wait, &texit, &retval); 180 TPRINTF("done.\n"); 181 TASSERT(rc == EOK); 182 TASSERT(task_wait_get(&wait) == 0); 169 183 TASSERT(texit == TASK_EXIT_NORMAL); 170 184 /* retval is unknown */ … … 180 194 181 195 TPRINTF("waiting..."); 182 rc = task_wait(&wait, &texit, &retval); 183 TPRINTF("done.\n"); 184 TASSERT(rc == EOK); 196 texit = TASK_EXIT_RUNNING; retval = 255; 197 rc = task_wait(&wait, &texit, &retval); 198 TPRINTF("done.\n"); 199 TASSERT(rc == EOK); 200 /* Job atomically exited, so there's nothing more to wait for. */ 201 TASSERT(task_wait_get(&wait) == 0); 185 202 /* exit is unknown */ 186 203 TASSERT(retval == EOK); … … 198 215 199 216 TPRINTF("waiting..."); 200 rc = task_wait(&wait, &texit, &retval); 201 TPRINTF("done.\n"); 202 TASSERT(rc == EOK); 217 texit = TASK_EXIT_RUNNING; retval = 255; 218 rc = task_wait(&wait, &texit, &retval); 219 TPRINTF("done.\n"); 220 TASSERT(rc == EOK); 221 TASSERT(task_wait_get(&wait) == 0); 222 TASSERT(texit == TASK_EXIT_NORMAL); 223 TASSERT(retval == EOK); 224 TPRINTF("OK\n"); 225 /* ---- */ 226 227 TPRINTF("14 partially lost wait\n"); 228 229 task_wait_set(&wait, TASK_WAIT_BOTH); 230 rc = dummy_task_spawn(&tid, &wait, STR_FAIL); 231 TASSERT(rc == EOK); 232 233 TPRINTF("waiting..."); 234 texit = TASK_EXIT_RUNNING; retval = 255; 235 rc = task_wait(&wait, &texit, &retval); 236 TPRINTF("done.\n"); 237 TASSERT(rc == EINVAL); 238 TASSERT(task_wait_get(&wait) == 0); 239 TASSERT(texit == TASK_EXIT_UNEXPECTED); 240 /* retval is undefined */ 241 TPRINTF("OK\n"); 242 /* ---- */ 243 244 TPRINTF("24 repeated wait\n"); 245 246 task_wait_set(&wait, TASK_WAIT_BOTH); 247 rc = dummy_task_spawn(&tid, &wait, STR_DAEMON); 248 TASSERT(rc == EOK); 249 250 TPRINTF("waiting..."); 251 texit = TASK_EXIT_RUNNING; retval = 255; 252 rc = task_wait(&wait, &texit, &retval); 253 TPRINTF("done.\n"); 254 TASSERT(rc == EOK); 255 TASSERT(task_wait_get(&wait) == TASK_WAIT_EXIT); 256 TASSERT(retval == EOK); 257 task_kill(tid); /* Terminate daemon */ 258 TPRINTF("waiting 2..."); 259 texit = TASK_EXIT_RUNNING; retval = 255; 260 rc = task_wait(&wait, &texit, &retval); 261 TPRINTF("done.\n"); 262 TASSERT(rc == EOK); 263 TASSERT(task_wait_get(&wait) == 0); 264 //TASSERT(texit == TASK_EXIT_UNEXPECTED); // TODO resolve this in taskman/kernel 265 TPRINTF("OK\n"); 266 /* ---- */ 267 268 TPRINTF("34 double wait in one\n"); 269 270 task_wait_set(&wait, TASK_WAIT_BOTH); 271 rc = dummy_task_spawn(&tid, &wait, STR_JOB_OK); 272 TASSERT(rc == EOK); 273 274 TPRINTF("waiting..."); 275 texit = TASK_EXIT_RUNNING; retval = 255; 276 rc = task_wait(&wait, &texit, &retval); 277 TPRINTF("done.\n"); 278 TASSERT(rc == EOK); 279 TASSERT(task_wait_get(&wait) == 0); 203 280 TASSERT(texit == TASK_EXIT_NORMAL); 204 281 TASSERT(retval == EOK);
Note:
See TracChangeset
for help on using the changeset viewer.