mozilla

Compare Revisions

Firefox OS reftests

Change Revisions

Revision 454795:

Revision 454795 by bjacob on

Revision 454859:

Revision 454859 by bjacob on

Title:
Firefox OS reftests
Firefox OS reftests
Slug:
Mozilla/Firefox_OS/Platform/Testing/Reftests
Mozilla/Firefox_OS/Platform/Testing/Reftests
Tags:
"Guide", "Firefox OS", "Automated testing", "B2G", "Mobile", "Testing"
"Guide", "Firefox OS", "Automated testing", "B2G", "Mobile", "Testing"
Content:

Revision 454795
Revision 454859
nn20      The B2G config that you will be using (what you pass to ./c
 >onfig.sh) will probably be 'emulator' as that is what reftests ar
 >e typically run on. Before building B2G for the 'emulator' config
 >, pay special attention to the <a href="/en-US/docs/Mozilla/Firef
 >ox_OS/Firefox_OS_build_prerequisites#Emulator_build_issues" title
 >="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#E
 >mulator_build_issues">Emulator build issues</a> section in the <a
 > href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisi
 >tes" title="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prere
 >quisites">Firefox OS build prerequisites</a> page.
21    </p>
22    <p>
n61python runreftestb2g.py --b2gpath $B2G_HOME --xre-path /path/to/dn64python runreftestb2g.py --b2gpath $B2G_HOME --xre-path /path/to/d
>ir/containing/desktop/xpcshell --emulator arm --emulator-res 800x>ir/containing/desktop/xpcshell --emulator arm --emulator-res 800x
>1000 --ignore-window-size &lt;RELATIVE!!!/path/to/reftest.list&gt>1000 --ignore-window-size <code>relative/path/from/B2G/objdir-gec
>;>ko/to/reftest.list</code>
nn66    <p>
67      In fact, you will probably have to set your LD_LIBRARY_PATH
 > or DYLD_LIBRARY_PATH appropriately before this actually works: s
 >ee below. Indeed, this command will try to run xpcshell from the 
 >current directory, and it may fail to find required shared librar
 >ies. This is explained below.
68    </p>
n70python runreftestb2g.py --b2gpath $B2G_HOME --xre-path /path/to/dn76python runreftestb2g.py --b2gpath $B2G_HOME --xre-path /path/to/d
>ir/containing/desktop/xpcshell --ignore-window-size &lt;RELATIVE!>ir/containing/desktop/xpcshell --ignore-window-size <code>relativ
>!!/path/to/reftest.list&gt;>e/path/from/B2G/objdir-gecko/to/reftest.list</code>
n79      Non-default optionsn85      Troubleshooting
86    </h3>
87    <h4>
88      I can't build the emulator!
89    </h4>
90    <p>
91      If you have trouble building B2G in the 'emulator' config, 
 >check out the <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_
 >build_prerequisites#Emulator_build_issues" title="/en-US/docs/Moz
 >illa/Firefox_OS/Firefox_OS_build_prerequisites#Emulator_build_iss
 >ues">Emulator build issues</a> section in the <a href="/en-US/doc
 >s/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites" title="/en-U
 >S/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">Firefox
 > OS build prerequisites</a> page.
92    </p>
93    <h4>
94      Check that your B2G build/emulator works and that ADB can c
 >onnect to it
95    </h4>
96    <p>
97      First check that your B2G build runs normally. If this is a
 >n emulator build, then ./run-emulator.sh should work: it should s
 >tart up the emulator and boot B2G inside it. If it doesn't, get t
 >he log from 'adb logcat' and ask for help. If ADB fails to connec
 >t to the running emulator, make sure that you have no Android/B2G
 > device connected, and try passing -e to tell adb to focus on the
 > emulator:
98    </p>
99    <pre>
100adb logcat -e
101</pre>
102    <p>
103      Once you have verified that your B2G build/emulator works n
 >ormally, and that ADB can connect to it, the next step is to veri
 >fy that your xpcshell desktop executable runs normally. If you bu
 >ilt B2G for a real device and ADB can't connect to it, check out 
 ><a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Connecting_a_Fi
 >refox_OS_device_to_the_desktop" title="/en-US/docs/Mozilla/Firefo
 >x_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_desktop">Con
 >necting a Firefox OS device to the desktop</a>.
104    </p>
105    <h4>
106      Check that you can run your desktop xpcshell executable
107    </h4>
108    <p>
109      The <code>python runreftestb2g.py</code> command line above
 > will try to run xpcshell on your desktop with the path specified
 > by the <code>--xre-path</code> argument. Check that running xpcs
 >hell from the current directory with this relative path, actually
 > works.
110    </p>
111    <p>
112      For example, suppose that your command line contains
113    </p>
114    <pre>
115--xre-path /hack/mozilla-central/objdir/dist/bin
116</pre>
117    <p>
118      Then try running this from the same directory as you want t
 >o run <code>python runreftestb2g.py:</code>
119    </p>
120    <pre>
121<code>$ /hack/mozilla-central/objdir/dist/bin/xpcshell</code>
122</pre>
123    <p>
124      This should land you in a special shell looking like this:
125    </p>
126    <pre>
127js&gt;
128</pre>
129    <p>
130      If this fails with an error message complaining about the i
 >mpossibility to find or load certain shared libraries, like this,
131    </p>
132    <pre>
133/hack/mozilla-central/objdir/dist/bin/xpcshell: error while loadi
 >ng shared libraries: libxul.so: cannot open shared object file: N
 >o such file or directory
134</pre>
135    <p>
136      then you need to set the right environment variable so that
 > it looks for these libraries in the same directory. On Linux, yo
 >u would set <code>LD_LIBRARY_PATH</code> to the same directory as
 > you want to pass as <code>--xre-path</code>. For example, this s
 >hould work:
137    </p>
138    <pre>
139LD_LIBRARY_PATH=<code>/hack/mozilla-central/objdir/dist/bin <code
 >>/hack/mozilla-central/objdir/dist/bin/xpcshell</code></code>
140</pre>
141    <p>
142      On Mac OSX, the environment variable to set is <code>DYLD_L
 >IBRARY_PATH</code>.
143    </p>
144    <h4>
145      Check that reftest can find httpd.js
146    </h4>
147    <p>
148      If reftest still fails to run, returning early with some er
 >ror, the next most likely cause of trouble is it failing to find 
 >certain files that it needs to load.
149    </p>
150    <p>
151      The first such file that it could fail to find, is <code>ht
 >tpd.js</code>. Typically, the reason why it would not find it is 
 >that you accidentally built xpcshell with <code>--disable-tests</
 >code>.
152    </p>
153    <p>
154      So make sure that the path you pass to <code>--xre-path</co
 >de> does contain a <code>httpd.js</code> file under the <code>com
 >ponents</code> subdirectory.
155    </p>
156    <p>
157      This is good:
158    </p>
159    <pre>
160$ find /hack/mozilla-central/objdir/dist/bin/ -name httpd.js
161/hack/mozilla-central/objdir/dist/bin/components/httpd.js
162/hack/mozilla-central/objdir/dist/bin/modules/commonjs/sdk/test/h
 >ttpd.js
163</pre>
164    <p>
165      This is bad (was caused by <code>--disable-tests</code>):
166    </p>
167    <pre>
168$ find /hack/mozilla-central/objdir/dist/bin/ -name httpd.js
169/hack/mozilla-central/objdir/dist/bin/modules/commonjs/sdk/test/h
 >ttpd.js
170</pre>
171    <h4>
172      Check that you didn't forget to make package-tests
173    </h4>
174    <p>
175      Forgetting the <code>make package-tests</code> step describ
 >ed above would certainly explain that nothing works ;-)
176    </p>
177    <h4>
178      Check that you passed a correct relative path to the reftes
 >t.list
179    </h4>
180    <p>
181      The final argumant in the command line running reftest is t
 >he <code>relative/path/from/B2G/objdir-gecko/to/reftest.list</cod
 >e>. This must be a relative path from the <code>B2G/objdir-gecko<
 >/code> directory to a <code>reftest.list</code> file under it. So
 > check that a <code>reftest.list</code> file is actually present 
 >there! If it isn't, compare your command line to the sample comma
 >nd line below, and/or check that you didn't forget make <code>pac
 >kage-tests</code> as explained above.
182    </p>
183    <h4>
184      Sample command line
185    </h4>
186    <pre>
187$ LD_LIBRARY_PATH=/hack/mozilla-central/objdir/dist/bin python ru
 >nreftestb2g.py --b2gpath /hack/b2g/B2G/ --xre-path /hack/mozilla-
 >central/objdir/dist/bin  --ignore-window-size --emulator arm --em
 >ulator-res 800x1000 tests/layout/reftests/css-gradients/reftest.l
 >ist
188</pre>
189    <p>
190      Here, we are running only the <code>css-gradients</code> di
 >rectory of reftests.
191    </p>
192    <h3>
193      Running reftest with non-default options
t89    </p>t
90    <h3>
91      Troubleshooting
92    </h3>
93    <p>
94      &nbsp;

Back to History