MSP-11671
Run `msfconsole` with `--defer-module-loads` to change average (n=10)
runtime of `/usr/bin/time rake CUCUMBER_OPTS="-r features"
FEATURE=features/msfconsole/database_yml.feature:150 cucumber:boot` from 57.02
seconds to 38.76 seconds (-32.03%). (-80.26% change from
288d77f31a14f4d05c7f665c2f8bbfd0c58e8d4d.) Raw data:
https://docs.google.com/spreadsheets/d/1vCRi_38Go3Wfq670eDCXMTSSXL1blSbk6NQsgpOqfYw/edit?usp=sharing.
MSP-11671
Run `msfconsole` with `--execute-command db_status --execute-command
exit` instead of running interactively and typing `db_status` and `exit`
to change the average (n=10) running time of `/usr/bin/time rake
CUCUMBER_OPTS="-r features"
FEATURE=features/msfconsole/database_yml.feature:150 cucumber:boot` from
196.30 seconds to 57.02 seconds (-70.95%). Raw data:
https://docs.google.com/spreadsheets/d/1vCRi_38Go3Wfq670eDCXMTSSXL1blSbk6NQsgpOqfYw/edit?usp=sharing.
MSP-11671
Call `msfconsole` with `--defer-module-loads` to change runtime of
`/usr/bin/time rake CUCUMBER_OPTS="-r features"
FEATURE=features/msfconsole/database_yml.feature:134 cucumber:boot` from
49.44 seconds to 37.65 seconds (-23.83%). (-80.73% change from
22c56f525335d45623c7708ccc53561e516ae8a0.) Raw data:
https://docs.google.com/spreadsheets/d/1vCRi_38Go3Wfq670eDCXMTSSXL1blSbk6NQsgpOqfYw/edit?usp=sharing.
MSP-11671
Call `msfconsole` with `--execute-command db_status --execute_command
exit` instead of running interactively and typing `db_status` and `exit`
to change the average (n=10) run time of `/usr/bin/time rake
CUCUMBER_OPTS="-r features"
FEATURE=features/msfconsole/database_yml.feature:134 cucumber:boot` from 195.38
seconds to 49.44 seconds (-74.70%).
MSP-11671
Run `msfconsole` with `--defer-module-loads` to change average (n=10)
runtime of `/usr/bin/time rake CUCUMBER_OPTS="-r features"
FEATURE=features/msfconsole/database_yml.feature:115 cucumber:boot` from
51.42 seconds to 37.76 seconds (-26.57%). (Change of -72.98% since
f950f3094de718f5294a84fb7e0a78390818ba4d.) Raw data:
https://docs.google.com/spreadsheets/d/1vCRi_38Go3Wfq670eDCXMTSSXL1blSbk6NQsgpOqfYw/edit?usp=sharing.
MSP-11671
Run msfconsole with `--execute-command exit` instead of running
interactly and typing `exit`. Changes average (n=10) running time for
`/usr/bin/time rake CUCUMBER_OPTS="-r features"
FEATURE=features/msfconsole/database_yml.feature:115 cucumber:boot` from 139.76
seconds to 51.42 seconds (-63.21%).
MSP-11671
Pass `--defer-module-loads` to `msfconsole` to change average (n=10)
runtime for `/usr/bin/time rake CUCUMBER_OPTS="-r features"
FEATURE=features/msfconsole/database_yml.feature:88 cucumber:boot` from
51.79 seconds to 39.25 seconds (-24.40%). (-71.74% from
e9a69a844cd2f2f7ad24386dd3adf7ccbd18d2b3.) Raw data:
https://docs.google.com/spreadsheets/d/1vCRi_38Go3Wfq670eDCXMTSSXL1blSbk6NQsgpOqfYw/edit?usp=sharing.
MSP-11671
Add `--defer-module-loads` when running `msfconsole`. Changes average
(n=10) runtime from 52.96 seconds to 38.98 seconds (-26.39%) (-71.92%
compared to 69b170a7df).
MSP-11671
Pass `--execute-command exit` to `msfconsole` instead of running it
interactively and typing `exit`. Average (n=10) runtime for `rake
CUCUMBER_OPTS="-r features"
FEATURE=features/msfconsole/database_yml.feature:54 cucumber:boot`
change from 138.84 seconds to 52.96 seconds (-61.85%).
MSP-11671
Use `--execute-command` instead of interactly running msfconsole and
typing `exit`. Changes the average runtime for `rake CUCUMBER_OPTS="-r
features" FEATURE=features/msfconsole/database_yml.feature:13
cucumber:boot` from 141.93 seconds (n=10) to 51.78 seconds (n=10) for a
-63.52% change. Raw data:
https://docs.google.com/spreadsheets/d/1vCRi_38Go3Wfq670eDCXMTSSXL1blSbk6NQsgpOqfYw/edit?usp=sharing.
MSP-11647
Port simplecov setup from metasploit-version so that child processes, in
this case msfconsole, will load simplecov and report coverage back to
the parent process. Coverage from msfconsole's cucumber features is the
only way to get coverage on portions of the command dispatcher commands.
MSP-11153
Restore the config/database.yml backed up to
config/database.yml.cucumber.bak in the db:config:restore task, which is
made a dependency of the environment rake task so that
config/database.yml is restored before Rails tries to use it in the
environment task. This specifically, allows for rake cucumber to be
interrupted when the config/database.yml has been moved to
config/database.yml.cucumber.bak and a subsequence rake cucumber to
succeed and restore config/database.yml, but any task that depends on
environment will restore the config/database.yml.