Does it exit like segment when CHECK_xxx failed? Or exit until finish all
test cases?
On Mar 16, 2016 11:03 PM, "Joseph Wu" <jos...@mesosphere.io> wrote:

> Hello Devs & Contributors,
>
> We recently committed a refactor of the MesosTest suite and underlying
> "Cluster" abstraction.  This affects almost every existing test and future
> test, so here's a summary of what has changed and what you should be aware
> of:
>
>    - The purpose of the refactor is to make the entire test suite more
>    resilient to flaky tests.  Before, every test that used the "
>    MesosTest::StartMaster" and "MesosTest::StartSlave" helpers also needed
>    to have "Shutdown()" at the end of the test.  If the test failed an
>    assertion or expectation, it would exit before "Shutdown()" and would
>    very likely segfault, or hit a "__cxa_pure_virtual__" and exit with a
>    cryptic stack trace.
>    - The signatures of "MesosTest::StartMaster" and "MesosTest::StartSlave"
>    have changed.  Both test helpers now return a "
>    Try<Owned<cluster::Master/Slave>" Instead of a "Try<PID<Master/Slave>>".
>    To way to access the "PID" was changed from ".get()" to ".get()->pid".
>    - "Shutdown()" has been removed from MesosTest.  It is no longer
>    necessary.
>    - The MasterDetector has been exposed at the top-level for all slaves.
>    This slave dependency was originally populated by the "Cluster"
> abstraction
>    (which held both Masters and Slaves).  In most cases, it will be
> sufficient
>    to create the detector like:
>
>    Owned<MasterDetector> detector = master->createDetector();
>    - If you need to restart the master in the middle of a test, just reset
>    the underlying "Owned" pointer.  i.e:
>
>    master->reset();
>    master = StartMaster();
>
>    Note: We can't assign master before resetting the pointer.  This is a
>    limitation related to supporting multiple masters in tests, which is
>    currently not possible.
>    - If you need to restart the slave in the middle of a test, there are
>    several ways:
>       - To clean up any containers associated with that slave:
>       slave = StartSlave(...);
>
>       Or:
>       slave.reset();
>       slave = StartSlave(...);
>       - To stop a slave without container cleanup (equivalent to the
>       original "MesosTest::Stop()"), use:
>       slave->terminate();
>
>       Or:
>       slave->shutdown();
>
>       These two methods emulate turning off the slave, but have slightly
>       different semantics.  "Terminate" generally emulates a crash.
> "Shutdown"
>       emulates a graceful exit.
>
> If you have any further questions, feel free to ask.  There are still quite
> a few improvements to make, but those will likely be less disruptive.
>
> ~Joseph
>

Reply via email to