Changeset 988 for vendor/current/lib/torture
- Timestamp:
- Nov 24, 2016, 1:14:11 PM (9 years ago)
- Location:
- vendor/current/lib/torture
- Files:
-
- 1 added
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/lib/torture/subunit.c
r740 r988 20 20 #include "includes.h" 21 21 #include "lib/torture/torture.h" 22 #include <subunit/child.h> 22 23 static void subunit_send_event(char const * const event, 24 char const * const name, 25 char const * const details) 26 { 27 if (NULL == details) { 28 printf("%s: %s\n", event, name); 29 } else { 30 printf("%s: %s [\n", event, name); 31 printf("%s", details); 32 if (details[strlen(details) - 1] != '\n') 33 puts(""); 34 puts("]"); 35 } 36 fflush(stdout); 37 } 23 38 24 39 static void torture_subunit_suite_start(struct torture_context *ctx, … … 67 82 { 68 83 char *fullname = torture_subunit_test_name(context, context->active_tcase, context->active_test); 69 subunit_ test_start(fullname);84 subunit_send_event("test", fullname, NULL); 70 85 torture_subunit_report_time(context); 71 86 talloc_free(fullname); … … 76 91 { 77 92 char *fullname = torture_subunit_test_name(context, context->active_tcase, context->active_test); 93 const char *result_str = "unknown"; 78 94 torture_subunit_report_time(context); 79 95 switch (res) { 80 96 case TORTURE_OK: 81 subunit_test_pass(fullname);97 result_str = "success"; 82 98 break; 83 99 case TORTURE_FAIL: 84 subunit_test_fail(fullname, reason);100 result_str = "failure"; 85 101 break; 86 102 case TORTURE_ERROR: 87 subunit_test_error(fullname, reason);103 result_str = "error"; 88 104 break; 89 105 case TORTURE_SKIP: 90 subunit_test_skip(fullname, reason);106 result_str = "skip"; 91 107 break; 92 108 } 109 subunit_send_event(result_str, fullname, reason); 93 110 talloc_free(fullname); 94 111 } -
vendor/current/lib/torture/torture.c
r740 r988 89 89 90 90 if (mkdtemp(*tempdir) == NULL) { 91 return map_nt_error_from_unix (errno);91 return map_nt_error_from_unix_common(errno); 92 92 } 93 93 … … 155 155 if (local_deltree(tctx->outputdir) == -1) { 156 156 if (errno != 0) { 157 return map_nt_error_from_unix (errno);157 return map_nt_error_from_unix_common(errno); 158 158 } 159 159 return NT_STATUS_UNSUCCESSFUL; … … 278 278 test->data = data; 279 279 280 DLIST_ADD_END(tcase->tests, test , struct torture_test *);280 DLIST_ADD_END(tcase->tests, test); 281 281 282 282 return test; … … 297 297 tcase->tests = NULL; 298 298 299 DLIST_ADD_END(suite->testcases, tcase , struct torture_tcase *);299 DLIST_ADD_END(suite->testcases, tcase); 300 300 301 301 return true; … … 401 401 } 402 402 403 static bool internal_torture_run_test(struct torture_context *context, 403 static bool internal_torture_run_test(struct torture_context *context, 404 404 struct torture_tcase *tcase, 405 405 struct torture_test *test, … … 410 410 char *subunit_testname = NULL; 411 411 412 if (tcase == NULL || strcmp(test->name, tcase->name) != 0) { 412 if (tcase == NULL || strcmp(test->name, tcase->name) != 0) { 413 413 subunit_testname = talloc_asprintf(context, "%s.%s", tcase->name, test->name); 414 414 } else { … … 427 427 context->last_result = TORTURE_OK; 428 428 429 if (!already_setup && tcase->setup && 430 431 429 if (!already_setup && tcase->setup && 430 !tcase->setup(context, &(tcase->data))) { 431 if (context->last_reason == NULL) 432 432 context->last_reason = talloc_strdup(context, "Setup failure"); 433 433 context->last_result = TORTURE_ERROR; 434 434 success = false; 435 } else if (test->dangerous && 436 437 438 context->last_reason = talloc_asprintf(context,439 440 435 } else if (test->dangerous && 436 !torture_setting_bool(context, "dangerous", false)) { 437 context->last_result = TORTURE_SKIP; 438 context->last_reason = talloc_asprintf(context, 439 "disabled %s - enable dangerous tests to use", test->name); 440 success = true; 441 441 } else { 442 success = test->run(context, tcase, test); 443 444 if (!success && context->last_result == TORTURE_OK) { 445 if (context->last_reason == NULL) 446 context->last_reason = talloc_strdup(context, "Unknown error/failure"); 447 context->last_result = TORTURE_ERROR; 448 } 442 success = test->run(context, tcase, test); 443 444 if (!success && context->last_result == TORTURE_OK) { 445 if (context->last_reason == NULL) 446 context->last_reason = talloc_strdup(context, 447 "Unknown error/failure. Missing torture_fail() or torture_assert_*() call?"); 448 context->last_result = TORTURE_ERROR; 449 } 449 450 } 450 451 451 452 if (!already_setup && tcase->teardown && !tcase->teardown(context, tcase->data)) { 452 453 454 453 if (context->last_reason == NULL) 454 context->last_reason = talloc_strdup(context, "Setup failure"); 455 context->last_result = TORTURE_ERROR; 455 456 success = false; 456 457 } 457 458 458 torture_ui_test_result(context, context->last_result, 459 torture_ui_test_result(context, context->last_result, 459 460 context->last_reason); 460 461 461 462 talloc_free(context->last_reason); 463 context->last_reason = NULL; 462 464 463 465 context->active_test = NULL; … … 616 618 test->dangerous = false; 617 619 618 DLIST_ADD_END(tcase->tests, test , struct torture_test *);620 DLIST_ADD_END(tcase->tests, test); 619 621 620 622 return tcase; … … 650 652 test->dangerous = false; 651 653 652 DLIST_ADD_END(tcase->tests, test , struct torture_test *);654 DLIST_ADD_END(tcase->tests, test); 653 655 654 656 return tcase; … … 664 666 return false; 665 667 666 DLIST_ADD_END(suite->children, child , struct torture_suite *);668 DLIST_ADD_END(suite->children, child); 667 669 668 670 /* FIXME: Check for duplicates and return false if the … … 715 717 test->dangerous = false; 716 718 717 DLIST_ADD_END(tcase->tests, test , struct torture_test *);719 DLIST_ADD_END(tcase->tests, test); 718 720 719 721 return test; … … 746 748 test->dangerous = false; 747 749 748 DLIST_ADD_END(tcase->tests, test , struct torture_test *);750 DLIST_ADD_END(tcase->tests, test); 749 751 750 752 return test; -
vendor/current/lib/torture/torture.h
r740 r988 289 289 do { enum ndr_err_code __got = got, __expected = expected; \ 290 290 if (__got != __expected) { \ 291 torture_result(torture_ctx, TORTURE_FAIL, __location__": "#got" was %d , expected %d (%s): %s", __got, __expected, __STRING(expected), cmt); \291 torture_result(torture_ctx, TORTURE_FAIL, __location__": "#got" was %d (%s), expected %d (%s): %s", __got, ndr_errstr(__got), __expected, __STRING(expected), cmt); \ 292 292 return false; \ 293 293 }\ 294 294 } while(0) 295 296 #define torture_assert_hresult_equal(torture_ctx, got, expected, cmt) \ 297 do { HRESULT __got = got, __expected = expected; \ 298 if (!HRES_IS_EQUAL(__got, __expected)) { \ 299 torture_result(torture_ctx, TORTURE_FAIL, __location__": "#got" was %s, expected %s: %s", hresult_errstr(__got), hresult_errstr(__expected), cmt); \ 300 return false; \ 301 } \ 302 } while (0) 295 303 296 304 #define torture_assert_casestr_equal(torture_ctx,got,expected,cmt) \ … … 415 423 } while(0) 416 424 425 #define torture_assert_int_not_equal(torture_ctx,got,not_expected,cmt)\ 426 do { int __got = (got), __not_expected = (not_expected); \ 427 if (__got == __not_expected) { \ 428 torture_result(torture_ctx, TORTURE_FAIL, \ 429 __location__": "#got" was %d (0x%X), expected a different number: %s", \ 430 __got, __got, cmt); \ 431 return false; \ 432 } \ 433 } while(0) 434 435 #define torture_assert_int_not_equal_goto(torture_ctx,got,not_expected,ret,label,cmt)\ 436 do { int __got = (got), __not_expected = (not_expected); \ 437 if (__got == __not_expected) { \ 438 torture_result(torture_ctx, TORTURE_FAIL, \ 439 __location__": "#got" was %d (0x%X), expected a different number: %s", \ 440 __got, __got, cmt); \ 441 ret = false; \ 442 goto label; \ 443 } \ 444 } while(0) 445 417 446 #define torture_assert_u64_equal(torture_ctx,got,expected,cmt)\ 418 447 do { uint64_t __got = (got), __expected = (expected); \ … … 440 469 } while(0) 441 470 471 #define torture_assert_u64_not_equal(torture_ctx,got,not_expected,cmt)\ 472 do { uint64_t __got = (got), __not_expected = (not_expected); \ 473 if (__got == __not_expected) { \ 474 torture_result(torture_ctx, TORTURE_FAIL, \ 475 __location__": "#got" was %llu (0x%llX), expected a different number: %s", \ 476 (unsigned long long)__got, (unsigned long long)__got, \ 477 cmt); \ 478 return false; \ 479 } \ 480 } while(0) 481 442 482 #define torture_assert_errno_equal(torture_ctx,expected,cmt)\ 443 483 do { int __expected = (expected); \ … … 447 487 errno, strerror(errno), __expected, \ 448 488 strerror(__expected), cmt); \ 489 return false; \ 490 } \ 491 } while(0) 492 493 #define torture_assert_guid_equal(torture_ctx,got,expected,cmt)\ 494 do { struct GUID __got = (got), __expected = (expected); \ 495 if (!GUID_equal(&__got, &__expected)) { \ 496 torture_result(torture_ctx, TORTURE_FAIL, \ 497 __location__": "#got" was %s, expected %s: %s", \ 498 GUID_string(torture_ctx, &__got), GUID_string(torture_ctx, &__expected), cmt); \ 449 499 return false; \ 450 500 } \ … … 459 509 } while(0) 460 510 511 #define torture_assert_sid_equal(torture_ctx,got,expected,cmt)\ 512 do { struct dom_sid *__got = (got), *__expected = (expected); \ 513 if (!dom_sid_equal(__got, __expected)) { \ 514 torture_result(torture_ctx, TORTURE_FAIL, \ 515 __location__": "#got" was %s, expected %s: %s", \ 516 dom_sid_string(torture_ctx, __got), dom_sid_string(torture_ctx, __expected), cmt); \ 517 return false; \ 518 } \ 519 } while(0) 520 521 #define torture_assert_not_null(torture_ctx,got,cmt)\ 522 do { void *__got = (got); \ 523 if (__got == NULL) { \ 524 torture_result(torture_ctx, TORTURE_FAIL, \ 525 __location__": "#got" was NULL, expected != NULL: %s", \ 526 cmt); \ 527 return false; \ 528 } \ 529 } while(0) 530 531 #define torture_assert_not_null_goto(torture_ctx,got,ret,label,cmt)\ 532 do { void *__got = (got); \ 533 if (__got == NULL) { \ 534 torture_result(torture_ctx, TORTURE_FAIL, \ 535 __location__": "#got" was NULL, expected != NULL: %s", \ 536 cmt); \ 537 ret = false; \ 538 goto label; \ 539 } \ 540 } while(0) 541 461 542 #define torture_skip(torture_ctx,cmt) do {\ 462 543 torture_result(torture_ctx, TORTURE_SKIP, __location__": %s", cmt);\ … … 490 571 #define torture_assert_ndr_success(torture_ctx,expr,cmt) \ 491 572 torture_assert_ndr_err_equal(torture_ctx,expr,NDR_ERR_SUCCESS,cmt) 573 574 #define torture_assert_hresult_ok(torture_ctx,expr,cmt) \ 575 torture_assert_hresult_equal(torture_ctx,expr,HRES_ERROR(0), cmt) 492 576 493 577 /* Getting settings */ … … 537 621 538 622 extern const struct torture_ui_ops torture_subunit_ui_ops; 623 extern const struct torture_ui_ops torture_simple_ui_ops; 539 624 540 625 #endif /* __TORTURE_UI_H__ */ -
vendor/current/lib/torture/wscript_build
r740 r988 2 2 3 3 bld.SAMBA_LIBRARY('torture', 4 source='torture.c subunit.c', 5 vnum='0.0.1', 6 pc_files='torture.pc', 7 public_deps='samba-hostconfig samba-util errors talloc tevent subunit', 8 public_headers='torture.h' 9 ) 4 private_library=True, 5 source='torture.c subunit.c simple.c', 6 public_deps='samba-hostconfig samba-util samba-errors talloc tevent', 7 private_headers='torture.h' 8 )
Note:
See TracChangeset
for help on using the changeset viewer.