buildframework/helium/tools/common/python/lib/cpythontest/test_parsers.py
author wbernard
Wed, 23 Dec 2009 19:29:07 +0200
changeset 179 d8ac696cc51f
permissions -rw-r--r--
helium_7.0-r14027
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
179
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
     1
# -*- encoding: latin-1 -*-
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
     2
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
     3
#============================================================================ 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
     4
#Name        : test_parsers.py 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
     5
#Part of     : Helium 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
     6
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
     7
#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
     8
#All rights reserved.
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
     9
#This component and the accompanying materials are made available
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    10
#under the terms of the License "Eclipse Public License v1.0"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    11
#which accompanies this distribution, and is available
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    12
#at the URL "http://www.eclipse.org/legal/epl-v10.html".
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    13
#
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    14
#Initial Contributors:
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    15
#Nokia Corporation - initial contribution.
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    16
#
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    17
#Contributors:
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    18
#
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    19
#Description:
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    20
#===============================================================================
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    21
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    22
import os
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    23
import sys
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    24
import tempfile
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    25
import mocker
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    26
from path import path
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    27
import StringIO
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    28
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    29
import ats3.parsers
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    30
import ats3.testconfigurator
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    31
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    32
import logging
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    33
logging.getLogger().setLevel(logging.ERROR)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    34
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    35
TSRC_DIR = None
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    36
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    37
def setup_module():
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    38
    """Setup the test environment. The testing of the test parser script requires spesific
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    39
    structure to be available with bld.inf files (with the content written into those)."""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    40
    global TSRC_DIR
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    41
    TSRC_DIR = path(tempfile.mkdtemp()).normpath()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    42
    test_component = TSRC_DIR
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    43
    for path_parts in (("tsrc", "group"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    44
                       ("tsrc", "tc1", "group"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    45
                       ("tsrc", "tc1", "data"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    46
                       ("tsrc", "tc1", "dependent_1", "group"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    47
                       ("tsrc", "tc1", "dependent_2", "group"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    48
                       ("tsrc", "tc1", "subtest", "group"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    49
                       ("tsrc", "tc1", "subtest", "data"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    50
                       ("tsrc", "tc1", "subtest", "if_test", "group"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    51
                       ("tsrc", "tc2", "group"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    52
                       ("tsrc", "tc2", "data"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    53
                       ("tsrc", "tc3", "group"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    54
                       ("tsrc", "tc3", "data"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    55
                       ("tmp", "macros"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    56
                       ):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    57
        filepath = path.joinpath(test_component, *path_parts).normpath()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    58
        if not filepath.exists():
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    59
            os.makedirs(filepath)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    60
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    61
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    62
    tsrc = open(path.joinpath(TSRC_DIR, "tsrc", "group", "bld.inf"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    63
    tsrc.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    64
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    65
#include "../tc1/group/bld.inf"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    66
#include "../tc2/group/bld.inf"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    67
#include "../tc3/group/bld.inf" 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    68
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    69
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    70
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    71
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    72
    tsrc.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    73
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    74
    tc1 = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "group", "bld.inf"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    75
    tc1.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    76
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    77
#include "../dependent_1/group/bld.inf"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    78
#include "../dependent_2/group/bld.inf"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    79
#include "../subtest/group/bld.inf"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    80
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    81
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    82
tc1.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    83
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    84
PRJ_MMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    85
not_included.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    86
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    87
    tc1.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    88
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    89
    tc1_mmp = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "group", "tc1.mmp"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    90
    tc1_mmp.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    91
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    92
TARGET          tc1.dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    93
TARGETTYPE      dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    94
LIBRARY         stiftestinterface.lib
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    95
LIBRARY         user.lib
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    96
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    97
    tc1_mmp.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    98
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
    99
    tc1_sub = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "subtest", "group", "bld.inf"), "w")
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   100
    tc1_sub.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   101
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   102
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   103
sub_test.mmp    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   104
#ifndef RD_TEST1
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   105
#include "../if_test/group/bld.inf"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   106
#endif
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   107
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   108
    tc1_sub.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   109
    tc1_sub_mmp = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "subtest", "group", "sub_test.mmp"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   110
    tc1_sub_mmp.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   111
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   112
TARGET          sub_test.dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   113
TARGETTYPE      dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   114
LIBRARY         stiftestinterface.lib
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   115
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   116
    tc1_sub_mmp.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   117
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   118
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   119
    tc1_if = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "subtest", "if_test", "group", "bld.inf"), "w")
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   120
    tc1_if.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   121
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   122
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   123
if_test.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   124
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   125
    tc1_if.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   126
    tc1_if_mmp = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "subtest", "if_test", "group", "if_test.mmp"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   127
    tc1_if_mmp.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   128
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   129
TARGET          tc1_if.dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   130
TARGETTYPE      dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   131
LIBRARY         stifunit.lib
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   132
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   133
    tc1_if_mmp.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   134
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   135
    tc1_dep1 = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "dependent_1", "group", "bld.inf"), "w")
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   136
    tc1_dep1.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   137
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   138
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   139
dependent_1.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   140
onemore.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   141
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   142
    tc1_dep1.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   143
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   144
    tc1_dep1_mmp = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "dependent_1", "group", "dependent_1.mmp"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   145
    tc1_dep1_mmp.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   146
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   147
TARGET          dependent_1.dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   148
TARGETTYPE      PLUGIN
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   149
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   150
    tc1_dep1_mmp.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   151
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   152
    tc1_dep2 = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "dependent_2", "group", "bld.inf"), "w")
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   153
    tc1_dep2.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   154
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   155
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   156
dependent_2.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   157
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   158
    tc1_dep2.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   159
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   160
    tc1_dep2_mmp = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "dependent_2", "group", "dependent_2.mmp"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   161
    tc1_dep2_mmp.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   162
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   163
TARGET          dependent_2.dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   164
TARGETTYPE      PLUGIN
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   165
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   166
    tc1_dep2_mmp.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   167
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   168
    tc1_pkg = open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "group", "tc1.pkg"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   169
    tc1_pkg.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   170
                  r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   171
;Language - standard language definitions
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   172
&EN
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   173
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   174
; standard SIS file header
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   175
#{"BTEngTestApp"},(0x04DA27D5),1,0,0
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   176
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   177
;Supports Series 60 v 3.0
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   178
(0x101F7961), 0, 0, 0, {"Series60ProductID"}
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   179
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   180
;Localized Vendor Name
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   181
%{"BTEngTestApp"}
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   182
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   183
;Unique Vendor name
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   184
:"Nokia"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   185
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   186
; Files to copy
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   187
"..\data\file1.dll"-"c:\sys\bin\file1.dll"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   188
"..\data\file1.txt"-"e:\sys\bin\file1.txt" , FF   ; FF stands for Normal file
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   189
"..\data\file2.mp3"-"e:\sys\bin\file2.mp3"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   190
"..\data\TestFramework.ini"-"c:\sys\bin\TestFramework.ini"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   191
;"..\xyz\TestFramework.ini"-"!:\sys\bin\TestFramework.ini" (commented line)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   192
"../data/temp.ini"-"!:/sys/bin/temp.ini" , FF ; "something here"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   193
"..\data\tc1.cfg"-"e:\sys\bin\tc1.cfg"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   194
"..\data\tc1.sisx"-"e:\sys\bin\tc1.sisx"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   195
"..\data\DUMP.xyz"-"e:\sys\bin\DUMP.xyz"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   196
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   197
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   198
        """.replace('\\', os.sep))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   199
    tc1_pkg.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   200
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   201
    open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "data", "file1.dll"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   202
    open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "data", "file1.txt"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   203
    open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "data", "file2.mp3"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   204
    open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "data", "TestFramework.ini"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   205
    open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "data", "temp.ini"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   206
    open(path.joinpath(TSRC_DIR, "tsrc", "tc1", "data", "DUMP.xyz"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   207
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   208
    tc2 = open(path.joinpath(TSRC_DIR, "tsrc", "tc2", "group", "bld.inf"), "w")
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   209
    tc2.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   210
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   211
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   212
tc2.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   213
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   214
    tc2.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   215
    tc2_mmp = open(path.joinpath(TSRC_DIR, "tsrc", "tc2", "group", "tc2.mmp"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   216
    tc2_mmp.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   217
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   218
TARGET          tc2.dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   219
TARGETTYPE      dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   220
LIBRARY         EUnit.lib
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   221
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   222
    tc2_mmp.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   223
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   224
    tc2_pkg = open(path.joinpath(TSRC_DIR, "tsrc", "tc2", "group", "tc2.pkg"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   225
    tc2_pkg.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   226
                  r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   227
;Language - standard language definitions
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   228
&EN
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   229
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   230
; standard SIS file header
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   231
#{"BTEngTestApp"},(0x04DA27D5),1,0,0
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   232
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   233
;Supports Series 60 v 3.0
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   234
(0x101F7961), 0, 0, 0, {"Series60ProductID"}
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   235
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   236
;Localized Vendor Name
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   237
%{"BTEngTestApp"}
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   238
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   239
;Unique Vendor name
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   240
:"Nokia"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   241
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   242
; Files to copy
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   243
"..\data\file1.dll"-"c:\sys\bin\file1.dll"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   244
"..\data\file1.txt"-"e:\sys\bin\file1.txt"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   245
"..\data\file2.mp3"-"e:\sys\bin\file2.mp3"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   246
"..\data\TestFramework.ini"-"!:\sys\bin\TestFramework.ini" , FF   ; FF stands for Normal file
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   247
"..\data\tc2.cfg"-"!:\sys\bin\tc2.cfg"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   248
        """.replace('\\', os.sep))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   249
    tc2_pkg.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   250
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   251
    open(path.joinpath(TSRC_DIR, "tsrc", "tc2", "data", "file1.dll"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   252
    open(path.joinpath(TSRC_DIR, "tsrc", "tc2", "data", "file1.txt"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   253
    open(path.joinpath(TSRC_DIR, "tsrc", "tc2", "data", "file2.mp3"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   254
    open(path.joinpath(TSRC_DIR, "tsrc", "tc2", "data", "TestFramework.ini"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   255
    open(path.joinpath(TSRC_DIR, "tsrc", "tc2", "data", "tc2.cfg"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   256
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   257
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   258
    tc3 = open(path.joinpath(TSRC_DIR, "tsrc", "tc3", "group", "bld.inf"), "w")
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   259
    tc3.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   260
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   261
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   262
tc3.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   263
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   264
    tc3.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   265
    tc3_mmp = open(path.joinpath(TSRC_DIR, "tsrc", "tc3", "group", "tc3.mmp"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   266
    tc3_mmp.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   267
            r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   268
TARGET          tc3.dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   269
TARGETTYPE      dll
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   270
LIBRARY         EUnit.lib
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   271
            """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   272
    tc3_mmp.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   273
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   274
    tc3_pkg = open(path.joinpath(TSRC_DIR, "tsrc", "tc2", "group", "tc2.pkg"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   275
    tc3_pkg.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   276
                  r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   277
;Language - standard language definitions
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   278
&EN
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   279
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   280
; standard SIS file header
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   281
#{"BTEngTestApp"},(0x04DA27D5),1,0,0
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   282
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   283
;Supports Series 60 v 3.0
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   284
(0x101F7961), 0, 0, 0, {"Series60ProductID"}
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   285
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   286
;Localized Vendor Name
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   287
%{"BTEngTestApp"}
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   288
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   289
;Unique Vendor name
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   290
:"Nokia"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   291
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   292
; Files to copy
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   293
"..\data\file1.dll"-"c:\sys\bin\file1.dll"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   294
"..\data\file1.txt"-"e:\sys\bin\file1.txt"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   295
"..\data\file2.mp3"-"e:\sys\bin\file2.mp3" , FF   ; FF stands for Normal file
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   296
"..\data\TestFramework.ini"-"!:\sys\bin\TestFramework.ini"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   297
"..\data\temp.ini"-"!:\sys\bin\temp.ini"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   298
"..\data\tc2.cfg"-"!:\sys\bin\tc2.cfg"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   299
        """.replace('\\', os.sep))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   300
    tc3_pkg.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   301
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   302
    open(path.joinpath(TSRC_DIR, "tsrc", "tc3", "data", "file1.dll"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   303
    open(path.joinpath(TSRC_DIR, "tsrc", "tc3", "data", "file1.txt"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   304
    open(path.joinpath(TSRC_DIR, "tsrc", "tc3", "data", "file2.mp3"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   305
    open(path.joinpath(TSRC_DIR, "tsrc", "tc3", "data", "TestFramework.ini"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   306
    open(path.joinpath(TSRC_DIR, "tsrc", "tc3", "data", "temp.ini"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   307
    open(path.joinpath(TSRC_DIR, "tsrc", "tc3", "data", "tc2.cfg"), 'w').close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   308
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   309
    macros = open(path.joinpath(TSRC_DIR, "tmp", "macros", "bldcodeline.hrh"), 'w')
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   310
    macros.write(
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   311
              r"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   312
#ifndef __BLDCODELINE_HRH
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   313
#define __BLDCODELINE_HRH
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   314
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   315
/** #RD_TEST */
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   316
#define RD_TEST1
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   317
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   318
/** #RD_TEST2 */
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   319
#define RD_TEST2
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   320
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   321
/** #RD_TEST3 */
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   322
#define RD_TEST3
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   323
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   324
#endif  // __BLDCODELINE_HRH
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   325
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   326
    """)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   327
    macros.close()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   328
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   329
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   330
def teardown_module():
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   331
    """ Cleanup environment after testing. """    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   332
    def __init__():
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   333
        TSRC_DIR.rmtree()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   334
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   335
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   336
#        list_of_paths = []
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   337
#        list_of_paths = path.walk(TSRC_DIR)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   338
#        for file in list_of_paths[2]:
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   339
#            continue
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   340
#        for dir in list_of_paths[1]:
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   341
#            continue
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   342
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   343
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   344
class TestPkgFileParser(mocker.MockerTestCase):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   345
    """Testing Package file parser"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   346
    def __init__(self, methodName="runTest"):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   347
        mocker.MockerTestCase.__init__(self, methodName)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   348
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   349
    def setUp(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   350
        """Setup for PkgFile parser"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   351
        self.pkg_file_path1 = os.path.normpath(os.path.join(TSRC_DIR, "tsrc", "tc1", "group"))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   352
        self.pkg_file_path2 = os.path.normpath(os.path.join(TSRC_DIR, "tsrc", "tc2", "group"))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   353
        self.pkg_file_path3 = os.path.normpath(os.path.join(TSRC_DIR, "tsrc", "tc3", "group"))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   354
        self.tcp = ats3.parsers.PkgFileParser("tc1.pkg")        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   355
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   356
        self.data_files = [
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   357
            (path(TSRC_DIR+r"" + os.sep + "tsrc" + os.sep + "tc1" + os.sep + "data" + os.sep + "file1.dll").normpath(), path(r"c:" + os.sep + "sys" + os.sep + "bin" + os.sep + "file1.dll").normpath(), "testmodule", 'tc1.pkg'),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   358
            (path(TSRC_DIR+r"" + os.sep + "tsrc" + os.sep + "tc1" + os.sep + "data" + os.sep + "file1.txt").normpath(), path(r"e:" + os.sep + "sys" + os.sep + "bin" + os.sep + "file1.txt").normpath(), "data", 'tc1.pkg'),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   359
            (path(TSRC_DIR+r"" + os.sep + "tsrc" + os.sep + "tc1" + os.sep + "data" + os.sep + "file2.mp3").normpath(), path(r"e:" + os.sep + "sys" + os.sep + "bin" + os.sep + "file2.mp3").normpath(), "data", 'tc1.pkg'),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   360
            (path(TSRC_DIR+r"" + os.sep + "tsrc" + os.sep + "tc1" + os.sep + "data" + os.sep + "TestFramework.ini").normpath(), path(r"c:" + os.sep + "sys" + os.sep + "bin" + os.sep + "TestFramework.ini").normpath(), "engine_ini", 'tc1.pkg'),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   361
            (path(TSRC_DIR+r"" + os.sep + "tsrc" + os.sep + "tc1" + os.sep + "data" + os.sep + "temp.ini").normpath(), path(r"c:" + os.sep + "sys" + os.sep + "bin" + os.sep + "temp.ini").normpath(), "engine_ini", 'tc1.pkg'),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   362
            (path(TSRC_DIR+r"" + os.sep + "tsrc" + os.sep + "tc1" + os.sep + "data" + os.sep + "tc1.cfg").normpath(), path(r"e:" + os.sep + "sys" + os.sep + "bin" + os.sep + "tc1.cfg").normpath(), "conf", 'tc1.pkg'),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   363
            (path(TSRC_DIR+r"" + os.sep + "tsrc" + os.sep + "tc1" + os.sep + "data" + os.sep + "tc1.sisx").normpath(), path(r"e:" + os.sep + "sys" + os.sep + "bin" + os.sep + "tc1.sisx").normpath(), "", 'tc1.pkg'),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   364
            (path(TSRC_DIR+r"" + os.sep + "tsrc" + os.sep + "tc1" + os.sep + "data" + os.sep + "DUMP.xyz").normpath(), path(r"e:" + os.sep + "sys" + os.sep + "bin" + os.sep + "DUMP.xyz").normpath(), "data", 'tc1.pkg'),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   365
            ]
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   366
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   367
    def test_get_pkg_files(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   368
        """Test if pkg files are returned from a specified location"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   369
        assert self.tcp.get_pkg_files(self.pkg_file_path1, False) == ["tc1.pkg"]
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   370
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   371
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   372
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   373
    def test_parser_receives_path(self):      
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   374
        """Test if None is returned when a path to PKG file is incorrect"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   375
        assert self.tcp.get_data_files("string") == []
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   376
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   377
    def test_data_files_creation_without_exclude(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   378
        """ Tests if PKG file parser creates data files list as expected without exclude"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   379
        assert self.tcp.get_data_files(self.pkg_file_path1, "d:") == self.data_files
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   380
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   381
    def test_data_files_creation_with_exclude(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   382
        """ Tests if PKG file parser creates data files list as expected with exclude"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   383
        self.data_files.pop()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   384
        assert self.tcp.get_data_files(self.pkg_file_path1, "d:", "\.xyz") == self.data_files
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   385
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   386
    def test_data_files_creation_without_drive_with_exclude(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   387
        """ Tests if PKG file parser creates data files list as expected without drive with exclude"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   388
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   389
        self.data_files.pop()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   390
        assert self.tcp.get_data_files(self.pkg_file_path1, "", "\.xyz") == self.data_files
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   391
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   392
    def test_data_files_creation_without_drive_without_exclude(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   393
        """ Tests if PKG file parser creates data files list as expected without drive without exclude"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   394
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   395
        assert self.tcp.get_data_files(self.pkg_file_path1, "") == self.data_files
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   396
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   397
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   398
class TestCppParser(mocker.MockerTestCase):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   399
    """Testing CPP parser"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   400
    def __init__(self, methodName="runTest"):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   401
        mocker.MockerTestCase.__init__(self, methodName)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   402
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   403
    def setUp(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   404
        self.bld_path = os.path.normpath(os.path.join(TSRC_DIR, "tsrc", "group"))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   405
        self.bld_path_comp1 = os.path.normpath(os.path.join(TSRC_DIR, "tsrc", "tc1", "group"))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   406
        self.tcp = ats3.parsers.CppParser()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   407
        upper_bld_path = os.path.dirname(self.bld_path)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   408
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   409
        self.dependent_paths_dictionary = {(os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/subtest/if_test/group"))): {'content': {(os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/subtest/if_test/group"))): {'pkg_files': [], 'mmp_files': ['if_test.mmp'], 'harness': 'STIFUNIT', 'type': ''}}},
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   410
                                            (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc2//group"))): {'content': {(os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc2/group"))): {'pkg_files': ['tc2.pkg'], 'mmp_files': ['tc2.mmp'], 'harness': 'EUNIT', 'type': 'executable'}}}, 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   411
                                            (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc3/group"))): {'content': {(os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc3/group"))): {'pkg_files':[], 'mmp_files': ['tc3.mmp'], 'harness': 'EUNIT', 'type': 'executable'}}},
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   412
                                            (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group"))): {'content': {(os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/subtest/group"))): {'pkg_files': [], 'mmp_files': ['sub_test.mmp'], 'harness': 'STIF', 'type': 'executable'}, 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   413
                                                                                                                                (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/dependent_1/group"))): {'pkg_files': [], 'mmp_files': ['dependent_1.mmp', 'onemore.mmp'], 'harness': "", 'type':''}, 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   414
                                                                                                                                (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/dependent_2/group"))): {'pkg_files': [], 'mmp_files': ['dependent_2.mmp'], 'harness': "", 'type': 'dependent'}, 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   415
                                                                                                                                (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group"))): {'pkg_files': ['tc1.pkg'], 'mmp_files': ['tc1.mmp'],'harness': 'STIF', 'type': 'executable'}}}} 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   416
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   417
        self.extended_path_list = [(os.path.normpath(upper_bld_path), upper_bld_path),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   418
                           (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group")), upper_bld_path),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   419
                           (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group/../dependent_1/group")), os.path.normpath(os.path.join(upper_bld_path, "../tc1/group"))),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   420
                           (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group/../dependent_2/group")), os.path.normpath(os.path.join(upper_bld_path, "../tc1/group"))),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   421
                           (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group/../subtest/group")), os.path.normpath(os.path.join(upper_bld_path, "../tc1/group"))),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   422
                           (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group/../subtest/group/../if_test/group")), os.path.normpath(os.path.join(upper_bld_path, "../tc1/group/../subtest/group"))),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   423
                           (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc2/group")), upper_bld_path),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   424
                           (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc3/group")), upper_bld_path),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   425
                           (os.path.normpath(os.path.join(upper_bld_path, "../tsrc/group/group")), upper_bld_path),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   426
                           ]
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   427
        self.path_list = [os.path.normpath(os.path.join(upper_bld_path, "group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   428
                           os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   429
                           os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group/../dependent_1/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   430
                           os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group/../dependent_2/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   431
                           os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group/../subtest/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   432
                           os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc1/group/../subtest/group/../if_test/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   433
                           os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc2/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   434
                           os.path.normpath(os.path.join(upper_bld_path, "../tsrc/tc3/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   435
                           ]
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   436
        self.path_list_without_undefined = [os.path.normpath(upper_bld_path),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   437
                           os.path.normpath(os.path.join(upper_bld_path, "../tc1/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   438
                           os.path.normpath(os.path.join(upper_bld_path, "../tc1/group/../dependent_1/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   439
                           os.path.normpath(os.path.join(upper_bld_path, "../tc1/group/../dependent_2/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   440
                           os.path.normpath(os.path.join(upper_bld_path, "../tc1/group/../subtest/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   441
                           os.path.normpath(os.path.join(upper_bld_path, "../tc2/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   442
                           os.path.normpath(os.path.join(upper_bld_path, "../tc3/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   443
                           ]
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   444
        self.cpp_output = ['# 1 "bld.inf"', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   445
                           '# 1 "../tc1/group/bld.inf" 1', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   446
                           '# 1 "../tc1/group/../dependent_1/group/bld.inf" 1', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   447
                           '# 4 "../tc1/group/bld.inf" 2', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   448
                           '# 1 "../tc1/group/../dependent_2/group/bld.inf" 1', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   449
                           '# 5 "../tc1/group/bld.inf" 2', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   450
                           '# 1 "../tc1/group/../subtest/group/bld.inf" 1', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   451
                           '# 1 "../tc1/group/../subtest/group/../if_test/group/bld.inf" 1', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   452
                           '# 4 "../tc1/group/../subtest/group/bld.inf" 2', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   453
                           '# 6 "../tc1/group/bld.inf" 2', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   454
                           '# 3 "bld.inf" 2', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   455
                           '# 1 "../tc2/group/bld.inf" 1', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   456
                           '# 4 "bld.inf" 2', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   457
                           '# 1 "../tc3/group/bld.inf" 1', 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   458
                           '# 5 "bld.inf" 2']
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   459
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   460
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   461
         
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   462
    def test_pathlist_output(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   463
        """Test get_cpp_output-method using "n" -parameter"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   464
        assert self.path_list.sort() == self.tcp.get_cpp_output(self.bld_path, "n").sort()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   465
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   466
    def test_extended_pathlist_output(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   467
        """Test get_cpp_output-method using "e" -parameter"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   468
        assert self.extended_path_list.sort() == self.tcp.get_cpp_output(self.bld_path, "e").sort()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   469
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   470
    def test_dictionary_pathlist_output(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   471
        """Test get_cpp_output-method using "d" -parameter (dependent paths)"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   472
        output = """# 1 "bld.inf"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   473
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   474
# 1 "../tc1/group/bld.inf" 1
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   475
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   476
# 1 "../tc1/group/../dependent_1/group/bld.inf" 1
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   477
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   478
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   479
dependent_1.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   480
onemore.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   481
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   482
# 2 "../tc1/group/bld.inf" 2
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   483
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   484
# 1 "../tc1/group/../dependent_2/group/bld.inf" 1
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   485
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   486
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   487
dependent_2.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   488
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   489
# 3 "../tc1/group/bld.inf" 2
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   490
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   491
# 1 "../tc1/group/../subtest/group/bld.inf" 1
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   492
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   493
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   494
sub_test.mmp    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   495
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   496
# 1 "../tc1/group/../subtest/group/../if_test/group/bld.inf" 1
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   497
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   498
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   499
if_test.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   500
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   501
# 5 "../tc1/group/../subtest/group/bld.inf" 2
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   502
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   503
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   504
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   505
# 4 "../tc1/group/bld.inf" 2
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   506
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   507
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   508
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   509
tc1.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   510
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   511
PRJ_MMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   512
not_included.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   513
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   514
# 2 "bld.inf" 2
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   515
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   516
# 1 "../tc2/group/bld.inf" 1
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   517
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   518
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   519
tc2.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   520
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   521
# 3 "bld.inf" 2
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   522
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   523
# 1 "../tc3/group/bld.inf" 1
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   524
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   525
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   526
tc3.mmp
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   527
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   528
# 4 "bld.inf" 2
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   529
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   530
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   531
PRJ_TESTMMPFILES
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   532
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   533
            
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   534
"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   535
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   536
        result = self.tcp.create_dependency_dictionary(StringIO.StringIO(output), self.bld_path)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   537
        print "INPUT :", self.dependent_paths_dictionary
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   538
        print "OUTPUT:", result 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   539
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   540
        assert self.dependent_paths_dictionary == result
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   541
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   542
    def test_conditional_cpp_parsing(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   543
        """Test functionality of cpp parser when removing conditionals"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   544
        assert self.path_list_without_undefined.sort() == self.tcp.get_cpp_output(bld_path=self.bld_path, output_parameter="n", imacros=os.path.normpath(os.path.join(TSRC_DIR, "tmp", "macros", "bldcodeline.hrh"))).sort()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   545
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   546
class TestBldFileParser(mocker.MockerTestCase):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   547
    """Testing BldFileParser Class"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   548
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   549
    def __init__(self, methodName="runTest"):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   550
        mocker.MockerTestCase.__init__(self, methodName)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   551
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   552
    def setUp(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   553
        """Setup for BldFile parser"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   554
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   555
        self.bld_path = path.joinpath(TSRC_DIR, "tsrc", "group", "bld.inf").normpath()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   556
        upper_bld_path = self.bld_path.dirname()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   557
        self.tcp = ats3.parsers.BldFileParser()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   558
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   559
        self.test_mmp_files = [
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   560
                               ['tc1.mmp'], 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   561
                               ['dependent_1.mmp', 'onemore.mmp'], 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   562
                               ['dependent_2.mmp'], 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   563
                               ['sub_test.mmp'], 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   564
                               ['if_test.mmp'], 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   565
                               ['tc2.mmp'], 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   566
                               ["tc3.mmp"],
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   567
                               ]
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   568
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   569
        self.path_list = [path.joinpath(upper_bld_path, "../tc1/group").normpath(),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   570
                           path.joinpath(upper_bld_path, "../tc1/group/../dependent_1/group").normpath(),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   571
                           path.joinpath(upper_bld_path, "../tc1/group/../dependent_2/group").normpath(),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   572
                           path.joinpath(upper_bld_path, "../tc1/group/../subtest/group").normpath(),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   573
                           path.joinpath(upper_bld_path, "../tc1/group/../subtest/group/../if_test/group").normpath(),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   574
                           path.joinpath(upper_bld_path, "../tc2/group").normpath(),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   575
                           path.joinpath(upper_bld_path, "../tc3/group").normpath(),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   576
                           ]
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   577
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   578
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   579
    def test_testmmp_files_with_full_path(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   580
        """Test if mmp file is returned with its full path"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   581
        self.mmp_file_path = [path.joinpath(TSRC_DIR, "tsrc", "tc1", "group", "tc1.mmp").normpath()]
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   582
        assert self.tcp.get_test_mmp_files(os.path.normpath(os.path.join(self.path_list[0], "bld.inf"))) == self.mmp_file_path
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   583
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   584
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   585
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   586
    def test_testmmp_files(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   587
        """Tests if test mmp files are included"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   588
        self.lst_test_mmp = []
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   589
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   590
        for p in self.path_list:
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   591
            self.lst_test_mmp.append(self.tcp.get_test_mmp_files(os.path.normpath(os.path.join(p, "bld.inf")), False))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   592
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   593
        assert self.lst_test_mmp == self.test_mmp_files
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   594
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   595
    def test_ignore_comments(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   596
        """ Test if comments are ignored correctly. """
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   597
        for input_, output in [
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   598
            ("abc.mmp /* apuva.mmp */ xyz.mmp", ("abc.mmp xyz.mmp")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   599
            ("abc.mmp /* apuva.mmp */", ("abc.mmp")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   600
            ("/* apuva.mmp */", ""),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   601
            ("  // apuva.mmp", ""),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   602
            ("   apuva.mmp", "apuva.mmp"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   603
            ("xyz.mmp // apuva.mmp", "xyz.mmp"),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   604
            ("abc.mmp /* apuva.mmp */ xyz.mmp //rst.mmp", ("abc.mmp xyz.mmp")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   605
            ]:
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   606
            assert self.tcp.ignore_comments_from_input(input_) == output
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   607
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   608
    def test_broken_path(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   609
        """Tests if 'None' is returned when path is broken"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   610
        upper_bld_path = os.path.dirname(self.bld_path)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   611
        assert self.tcp.get_test_mmp_files(os.path.normpath(os.path.join(upper_bld_path, "../tc99/group"))) == None
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   612
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   613
    def test_empty_parameter(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   614
        """Tests if 'None' is returned when bld file path is empty"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   615
        upper_bld_path = os.path.dirname(self.bld_path)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   616
        assert self.tcp.get_test_mmp_files("") == None
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   617
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   618
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   619
class TestMmpFileParser(mocker.MockerTestCase):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   620
    """Testing MmpFileParser Class"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   621
    def __init__(self, methodName="runTest"):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   622
        mocker.MockerTestCase.__init__(self, methodName)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   623
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   624
    def setUp(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   625
        self.bld_path = os.path.normpath(os.path.join(TSRC_DIR, "tsrc", "group", "bld.inf"))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   626
        upper_bld_path = os.path.dirname(self.bld_path)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   627
        self.tcp = ats3.parsers.MmpFileParser()
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   628
        self.tc1_type = "dll"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   629
        self.tc1_name = "tc1.dll"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   630
        self.tc1_dll_type = "executable"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   631
        self.tc1_harness = "STIF"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   632
        self.tc1_libraries = ['stiftestinterface.lib', 'user.lib']
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   633
        self.tc1_all = (self.tc1_name, self.tc1_type, self.tc1_libraries, self.tc1_harness)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   634
        self.tc1_no_harness = (self.tc1_name, self.tc1_type, self.tc1_libraries)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   635
        self.tc1_name_type = (self.tc1_name, self.tc1_type) 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   636
        self.tc1_iftest_harness = "STIFUNIT"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   637
        self.tc1_iftest_name = "tc1_if.dll"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   638
        self.tc1_iftest_type = "dll"
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   639
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   640
        self.test_mmp_files = [['tc1.mmp'], ['dependent_1.mmp', 'onemore.mmp'], ['dependent_2.mmp'], ['sub_test.mmp'], ['if_test.mmp'], 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   641
                               ['tc2.mmp'], ["tc3.mmp"]]
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   642
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   643
        self.path_list = [os.path.normpath(os.path.join(upper_bld_path, "../tc1/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   644
                           os.path.normpath(os.path.join(upper_bld_path, "../tc1/group/../dependent_1/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   645
                           os.path.normpath(os.path.join(upper_bld_path, "../tc1/group/../dependent_2/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   646
                           os.path.normpath(os.path.join(upper_bld_path, "../tc1/group/../subtest/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   647
                           os.path.normpath(os.path.join(upper_bld_path, "../tc1/group/../subtest/group/../if_test/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   648
                           os.path.normpath(os.path.join(upper_bld_path, "../tc2/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   649
                           os.path.normpath(os.path.join(upper_bld_path, "../tc3/group")),
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   650
                           ]
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   651
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   652
    def test_get_dlltype(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   653
        """Test if get_filetype returns right type for given mmp"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   654
        assert self.tc1_dll_type == self.tcp.get_dll_type(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp'))) 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   655
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   656
    def test_get_target_filename(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   657
        """Test if get_filename returns right name for dll for given mmp"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   658
        assert self.tc1_name == self.tcp.get_target_filename(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp')))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   659
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   660
    def test_get_libraries(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   661
        """Test if get_harness returns right harness for given mmp"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   662
        assert self.tc1_libraries == self.tcp.get_libraries(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp')))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   663
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   664
    def test_get_harness(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   665
        """Test if get_harness returns right harness for given mmp"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   666
        assert self.tc1_harness == self.tcp.get_harness(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp')))
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   667
    
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   668
    def test_read_information_method(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   669
        """Test if read_information_from_mmp returns wanted output for given parameter and mmp-file"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   670
        assert self.tc1_all == self.tcp.read_information_from_mmp(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp')), 0)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   671
        assert self.tc1_no_harness == self.tcp.read_information_from_mmp(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp')), 1)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   672
        assert self.tc1_name_type == self.tcp.read_information_from_mmp(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp')), 2)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   673
        assert self.tc1_name == self.tcp.read_information_from_mmp(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp')), 3)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   674
        assert self.tc1_type == self.tcp.read_information_from_mmp(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp')), 4) 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   675
        assert self.tc1_libraries == self.tcp.read_information_from_mmp(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp')), 5)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   676
        assert self.tc1_harness == self.tcp.read_information_from_mmp(os.path.normpath(os.path.join(self.path_list[0], 'tc1.mmp')), 6)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   677
        assert self.tc1_iftest_name == self.tcp.read_information_from_mmp(os.path.normpath(os.path.join(self.path_list[4], 'if_test.mmp')), 3)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   678
        assert self.tc1_iftest_type == self.tcp.read_information_from_mmp(os.path.normpath(os.path.join(self.path_list[4], 'if_test.mmp')), 4) 
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   679
        assert self.tc1_iftest_harness == self.tcp.read_information_from_mmp(os.path.normpath(os.path.join(self.path_list[4], 'if_test.mmp')), 6)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   680
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   681
class TestParsers(mocker.MockerTestCase):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   682
    """Testing Parsers functionality"""
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   683
    def __init__(self, methodName="runTest"):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   684
        mocker.MockerTestCase.__init__(self, methodName)
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   685
        
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   686
    def setUp(self):
d8ac696cc51f helium_7.0-r14027
wbernard
parents:
diff changeset
   687
        pass