# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Nokia Corporation - initial contribution.
#
# Contributors:
#
# Description:
# \f32test\loader\dlltree.txt
# Description file for trees of DLLs and EXEs used for loader testing.
# Tree with no data
#
#
Tree0 : Tree1 Tree2
Tree1 : Tree3 Tree4
Tree2 : Tree5 Tree6
Tree3
Tree4
Tree5
Tree6
# Tree with data
DTree0 D : DTree1 DTree2
DTree1 D : DTree3 DTree4
DTree2 D : DTree5 DTree6
DTree3 D
DTree4 D
DTree5 D
DTree6 D
# Tree with some data
PDTree0 : Tree2 DTree2
# Lattice with no data
Lat0 : Lat1 Lat2
Lat1 : Lat3
Lat2 : Lat3
Lat3
# Lattice with data
DLat0 D : DLat1 DLat2
DLat1 D : DLat3
DLat2 D : DLat3
DLat3 D
# Lattice with some data
PDLat0 : PDLat1 Lat2
PDLat1 D : Lat3
# Cycle with no data
Cyc0 : Cyc1
Cyc1 : Cyc2
Cyc2 : Cyc0
# Cycle with data
DCyc0 D : DCyc1
DCyc1 D : DCyc2
DCyc2 D : DCyc0
# Cycle with some data
PDCyc0 : PDCyc1
PDCyc1 D : PDCyc2
PDCyc2 : PDCyc0
# Cycle with spurs, no data
CycS0 : CycS1
CycS1 : CycS2 Lat0
CycS2 : CycS0
# Cycle with spurs, data
DCycS0 D : DCycS1
DCycS1 D : DCycS2 DLat0
DCycS2 D : DCycS0
# Cycle with spurs, some data
PDCycS0 : PDCycS1
PDCycS1 : PDCycS2 PDLat0
PDCycS2 D : PDCycS0
# EXEs
Exe0 X
Exe1 X F
Exe2 X R
Exe3 X R F
Exe4 X D
Exe5 X F D
Exe6 X R D
Exe7 X R F D
# EXE with link to DLL
Exe8 X : PDLat0
Exe9 X F : PDLat0
Exe10 X R : X10Dep0
Exe11 X R F : X11Dep0
Exe12 X : Rom6
X10Dep0 R,Exe10 D
X11Dep0 R,Exe11 D
# ROM XIP DLLs
Rom5 R D : Rom6 Rom3
Rom7 R D
Rom6 R D : Rom7 Rom8
Rom8 R D
Rom0 R
Rom1 R D
Rom2 R D : Rom1
Rom3 R D : Rom1 Rom2
Rom4 R : Rom1
RomCyc0 R D : RomCyc1
RomCyc1 R D : RomCyc2
RomCyc2 R D : RomCyc0
RomCycS0 R : RomCycS1
RomCycS1 R : RomCycS2 Rom3
RomCycS2 R D : RomCycS0
# RAM linking to ROM
RamRom0 : Rom1
RamRom1 : Lx5
RamRom2 : Lx3
RamRom3 : Lx4
# Link to EXE
Lx0 : Exe8
Lx1 : Exe10
Lx2 : Exe11
Lx3 R : Exe10
Lx4 R : Exe11
Lx5 R : Exe7
# ---- Code paging tests ----
# paged binaries must be copied to removable media because the block map API
# does not support paging from ROM.
# bytepair with paged, unpaged subsets
GTreeA I : GBTree1 GBNTree2 GBPTree3
GBTree1 I B
GBNTree2 I B N
GBPTree3 I B P
# uncompressed with paged, unpaged subsets
# GUPNITree4 must be copied to writable media because toolchain should not set both flags
GTreeB I : GUTree1 GUNTree2 GUPTree3
GUTree1 I U
GUNTree2 I U N
GUPTree3 I U P
# deflate compressed with non-empty paged, unpaged subsets
# must copy to writable media because toolchain only supports paging flags with bytepair or uncompressed
GTreeC I : GTree1 GNTree2 GPTree3
GTree1 I
GNTree2 I N
GPTree3 I P
# paged and unpaged together are corrupt if they have to be acted on
GBPNITree B P N I
GUPNITree U P N I
GPNITree P N I
# paged but loaded from nonpageable media
GBPVTree B P V
# mixed paged / unpaged lattice
GLat0 B P I T : DTree1
GLat1 B P I D T : Tree2
GLat2 N T : GLat1 GLat0
GLat3 N T : GLat1 GLat0 GLat2
GLat4 B P I D T : GLat1 GLat2 GLat3
# paged / unpaged executables
GBPExe X B P I T : GLat4
GBPDExe X B P I D T : GLat4
GBPFExe X B P I F T : GLat4
GBPDFExe X B P I D F T : GLat4
GBNExe X B N I T : GLat4
GBNFExe X B N I F T : GLat4
# ---- Data paging tests ----
# just add some data paged executables so loading gets OOM tested
DataPagedExe1 X PD T
DataPagedExe2 X PD D T
!TESTCASES
ExeLoad: Tree0 DTree0 PDTree0 \
Lat0 DLat0 PDLat0 \
Cyc0 DCyc0 PDCyc0 \
CycS0 DCycS0 PDCycS0 \
Rom4 RomCyc0 RomCycS0 \
RamRom1 GTreeA GTreeB \
GTreeC GLat4
DllOOM: Tree0 DTree0 PDTree0 \
Lat0 DLat0 PDLat0 \
Cyc0 DCyc0 PDCyc0 \
CycS0 DCycS0 PDCycS0 \
Rom4 RomCyc0 RomCycS0 \
RamRom1 GTreeA GTreeB \
GTreeC GLat4 GBPVTree
MultLoad: \
Exe0 RomCyc0 Tree0 Tree0 \
Exe2 RomCyc0 Tree0 Tree0 \
Exe3 RomCyc0 Tree0 Tree0 \
Exe3 DCycS0 Tree0 Tree0 \
Exe8 PDCycS0 Tree0 Tree0 \
Exe3 DCycS0 Tree0 Tree0 \
Exe8 DCycS0 Exe8 PDCycS0 \
Exe7 DCycS0 Exe3 DCycS0 \
Exe3 DLat0 Exe8 DCycS0 \
Tree0 Tree0 Exe3 DCycS0 \
Tree0 Tree0 Exe3 DLat0
MultLoadTargetOnly: \
GBPExe GLat2 GBPExe GLat4 \
GBPExe GLat4 GLat3 GLat2