README.md
1WebGL Conformance Test Harness
2==============================
3
4Simple test harness to automate execution of WebGL conformance tests across
5several browsers.
6
7Installation
8------------
9
10Make sure you have a reasonably new [Node.JS installed](http://nodejs.org/),
11then run:
12
13 cd <WebGL>/other/test-runner
14 npm install
15
16Once installed you may need to adjust the paths in
17`test-runner/config.json` to ensure they are correct for your system. The
18Linux paths in particular are especially likely to need adjustment. On
19Windows the paths will need to be adjusted if you have done a per-user
20installation of Chrome, rather than a machine-wide installation. The test
21runner tries the paths in the list one by one until it finds one that exists.
22
23Running
24-------
25
26 cd <WebGL>/other
27 node ./test-runner
28
29Run with `--help` to see command line options.
30
31Currently supported browser configurations:
32
33 Chrome
34 ChromeCanary
35 Chromium
36 Firefox
37 Safari
38
39NOTE: The Safari configuration is able to execute the tests, but has
40several known issues, including potentially interfering with an
41already-running instance of the browser. Make sure you quit Safari before
42running this test harness against Safari.
43
44The configurations above use the browser's default mechanism for rendering
45WebGL. Both Firefox and Chrome by default use the ANGLE library on Windows, and
46OpenGL on Mac and Linux platforms. You can force the use of OpenGL on Windows
47using the following browser configurations:
48
49 ChromeWinOpenGL
50 ChromeCanaryWinOpenGL
51 ChromiumWinOpenGL
52 FirefoxWinOpenGL
53
54The test runner supports following browser configurations on Android:
55
56 Chrome
57
58NOTE: The platform argument needs to be explicitly passed as 'remote-android'
59to run tests remotely on android. To do this, you need the following:
60
61 - Rooted android device connected to linux host machine
62 - Chrome application installed on connected device
63 - Android SDK installed on your host linux machine
64 - 'adb' in your system path
65 - The 'ant' build system installed in case you want to modify the prebuilt
66 port forwarder apk, see ./android/PortForwarderService/README for more
67 details.
68
69The Android test runner has some limitations: it does not detect browser
70crashes, and the Chrome configuration overwrites command line parameters set for
71Chrome in /data/local/chrome-command-line.
72
73Example invocations:
74
75 node ./test-runner
76 node ./test-runner --version 1.0.1 --browser Chrome
77 node ./test-runner --browser Chrome --platform remote-android
78
79Results
80-------
81
82Returns exit code 0 if all tests passed in all browser configurations.
83Returns non-zero exit code otherwise.
84
85The exit code can be tested via the $? variable in most Unix shells, and
86via the %errorlevel% pseudo environment variable in the Windows Command
87Prompt. See:
88http://stackoverflow.com/questions/334879/how-do-i-get-the-application-exit-code-from-a-windows-command-line
89
90Test results are output as plain text files into
91`<WebGL>/other/test-runner/output`
92