Github user afine commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/433#discussion_r157004899
--- Diff:
src/java/test/org/apache/zookeeper/server/quorum/QuorumPeerMainTest.java ---
@@ -335,6 +336,100 @@ public void testHighestZxidJoinLate() throws
Exception {
output[0], 2);
}
+ /**
+ * This test validates that if a quorum member determines that it is
leader without the support of the rest of the
+ * quorum (the other members do not believe it to be the leader) it
will stop attempting to lead and become a follower.
+ *
+ * @throws IOException
+ * @throws InterruptedException
+ */
+ @Test
+ public void testElectionFraud() throws IOException,
InterruptedException {
+ // capture QuorumPeer logging
+ Layout layout =
Logger.getRootLogger().getAppender("CONSOLE").getLayout();
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ WriterAppender appender = new WriterAppender(layout, os);
+ appender.setThreshold(Level.INFO);
+ Logger qlogger = Logger.getLogger(QuorumPeer.class);
+ qlogger.addAppender(appender);
+
+ int numServers = 3;
--- End diff --
fixed
---