OSDN Git Service

shared/tester: Change handling of tester_setup_failed event
authorMarcin Kraglak <marcin.kraglak@tieto.com>
Tue, 2 Sep 2014 09:34:43 +0000 (11:34 +0200)
committerJohan Hedberg <johan.hedberg@intel.com>
Fri, 5 Sep 2014 20:23:18 +0000 (23:23 +0300)
If tester_setup_failed() was called, execute post_teardown() to clean
data created in pre_setup phase. In some cases android-tester
couldn't start daemon, and setup failed, but hciemu created in
pre_setup was not removed.

src/shared/tester.c

index 95b4682..fb645a0 100644 (file)
@@ -447,9 +447,9 @@ void tester_pre_setup_failed(void)
        if (test->stage != TEST_STAGE_PRE_SETUP)
                return;
 
-       test->stage = TEST_STAGE_SETUP;
+       print_progress(test->name, COLOR_RED, "pre setup failed");
 
-       tester_setup_failed();
+       g_idle_add(done_callback, test);
 }
 
 void tester_setup_complete(void)
@@ -481,14 +481,17 @@ void tester_setup_failed(void)
        if (test->stage != TEST_STAGE_SETUP)
                return;
 
+       test->stage = TEST_STAGE_POST_TEARDOWN;
+
        if (test->timeout_id > 0) {
                g_source_remove(test->timeout_id);
                test->timeout_id = 0;
        }
 
        print_progress(test->name, COLOR_RED, "setup failed");
+       print_progress(test->name, COLOR_MAGENTA, "teardown");
 
-       g_idle_add(done_callback, test);
+       test->post_teardown_func(test->test_data);
 }
 
 void tester_test_passed(void)