]> rtime.felk.cvut.cz Git - linux-conf-perf.git/blobdiff - scripts/boot.py
Fix bug described in commit 5ef685
[linux-conf-perf.git] / scripts / boot.py
index 5c687a25547c75931cd64c10a2264ac67a493499..c12bb7978c21e090f68eb774244462bfb73971a0 100644 (file)
@@ -3,16 +3,28 @@ import sys
 import subprocess
 import shutil
 import importlib
+import traceback
 
 import utils
 import initialize
 from conf import conf
 from conf import sf
-from exceptions import MissingFile
+import exceptions
 import database
 
 def boot(config, to_database = True):
-       out = utils.callsubprocess('boot', conf.boot_command, conf.boot_output, True)
+       try:
+               out = utils.callsubprocess('boot', conf.boot_command, conf.boot_output, \
+                               True, timeout = conf.boot_timeout)
+               result = 'nominal'
+       except exceptions.ProcessFailed as e:
+               result = 'failed'
+               out = e.output
+               traceback.print_exc()
+       except exceptions.ProcessTimeout as e:
+               result = 'timeout'
+               out = e.output
+               traceback.print_exc()
 
        value = None
        try:
@@ -24,4 +36,10 @@ def boot(config, to_database = True):
 
        if to_database:
                        dtb = database.database()
-                       dtb.add_measure(out, config.id, value)
+                       txt = ''
+                       for ln in out:
+                               for c in ln:
+                                       if c == b'\0':
+                                               c = ' '
+                               txt += ln + '\n'
+                       dtb.add_measure(txt, result, config.id, value)