Include test case name when reporting with subunit. This should make it possible...
[tprouty/samba.git] / source4 / torture / smbtorture.c
index 418f933993f3b0b923a59d334cb46054712ecd03..44daa89e4420f0ee4b1cbbca8bd6ee81177de335 100644 (file)
@@ -2,7 +2,7 @@
    Unix SMB/CIFS implementation.
    SMB torture tester
    Copyright (C) Andrew Tridgell 1997-2003
-   Copyright (C) Jelmer Vernooij 2006
+   Copyright (C) Jelmer Vernooij 2006-2008
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -375,11 +375,24 @@ static void subunit_suite_start(struct torture_context *ctx,
 {
 }
 
+static void subunit_print_testname(struct torture_context *ctx, 
+                                  struct torture_tcase *tcase,
+                                  struct torture_test *test)
+{
+       if (!strcmp(tcase->name, test->name)) {
+               printf("%s", test->name);
+       } else {
+               printf("%s.%s", tcase->name, test->name);
+       }
+}
+
 static void subunit_test_start(struct torture_context *ctx, 
                               struct torture_tcase *tcase,
                               struct torture_test *test)
 {
-       printf("test: %s\n", test->name);
+       printf("test: ");
+       subunit_print_testname(ctx, tcase, test);       
+       printf("\n");
 }
 
 static void subunit_test_result(struct torture_context *context, 
@@ -387,18 +400,20 @@ static void subunit_test_result(struct torture_context *context,
 {
        switch (res) {
        case TORTURE_OK:
-               printf("success: %s", context->active_test->name);
+               printf("success: ");
                break;
        case TORTURE_FAIL:
-               printf("failure: %s", context->active_test->name);
+               printf("failure: ");
                break;
        case TORTURE_ERROR:
-               printf("error: %s", context->active_test->name);
+               printf("error: ");
                break;
        case TORTURE_SKIP:
-               printf("skip: %s", context->active_test->name);
+               printf("skip: ");
                break;
        }
+       subunit_print_testname(context, context->active_tcase, context->active_test);   
+
        if (reason)
                printf(" [\n%s\n]", reason);
        printf("\n");