Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Building.md « doc - github.com/mozilla/geckodriver.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 18fab16c900337426b01cdba291d357cce7b57a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Building geckodriver
====================

geckodriver is written in [Rust], a systems programming language
from Mozilla.  Crucially, it relies on the [webdriver crate] to
provide the HTTPD and do most of the heavy lifting of marshalling
the WebDriver protocol. geckodriver translates WebDriver [commands],
[responses], and [errors] to the [Marionette protocol], and acts
as a proxy between [WebDriver] and [Marionette].

To build geckodriver:

	% ./mach build testing/geckodriver

If you use artifact builds you may build geckodriver using cargo,
since mach in this case does not have a compile environment:

	% cd testing/geckodriver
	% cargo build
	…
	   Compiling geckodriver v0.21.0 (file:///code/gecko/testing/geckodriver)
	…
	    Finished dev [optimized + debuginfo] target(s) in 7.83s

Because all Rust code in central shares the same cargo workspace,
the binary will be put in the `$(topsrcdir)/target` directory.

You can run your freshly built geckodriver this way:

	% ./mach geckodriver -- --other --flags

See [Testing](Testing.md) for how to run tests.

[Rust]: https://www.rust-lang.org/
[webdriver crate]: https://crates.io/crates/webdriver
[commands]: https://docs.rs/webdriver/newest/webdriver/command/
[responses]: https://docs.rs/webdriver/newest/webdriver/response/
[errors]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html
[Marionette protocol]: /testing/marionette/Protocol.md
[WebDriver]: https://w3c.github.io/webdriver/
[Marionette]: /testing/marionette/index.rst