From: Mariano Lopez Date: Fri, 18 Sep 2015 13:31:32 +0000 (+0000) Subject: testimage.bbclass: Fix break introduced with SIGTERM handling X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~28865 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94ab9892e87f159840432fdbfb3873d4496d4786;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git testimage.bbclass: Fix break introduced with SIGTERM handling The SIGTERM introduced another break into runexported test, the handler is in the class TestContext while exporting it will try to convert the singnal handler to JSON, and this will throw an exception. The SIGTERM handler is not needed in the exported test, so this change will remove the handler before exporting the test. Also when a test is exported the target is not deployed/started anymore, it is not necessary. [YOCTO #8239] Signed-off-by: Mariano Lopez Signed-off-by: Ross Burton --- diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass index 70e28004fe4..c62e391ec21 100644 --- a/meta/classes/testimage.bbclass +++ b/meta/classes/testimage.bbclass @@ -311,13 +311,15 @@ def testimage_main(d): import traceback bb.fatal("Loading tests failed:\n%s" % traceback.format_exc()) - target.deploy() - try: - target.start() - if export: - exportTests(d,tc) - else: + if export: + signal.signal(signal.SIGTERM, tc.origsigtermhandler) + tc.origsigtermhandler = None + exportTests(d,tc) + else: + target.deploy() + try: + target.start() starttime = time.time() result = runTests(tc) stoptime = time.time() @@ -330,9 +332,9 @@ def testimage_main(d): bb.plain(msg) else: raise bb.build.FuncFailed("%s - FAILED - check the task log and the ssh log" % pn ) - finally: - signal.signal(signal.SIGTERM, tc.origsigtermhandler) - target.stop() + finally: + signal.signal(signal.SIGTERM, tc.origsigtermhandler) + target.stop() testimage_main[vardepsexclude] =+ "BB_ORIGENV"