## Test Suite ### Requirements and One-Time Setup The Helix Installer Test Suite uses [Vagrant](https://www.vagrantup.com), a command-line virtualization interface and [Virtual Box](https://www.virtualbox.org) virtualization technology. The test suite can be used for standalone demonstrations of the Helix Installer or the SDP. To test, the Vagrant must be installed with the following plugins: * vagrant-vbguest * vagrant-hostmanager * vagrant-cachier Install with: ``` vagrant plugin install vagrant-cachier vagrant-hostmanager vagrant-vbguest ``` Create a workspace mapping files from `//guest/perforce_software/helix-installer/...` into a root directory, e.g. `/pub/helix-installer`, and sync the workspace. ### Testing Then execute the test suite by running the following in a terminal session: ``` cd /pub/helix-installer/dev/test vagrant up ``` On the first run, this may take a while (perhaps an hour?) to download all the necessary software, including a Linux operating system necessary to create a stand-alone virtual machine. This above been tested with Vagrant on Max OSX High Sierra and OSX Mojove, but should work on any platform where Vagrant and Virtual Box are supported, including Windows (though the path syntax will be different). When the `vagrant up` command completes, access the VM and explore the environment. Here are some sample commands to get started with, continuing in the same terminal session: ``` vagrant ssh sudo su - perforce source /p4/common/bin/p4_vars 1 p4 info p4 -p ssl:1666 info p4 changes -t -m 5 perl -MP4 -e "print P4::Identify()" echo '#!/p4/common/python/bin/python3' > /tmp/v.py echo 'import P4' >> /tmp/v.py echo 'print(P4.P4.identify())' >> /tmp/v.py chmod +x /tmp/v.py /tmp/v.py exit exit vagrant suspend ``` The `vagrant suspend` at the end should be done to avoid consuming resources and prevent possible corruption of the test environment on restart. If that occurs, simply reset your environment with `vagrant destroy` followed by `vagrant up`.