privat/nit — pull request #509 by privat (2014-06-16 17:28:29+00:00)
Title: Enable dummy executions of mnit applications

A dummy execution need a stream of input events and a dummy display that is not connected to a physical screen.

`lib/mnit/mnit_injected_events.nit` gives the injection of pseudo-events read from a file.
It can be used, by mixin-refinement, with any existing mnit programs.

Eg. to have a replay of a game, just compile with `-m` and run with some environment variables
~~~
$ cd examples/shoot
$ ../../bin/nitc -o bin/shoot src/shoot_linux.nit -m ../../lib/mnit/mnit_injected_input.nit
$ MNIT_SRAND=0 MNIT_READ_INPUT=../../tests/shoot_null.inputs bin/shoot
~~~

`lib/mnit/mnit_null.nit` gives a new dummy target-platform with no display.
It must be used instead of `mnit_linux` and `mnit_android`.

Eg. for the same run, but without display ; note that the main module is `shoot.nit` instead of `shoot_linux.nit`
~~~
$ cd examples/shoot
$ ../../bin/nitc -o bin/shoot src/shoot.nit -m ../../lib/mnit/mnit_null.nit
$ MNIT_SRAND=0 MNIT_READ_INPUT=../../tests/shoot_null.inputs bin/shoot
~~~

All this is mainly a proof of concept, and not that useful, except maybe for testing, it is why tests.sh has be extended to control the run of a dummy `shoot` game.