Add @UseSsh Annotation and GERRIT_USE_SSH flag
Adding a @UseSsh annotation and a command line flag lets us decide if we want to run tests that require SSH on each test run. In this way, we can run the test suite against a Gerrit instance that does not support SSH connections. Change-Id: Ibb471f312c50f0c92e1c32e55f4a5667b33b6ab5
This commit is contained in:
@@ -217,6 +217,12 @@ To run the tests against NoteDb backend:
|
|||||||
bazel test --test_env=GERRIT_NOTEDB=READ_WRITE //...
|
bazel test --test_env=GERRIT_NOTEDB=READ_WRITE //...
|
||||||
----
|
----
|
||||||
|
|
||||||
|
To run only tests that do not use SSH:
|
||||||
|
|
||||||
|
----
|
||||||
|
bazel test --test_env=GERRIT_USE_SSH=NO //...
|
||||||
|
----
|
||||||
|
|
||||||
== Dependencies
|
== Dependencies
|
||||||
|
|
||||||
Dependency JARs are normally downloaded as needed, but you can
|
Dependency JARs are normally downloaded as needed, but you can
|
||||||
|
@@ -347,6 +347,12 @@ To run the tests against NoteDb backend:
|
|||||||
GERRIT_NOTEDB=READ_WRITE buck test
|
GERRIT_NOTEDB=READ_WRITE buck test
|
||||||
----
|
----
|
||||||
|
|
||||||
|
To run only tests that do not use SSH:
|
||||||
|
|
||||||
|
----
|
||||||
|
GERRIT_USE_SSH=NO buck test
|
||||||
|
----
|
||||||
|
|
||||||
== Dependencies
|
== Dependencies
|
||||||
|
|
||||||
Dependency JARs are normally downloaded automatically, but Buck can inspect
|
Dependency JARs are normally downloaded automatically, but Buck can inspect
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
package com.google.gerrit.acceptance;
|
package com.google.gerrit.acceptance;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
import static com.google.common.truth.TruthJUnit.assume;
|
||||||
import static com.google.gerrit.acceptance.GitUtil.initSsh;
|
import static com.google.gerrit.acceptance.GitUtil.initSsh;
|
||||||
import static com.google.gerrit.extensions.api.changes.SubmittedTogetherOption.NON_VISIBLE_CHANGES;
|
import static com.google.gerrit.extensions.api.changes.SubmittedTogetherOption.NON_VISIBLE_CHANGES;
|
||||||
import static com.google.gerrit.reviewdb.client.Patch.COMMIT_MSG;
|
import static com.google.gerrit.reviewdb.client.Patch.COMMIT_MSG;
|
||||||
@@ -95,6 +96,7 @@ import com.google.gerrit.server.query.change.InternalChangeQuery;
|
|||||||
import com.google.gerrit.testutil.ConfigSuite;
|
import com.google.gerrit.testutil.ConfigSuite;
|
||||||
import com.google.gerrit.testutil.FakeEmailSender;
|
import com.google.gerrit.testutil.FakeEmailSender;
|
||||||
import com.google.gerrit.testutil.FakeEmailSender.Message;
|
import com.google.gerrit.testutil.FakeEmailSender.Message;
|
||||||
|
import com.google.gerrit.testutil.SshMode;
|
||||||
import com.google.gerrit.testutil.TempFileUtil;
|
import com.google.gerrit.testutil.TempFileUtil;
|
||||||
import com.google.gerrit.testutil.TestNotesMigration;
|
import com.google.gerrit.testutil.TestNotesMigration;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
@@ -274,6 +276,7 @@ public abstract class AbstractDaemonTest {
|
|||||||
|
|
||||||
private String resourcePrefix;
|
private String resourcePrefix;
|
||||||
private List<Repository> toClose;
|
private List<Repository> toClose;
|
||||||
|
private boolean useSsh;
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TestRule testRunner = new TestRule() {
|
public TestRule testRunner = new TestRule() {
|
||||||
@@ -306,6 +309,16 @@ public abstract class AbstractDaemonTest {
|
|||||||
eventRecorder = eventRecorderFactory.create(admin);
|
eventRecorder = eventRecorderFactory.create(admin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void assumeSshIfRequired() {
|
||||||
|
if (useSsh) {
|
||||||
|
// If the test uses ssh, we use assume() to make sure ssh is enabled on
|
||||||
|
// the test suite. JUnit will skip tests annotated with @UseSsh if we
|
||||||
|
// disable them using the command line flag.
|
||||||
|
assume().that(SshMode.useSsh()).isTrue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void closeEventRecorder() {
|
public void closeEventRecorder() {
|
||||||
eventRecorder.close();
|
eventRecorder.close();
|
||||||
@@ -379,8 +392,15 @@ public abstract class AbstractDaemonTest {
|
|||||||
|
|
||||||
adminRestSession = new RestSession(server, admin);
|
adminRestSession = new RestSession(server, admin);
|
||||||
userRestSession = new RestSession(server, user);
|
userRestSession = new RestSession(server, user);
|
||||||
initSsh(admin);
|
|
||||||
db = reviewDbProvider.open();
|
db = reviewDbProvider.open();
|
||||||
|
|
||||||
|
if (classDesc.useSsh() || methodDesc.useSsh()) {
|
||||||
|
useSsh = true;
|
||||||
|
if (SshMode.useSsh() && (adminSshSession == null ||
|
||||||
|
userSshSession == null)) {
|
||||||
|
// Create Ssh sessions
|
||||||
|
initSsh(admin);
|
||||||
Context ctx = newRequestContext(user);
|
Context ctx = newRequestContext(user);
|
||||||
atrScope.set(ctx);
|
atrScope.set(ctx);
|
||||||
userSshSession = ctx.getSession();
|
userSshSession = ctx.getSession();
|
||||||
@@ -389,10 +409,17 @@ public abstract class AbstractDaemonTest {
|
|||||||
atrScope.set(ctx);
|
atrScope.set(ctx);
|
||||||
adminSshSession = ctx.getSession();
|
adminSshSession = ctx.getSession();
|
||||||
adminSshSession.open();
|
adminSshSession.open();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
useSsh = false;
|
||||||
|
}
|
||||||
|
|
||||||
resourcePrefix = UNSAFE_PROJECT_NAME.matcher(
|
resourcePrefix = UNSAFE_PROJECT_NAME.matcher(
|
||||||
description.getClassName() + "_"
|
description.getClassName() + "_"
|
||||||
+ description.getMethodName() + "_").replaceAll("");
|
+ description.getMethodName() + "_").replaceAll("");
|
||||||
|
|
||||||
|
Context ctx = newRequestContext(admin);
|
||||||
|
atrScope.set(ctx);
|
||||||
project = createProject(projectInput(description));
|
project = createProject(projectInput(description));
|
||||||
testRepo = cloneProject(project, getCloneAsAccount(description));
|
testRepo = cloneProject(project, getCloneAsAccount(description));
|
||||||
}
|
}
|
||||||
@@ -517,8 +544,12 @@ public abstract class AbstractDaemonTest {
|
|||||||
repo.close();
|
repo.close();
|
||||||
}
|
}
|
||||||
db.close();
|
db.close();
|
||||||
|
if (adminSshSession != null) {
|
||||||
adminSshSession.close();
|
adminSshSession.close();
|
||||||
|
}
|
||||||
|
if (userSshSession != null) {
|
||||||
userSshSession.close();
|
userSshSession.close();
|
||||||
|
}
|
||||||
if (server != commonServer) {
|
if (server != commonServer) {
|
||||||
server.stop();
|
server.stop();
|
||||||
}
|
}
|
||||||
|
@@ -65,6 +65,7 @@ public class GerritServer {
|
|||||||
true, // @UseLocalDisk is only valid on methods.
|
true, // @UseLocalDisk is only valid on methods.
|
||||||
!has(NoHttpd.class, testDesc.getTestClass()),
|
!has(NoHttpd.class, testDesc.getTestClass()),
|
||||||
has(Sandboxed.class, testDesc.getTestClass()),
|
has(Sandboxed.class, testDesc.getTestClass()),
|
||||||
|
has(UseSsh.class, testDesc.getTestClass()),
|
||||||
null, // @GerritConfig is only valid on methods.
|
null, // @GerritConfig is only valid on methods.
|
||||||
null); // @GerritConfigs is only valid on methods.
|
null); // @GerritConfigs is only valid on methods.
|
||||||
|
|
||||||
@@ -79,6 +80,8 @@ public class GerritServer {
|
|||||||
&& !has(NoHttpd.class, testDesc.getTestClass()),
|
&& !has(NoHttpd.class, testDesc.getTestClass()),
|
||||||
testDesc.getAnnotation(Sandboxed.class) != null ||
|
testDesc.getAnnotation(Sandboxed.class) != null ||
|
||||||
has(Sandboxed.class, testDesc.getTestClass()),
|
has(Sandboxed.class, testDesc.getTestClass()),
|
||||||
|
testDesc.getAnnotation(UseSsh.class) != null ||
|
||||||
|
has(UseSsh.class, testDesc.getTestClass()),
|
||||||
testDesc.getAnnotation(GerritConfig.class),
|
testDesc.getAnnotation(GerritConfig.class),
|
||||||
testDesc.getAnnotation(GerritConfigs.class));
|
testDesc.getAnnotation(GerritConfigs.class));
|
||||||
}
|
}
|
||||||
@@ -97,6 +100,7 @@ public class GerritServer {
|
|||||||
abstract boolean memory();
|
abstract boolean memory();
|
||||||
abstract boolean httpd();
|
abstract boolean httpd();
|
||||||
abstract boolean sandboxed();
|
abstract boolean sandboxed();
|
||||||
|
abstract boolean useSsh();
|
||||||
@Nullable abstract GerritConfig config();
|
@Nullable abstract GerritConfig config();
|
||||||
@Nullable abstract GerritConfigs configs();
|
@Nullable abstract GerritConfigs configs();
|
||||||
|
|
||||||
|
@@ -49,9 +49,15 @@ public class LightweightPluginDaemonTest extends AbstractDaemonTest {
|
|||||||
|
|
||||||
@After
|
@After
|
||||||
public void tearDown() {
|
public void tearDown() {
|
||||||
|
if (plugin != null) {
|
||||||
|
// plugin will be null if the plugin test requires ssh, but the command
|
||||||
|
// line flag says we are running tests without ssh as the assume()
|
||||||
|
// statement in AbstractDaemonTest will prevent the execution of setUp()
|
||||||
|
// in this class
|
||||||
plugin.stop(env);
|
plugin.stop(env);
|
||||||
env.onStopPlugin(plugin);
|
env.onStopPlugin(plugin);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static TestPlugin getTestPlugin(Class<?> clazz) {
|
private static TestPlugin getTestPlugin(Class<?> clazz) {
|
||||||
for (; clazz != null; clazz = clazz.getSuperclass()) {
|
for (; clazz != null; clazz = clazz.getSuperclass()) {
|
||||||
|
@@ -0,0 +1,27 @@
|
|||||||
|
// Copyright (C) 2016 The Android Open Source Project
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package com.google.gerrit.acceptance;
|
||||||
|
|
||||||
|
import static java.lang.annotation.ElementType.METHOD;
|
||||||
|
import static java.lang.annotation.ElementType.TYPE;
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
@Target({TYPE, METHOD})
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
public @interface UseSsh {
|
||||||
|
}
|
@@ -80,13 +80,13 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
|
||||||
public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
||||||
protected enum Protocol {
|
protected enum Protocol {
|
||||||
// TODO(dborowitz): TEST.
|
// TODO(dborowitz): TEST.
|
||||||
SSH, HTTP
|
SSH, HTTP
|
||||||
}
|
}
|
||||||
|
|
||||||
private String sshUrl;
|
|
||||||
private LabelType patchSetLock;
|
private LabelType patchSetLock;
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
@@ -101,7 +101,6 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
sshUrl = adminSshSession.getUrl();
|
|
||||||
ProjectConfig cfg = projectCache.checkedGet(project).getConfig();
|
ProjectConfig cfg = projectCache.checkedGet(project).getConfig();
|
||||||
patchSetLock = Util.patchSetLock();
|
patchSetLock = Util.patchSetLock();
|
||||||
cfg.getLabelSections().put(patchSetLock.getName(), patchSetLock);
|
cfg.getLabelSections().put(patchSetLock.getName(), patchSetLock);
|
||||||
@@ -117,7 +116,7 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
|||||||
String url;
|
String url;
|
||||||
switch (p) {
|
switch (p) {
|
||||||
case SSH:
|
case SSH:
|
||||||
url = sshUrl;
|
url = adminSshSession.getUrl();
|
||||||
break;
|
break;
|
||||||
case HTTP:
|
case HTTP:
|
||||||
url = admin.getHttpUrl(server);
|
url = admin.getHttpUrl(server);
|
||||||
|
@@ -16,9 +16,11 @@ package com.google.gerrit.acceptance.git;
|
|||||||
|
|
||||||
import com.google.gerrit.acceptance.NoHttpd;
|
import com.google.gerrit.acceptance.NoHttpd;
|
||||||
|
|
||||||
|
import com.google.gerrit.acceptance.UseSsh;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
|
||||||
@NoHttpd
|
@NoHttpd
|
||||||
|
@UseSsh
|
||||||
public class SshPushForReviewIT extends AbstractPushForReview {
|
public class SshPushForReviewIT extends AbstractPushForReview {
|
||||||
@Before
|
@Before
|
||||||
public void selectSshUrl() throws Exception {
|
public void selectSshUrl() throws Exception {
|
||||||
|
@@ -20,6 +20,7 @@ import static java.nio.charset.StandardCharsets.UTF_8;
|
|||||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||||
import com.google.gerrit.acceptance.GerritConfig;
|
import com.google.gerrit.acceptance.GerritConfig;
|
||||||
import com.google.gerrit.acceptance.NoHttpd;
|
import com.google.gerrit.acceptance.NoHttpd;
|
||||||
|
import com.google.gerrit.acceptance.UseSsh;
|
||||||
import com.google.gerrit.extensions.client.AccountFieldName;
|
import com.google.gerrit.extensions.client.AccountFieldName;
|
||||||
import com.google.gerrit.extensions.client.AuthType;
|
import com.google.gerrit.extensions.client.AuthType;
|
||||||
import com.google.gerrit.extensions.common.ServerInfo;
|
import com.google.gerrit.extensions.common.ServerInfo;
|
||||||
@@ -129,6 +130,7 @@ public class ServerInfoIT extends AbstractDaemonTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@UseSsh
|
||||||
@GerritConfig(name = "plugins.allowRemoteAdmin", value = "true")
|
@GerritConfig(name = "plugins.allowRemoteAdmin", value = "true")
|
||||||
public void serverConfigWithPlugin() throws Exception {
|
public void serverConfigWithPlugin() throws Exception {
|
||||||
Path plugins = tempSiteDir.newFolder("plugins").toPath();
|
Path plugins = tempSiteDir.newFolder("plugins").toPath();
|
||||||
|
@@ -21,6 +21,7 @@ import com.google.common.collect.ImmutableList;
|
|||||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||||
import com.google.gerrit.acceptance.NoHttpd;
|
import com.google.gerrit.acceptance.NoHttpd;
|
||||||
import com.google.gerrit.acceptance.PushOneCommit.Result;
|
import com.google.gerrit.acceptance.PushOneCommit.Result;
|
||||||
|
import com.google.gerrit.acceptance.UseSsh;
|
||||||
import com.google.gerrit.extensions.common.ChangeInfo;
|
import com.google.gerrit.extensions.common.ChangeInfo;
|
||||||
import com.google.gerrit.extensions.common.ChangeMessageInfo;
|
import com.google.gerrit.extensions.common.ChangeMessageInfo;
|
||||||
|
|
||||||
@@ -31,6 +32,7 @@ import java.util.List;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
@NoHttpd
|
@NoHttpd
|
||||||
|
@UseSsh
|
||||||
public class AbandonRestoreIT extends AbstractDaemonTest {
|
public class AbandonRestoreIT extends AbstractDaemonTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -22,6 +22,7 @@ import static org.eclipse.jgit.transport.RemoteRefUpdate.Status.REJECTED_OTHER_R
|
|||||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||||
import com.google.gerrit.acceptance.NoHttpd;
|
import com.google.gerrit.acceptance.NoHttpd;
|
||||||
|
|
||||||
|
import com.google.gerrit.acceptance.UseSsh;
|
||||||
import org.eclipse.jgit.revwalk.RevCommit;
|
import org.eclipse.jgit.revwalk.RevCommit;
|
||||||
import org.eclipse.jgit.transport.RemoteRefUpdate;
|
import org.eclipse.jgit.transport.RemoteRefUpdate;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -29,6 +30,7 @@ import org.junit.Test;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
@NoHttpd
|
@NoHttpd
|
||||||
|
@UseSsh
|
||||||
public class BanCommitIT extends AbstractDaemonTest {
|
public class BanCommitIT extends AbstractDaemonTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -18,11 +18,13 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static com.google.common.truth.Truth.assert_;
|
import static com.google.common.truth.Truth.assert_;
|
||||||
|
|
||||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||||
|
import com.google.gerrit.acceptance.UseSsh;
|
||||||
import com.google.gerrit.reviewdb.client.Project;
|
import com.google.gerrit.reviewdb.client.Project;
|
||||||
import com.google.gerrit.server.project.ProjectState;
|
import com.google.gerrit.server.project.ProjectState;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@UseSsh
|
||||||
public class CreateProjectIT extends AbstractDaemonTest {
|
public class CreateProjectIT extends AbstractDaemonTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -21,6 +21,7 @@ import com.google.gerrit.acceptance.AbstractDaemonTest;
|
|||||||
import com.google.gerrit.acceptance.GcAssert;
|
import com.google.gerrit.acceptance.GcAssert;
|
||||||
import com.google.gerrit.acceptance.NoHttpd;
|
import com.google.gerrit.acceptance.NoHttpd;
|
||||||
import com.google.gerrit.acceptance.UseLocalDisk;
|
import com.google.gerrit.acceptance.UseLocalDisk;
|
||||||
|
import com.google.gerrit.acceptance.UseSsh;
|
||||||
import com.google.gerrit.common.data.GarbageCollectionResult;
|
import com.google.gerrit.common.data.GarbageCollectionResult;
|
||||||
import com.google.gerrit.reviewdb.client.Project;
|
import com.google.gerrit.reviewdb.client.Project;
|
||||||
import com.google.gerrit.server.git.GarbageCollection;
|
import com.google.gerrit.server.git.GarbageCollection;
|
||||||
@@ -34,6 +35,7 @@ import java.util.Arrays;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
@NoHttpd
|
@NoHttpd
|
||||||
|
@UseSsh
|
||||||
public class GarbageCollectionIT extends AbstractDaemonTest {
|
public class GarbageCollectionIT extends AbstractDaemonTest {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
|
@@ -23,6 +23,7 @@ import com.google.gerrit.acceptance.AbstractDaemonTest;
|
|||||||
import com.google.gerrit.acceptance.NoHttpd;
|
import com.google.gerrit.acceptance.NoHttpd;
|
||||||
import com.google.gerrit.acceptance.PushOneCommit;
|
import com.google.gerrit.acceptance.PushOneCommit;
|
||||||
import com.google.gerrit.acceptance.SshSession;
|
import com.google.gerrit.acceptance.SshSession;
|
||||||
|
import com.google.gerrit.acceptance.UseSsh;
|
||||||
import com.google.gerrit.extensions.api.changes.AddReviewerInput;
|
import com.google.gerrit.extensions.api.changes.AddReviewerInput;
|
||||||
import com.google.gerrit.extensions.api.changes.ReviewInput;
|
import com.google.gerrit.extensions.api.changes.ReviewInput;
|
||||||
import com.google.gerrit.extensions.client.Side;
|
import com.google.gerrit.extensions.client.Side;
|
||||||
@@ -36,6 +37,7 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@NoHttpd
|
@NoHttpd
|
||||||
|
@UseSsh
|
||||||
public class QueryIT extends AbstractDaemonTest {
|
public class QueryIT extends AbstractDaemonTest {
|
||||||
|
|
||||||
private static Gson gson = new Gson();
|
private static Gson gson = new Gson();
|
||||||
|
@@ -23,6 +23,7 @@ import com.google.gerrit.acceptance.AbstractDaemonTest;
|
|||||||
import com.google.gerrit.acceptance.GerritConfig;
|
import com.google.gerrit.acceptance.GerritConfig;
|
||||||
import com.google.gerrit.acceptance.NoHttpd;
|
import com.google.gerrit.acceptance.NoHttpd;
|
||||||
import com.google.gerrit.acceptance.PushOneCommit;
|
import com.google.gerrit.acceptance.PushOneCommit;
|
||||||
|
import com.google.gerrit.acceptance.UseSsh;
|
||||||
import com.google.gerrit.testutil.NoteDbMode;
|
import com.google.gerrit.testutil.NoteDbMode;
|
||||||
|
|
||||||
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
|
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
|
||||||
@@ -40,6 +41,7 @@ import java.util.Set;
|
|||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
@NoHttpd
|
@NoHttpd
|
||||||
|
@UseSsh
|
||||||
public class UploadArchiveIT extends AbstractDaemonTest {
|
public class UploadArchiveIT extends AbstractDaemonTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
|
@@ -0,0 +1,46 @@
|
|||||||
|
// Copyright (C) 2016 The Android Open Source Project
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package com.google.gerrit.testutil;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
|
|
||||||
|
import com.google.common.base.Enums;
|
||||||
|
import com.google.common.base.Strings;
|
||||||
|
|
||||||
|
public enum SshMode {
|
||||||
|
/** Tests annotated with UseSsh will be disabled. */
|
||||||
|
NO,
|
||||||
|
|
||||||
|
/** Tests annotated with UseSsh will be enabled. */
|
||||||
|
YES;
|
||||||
|
|
||||||
|
private static final String VAR = "GERRIT_USE_SSH";
|
||||||
|
|
||||||
|
public static SshMode get() {
|
||||||
|
String value = System.getenv(VAR);
|
||||||
|
if (Strings.isNullOrEmpty(value)) {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
value = value.toUpperCase();
|
||||||
|
SshMode mode = Enums.getIfPresent(SshMode.class, value).orNull();
|
||||||
|
checkArgument(mode != null,
|
||||||
|
"Invalid value for %s: %s", VAR, System.getenv(VAR));
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean useSsh() {
|
||||||
|
return get() == YES;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user