Delete Tor state after testing each bridge.

This commit is contained in:
akwizgran
2018-09-27 16:07:46 +01:00
parent 905dc2a662
commit e4a3a1ad40
2 changed files with 29 additions and 18 deletions

View File

@@ -10,9 +10,13 @@ import org.briarproject.bramble.api.system.ResourceProvider;
import org.briarproject.bramble.test.BrambleJavaIntegrationTestComponent; import org.briarproject.bramble.test.BrambleJavaIntegrationTestComponent;
import org.briarproject.bramble.test.BrambleTestCase; import org.briarproject.bramble.test.BrambleTestCase;
import org.briarproject.bramble.test.DaggerBrambleJavaIntegrationTestComponent; import org.briarproject.bramble.test.DaggerBrambleJavaIntegrationTestComponent;
import org.junit.AfterClass; import org.briarproject.bramble.util.OsUtils;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
@@ -29,13 +33,20 @@ import static org.briarproject.bramble.test.TestUtils.deleteTestDirectory;
import static org.briarproject.bramble.test.TestUtils.getTestDirectory; import static org.briarproject.bramble.test.TestUtils.getTestDirectory;
import static org.briarproject.bramble.test.TestUtils.isOptionalTestEnabled; import static org.briarproject.bramble.test.TestUtils.isOptionalTestEnabled;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import static org.junit.Assume.assumeTrue; import static org.junit.Assume.assumeTrue;
@RunWith(Parameterized.class)
public class BridgeTest extends BrambleTestCase { public class BridgeTest extends BrambleTestCase {
private final static long TIMEOUT = SECONDS.toMillis(23); @Parameters
public static Iterable<String> data() {
BrambleJavaIntegrationTestComponent component =
DaggerBrambleJavaIntegrationTestComponent.builder().build();
return component.getCircumventionProvider().getBridges();
}
private final static long TIMEOUT = SECONDS.toMillis(30);
private final static Logger LOG = private final static Logger LOG =
Logger.getLogger(BridgeTest.class.getName()); Logger.getLogger(BridgeTest.class.getName());
@@ -53,17 +64,23 @@ public class BridgeTest extends BrambleTestCase {
@Inject @Inject
Clock clock; Clock clock;
private List<String> bridges; private final File torDir = getTestDirectory();
private LinuxTorPluginFactory factory; private final String bridge;
private final static File torDir = getTestDirectory();
private volatile String currentBridge = null; private LinuxTorPluginFactory factory;
public BridgeTest(String bridge) {
this.bridge = bridge;
}
@Before @Before
public void setUp() { public void setUp() {
// Skip this test unless it's explicitly enabled in the environment // Skip this test unless it's explicitly enabled in the environment
assumeTrue(isOptionalTestEnabled(BridgeTest.class)); assumeTrue(isOptionalTestEnabled(BridgeTest.class));
// TODO: Remove this assumption when the plugin supports other platforms
assumeTrue(OsUtils.isLinux());
BrambleJavaIntegrationTestComponent component = BrambleJavaIntegrationTestComponent component =
DaggerBrambleJavaIntegrationTestComponent.builder().build(); DaggerBrambleJavaIntegrationTestComponent.builder().build();
component.inject(this); component.inject(this);
@@ -72,7 +89,6 @@ public class BridgeTest extends BrambleTestCase {
LocationUtils locationUtils = () -> "US"; LocationUtils locationUtils = () -> "US";
SocketFactory torSocketFactory = SocketFactory.getDefault(); SocketFactory torSocketFactory = SocketFactory.getDefault();
bridges = circumventionProvider.getBridges();
CircumventionProvider bridgeProvider = new CircumventionProvider() { CircumventionProvider bridgeProvider = new CircumventionProvider() {
@Override @Override
public boolean isTorProbablyBlocked(String countryCode) { public boolean isTorProbablyBlocked(String countryCode) {
@@ -86,7 +102,7 @@ public class BridgeTest extends BrambleTestCase {
@Override @Override
public List<String> getBridges() { public List<String> getBridges() {
return singletonList(currentBridge); return singletonList(bridge);
} }
}; };
factory = new LinuxTorPluginFactory(ioExecutor, networkManager, factory = new LinuxTorPluginFactory(ioExecutor, networkManager,
@@ -94,25 +110,18 @@ public class BridgeTest extends BrambleTestCase {
resourceProvider, bridgeProvider, clock, torDir); resourceProvider, bridgeProvider, clock, torDir);
} }
@AfterClass @After
public static void tearDown() { public void tearDown() {
deleteTestDirectory(torDir); deleteTestDirectory(torDir);
} }
@Test @Test
public void testBridges() throws Exception { public void testBridges() throws Exception {
assertTrue(bridges.size() > 0);
for (String bridge : bridges) testBridge(bridge);
}
private void testBridge(String bridge) throws Exception {
DuplexPlugin duplexPlugin = DuplexPlugin duplexPlugin =
factory.createPlugin(new TorPluginCallBack()); factory.createPlugin(new TorPluginCallBack());
assertNotNull(duplexPlugin); assertNotNull(duplexPlugin);
LinuxTorPlugin plugin = (LinuxTorPlugin) duplexPlugin; LinuxTorPlugin plugin = (LinuxTorPlugin) duplexPlugin;
currentBridge = bridge;
LOG.warning("Testing " + bridge); LOG.warning("Testing " + bridge);
try { try {
plugin.start(); plugin.start();

View File

@@ -4,6 +4,7 @@ import org.briarproject.bramble.BrambleJavaModule;
import org.briarproject.bramble.event.EventModule; import org.briarproject.bramble.event.EventModule;
import org.briarproject.bramble.plugin.PluginModule; import org.briarproject.bramble.plugin.PluginModule;
import org.briarproject.bramble.plugin.tor.BridgeTest; import org.briarproject.bramble.plugin.tor.BridgeTest;
import org.briarproject.bramble.plugin.tor.CircumventionProvider;
import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.system.SystemModule;
import javax.inject.Singleton; import javax.inject.Singleton;
@@ -22,4 +23,5 @@ public interface BrambleJavaIntegrationTestComponent {
void inject(BridgeTest init); void inject(BridgeTest init);
CircumventionProvider getCircumventionProvider();
} }