buildframework/helium/sf/python/pythoncore/lib/pkg2iby.py
author wbernard
Wed, 16 Jun 2010 16:51:40 +0300
changeset 588 c7c26511138f
child 645 b8d81fa19e7d
permissions -rw-r--r--
helium-10.0.0-bc45d50958fe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
588
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
     1
#============================================================================ 
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
     2
#Name        : pkg2iby.py 
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
     3
#Part of     : Helium 
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
     4
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
     5
#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
     6
#All rights reserved.
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
     7
#This component and the accompanying materials are made available
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
     8
#under the terms of the License "Eclipse Public License v1.0"
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
     9
#which accompanies this distribution, and is available
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    10
#at the URL "http://www.eclipse.org/legal/epl-v10.html".
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    11
#
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    12
#Initial Contributors:
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    13
#Nokia Corporation - initial contribution.
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    14
#
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    15
#Contributors:
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    16
#
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    17
#Description:
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    18
#===============================================================================
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    19
import sys
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    20
import ats3
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    21
import os
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    22
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    23
def main():
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    24
    if len(sys.argv) < 3:
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    25
        print 'Usage: ' + sys.argv[0] + ' builddrive tef pkg1 pkg2 ..'
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    26
        sys.exit(1)
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    27
    generateromcontent(sys.argv[1], sys.argv[2], sys.argv[3:])
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    28
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    29
def generateromcontent(drive, testtype, pkgs):
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    30
    ibyfilename = os.path.join(drive + os.sep, 'epoc32', 'rom', 'include', 'atsauto.iby')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    31
    execfilename = os.path.join(drive + os.sep, 'epoc32', 'data', 'atsautoexec.bat')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    32
    rtestexecfilename = os.path.join(drive + os.sep, 'epoc32', 'data', 'atsrtestexec.bat')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    33
    dummyexecfilename = os.path.join(drive + os.sep, 'epoc32', 'data', 'dummy.bat')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    34
    pkgfilesnames = []
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    35
    for p in pkgs:
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    36
        pkgfilesnames.append(os.path.join(drive + os.sep, p))
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    37
    pkg_parser = ats3.parsers.PkgFileParser(None, drive=drive)
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    38
    pkgfiles = pkg_parser.read_pkg_file(pkgfilesnames)
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    39
    
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    40
    writeautoexec = False
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    41
    
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    42
    myiby = open(ibyfilename, 'w')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    43
    atsautoexec = open(execfilename, 'w')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    44
    atsrtestexec = open(rtestexecfilename, 'w')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    45
    dummyexec = open(dummyexecfilename, 'w')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    46
    dummyexec.close()
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    47
    
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    48
    myiby.write("#ifndef __ATSAUTO_IBY__\n")
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    49
    myiby.write("#define __ATSAUTO_IBY__\n")
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    50
    
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    51
    atsautoexec.write(r'md c:\logs' + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    52
    atsautoexec.write(r'md c:\logs\testresults' + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    53
    atsautoexec.write(r'md c:\logs\testexecute' + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    54
    
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    55
    for src, dst, filetype, _ in pkgfiles:
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    56
        (_, dst) = os.path.splitdrive(dst)
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    57
        dst_nodrive = 'atsdata' + dst
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    58
        dst = r'z:\atsdata' + dst
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    59
        myiby.write('data=' + src + ' ' + dst_nodrive + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    60
        if 'testscript' in filetype and testtype == 'tef':
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    61
            atsautoexec.write('testexecute.exe ' + dst + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    62
            atsautoexec.write('thindump -nop c:\\logs\\testexecute\\' + os.path.basename(dst.replace('.script', '.htm')) + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    63
            writeautoexec = True
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    64
        if 'testscript' in filetype and testtype == 'mtf':
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    65
            atsautoexec.write('testframework.exe ' + dst + '\n')            
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    66
            atsautoexec.write('thindump -nop c:\\logs\\testresults\\' + os.path.basename(dst.replace('.script', '.htm')) + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    67
            writeautoexec = True
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    68
        if '.exe' in dst and testtype == 'rtest':
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    69
            atsrtestexec.write(dst + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    70
            writeautoexec = True
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    71
    if writeautoexec:
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    72
        myiby.write("#include <thindump.iby>\n")
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    73
        myiby.write(r'data=' + execfilename + ' autoexec.bat' + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    74
        if testtype == 'rtest':
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    75
            atsautoexec.write(r'runtests \sys\bin\atsrtestexec.bat' + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    76
            myiby.write(r'data=' + rtestexecfilename + r' \sys\bin\atsrtestexec.bat' + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    77
            
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    78
        
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    79
        myiby.write(r'data=' + dummyexecfilename + r' z:\dummytest.txt' + '\n')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    80
        atsautoexec.write(r'RUNTESTS z:\dummytest.txt -p')
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    81
    myiby.write("#endif\n")
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    82
    myiby.close()
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    83
    atsautoexec.close()
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    84
    atsrtestexec.close()
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    85
    
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    86
if __name__ == "__main__":
c7c26511138f helium-10.0.0-bc45d50958fe
wbernard
parents:
diff changeset
    87
    main()