3
|
1 |
HowTo.txt - Copyright 2008 Symbian Software Ltd.
|
|
2 |
|
|
3 |
This document describes how to use this test suite for stress-testing Linux-emulation type systems on Windows.
|
|
4 |
|
|
5 |
Structure of tests
|
|
6 |
==================
|
|
7 |
|
|
8 |
The Linux emulation layer tests are structured as follows:
|
|
9 |
|
|
10 |
LinuxEmulationLayerStressTests\HowTo.txt (this file)
|
|
11 |
LinuxEmulationLayerStressTests\makemakefile.py (described below)
|
|
12 |
LinuxEmulationLayerStressTests\mingw.tar.bz2
|
|
13 |
LinuxEmulationLayerStressTests\msys.tar.bz2
|
|
14 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun01\makefiles_testrun01.zip
|
|
15 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun01\testrig01.bat
|
|
16 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun02\makefiles_testrun02.zip
|
|
17 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun02\testrig02.bat
|
|
18 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun03\makefiles_testrun03.zip
|
|
19 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun03\testrig03.bat
|
|
20 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun04\makefiles_testrun04.zip
|
|
21 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun04\testrig04.bat
|
|
22 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun05\makefiles_testrun05.zip
|
|
23 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun05\testrig05.bat
|
|
24 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun06\makefiles_testrun06.zip
|
|
25 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun06\testrig06.bat
|
|
26 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun07\makefiles_testrun07.zip
|
|
27 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun07\testrig07.bat
|
|
28 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun08\makefiles_testrun08.zip
|
|
29 |
LinuxEmulationLayerStressTests\GeneratedMakefiles\TestRun08\testrig08.bat
|
|
30 |
LinuxEmulationLayerStressTests\src\msys-sed-4.1.5-src.tar.gz
|
|
31 |
|
|
32 |
Each test run has its makefiles preserved in the corresponding zip file (e.g. makefiles_testrun01.zip).
|
|
33 |
|
|
34 |
The testrigNN.bat are very basic batch scripts that do not take any parameters. They are simply there as a
|
|
35 |
bootstrap to
|
|
36 |
|
|
37 |
1) Set the PATH to contain either MSYS's or Cygwin's bin folder (but not both!)
|
|
38 |
2) Set the PATH to contain MinGW's bin folder (for MinGW's make)
|
|
39 |
3) Generate the makefiles in a number of for-loops (optional)
|
|
40 |
4) Run the make over the makefiles in a number of for-loops
|
|
41 |
|
|
42 |
In future, if any of these batch files are re-used, it will be necessary to adjust them so that
|
|
43 |
they set the PATH environment variable correctly to contain the place where MSYS or Cygwin
|
|
44 |
was unzipped. Then decide if you wish to generate further makefiles using the Python script,
|
|
45 |
or if it's just enough to run the existing makefiles.
|
|
46 |
|
|
47 |
For convenience, both MSYS and Cygwin are provided in the files
|
|
48 |
|
|
49 |
LinuxEmulationLayerStressTests\mingw.tar.bz2
|
|
50 |
LinuxEmulationLayerStressTests\msys.tar.bz2
|
|
51 |
|
|
52 |
These are the versions that were tested and were shipped with SBSv2. Simply untar to a convenient
|
|
53 |
location and update the batch files bootstraps to add these to your PATH.
|
|
54 |
|
|
55 |
makemakefile.py
|
|
56 |
===============
|
|
57 |
|
|
58 |
This script, as its name suggests, makes a range of makefiles. Use the command
|
|
59 |
|
|
60 |
python makemakefile.py -h
|
|
61 |
|
|
62 |
to see a list of available options. At time of writing, the usage help is as follows:
|
|
63 |
|
|
64 |
Usage: makemakefile.py [options]
|
|
65 |
|
|
66 |
Options:
|
|
67 |
-h, --help show this help message and exit
|
|
68 |
-t TARGETS, --targets=TARGETS
|
|
69 |
Number of main (or "level1") targets to generate -
|
|
70 |
these are the targets that actually perform some
|
|
71 |
simulated actions.
|
|
72 |
-d DIVISIONS, --divisions=DIVISIONS
|
|
73 |
The number of "level2" targets. Each level2 target
|
|
74 |
will depend on t/d level1 targets. This makes makefile
|
|
75 |
generation more logical.
|
|
76 |
-m MAKEFILE, --makefile=MAKEFILE
|
|
77 |
Name of makefile to generate. If blank, makefile is
|
|
78 |
printed to STDOUT.
|
|
79 |
-c CASE, --case=CASE Type of commands to use in each rule. Default is
|
|
80 |
"all"; other options are "env", "echo", "cp" and "sed"
|
|
81 |
|
|
82 |
|
|
83 |
|
|
84 |
The -t option specifies total the number of makefile targets. This should be a positive integer.
|
|
85 |
|
|
86 |
The -d option specifies total the number of subdivisions of the makefile targets into level1/level2 targets.
|
|
87 |
This should be a positive integer.
|
|
88 |
|
|
89 |
The makefiles are structured in such as way, so that the dependency tree has three levels. The aim is to
|
|
90 |
introduce some complexity into the makefile's dependency tree rather than just having a "flat" dependency tree.
|
|
91 |
The top level in the dependency tree contains only one target called "main"; below this are the level2 targets
|
|
92 |
which are all prerequisites of main; lastly are the level1 targets which split into groups and each group is
|
|
93 |
the set of prerequisites for a level2 target.
|
|
94 |
|
|
95 |
The size of these groups of level1 targets is <= DIVISIONS depending if DIVISIONS divides into TARGETS exactly or not.
|
|
96 |
|