krestenkrab/triq — pull request #34 by MirkoBonadei (2014-11-22 15:53:11+00:00)
Title: Vagrant dev environment for Triq

Since we are doing continuous integration on more than one Erlang version and there are issues that seems to happen on specific versions (for example the issue #33), here is a development environment for Triq which is able to support fast erlang version changes thanks to [Kerl](https://github.com/yrashk/kerl).

The set-up is really easy an it is up to the developer to log into the VM and use kerl to install a specific Erlang version, (linking Triq in the include directory of the choosen version).

Example:

```shell
vagrant@vagrant-ubuntu-trusty-64:~$ kerl list releases
R10B-0 R10B-10 R10B-1a R10B-2 R10B-3 R10B-4 R10B-5 R10B-6 R10B-7 R10B-8 R10B-9 R11B-0 R11B-1 R11B-2 R11B-3 R11B-4 R11B-5 R12B-0 R12B-1 R12B-2 R12B-3 R12B-4 R12B-5 R13A R13B01 R13B02-1 R13B02 R13B03 R13B04 R13B R14A R14B01 R14B02 R14B03 R14B04 R14B R14B_erts-5.8.1.1 R15B01 R15B02 R15B02_with_MSVCR100_installer_fix R15B03-1 R15B03 R15B R16A_RELEASE_CANDIDATE R16B01 R16B02 R16B03-1 R16B03 R16B 17.0-rc1 17.0-rc2 17.0 17.1 17.3
Run "/usr/bin/kerl update releases" to update this list from erlang.org
vagrant@vagrant-ubuntu-trusty-64:~$ kerl build R16B03 r16b03
...
vagrant@vagrant-ubuntu-trusty-64:~$ mkdir ~/r16b03
vagrant@vagrant-ubuntu-trusty-64:~$ kerl install r16b03 ~/r16b03
vagrant@vagrant-ubuntu-trusty-64:~$ kerl list installations
r16b03 /home/vagrant/r16b03
vagrant@vagrant-ubuntu-trusty-64:~$ . ~/r16b03/activate
vagrant@vagrant-ubuntu-trusty-64:~$ ln -s /vagrant ~/r16b03/lib/triq
vagrant@vagrant-ubuntu-trusty-64:/vagrant$ ./rebar compile qc
==> vagrant (compile)
==> vagrant (qc)
NOTICE: Using experimental 'qc' command
Testing lock_fsm:prop_lock_fsm/0
....................................................................................................
Ran 100 tests
Testing triq_unicode_tests:prop_unicode_char/0
....................................................................................................
Ran 100 tests
Testing triq_unicode_tests:prop_unicode_binary/0
....................................................................................................
Ran 100 tests
Testing triq_unicode_tests:prop_sized_unicode_binary/0
....................................................................................................
Ran 100 tests
Testing triq_unicode_tests:prop_unicode_string/0
....................................................................................................
Ran 100 tests
Testing triq_unicode_tests:prop_unicode_characters/0
....................................................................................................
Ran 100 tests
Testing triq_unicode_tests:prop_unicode_external_characters/0
....................................................................................................
Ran 100 tests
Testing triq_tests:prop_pos_integer/0
....................................................................................................
Ran 100 tests
Testing triq_tests:prop_non_neg_integer/0
....................................................................................................
Ran 100 tests
Testing triq_tests:prop_append/0
....................................................................................................
Ran 100 tests
Testing triq_tests:prop_binop/0
....................................................................................................
Ran 100 tests
Testing triq_tests:prop_timeout/0
...Failed with: {timeout,100}

Ran 1 tests
Testing triq_tests:prop_sized/0
....................................................................................................
Ran 100 tests
Testing triq_tests:prop_simple1/0
....................................................................................................
Ran 100 tests
Testing triq_tests:prop_simple2/0
....................................................................................................
Ran 100 tests
Testing triq_tests:prop_simple3/0
................................................x.........................................x.........
Ran 98 tests
Testing triq_tests:prop_suchthat/0
....................................................................................................
Ran 100 tests
Testing pdict_statem:prop_pdict_statem/0
....................................................................................................
Ran 100 tests
```

So, change the version of Erlang is only a matter of `kerl_deactivate` and `. `.
More documentation about kerl is available [here](https://github.com/yrashk/kerl).

@krestenkrab I tried lots of runs on the R16B03 but I am not able to reproduce the issue. I will come back on the issue #33 after I have finished the task about the seed injection.