[Fuego] [PATCH 28/30] logdir: a few changes

Daniel Sangorrin daniel.sangorrin at toshiba.co.jp
Mon Jun 4 07:18:02 UTC 2018


logdir is now created by ftc run-test. Also we use logdir
to put the spec so fix that in ovgen.

Signed-off-by: Daniel Sangorrin <daniel.sangorrin at toshiba.co.jp>
---
 engine/scripts/overlays.sh | 17 +++++++----------
 engine/scripts/ovgen.py    | 23 +++++++++++------------
 2 files changed, 18 insertions(+), 22 deletions(-)

diff --git a/engine/scripts/overlays.sh b/engine/scripts/overlays.sh
index 186bd8a..7a66910 100644
--- a/engine/scripts/overlays.sh
+++ b/engine/scripts/overlays.sh
@@ -56,7 +56,7 @@ function set_overlay_vars() {
     d_value=${d_valtemp%'"'}
     DISTRIB="${d_value}"
     set -e
-    
+
     if [ ! "$DISTRIB" ]; then
         # FIXTHIS: automatically discover the best option
         DISTRIB="nosyslogd.dist"
@@ -67,17 +67,14 @@ function set_overlay_vars() {
     fi
     echo "Using $DISTRIB overlay"
 
-    # Create the log directory for this test run here so we can place the prolog.sh
-    export LOGDIR="$FUEGO_RW/logs/$TESTDIR/${NODE_NAME}.${TESTSPEC}.${BUILD_NUMBER}.${BUILD_ID}"
-    mkdir -p $LOGDIR
-
-    rm -f $LOGDIR/prolog.sh
+    if [ -f $LOGDIR/prolog.sh ]; then
+        abort_job "$LOGDIR directory contains data from a previous test"
+    fi
 
-    run_python $OF_OVGEN $OF_DEBUG_ARGS --classdir $OF_CLASSDIRS --ovfiles $OF_DISTRIB_FILE $OF_BOARD_FILE $OF_BOARD_VAR_FILE --testdir $TESTDIR --testspec $TESTSPEC --output $LOGDIR/prolog.sh || abort_job "Error while prolog.sh file generation"
+    run_python $OF_OVGEN $OF_DEBUG_ARGS --classdir $OF_CLASSDIRS --ovfiles $OF_DISTRIB_FILE $OF_BOARD_FILE $OF_BOARD_VAR_FILE --testdir $TESTDIR --testspec $TESTSPEC --logdir $LOGDIR || abort_job "Error while prolog.sh file generation"
 
-    if [ ! -f "$LOGDIR/prolog.sh" ]
-    then
-        abort_job "$LOGDIR/prolog.sh not found"
+    if [ ! -f "$LOGDIR/prolog.sh" ]; then
+        abort_job "$LOGDIR/prolog.sh was not created by ovgen.py"
     fi
 
     # FIXTHIS: add BUILD_TIMESTAMP and other variables to prolog.sh for --replay
diff --git a/engine/scripts/ovgen.py b/engine/scripts/ovgen.py
index 98cdf82..7aba86d 100755
--- a/engine/scripts/ovgen.py
+++ b/engine/scripts/ovgen.py
@@ -366,8 +366,8 @@ def parseOverrideFile(overrideFile, layer, ofcls):
 
     return classes
 
-def generateProlog(outFilePath, ofcls, classes, testdir, testspec):
-    outfile = open(outFilePath, "w")
+def generateProlog(logdir, ofcls, classes, testdir, testspec):
+    outfile = open(logdir + '/prolog.sh', "w")
 
     for ofc in classes:
         # ofc = ofcls[name]
@@ -379,30 +379,29 @@ def generateProlog(outFilePath, ofcls, classes, testdir, testspec):
         for var in ofc.vars:
             outStr = "%s=\"%s\"" % (var, ofc.vars[var])
             outStr = outStr.replace('"', '\"')
-            debug_print("%s <- %s" % (outFilePath, outStr))
+            debug_print("%s <- %s" % (logdir, outStr))
             file.write(outfile, outStr+"\n")
 
         for cap in ofc.cap_list:
             outStr = "CAP_%s=\"yes\"" % (cap)
-            debug_print("%s <- %s" % (outFilePath, outStr))
+            debug_print("%s <- %s" % (logdir, outStr))
             file.write(outfile, outStr+"\n")
 
         file.write(outfile, "\n")
 
         for func in ofc.funcs:
             body = ofc.funcs[func]
-            debug_print("%s <- %s()" % (outFilePath, func))
+            debug_print("%s <- %s()" % (logdir, func))
             file.write(outfile, body+"\n")
 
         file.write(outfile, "\n")
 
-    ts = parseSpec(testdir, testspec)
+    ts = parseSpec(logdir, testdir, testspec)
     generateSpec(ts, outfile)
 
 # generateSpec - generate shell output for the spec
 #     ts:TestSpecs  -  parsed specs for our testdir
 #     testspec: String  -   name of test spec (e.g. 'default')
-#     outFilePath - file output descriptor opened -> prolog.sh
 def generateSpec(ts, fout):
     debug_print("generating spec %s" % (ts.name))
 
@@ -431,9 +430,9 @@ def generateSpec(ts, fout):
             fout.write(outPattern + "\n")
             fout.write(outMessage + "\n")
 
-def parseSpec(testdir, testspec):
+def parseSpec(logdir, testdir, testspec):
     # FIXTHIS: get fuego-core from env
-    specpath = '/fuego-core/engine/tests/%s/spec.json' % (testdir)
+    specpath = logdir + '/spec.json'
     ts = TestSpecs()
 
     debug_print("Parsing %s spec file" % (specpath))
@@ -470,7 +469,7 @@ def run(test_args=None):
     parser.add_argument('--ovfiles', nargs='+', metavar='OVFILE', help='list of directories containing .override files', required=True)
     parser.add_argument('--testdir', help='e.g.: Benchmark.Dhrystone', required=True)
     parser.add_argument('--testspec', nargs='+', metavar='TESTSPEC', help='testspec', required=True)
-    parser.add_argument('--output', help='output file name', required=True)
+    parser.add_argument('--logdir', help='log dir', required=True)
     parser.add_argument('--debug', help='{1,2,3} debug level (default is no debugging)', type=int, required=False)
 
     args = parser.parse_args(args=test_args)
@@ -493,10 +492,10 @@ def run(test_args=None):
         classes = classes + parseOverrideFile(ovf, layers, ofcls)
         debug_print ("parsed %s override\n------------\n" % (ovf))
 
-    generateProlog(args.output, ofcls, classes, args.testdir, args.testspec[0])
+    generateProlog(args.logdir, ofcls, classes, args.testdir, args.testspec[0])
 
 def testrun():
-    test_args =  "--debug 2 --classdir /fuego-core/engine/overlays/base/ --ovfiles /fuego-ro/boards/qemu-arm.board --testdir Benchmark.Dhrystone --testspec default --output prolog.sh".split()
+    test_args =  "--debug 2 --classdir /fuego-core/engine/overlays/base/ --ovfiles /fuego-ro/boards/qemu-arm.board --testdir Benchmark.Dhrystone --testspec default --output ./".split()
     run(test_args)
 
 run()
-- 
2.7.4




More information about the Fuego mailing list