blob: c8c9bea908bb044383f51d151d849b8b710074de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
import os
import sys
import subprocess
import shutil
import importlib
import utils
from conf import conf
from conf import sf
from exceptions import MissingFile
def gen_nbscript():
try:
os.remove(sf(conf.nbscript))
except OSError:
pass
with open(sf(conf.nbscript), 'w') as f:
f.write('# generated novaboot script. Please don\'t edit.\n')
f.write('load ' + sf(conf.linux_image) + ' console=ttyS0,115200\n')
f.write('load ' + sf(conf.initram) + '\n')
def boot():
if not os.path.isfile((conf.nbscript)):
gen_nbscript()
try:
os.mkdir(sf(conf.output_folder))
except FileExistsError:
pass
bench = importlib.machinery.SourceFileLoader("module.name",
sf(conf.benchmark_python)).load_module()
sprc = subprocess.Popen([sf(conf.novaboot), sf(conf.nbscript)] + conf.novaboot_args,
stdout = subprocess.PIPE)
output = ''
for linen in sprc.stdout:
line = linen.decode('utf-8')
if conf.boot_output:
print(line, end="")
if line.startswith('lcp-output: '):
output += line[12:]
print(output)
data = bench.stdoutput(output)
iteration = 0
with open(sf(conf.iteration_file), 'r') as f:
iteration = int(f.readline())
for key, val in data.items():
with open(os.path.join(sf(conf.output_folder),key), 'w') as f:
f.write(str(iteration) + ':' + str(val) + '\n')
|