Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/pcut/src/os/helenos.c

    rf77c1c9 r8d2dd7f2  
    154154 * @param test Test to be run.
    155155 */
    156 int pcut_run_test_forking(const char *self_path, pcut_item_t *test) {
     156void pcut_run_test_forking(const char *self_path, pcut_item_t *test) {
    157157        before_test_start(test);
    158158
    159159        char tempfile_name[PCUT_TEMP_FILENAME_BUFFER_SIZE];
    160160        snprintf(tempfile_name, PCUT_TEMP_FILENAME_BUFFER_SIZE - 1, "pcut_%lld.tmp", (unsigned long long) task_get_id());
    161         int tempfile;
    162         int rc = vfs_lookup_open(tempfile_name, WALK_REGULAR | WALK_MAY_CREATE, MODE_READ | MODE_WRITE, &tempfile);
    163         if (rc != EOK) {
    164                 pcut_report_test_done(test, PCUT_OUTCOME_INTERNAL_ERROR, "Failed to create temporary file.", NULL, NULL);
    165                 return PCUT_OUTCOME_INTERNAL_ERROR;
     161        int tempfile = vfs_lookup_open(tempfile_name, WALK_REGULAR | WALK_MAY_CREATE, MODE_READ | MODE_WRITE);
     162        if (tempfile < 0) {
     163                pcut_report_test_done(test, TEST_OUTCOME_ERROR, "Failed to create temporary file.", NULL, NULL);
     164                return;
    166165        }
    167166
     
    175174        };
    176175
    177         int status = PCUT_OUTCOME_PASS;
     176        int status = TEST_OUTCOME_PASS;
    178177
    179178        task_wait_t test_task_wait;
    180         rc = task_spawnvf(&test_task_id, &test_task_wait, self_path, arguments,
     179        int rc = task_spawnvf(&test_task_id, &test_task_wait, self_path, arguments,
    181180            fileno(stdin), tempfile, tempfile);
    182181        if (rc != EOK) {
    183                 status = PCUT_OUTCOME_INTERNAL_ERROR;
     182                status = TEST_OUTCOME_ERROR;
    184183                goto leave_close_tempfile;
    185184        }
     
    199198        rc = task_wait(&test_task_wait, &task_exit, &task_retval);
    200199        if (rc != EOK) {
    201                 status = PCUT_OUTCOME_INTERNAL_ERROR;
     200                status = TEST_OUTCOME_ERROR;
    202201                goto leave_close_tempfile;
    203202        }
    204203        if (task_exit == TASK_EXIT_UNEXPECTED) {
    205                 status = PCUT_OUTCOME_INTERNAL_ERROR;
     204                status = TEST_OUTCOME_ERROR;
    206205        } else {
    207                 status = task_retval == 0 ? PCUT_OUTCOME_PASS : PCUT_OUTCOME_FAIL;
     206                status = task_retval == 0 ? TEST_OUTCOME_PASS : TEST_OUTCOME_FAIL;
    208207        }
    209208
     
    214213
    215214        aoff64_t pos = 0;
    216         size_t nread;
    217         vfs_read(tempfile, &pos, extra_output_buffer, OUTPUT_BUFFER_SIZE, &nread);
     215        vfs_read(tempfile, &pos, extra_output_buffer, OUTPUT_BUFFER_SIZE);
    218216
    219217leave_close_tempfile:
     
    222220
    223221        pcut_report_test_done_unparsed(test, status, extra_output_buffer, OUTPUT_BUFFER_SIZE);
    224 
    225         return status;
    226222}
    227223
Note: See TracChangeset for help on using the changeset viewer.