Ignore:
Timestamp:
Nov 27, 2012, 4:43:17 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: updated trunk to 3.6.0

Location:
trunk/server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/server

  • trunk/server/lib/torture/subunit.c

    r414 r745  
    2020#include "includes.h"
    2121#include "lib/torture/torture.h"
     22#include <subunit/child.h>
    2223
    23 static void subunit_suite_start(struct torture_context *ctx,
     24static void torture_subunit_suite_start(struct torture_context *ctx,
    2425                                struct torture_suite *suite)
    2526{
    2627}
    2728
    28 static void subunit_print_testname(struct torture_context *ctx,
     29static char *torture_subunit_test_name(struct torture_context *ctx,
    2930                                   struct torture_tcase *tcase,
    3031                                   struct torture_test *test)
    3132{
    3233        if (!strcmp(tcase->name, test->name)) {
    33                 printf("%s", test->name);
     34                return talloc_strdup(ctx, test->name);
    3435        } else {
    35                 printf("%s.%s", tcase->name, test->name);
     36                return talloc_asprintf(ctx, "%s.%s", tcase->name, test->name);
    3637        }
    3738}
    3839
    39 static void subunit_test_start(struct torture_context *ctx,
     40static void torture_subunit_report_time(struct torture_context *tctx)
     41{
     42        struct timespec tp;
     43        struct tm *tmp;
     44        char timestr[200];
     45        if (clock_gettime(CLOCK_REALTIME, &tp) != 0) {
     46                perror("clock_gettime");
     47                return;
     48        }
     49
     50        tmp = localtime(&tp.tv_sec);
     51        if (!tmp) {
     52                perror("localtime");
     53                return;
     54        }
     55
     56        if (strftime(timestr, sizeof(timestr), "%Y-%m-%d %H:%M:%S", tmp) <= 0) {
     57                perror("strftime");
     58                return;
     59        }
     60
     61        printf("time: %s.%06ld\n", timestr, tp.tv_nsec / 1000);
     62}
     63
     64static void torture_subunit_test_start(struct torture_context *context,
    4065                               struct torture_tcase *tcase,
    4166                               struct torture_test *test)
    4267{
    43         printf("test: ");
    44         subunit_print_testname(ctx, tcase, test);       
    45         printf("\n");
     68        char *fullname = torture_subunit_test_name(context, context->active_tcase, context->active_test);
     69        subunit_test_start(fullname);
     70        torture_subunit_report_time(context);
     71        talloc_free(fullname);
    4672}
    4773
    48 static void subunit_test_result(struct torture_context *context,
     74static void torture_subunit_test_result(struct torture_context *context,
    4975                                enum torture_result res, const char *reason)
    5076{
     77        char *fullname = torture_subunit_test_name(context, context->active_tcase, context->active_test);
     78        torture_subunit_report_time(context);
    5179        switch (res) {
    5280        case TORTURE_OK:
    53                 printf("success: ");
     81                subunit_test_pass(fullname);
    5482                break;
    5583        case TORTURE_FAIL:
    56                 printf("failure: ");
     84                subunit_test_fail(fullname, reason);
    5785                break;
    5886        case TORTURE_ERROR:
    59                 printf("error: ");
     87                subunit_test_error(fullname, reason);
    6088                break;
    6189        case TORTURE_SKIP:
    62                 printf("skip: ");
     90                subunit_test_skip(fullname, reason);
    6391                break;
    6492        }
    65         subunit_print_testname(context, context->active_tcase, context->active_test);   
    66 
    67         if (reason)
    68                 printf(" [\n%s\n]", reason);
    69         printf("\n");
     93        talloc_free(fullname);
    7094}
    7195
    72 static void subunit_comment(struct torture_context *test,
     96static void torture_subunit_comment(struct torture_context *test,
    7397                            const char *comment)
    7498{
     
    76100}
    77101
    78 static void subunit_warning(struct torture_context *test,
     102static void torture_subunit_warning(struct torture_context *test,
    79103                            const char *comment)
    80104{
     
    82106}
    83107
     108static void torture_subunit_progress(struct torture_context *tctx, int offset, enum torture_progress_whence whence)
     109{
     110        switch (whence) {
     111        case TORTURE_PROGRESS_SET:
     112                printf("progress: %d\n", offset);
     113                break;
     114        case TORTURE_PROGRESS_CUR:
     115                printf("progress: %+-d\n", offset);
     116                break;
     117        case TORTURE_PROGRESS_POP:
     118                printf("progress: pop\n");
     119                break;
     120        case TORTURE_PROGRESS_PUSH:
     121                printf("progress: push\n");
     122                break;
     123        default:
     124                fprintf(stderr, "Invalid call to progress()\n");
     125                break;
     126        }
     127}
     128
    84129const struct torture_ui_ops torture_subunit_ui_ops = {
    85         .comment = subunit_comment,
    86         .warning = subunit_warning,
    87         .test_start = subunit_test_start,
    88         .test_result = subunit_test_result,
    89         .suite_start = subunit_suite_start
     130        .comment = torture_subunit_comment,
     131        .warning = torture_subunit_warning,
     132        .test_start = torture_subunit_test_start,
     133        .test_result = torture_subunit_test_result,
     134        .suite_start = torture_subunit_suite_start,
     135        .progress = torture_subunit_progress,
     136        .report_time = torture_subunit_report_time,
    90137};
Note: See TracChangeset for help on using the changeset viewer.