From e4a3a1ad40457031c7688debae31908a77760643 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Thu, 27 Sep 2018 16:07:46 +0100 Subject: [PATCH 1/3] Delete Tor state after testing each bridge. --- .../bramble/plugin/tor/BridgeTest.java | 45 +++++++++++-------- .../BrambleJavaIntegrationTestComponent.java | 2 + 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/bramble-java/src/test/java/org/briarproject/bramble/plugin/tor/BridgeTest.java b/bramble-java/src/test/java/org/briarproject/bramble/plugin/tor/BridgeTest.java index 28f50be64..656a4805b 100644 --- a/bramble-java/src/test/java/org/briarproject/bramble/plugin/tor/BridgeTest.java +++ b/bramble-java/src/test/java/org/briarproject/bramble/plugin/tor/BridgeTest.java @@ -10,9 +10,13 @@ import org.briarproject.bramble.api.system.ResourceProvider; import org.briarproject.bramble.test.BrambleJavaIntegrationTestComponent; import org.briarproject.bramble.test.BrambleTestCase; 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.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; import java.io.File; 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.isOptionalTestEnabled; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.junit.Assume.assumeTrue; +@RunWith(Parameterized.class) public class BridgeTest extends BrambleTestCase { - private final static long TIMEOUT = SECONDS.toMillis(23); + @Parameters + public static Iterable data() { + BrambleJavaIntegrationTestComponent component = + DaggerBrambleJavaIntegrationTestComponent.builder().build(); + return component.getCircumventionProvider().getBridges(); + } + + private final static long TIMEOUT = SECONDS.toMillis(30); private final static Logger LOG = Logger.getLogger(BridgeTest.class.getName()); @@ -53,17 +64,23 @@ public class BridgeTest extends BrambleTestCase { @Inject Clock clock; - private List bridges; - private LinuxTorPluginFactory factory; - private final static File torDir = getTestDirectory(); + private final File torDir = getTestDirectory(); + private final String bridge; - private volatile String currentBridge = null; + private LinuxTorPluginFactory factory; + + public BridgeTest(String bridge) { + this.bridge = bridge; + } @Before public void setUp() { // Skip this test unless it's explicitly enabled in the environment assumeTrue(isOptionalTestEnabled(BridgeTest.class)); + // TODO: Remove this assumption when the plugin supports other platforms + assumeTrue(OsUtils.isLinux()); + BrambleJavaIntegrationTestComponent component = DaggerBrambleJavaIntegrationTestComponent.builder().build(); component.inject(this); @@ -72,7 +89,6 @@ public class BridgeTest extends BrambleTestCase { LocationUtils locationUtils = () -> "US"; SocketFactory torSocketFactory = SocketFactory.getDefault(); - bridges = circumventionProvider.getBridges(); CircumventionProvider bridgeProvider = new CircumventionProvider() { @Override public boolean isTorProbablyBlocked(String countryCode) { @@ -86,7 +102,7 @@ public class BridgeTest extends BrambleTestCase { @Override public List getBridges() { - return singletonList(currentBridge); + return singletonList(bridge); } }; factory = new LinuxTorPluginFactory(ioExecutor, networkManager, @@ -94,25 +110,18 @@ public class BridgeTest extends BrambleTestCase { resourceProvider, bridgeProvider, clock, torDir); } - @AfterClass - public static void tearDown() { + @After + public void tearDown() { deleteTestDirectory(torDir); } @Test public void testBridges() throws Exception { - assertTrue(bridges.size() > 0); - - for (String bridge : bridges) testBridge(bridge); - } - - private void testBridge(String bridge) throws Exception { DuplexPlugin duplexPlugin = factory.createPlugin(new TorPluginCallBack()); assertNotNull(duplexPlugin); LinuxTorPlugin plugin = (LinuxTorPlugin) duplexPlugin; - currentBridge = bridge; LOG.warning("Testing " + bridge); try { plugin.start(); diff --git a/bramble-java/src/test/java/org/briarproject/bramble/test/BrambleJavaIntegrationTestComponent.java b/bramble-java/src/test/java/org/briarproject/bramble/test/BrambleJavaIntegrationTestComponent.java index 99a98b144..be6708596 100644 --- a/bramble-java/src/test/java/org/briarproject/bramble/test/BrambleJavaIntegrationTestComponent.java +++ b/bramble-java/src/test/java/org/briarproject/bramble/test/BrambleJavaIntegrationTestComponent.java @@ -4,6 +4,7 @@ import org.briarproject.bramble.BrambleJavaModule; import org.briarproject.bramble.event.EventModule; import org.briarproject.bramble.plugin.PluginModule; import org.briarproject.bramble.plugin.tor.BridgeTest; +import org.briarproject.bramble.plugin.tor.CircumventionProvider; import org.briarproject.bramble.system.SystemModule; import javax.inject.Singleton; @@ -22,4 +23,5 @@ public interface BrambleJavaIntegrationTestComponent { void inject(BridgeTest init); + CircumventionProvider getCircumventionProvider(); } From 9381d46f51757891423501f53a913e29c3757fd6 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Thu, 27 Sep 2018 16:08:14 +0100 Subject: [PATCH 2/3] Remove two bridges that are slow to bootstrap. --- bramble-core/src/main/resources/bridges | 2 -- 1 file changed, 2 deletions(-) diff --git a/bramble-core/src/main/resources/bridges b/bramble-core/src/main/resources/bridges index e62f44ec3..8b3b195e8 100644 --- a/bramble-core/src/main/resources/bridges +++ b/bramble-core/src/main/resources/bridges @@ -2,7 +2,5 @@ Bridge 131.252.210.150:8081 0E858AC201BF0F3FA3C462F64844CBFFC7297A42 Bridge 67.205.189.122:8443 12D64D5D44E20169585E7378580C0D33A872AD98 Bridge 45.32.148.146:8443 0CE016FB2462D8BF179AE71F7D702D09DEAC3F1D Bridge 148.251.90.59:7510 019F727CA6DCA6CA5C90B55E477B7D87981E75BC -Bridge 195.91.239.8:9001 BA83F62551545655BBEBBFF353A45438D73FD45A Bridge 45.55.1.74:8443 6F18FEFBB0CAECD5ABA755312FCCB34FC11A7AB8 -Bridge 97.107.131.168:65341 DCDA8A5F1E2C50A6756A58462E5CF4B6B2DFDE26 Bridge 85.229.131.78:444 50E433CCC5FEC11CC34CB4D92033561E065EA106 \ No newline at end of file From 9615eff64965a8f25ade778789c133c7516112be Mon Sep 17 00:00:00 2001 From: akwizgran Date: Thu, 27 Sep 2018 16:11:52 +0100 Subject: [PATCH 3/3] Add new bridges to replace slow ones. --- bramble-core/src/main/resources/bridges | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bramble-core/src/main/resources/bridges b/bramble-core/src/main/resources/bridges index 8b3b195e8..628a7b33e 100644 --- a/bramble-core/src/main/resources/bridges +++ b/bramble-core/src/main/resources/bridges @@ -3,4 +3,6 @@ Bridge 67.205.189.122:8443 12D64D5D44E20169585E7378580C0D33A872AD98 Bridge 45.32.148.146:8443 0CE016FB2462D8BF179AE71F7D702D09DEAC3F1D Bridge 148.251.90.59:7510 019F727CA6DCA6CA5C90B55E477B7D87981E75BC Bridge 45.55.1.74:8443 6F18FEFBB0CAECD5ABA755312FCCB34FC11A7AB8 -Bridge 85.229.131.78:444 50E433CCC5FEC11CC34CB4D92033561E065EA106 \ No newline at end of file +Bridge 85.229.131.78:444 50E433CCC5FEC11CC34CB4D92033561E065EA106 +Bridge 178.62.62.193:8443 391B1F9B6A28A1C5FAE1872283985F975E5DB029 +Bridge 45.76.29.92:8443 ECF1DD51A46FDEF2C50CED992EEEAE8DED18DA0C \ No newline at end of file