2 \page inside_autotests Automatic Testing Infrastructure
4 \section xps_dev_guide_pipol How to run test in pipol?
6 In order to use PIPOL you have to create your account here: http://pipol.inria.fr/
8 \subsection inside_autotests_dev_guide_pipol_general What is PIPOL?
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.
14 \subsection inside_autotests_dev_guide_pipol_frontend From PIPOL frontend
16 You first need to be connected into pipol ssh.
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 ***************************************************************************
30 Then you can see pipol images availables for deployment
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
46 amd64-linux-centos-5.dd.gz
47 amd64-linux-debian-etch.dd.gz
48 amd64-linux-debian-lenny.dd.gz
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
67 You can also see available architectures on host name:
69 navarro@pipol:~$ pipol-sub sa
70 =================================================================
71 Availables architectures:
72 =================================================================
75 :i386_2010:amd64_2010:
77 :i386_2010:amd64_2010:
79 :i386_2010:amd64_2010:
114 When you have choose your image and host (not necessary) you deploy with command line:
116 pipol-sub esn \<image name\> \<host-name\> \<deployment-time\>
118 user@pipol:~$pipol-sub esn amd64_2010-linux-ubuntu-maverick.dd.gz pipol20 02:00
119 user@pipol:~$ssh pipol20
122 You can now make all your tests.
124 \subsection inside_autotests_dev_guide_pipol_home From a computer
126 You have to renseign to simgrid configuration your pipol login.
128 $ cmake -Dpipol_user=user .
131 Then you have two kind of command:
132 \li make \<image-name\>
134 $ make amd64_2010-linux-ubuntu-maverick
136 This command copy your local simgrid directory to pipol and execute a configure, make and ctest.
138 \li make \<image_name\>_experimental
140 $ make amd64_2010-linux-ubuntu-maverick_experimental
142 Same as previous but report into cdash
144 You can also see all available images from pipol
146 $ make pipol_test_list_images
149 \section inside_autotests_dev_guide_pipol_nightly How to use nightly builds?
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.
154 It will copy those files:
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
167 \section inside_autotests_dev_guide_cdash How to report tests in cdash?
169 Reporting experiment in cdash is very easy because it is done by ctest.
171 The easier way is to execute command line "ctest -D Experiemntal" in build directory. More option is available by ctest:
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)
180 ctest -D Nightly(Start|Update|Configure|Build)
181 ctest -D Nightly(Test|Coverage|MemCheck|Submit)
182 ctest -D NightlyMemoryCheck
185 If you want to have a code coverage, please add option on simgrid.
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
196 \section inside_autotests_perf Infrastructure of the SimGrid Performance Regresion tests
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>.
203 \subsection inside_autotests_dev_guide_g5k_campaign How to execute g5k campaign?
205 Quick steps deployment for rennes:
207 \li 1/ Create a G5K account
209 \li 2/ SSH to a frontend (must be rennes, nancy or toulouse for git protocol)
211 \li 3/ Install g5k-campaign
213 $ gem install g5k-campaign --source http://g5k-campaign.gforge.inria.fr/pkg -p http://proxy:3128 --no-ri --no-rdoc --user-install
216 \li 4/ Configure the API
219 $ echo 'base_uri: https://api.grid5000.fr/stable/grid5000' > ~/.restfully/api.grid5000.fr.yml
220 $ chmod 0600 ~/.restfully/api.grid5000.fr.yml
223 \li 5/ Git clone the SimGrid Scalability project
225 $ git clone git@github.com:mquinson/simgrid-scalability-XPs.git
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:
232 $ git remote add g5k git://scm.gforge.inria.fr/simgrid/simgrid-scalability-XPs.git
233 $ git pull g5k master
236 \li 6/ Copy the run script into your home
238 $ cp simgrid-scalability-XPs/script-sh/run-g5k-scalab.sh ~/
241 \li 7/ Create the result log directory (must be ~/log/)
246 \li 8/ Execute the g5k campaign on a revision "rev"
248 $ sh run-g5k-scalab.sh "rev"
251 You can also have more parameters
253 \li 1/ -> 5/ Same as before
255 \li 6/ Open simgrid-scalability-XPs
257 \li 7/ Execute SGXP.pl to see parameters
259 $ perl SGXP.pl --help
262 \li 8/ Execute SGXP.pl with your parameters like
264 $ ./SGXP.pl --site=nancy --cluster=graphene --test=chord,goal --rev="09bbc8de,3ca7b9a13"
267 \subsection inside_autotests_dev_guide_g5k_log How to analyze logs?
269 To analyze log from g5k-campaign you must install R tool.
271 \li 0/ You can copy logs from g5k to your computer (recommanded)
275 \li 2/ Execute the perl analyzer for goal log
277 $ ~/simgrid-scalability-XPs/libperl/analyzer.pl goal.log.* > goal.csv
280 \li 3/ Execute the R analyer for goal log
282 $ ~/simgrid-scalability-XPs/script-R/goal.R goal.csv output.goal.pdf
285 Example of generated pdf <a href="./output.goal.pdf">here</a>.