コード例 #1
0
def writeTest( gen, test ):
        startElement( gen, None, "Test", { u"Status":checkerResultAsString[test.result]} )
        writeElement( gen, None, "Name", test.name )
        writeElement( gen, None, "FullName", test.name )
        startElement( gen, None, "NamedMeasurement", { u"type":u"text/string", u"name":u"Completion Status"} )
        writeElement( gen, None, "Value", test.errorString )
        endElement( gen, None, "NamedMeasurement" )
        endElement( gen, None, "Test" )
コード例 #2
0
def writeTest( gen, test ):
        startElement( gen, None, "Test", { u"Status":checkerResultAsString[test.result]} )
        writeElement( gen, None, "Name", test.name )
        writeElement( gen, None, "FullName", test.name )
        startElement( gen, None, "NamedMeasurement", { u"type":u"text/string", u"name":u"Completion Status"} )
        writeElement( gen, None, "Value", test.errorString )
        endElement( gen, None, "NamedMeasurement" )
        endElement( gen, None, "Test" )
コード例 #3
0
def writeInternalError( gen, errorstr, num ):
        startElement( gen, None, "Test", { u"Status":u"failed"} )
        name = "InternalError{0}".format( num )
        writeElement( gen, None, "Name", name )
        writeElement( gen, None, "FullName", name )
        startElement( gen, None, "NamedMeasurement", { u"type":u"text/string", u"name":u"Completion Status"} )
        writeElement( gen, None, "Value", errorstr )
        endElement( gen, None, "NamedMeasurement" )
        endElement( gen, None, "Test" )
コード例 #4
0
def writeInternalError( gen, errorstr, num ):
        startElement( gen, None, "Test", { u"Status":u"failed"} )
        name = "InternalError{0}".format( num )
        writeElement( gen, None, "Name", name )
        writeElement( gen, None, "FullName", name )
        startElement( gen, None, "NamedMeasurement", { u"type":u"text/string", u"name":u"Completion Status"} )
        writeElement( gen, None, "Value", errorstr )
        endElement( gen, None, "NamedMeasurement" )
        endElement( gen, None, "Test" )
コード例 #5
0
ファイル: cdashreporter.py プロジェクト: 15831944/WorkSpace-1
    def genTestXml(self, gen, result):
        name = "{0} on {1}".format(result._installer.sourceFilename,
                                   result._vm.name())
        startElement(
            gen, None, "Site", {
                u"BuildStamp": self._buildStamp,
                u"Name": name,
                u"Generator": u"VMTester 0.1"
            })
        startElement(gen, None, "Testing")
        writeElement(gen, None, "StartDateTime", formatDate(result._testStart))
        startElement(gen, None, "TestList")
        internal = result._internalErrors
        for i in range(0, len(internal) - 1):
            writeElement(gen, None, "Test", "InternalError{0}".format(i))

        for stepNum in range(len(result._stepResults)):
            step = result._stepResults[stepNum]
            writeElement(gen, None, "Test", "installer-run{0}".format(stepNum))
            for i in step.checkerResults:
                writeElement(gen, None, "Test", i.name)
        endElement(gen, None, "TestList")

        for i in range(0, len(internal) - 1):
            writeInternalError(gen, internal[i], i)
        for stepNum in range(len(result._stepResults)):
            step = result._stepResults[stepNum]
            writeExecutionResult(gen, "installer-run{0}".format(stepNum),
                                 step.executionResult)
            for i in step.checkerResults:
                writeTest(gen, i)
        endElement(gen, None, "Testing")
        endElement(gen, None, "Site")
コード例 #6
0
def writeExecutionResult( gen, name, r ):
        if r == None or r.hasError():
            stat = "failed"
        else:
            stat = "passed"

        startElement( gen, None, "Test", { u"Status":stat } )
        writeElement( gen, None, "Name", name )
        writeElement( gen, None, "FullName", name )
        startElement( gen, None, "NamedMeasurement", { u"type":u"text/string", u"name":u"Exit Code"} )
        if r:
            msg = "(Unexpected)"
            ec = r.exitCode           
            if ec == 0:
               msg = "(Success)"
            elif ec == 1:
               msg = "(Failed)"
            elif ec == 2:
               msg = "(Canceled)"
  
            writeElement( gen, None, "Value", "Exit status: {0}; Installer exit code: {1} {2}".format( exitStatusAsString( r.exitStatus ), str( r.exitCode ), msg ) )
        else:
            writeElement( gen, None, "Value", "Could not determine installation result." )

        endElement( gen, None, "NamedMeasurement" )


        if r:
            startElement( gen, None, "NamedMeasurement", { u"type":u"numeric/double", u"name":u"Execution Time"} )
            writeElement( gen, None, "Value", str( r.executionTime ) )
            endElement( gen, None, "NamedMeasurement" )


        endElement( gen, None, "Test" )
コード例 #7
0
    def genTestXml( self, gen, result ):
        name = "{0} on {1}".format( result._installer.sourceFilename, result._vm.name() )
        startElement( gen, None, "Site", { u"BuildStamp":self._buildStamp, u"Name":name, u"Generator":u"VMTester 0.1" } )
        startElement( gen, None, "Testing" )
        writeElement( gen, None, "StartDateTime", formatDate( result._testStart ) )
        startElement( gen, None, "TestList" )
        internal = result._internalErrors
        for i in range( 0, len( internal ) - 1 ):
            writeElement( gen, None, "Test", "InternalError{0}".format( i ) )

        for stepNum in range( len( result._stepResults ) ):
            step = result._stepResults[stepNum]
            writeElement( gen, None, "Test", "installer-run{0}".format( stepNum ) )
            for i in step.checkerResults:
                writeElement( gen, None, "Test", i.name )              
        endElement( gen, None, "TestList" )
        
        for i in range( 0, len( internal ) - 1 ):
            writeInternalError( gen, internal[i], i )
        for stepNum in range( len( result._stepResults ) ):
            step = result._stepResults[stepNum]    
            writeExecutionResult( gen, "installer-run{0}".format( stepNum ), step.executionResult )
            for i in step.checkerResults:
                writeTest( gen, i )
        endElement( gen, None, "Testing" )
        endElement( gen, None, "Site" )
コード例 #8
0
def writeExecutionResult( gen, name, r ):
        if r == None or r.hasError():
            stat = "failed"
        else:
            stat = "passed"

        startElement( gen, None, "Test", { u"Status":stat } )
        writeElement( gen, None, "Name", name )
        writeElement( gen, None, "FullName", name )
        startElement( gen, None, "NamedMeasurement", { u"type":u"text/string", u"name":u"Exit Code"} )
        if r:
            msg = "(Unexpected)"
            ec = r.exitCode           
            if ec == 0:
               msg = "(Success)"
            elif ec == 1:
               msg = "(Failed)"
            elif ec == 2:
               msg = "(Canceled)"
  
            writeElement( gen, None, "Value", "Exit status: {0}; Installer exit code: {1} {2}".format( exitStatusAsString( r.exitStatus ), str( r.exitCode ), msg ) )
        else:
            writeElement( gen, None, "Value", "Could not determine installation result." )

        endElement( gen, None, "NamedMeasurement" )


        if r:
            startElement( gen, None, "NamedMeasurement", { u"type":u"numeric/double", u"name":u"Execution Time"} )
            writeElement( gen, None, "Value", str( r.executionTime ) )
            endElement( gen, None, "NamedMeasurement" )


        endElement( gen, None, "Test" )
コード例 #9
0
    def toXml( self, result, out ):
        atom = "http://www.w3.org/2005/Atom"
        tf = "http://sdk.nokia.com/test-framework/ns/1.0"
        
        gen = XMLGenerator( out, 'utf-8' )
        gen.startDocument()
        gen.startPrefixMapping( 'atom', atom)
        gen.startPrefixMapping( 'tf', tf )

        startElement( gen, atom, 'entry' )
        
        writeElement( gen, atom, 'title', result.constructTitle() )
        writeElement( gen, atom, 'updated', datetime.datetime.now().isoformat() )

        writeElement( gen, tf, 'errorSummary', exitStatusAsString( result.status() ) )

        writeElement( gen, tf, 'host', socket.gethostname() )
        if result._testStart != None:
            writeElement( gen, tf, 'testStart', result._testStart.isoformat() )
        else:
            result._internalErrors.append( "Result generator: no start timestamp found." )

        if result._testEnd != None:
            writeElement( gen, tf, 'testEnd', result._testEnd.isoformat() )
        else:
            result._internalErrors.append( "Result generator: no end timestamp found." )
            
        
        startElement( gen, tf, 'installer' )
        writeElement( gen, tf, 'sourceUrl', result._installerSourceLocation )
        writeElement( gen, tf, 'platform', result._installerTargetPlatform )
        #TODO revision
        endElement( gen, tf, 'installer' )

        if result._testcase != None:
            startElement( gen, tf, 'testCase' )
            writeElement( gen, tf, 'name', result._testcase.name() )
            writeElement( gen, tf, 'path', result._testcase.path() )
            writeElement( gen, tf, 'installScript', result._testcase.installscript() )
            endElement( gen, tf, 'testCase' )
        else:
            result._internalErrors.append( "Result generator: No test case given." )

        if result._installationResult != None:
            startElement( gen, tf, 'installationResult' )
            writeElement( gen, tf, 'exitCode', str( result._installationResult.exitCode ) )    
            writeElement( gen, tf, 'exitStatus', exitStatusAsString( result._installationResult.exitStatus ) )    
            endElement( gen, tf, 'installationResult' )
        else:
            result._internalErrors.append( "Result generator: No installation result given." )
        startElement( gen, tf, 'checkerResult' )
        
        for err in result._checkerErrors:
            writeElement( gen, tf, 'error', err )    
        endElement( gen, tf, 'checkerResult' )
            
        startElement( gen, tf, 'virtualMachine' )
        writeElement( gen, tf, 'path', result._vm.vmxPath() )
        writeElement( gen, tf, 'platform', result._vm.ostype() )
        writeElement( gen, tf, 'snapshot', result._vm.snapshot() )
        endElement( gen, tf, 'virtualMachine' )

        startElement( gen, tf, 'internalErrors' )
        for i in result._internalErrors:
            writeElement( gen, tf, 'internalError', str( i ) )

        endElement( gen, tf, 'internalErrors' )
        
        if result._errorSnapshot != None:
            writeElement( gen, tf, 'errorSnapshot', result._errorSnapshot )
            
        endElement( gen, atom, 'entry' )
        
        gen.endDocument()
コード例 #10
0
    def toXml(self, result, out):
        atom = "http://www.w3.org/2005/Atom"
        tf = "http://sdk.nokia.com/test-framework/ns/1.0"

        gen = XMLGenerator(out, 'utf-8')
        gen.startDocument()
        gen.startPrefixMapping('atom', atom)
        gen.startPrefixMapping('tf', tf)

        startElement(gen, atom, 'entry')

        writeElement(gen, atom, 'title', result.constructTitle())
        writeElement(gen, atom, 'updated', datetime.datetime.now().isoformat())

        writeElement(gen, tf, 'errorSummary',
                     exitStatusAsString(result.status()))

        writeElement(gen, tf, 'host', socket.gethostname())
        if result._testStart != None:
            writeElement(gen, tf, 'testStart', result._testStart.isoformat())
        else:
            result._internalErrors.append(
                "Result generator: no start timestamp found.")

        if result._testEnd != None:
            writeElement(gen, tf, 'testEnd', result._testEnd.isoformat())
        else:
            result._internalErrors.append(
                "Result generator: no end timestamp found.")

        startElement(gen, tf, 'installer')
        writeElement(gen, tf, 'sourceUrl', result._installerSourceLocation)
        writeElement(gen, tf, 'platform', result._installerTargetPlatform)
        #TODO revision
        endElement(gen, tf, 'installer')

        if result._testcase != None:
            startElement(gen, tf, 'testCase')
            writeElement(gen, tf, 'name', result._testcase.name())
            writeElement(gen, tf, 'path', result._testcase.path())
            writeElement(gen, tf, 'installScript',
                         result._testcase.installscript())
            endElement(gen, tf, 'testCase')
        else:
            result._internalErrors.append(
                "Result generator: No test case given.")

        if result._installationResult != None:
            startElement(gen, tf, 'installationResult')
            writeElement(gen, tf, 'exitCode',
                         str(result._installationResult.exitCode))
            writeElement(
                gen, tf, 'exitStatus',
                exitStatusAsString(result._installationResult.exitStatus))
            endElement(gen, tf, 'installationResult')
        else:
            result._internalErrors.append(
                "Result generator: No installation result given.")
        startElement(gen, tf, 'checkerResult')

        for err in result._checkerErrors:
            writeElement(gen, tf, 'error', err)
        endElement(gen, tf, 'checkerResult')

        startElement(gen, tf, 'virtualMachine')
        writeElement(gen, tf, 'path', result._vm.vmxPath())
        writeElement(gen, tf, 'platform', result._vm.ostype())
        writeElement(gen, tf, 'snapshot', result._vm.snapshot())
        endElement(gen, tf, 'virtualMachine')

        startElement(gen, tf, 'internalErrors')
        for i in result._internalErrors:
            writeElement(gen, tf, 'internalError', str(i))

        endElement(gen, tf, 'internalErrors')

        if result._errorSnapshot != None:
            writeElement(gen, tf, 'errorSnapshot', result._errorSnapshot)

        endElement(gen, atom, 'entry')

        gen.endDocument()