/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2010, 2015 Oracle and/or its affiliates. All rights reserved.
*
*/
package repmgrtests;
import org.junit.Test;
import java.io.File;
/**
* A simple test for upgrades from 4.6 to verify that cross-version
* handshake processing works OK in the opposite sense from which we
* usually try it.
*/
public class TestReverseConnect extends AbstractUpgTest {
public interface Ops {
public void setConfig(Config c);
public void joinExistingClient(int site, boolean useHB)
throws Exception;
public void verifyConnect(int site) throws Exception;
public void restart(int siteId) throws Exception;
public void awaitConnFailure(int siteId) throws Exception;
public void shutDown(int siteId) throws Exception;
}
public interface Ops46 {
public void setConfig(Config c);
public void createMaster(int site, boolean configClient)
throws Exception;
public void establishClient(int site, boolean configMaster)
throws Exception;
public void restart(int siteId) throws Exception;
public void shutDown(int siteId) throws Exception;
}
public TestReverseConnect() {
super("46", "repmgrtests.V46impl", "repmgrtests.CurrentImpl");
}
@Test public void reverseMixed() throws Exception {
Ops46 oldGroup = (Ops46)oldGroup_o;
Ops currentGroup = (Ops)currentGroup_o;
File testdir = new File("TESTDIR");
Util.rm_rf(testdir);
testdir.mkdir();
Config config = new Config(testdir);
oldGroup.setConfig(config);
currentGroup.setConfig(config);
oldGroup.createMaster(0, true);
oldGroup.establishClient(1, false);
oldGroup.shutDown(0);
currentGroup.restart(1);
currentGroup.awaitConnFailure(1);
oldGroup.restart(0);
currentGroup.verifyConnect(1);
oldGroup.shutDown(0);
currentGroup.shutDown(1);
}
}