mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-18 21:59:54 +01:00
Include meek bridge in test and mark it as essential.
This commit is contained in:
@@ -13,6 +13,7 @@ import org.briarproject.bramble.api.system.Clock;
|
|||||||
import org.briarproject.bramble.api.system.LocationUtils;
|
import org.briarproject.bramble.api.system.LocationUtils;
|
||||||
import org.briarproject.bramble.api.system.ResourceProvider;
|
import org.briarproject.bramble.api.system.ResourceProvider;
|
||||||
import org.briarproject.bramble.api.system.WakefulIoExecutor;
|
import org.briarproject.bramble.api.system.WakefulIoExecutor;
|
||||||
|
import org.briarproject.bramble.plugin.tor.CircumventionProvider.BridgeType;
|
||||||
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;
|
||||||
@@ -41,6 +42,7 @@ import static org.briarproject.bramble.api.plugin.Plugin.State.ACTIVE;
|
|||||||
import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_CONTROL_PORT;
|
import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_CONTROL_PORT;
|
||||||
import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_SOCKS_PORT;
|
import static org.briarproject.bramble.api.plugin.TorConstants.DEFAULT_SOCKS_PORT;
|
||||||
import static org.briarproject.bramble.plugin.tor.CircumventionProvider.BridgeType.DEFAULT_OBFS4;
|
import static org.briarproject.bramble.plugin.tor.CircumventionProvider.BridgeType.DEFAULT_OBFS4;
|
||||||
|
import static org.briarproject.bramble.plugin.tor.CircumventionProvider.BridgeType.MEEK;
|
||||||
import static org.briarproject.bramble.plugin.tor.CircumventionProvider.BridgeType.NON_DEFAULT_OBFS4;
|
import static org.briarproject.bramble.plugin.tor.CircumventionProvider.BridgeType.NON_DEFAULT_OBFS4;
|
||||||
import static org.briarproject.bramble.test.TestUtils.deleteTestDirectory;
|
import static org.briarproject.bramble.test.TestUtils.deleteTestDirectory;
|
||||||
import static org.briarproject.bramble.test.TestUtils.getTestDirectory;
|
import static org.briarproject.bramble.test.TestUtils.getTestDirectory;
|
||||||
@@ -63,10 +65,13 @@ public class BridgeTest extends BrambleTestCase {
|
|||||||
CircumventionProvider provider = component.getCircumventionProvider();
|
CircumventionProvider provider = component.getCircumventionProvider();
|
||||||
List<Params> states = new ArrayList<>();
|
List<Params> states = new ArrayList<>();
|
||||||
for (String bridge : provider.getBridges(DEFAULT_OBFS4)) {
|
for (String bridge : provider.getBridges(DEFAULT_OBFS4)) {
|
||||||
states.add(new Params(bridge, true, failures));
|
states.add(new Params(bridge, DEFAULT_OBFS4, failures, false));
|
||||||
}
|
}
|
||||||
for (String bridge : provider.getBridges(NON_DEFAULT_OBFS4)) {
|
for (String bridge : provider.getBridges(NON_DEFAULT_OBFS4)) {
|
||||||
states.add(new Params(bridge, false, failures));
|
states.add(new Params(bridge, NON_DEFAULT_OBFS4, failures, false));
|
||||||
|
}
|
||||||
|
for (String bridge : provider.getBridges(MEEK)) {
|
||||||
|
states.add(new Params(bridge, MEEK, failures, true));
|
||||||
}
|
}
|
||||||
return states;
|
return states;
|
||||||
}
|
}
|
||||||
@@ -100,16 +105,12 @@ public class BridgeTest extends BrambleTestCase {
|
|||||||
CryptoComponent crypto;
|
CryptoComponent crypto;
|
||||||
|
|
||||||
private final File torDir = getTestDirectory();
|
private final File torDir = getTestDirectory();
|
||||||
private final String bridge;
|
private final Params params;
|
||||||
private final boolean isDefault;
|
|
||||||
private final AtomicInteger failures;
|
|
||||||
|
|
||||||
private UnixTorPluginFactory factory;
|
private UnixTorPluginFactory factory;
|
||||||
|
|
||||||
public BridgeTest(Params params) {
|
public BridgeTest(Params params) {
|
||||||
bridge = params.bridge;
|
this.params = params;
|
||||||
isDefault = params.isDefault;
|
|
||||||
failures = params.failures;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@@ -143,12 +144,12 @@ public class BridgeTest extends BrambleTestCase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BridgeType getBestBridgeType(String countryCode) {
|
public BridgeType getBestBridgeType(String countryCode) {
|
||||||
return isDefault ? DEFAULT_OBFS4 : NON_DEFAULT_OBFS4;
|
return params.bridgeType;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getBridges(BridgeType bridgeType) {
|
public List<String> getBridges(BridgeType bridgeType) {
|
||||||
return singletonList(bridge);
|
return singletonList(params.bridge);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
factory = new UnixTorPluginFactory(ioExecutor, wakefulIoExecutor,
|
factory = new UnixTorPluginFactory(ioExecutor, wakefulIoExecutor,
|
||||||
@@ -170,7 +171,7 @@ public class BridgeTest extends BrambleTestCase {
|
|||||||
assertNotNull(duplexPlugin);
|
assertNotNull(duplexPlugin);
|
||||||
UnixTorPlugin plugin = (UnixTorPlugin) duplexPlugin;
|
UnixTorPlugin plugin = (UnixTorPlugin) duplexPlugin;
|
||||||
|
|
||||||
LOG.warning("Testing " + bridge);
|
LOG.warning("Testing " + params.bridge);
|
||||||
try {
|
try {
|
||||||
plugin.start();
|
plugin.start();
|
||||||
long start = clock.currentTimeMillis();
|
long start = clock.currentTimeMillis();
|
||||||
@@ -180,8 +181,11 @@ public class BridgeTest extends BrambleTestCase {
|
|||||||
}
|
}
|
||||||
if (plugin.getState() != ACTIVE) {
|
if (plugin.getState() != ACTIVE) {
|
||||||
LOG.warning("Could not connect to Tor within timeout");
|
LOG.warning("Could not connect to Tor within timeout");
|
||||||
if (failures.incrementAndGet() > NUM_FAILURES_ALLOWED) {
|
if (params.failures.incrementAndGet() > NUM_FAILURES_ALLOWED) {
|
||||||
fail(failures.get() + " bridges are unreachable");
|
fail(params.failures.get() + " bridges are unreachable");
|
||||||
|
}
|
||||||
|
if (params.mustSucceed) {
|
||||||
|
fail("essential bridge is unreachable");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
@@ -192,14 +196,16 @@ public class BridgeTest extends BrambleTestCase {
|
|||||||
private static class Params {
|
private static class Params {
|
||||||
|
|
||||||
private final String bridge;
|
private final String bridge;
|
||||||
private final boolean isDefault;
|
private final BridgeType bridgeType;
|
||||||
private final AtomicInteger failures;
|
private final AtomicInteger failures;
|
||||||
|
private final boolean mustSucceed;
|
||||||
|
|
||||||
private Params(String bridge, boolean isDefault,
|
private Params(String bridge, BridgeType bridgeType,
|
||||||
AtomicInteger failures) {
|
AtomicInteger failures, boolean mustSucceed) {
|
||||||
this.bridge = bridge;
|
this.bridge = bridge;
|
||||||
this.isDefault = isDefault;
|
this.bridgeType = bridgeType;
|
||||||
this.failures = failures;
|
this.failures = failures;
|
||||||
|
this.mustSucceed = mustSucceed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user