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