iilyak commented on a change in pull request #1406: Add initial Elixir suite
URL: https://github.com/apache/couchdb/pull/1406#discussion_r208260617
 
 

 ##########
 File path: Makefile
 ##########
 @@ -137,6 +137,11 @@ soak-eunit: couch
        @$(REBAR) setup_eunit 2> /dev/null
        while [ $$? -eq 0 ] ; do $(REBAR) -r eunit $(EUNIT_OPTS) ; done
 
+.PHONY: elixir
+elixir:
+       @rm -rf dev/lib
+       @dev/run -a adm:pass --no-eval test/elixir/run
 
 Review comment:
   I think we should be able to fix it. There are few options available. It is 
a matter of choosing the best one:
     - run script which reads commands from stdin (as it is done for JS tests)
     - similar thing in elixir which restarts beam and haproxy
     - simulation of a restart using 
`application:stop(couch)`/`application:start(couch)`
     - http endpoint `_admin/restart` or `_test/restart` (this would require 
some supervisor to deal with restart)
   
   Elixir test suite is an integration test. When we run integration tests 
there is a need to do certain operations to facilitate black box testing. 
Namely SUT restart and failure injection. It would be nice to be able to reuse 
this test suite to test the installation (before we allow customers traffic) 
using integration test suite just to make sure everything is in order. Having 
said that I think that the best option would be to implement the following:
   - add `--keep-runing` or `--with-restart` or `--supervise` option to 
`dev/run` script
   - implement http endpoint (TBD) to control the beam from integration test 
suites.
     - we need to be able to disable this endpoint in production via either:
         - config entry
         - absence of environment variable
         - some other method which would make it hard to enable it by accident. 
   
   This way we would have a similar restart behavior as in production. Since In 
production we run CouchDB from standard distribution specific supervisor which 
deals with restart.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to