+act,mul #3948 add MultiNodeSpec.startNewSsytem() and system.abort()

abort() currently only changes that remote-deployed child actors are not
waited for during termination (because that would not change anything);
it is still a different operation than shutdown() since it changes what
you are guaranteed to observe after termination.

testConductor.shutdown(..., abort = true) uses this mode of termination.

improve MultiNodeSpec to allow injection of deployment configuration
into arbitrary actor systems

include number of received elements in the timeout failure message for
TestKit.receiveN
This commit is contained in:
Roland Kuhn 2014-03-21 20:10:34 +01:00
parent 4f4d1d959f
commit a9c022e92a
9 changed files with 158 additions and 75 deletions

View file

@ -1,5 +1,5 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: TestConductorProtocol.proto
// source: protobuf/TestConductorProtocol.proto
package akka.remote.testconductor;
@ -133,6 +133,10 @@ public final class TestConductorProtocol {
* <code>Shutdown = 5;</code>
*/
Shutdown(4, 5),
/**
* <code>ShutdownAbrupt = 6;</code>
*/
ShutdownAbrupt(5, 6),
;
/**
@ -155,6 +159,10 @@ public final class TestConductorProtocol {
* <code>Shutdown = 5;</code>
*/
public static final int Shutdown_VALUE = 5;
/**
* <code>ShutdownAbrupt = 6;</code>
*/
public static final int ShutdownAbrupt_VALUE = 6;
public final int getNumber() { return value; }
@ -166,6 +174,7 @@ public final class TestConductorProtocol {
case 3: return Abort;
case 4: return Exit;
case 5: return Shutdown;
case 6: return ShutdownAbrupt;
default: return null;
}
}
@ -5427,26 +5436,27 @@ public final class TestConductorProtocol {
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\033TestConductorProtocol.proto\"\216\001\n\007Wrappe" +
"r\022\025\n\005hello\030\001 \001(\0132\006.Hello\022\036\n\007barrier\030\002 \001(" +
"\0132\r.EnterBarrier\022\037\n\007failure\030\003 \001(\0132\016.Inje" +
"ctFailure\022\014\n\004done\030\004 \001(\t\022\035\n\004addr\030\005 \001(\0132\017." +
"AddressRequest\"0\n\005Hello\022\014\n\004name\030\001 \002(\t\022\031\n" +
"\007address\030\002 \002(\0132\010.Address\"E\n\014EnterBarrier" +
"\022\014\n\004name\030\001 \002(\t\022\026\n\002op\030\002 \002(\0162\n.BarrierOp\022\017" +
"\n\007timeout\030\003 \001(\003\"6\n\016AddressRequest\022\014\n\004nod" +
"e\030\001 \002(\t\022\026\n\004addr\030\002 \001(\0132\010.Address\"G\n\007Addre" +
"ss\022\020\n\010protocol\030\001 \002(\t\022\016\n\006system\030\002 \002(\t\022\014\n\004",
"host\030\003 \002(\t\022\014\n\004port\030\004 \002(\005\"\212\001\n\rInjectFailu" +
"re\022\032\n\007failure\030\001 \002(\0162\t.FailType\022\035\n\tdirect" +
"ion\030\002 \001(\0162\n.Direction\022\031\n\007address\030\003 \001(\0132\010" +
".Address\022\020\n\010rateMBit\030\006 \001(\002\022\021\n\texitValue\030" +
"\007 \001(\005*;\n\tBarrierOp\022\t\n\005Enter\020\001\022\010\n\004Fail\020\002\022" +
"\r\n\tSucceeded\020\003\022\n\n\006Failed\020\004*K\n\010FailType\022\014" +
"\n\010Throttle\020\001\022\016\n\nDisconnect\020\002\022\t\n\005Abort\020\003\022" +
"\010\n\004Exit\020\004\022\014\n\010Shutdown\020\005*,\n\tDirection\022\010\n\004" +
"Send\020\001\022\013\n\007Receive\020\002\022\010\n\004Both\020\003B\035\n\031akka.re" +
"mote.testconductorH\001"
"\n$protobuf/TestConductorProtocol.proto\"\216" +
"\001\n\007Wrapper\022\025\n\005hello\030\001 \001(\0132\006.Hello\022\036\n\007bar" +
"rier\030\002 \001(\0132\r.EnterBarrier\022\037\n\007failure\030\003 \001" +
"(\0132\016.InjectFailure\022\014\n\004done\030\004 \001(\t\022\035\n\004addr" +
"\030\005 \001(\0132\017.AddressRequest\"0\n\005Hello\022\014\n\004name" +
"\030\001 \002(\t\022\031\n\007address\030\002 \002(\0132\010.Address\"E\n\014Ent" +
"erBarrier\022\014\n\004name\030\001 \002(\t\022\026\n\002op\030\002 \002(\0162\n.Ba" +
"rrierOp\022\017\n\007timeout\030\003 \001(\003\"6\n\016AddressReque" +
"st\022\014\n\004node\030\001 \002(\t\022\026\n\004addr\030\002 \001(\0132\010.Address" +
"\"G\n\007Address\022\020\n\010protocol\030\001 \002(\t\022\016\n\006system\030",
"\002 \002(\t\022\014\n\004host\030\003 \002(\t\022\014\n\004port\030\004 \002(\005\"\212\001\n\rIn" +
"jectFailure\022\032\n\007failure\030\001 \002(\0162\t.FailType\022" +
"\035\n\tdirection\030\002 \001(\0162\n.Direction\022\031\n\007addres" +
"s\030\003 \001(\0132\010.Address\022\020\n\010rateMBit\030\006 \001(\002\022\021\n\te" +
"xitValue\030\007 \001(\005*;\n\tBarrierOp\022\t\n\005Enter\020\001\022\010" +
"\n\004Fail\020\002\022\r\n\tSucceeded\020\003\022\n\n\006Failed\020\004*_\n\010F" +
"ailType\022\014\n\010Throttle\020\001\022\016\n\nDisconnect\020\002\022\t\n" +
"\005Abort\020\003\022\010\n\004Exit\020\004\022\014\n\010Shutdown\020\005\022\022\n\016Shut" +
"downAbrupt\020\006*,\n\tDirection\022\010\n\004Send\020\001\022\013\n\007R" +
"eceive\020\002\022\010\n\004Both\020\003B\035\n\031akka.remote.testco",
"nductorH\001"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {