Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Removed broken reference from FAQ
[simgrid.git] / doc / doxygen / inside_autotests.doc
1 /*! 
2 \page inside_autotests Automatic Testing Infrastructure
3
4 \section xps_dev_guide_pipol How to run test in pipol?
5
6 In order to use PIPOL you have to create your account here: http://pipol.inria.fr/
7
8 \subsection inside_autotests_dev_guide_pipol_general What is PIPOL?
9
10 The PIPOL platform is a porting, testing and compilation cluster. It hosts several hardware and software
11 architectures to perform its work. An user can reserve a resource (a specific hardware, an operating system...)
12 to be used interactively or automatically (with a "Nightly Builds" system) for software testing.
13
14 \subsection inside_autotests_dev_guide_pipol_frontend From PIPOL frontend
15
16 You first need to be connected into pipol ssh.
17 \verbatim
18 user@caraja:~$ ssh pipol.inria.fr
19 Linux pipol-server 2.6.26-2-amd64 #1 SMP Thu Nov 5 02:23:12 UTC 2009 x86_64
20 ***************************************************************************
21 *           You are just logged-on the PIPOL platform server              *
22 *   You can find some documentation about porting works on the platform   *
23 *         on the PIPOL's web site: http://pipol.inria.fr/docs/            *
24 *   To report bugs you can write to: pipol-sysadm@lists.gforge.inria.fr   *
25 ***************************************************************************
26
27
28 user@pipol:~$
29 \endverbatim
30 Then you can see pipol images availables for deployment
31
32 \verbatim
33 user@pipol:~$ pipol-sub si
34     amd64_2010-linux-centos-5.dd.gz
35     amd64_2010-linux-debian-squeeze.dd.gz
36     amd64_2010-linux-debian-testing.dd.gz
37     amd64_2010-linux-fedora-core13.dd.gz
38     amd64_2010-linux-fedora-core14.dd.gz
39     amd64_2010-linux-fedora-core16.dd.gz
40     amd64_2010-linux-ubuntu-lucid.dd.gz
41     amd64_2010-linux-ubuntu-maverick.dd.gz
42     amd64_2010-linux-ubuntu-natty.dd.gz
43     amd64_kvm-linux-debian-lenny
44     amd64_kvm-linux-debian-testing
45     amd64_kvm-windows-7
46     amd64-linux-centos-5.dd.gz
47     amd64-linux-debian-etch.dd.gz
48     amd64-linux-debian-lenny.dd.gz
49 ....
50     i386-linux-ubuntu-lucid.dd.gz
51     i386-linux-ubuntu-maverick.dd.gz
52     i386-linux-ubuntu-natty.dd.gz
53     i386-linux-ubuntu-precise.dd.gz
54     i386_mac-mac-osx-server-leopard.dd.gz
55     i386-unix-freebsd-7.dd.gz
56     i386-unix-opensolaris-10.dd.gz
57     i386-unix-opensolaris-11.dd.gz
58     i386-unix-solaris-10.dd.gz
59     ia64-linux-debian-lenny.dd
60     ia64-linux-debian-squeeze.dd
61     ia64-linux-fedora-core9.dd
62     ia64-linux-redhatEL-5.0.dd
63     x86_64_mac-mac-osx-server-snow-leopard.dd.gz
64     x86_mac-mac-osx-server-snow-leopard.dd.gz
65 \endverbatim
66
67 You can also see available architectures on host name:
68 \verbatim
69 navarro@pipol:~$ pipol-sub sa    
70 =================================================================
71                     Availables architectures:         
72 =================================================================
73
74 pipol18
75 :i386_2010:amd64_2010:
76 pipol19
77 :i386_2010:amd64_2010:
78 pipol20
79 :i386_2010:amd64_2010:
80 pipol1
81 :i386:amd64:
82 pipol2
83 :i386:amd64:
84 pipol3
85 :i386:amd64:
86 pipol4
87 :i386:amd64:
88 pipol5
89 :i386:amd64:
90 pipol6
91 :i386:amd64:
92 pipol7
93 :i386:amd64:
94 pipol8
95 :i386:amd64:
96 pipol14
97 :i386_kvm:amd64_kvm:
98 pipol15
99 :i386_kvm:amd64_kvm:
100 pipol16
101 :i386_kvm:amd64_kvm:
102 pipol17
103 :i386_kvm:amd64_kvm:
104 pipol11
105 :i386_mac:x86_mac:
106 pipol10
107 :ia64:
108 pipol9
109 :ia64:
110 pipol12
111 :x86_64_mac:
112 \endverbatim
113
114 When you have choose your image and host (not necessary) you deploy with command line:
115
116 pipol-sub esn \<image name\> \<host-name\> \<deployment-time\>
117 \verbatim
118 user@pipol:~$pipol-sub esn amd64_2010-linux-ubuntu-maverick.dd.gz pipol20 02:00
119 user@pipol:~$ssh pipol20
120 \endverbatim
121
122 You can now make all your tests.
123
124 \subsection inside_autotests_dev_guide_pipol_home From a computer
125
126 You have to renseign to simgrid configuration your pipol login.
127 \verbatim
128 $ cmake -Dpipol_user=user .
129 \endverbatim
130
131 Then you have two kind of command:
132 \li make \<image-name\>
133 \verbatim
134 $ make amd64_2010-linux-ubuntu-maverick
135 \endverbatim
136 This command copy your local simgrid directory to pipol and execute a configure, make and ctest.
137
138 \li make \<image_name\>_experimental
139 \verbatim
140 $ make amd64_2010-linux-ubuntu-maverick_experimental
141 \endverbatim
142 Same as previous but report into cdash
143
144 You can also see all available images from pipol
145 \verbatim
146 $ make pipol_test_list_images
147 \endverbatim
148
149 \section inside_autotests_dev_guide_pipol_nightly How to use nightly builds?
150
151 All the pipol scripts are located in \"<project/directory>/buildtools/pipol/\".
152 If you modify them you have to update the pipol home directory by using this command: make sync-pipol.
153
154 It will copy those files:
155 \verbatim
156 simgrid@caraja:~/workspace/simgrid/build$ make sync-pipol 
157 Update pipol script for user: simgrid
158 rc.debian                                       100% 1338     1.3KB/s   00:00    
159 rc.fedora                                       100% 1433     1.4KB/s   00:00    
160 rc.mac                                          100% 1129     1.1KB/s   00:00    
161 rc.ubuntu                                       100% 1875     1.8KB/s   00:00    
162 rc.windows                                      100%  494     0.5KB/s   00:00    
163 Nightly_simgrid.sh                              100% 4004     3.9KB/s   00:00    
164 Experimental_bindings.sh                        100% 1794     1.8KB/s   00:00
165 \endverbatim 
166
167 \section inside_autotests_dev_guide_cdash How to report tests in cdash?
168
169 Reporting experiment in cdash is very easy because it is done by ctest.
170
171 The easier way is to execute command line "ctest -D Experiemntal" in build directory. More option is available by ctest:
172 \verbatim
173   ctest -D Continuous
174   ctest -D Continuous(Start|Update|Configure|Build)
175   ctest -D Continuous(Test|Coverage|MemCheck|Submit)
176   ctest -D Experimental
177   ctest -D Experimental(Start|Update|Configure|Build)
178   ctest -D Experimental(Test|Coverage|MemCheck|Submit)
179   ctest -D Nightly
180   ctest -D Nightly(Start|Update|Configure|Build)
181   ctest -D Nightly(Test|Coverage|MemCheck|Submit)
182   ctest -D NightlyMemoryCheck
183 \endverbatim
184
185 If you want to have a code coverage, please add option on simgrid.
186 \verbatim
187 $ cmake -Denable_coverage=ON .
188 $ ctest -D ExperimentalStart
189 $ ctest -D ExperimentalConfigure
190 $ ctest -D ExperimentalBuild
191 $ ctest -D ExperimentalTest
192 $ ctest -D ExperimentalCoverage
193 $ ctest -D ExperimentalSubmit
194 \endverbatim
195
196 \section inside_autotests_perf Infrastructure of the SimGrid Performance Regresion tests
197
198 The goal of these tests is to detect the impact on simulation
199 performance of the commited changes. It is not quite effective right
200 now but at the end, it should be similar to 
201 <a href="http://www.phoromatic.com/resources/long-term-study/">Phoromatic</a>.
202
203 \subsection inside_autotests_dev_guide_g5k_campaign How to execute g5k campaign?
204
205 Quick steps deployment for rennes:
206
207 \li 1/ Create a G5K account
208
209 \li 2/ SSH to a frontend (must be rennes, nancy or toulouse for git protocol)
210
211 \li 3/ Install g5k-campaign
212 \verbatim
213 $ gem install g5k-campaign --source http://g5k-campaign.gforge.inria.fr/pkg -p http://proxy:3128 --no-ri --no-rdoc --user-install
214 \endverbatim  
215   
216 \li 4/ Configure the API
217 \verbatim
218 $  mkdir ~/.restfully
219 $  echo 'base_uri: https://api.grid5000.fr/stable/grid5000' > ~/.restfully/api.grid5000.fr.yml
220 $  chmod 0600 ~/.restfully/api.grid5000.fr.yml
221 \endverbatim
222
223 \li 5/ Git clone the SimGrid Scalability project
224 \verbatim
225 $  git clone git@github.com:mquinson/simgrid-scalability-XPs.git
226 \endverbatim
227 An alternative URL is
228 git://scm.gforge.inria.fr/simgrid/simgrid-scalability-XPs.git, but the
229 repository on github is believed to be more uptodate. You may want to
230 double-check by pulling both:
231 \verbatim
232 $ git remote add g5k git://scm.gforge.inria.fr/simgrid/simgrid-scalability-XPs.git
233 $ git pull g5k master
234 \endverbatim
235
236 \li 6/ Copy the run script into your home
237 \verbatim
238 $  cp simgrid-scalability-XPs/script-sh/run-g5k-scalab.sh ~/
239 \endverbatim
240
241 \li 7/ Create the result log directory (must be ~/log/)
242 \verbatim
243 $  mkdir ~/log
244 \endverbatim
245
246 \li 8/ Execute the g5k campaign on a revision "rev"
247 \verbatim
248 $  sh run-g5k-scalab.sh "rev"
249 \endverbatim
250
251 You can also have more parameters
252
253 \li 1/ -> 5/ Same as before
254
255 \li 6/ Open simgrid-scalability-XPs
256
257 \li 7/ Execute SGXP.pl to see parameters
258 \verbatim
259 $  perl SGXP.pl --help
260 \endverbatim
261
262 \li 8/ Execute SGXP.pl with your parameters like
263 \verbatim
264 $  ./SGXP.pl --site=nancy --cluster=graphene --test=chord,goal --rev="09bbc8de,3ca7b9a13"
265 \endverbatim
266
267 \subsection inside_autotests_dev_guide_g5k_log How to analyze logs?
268
269 To analyze log from g5k-campaign you must install R tool.
270
271 \li 0/ You can copy logs from g5k to your computer (recommanded)
272
273 \li 1/ Open ~/log/
274
275 \li 2/ Execute the perl analyzer for goal log
276 \verbatim
277 $  ~/simgrid-scalability-XPs/libperl/analyzer.pl goal.log.* > goal.csv
278 \endverbatim
279
280 \li 3/ Execute the R analyer for goal log
281 \verbatim
282 $  ~/simgrid-scalability-XPs/script-R/goal.R goal.csv output.goal.pdf
283 \endverbatim
284
285 Example of generated pdf <a href="./output.goal.pdf">here</a>.
286
287 */