summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaša Živkov <zivkov@gmail.com>2021-03-12 15:32:57 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-03-12 15:32:57 +0000
commit39456fa732388f867bc3be693fed4852a6097bf4 (patch)
treef2466e372b16cb069250e19078dc28610d346701
parent36ffd21f48b1e483ac19a89f2c09dc0e01cf61ba (diff)
parentcda59e51e052667c917f7410d25a99f7a458dc18 (diff)
Merge changes If5e4876e,I37e57397 into stable-3.0
* changes: RepositorySizeQuotaIT: change try/catch to assertThrows Enforce repository size on pack rather than on object
-rw-r--r--java/com/google/gerrit/acceptance/InProcessProtocol.java2
-rw-r--r--java/com/google/gerrit/server/git/receive/AsyncReceiveCommits.java2
-rw-r--r--javatests/com/google/gerrit/acceptance/server/quota/RepositorySizeQuotaIT.java28
3 files changed, 12 insertions, 20 deletions
diff --git a/java/com/google/gerrit/acceptance/InProcessProtocol.java b/java/com/google/gerrit/acceptance/InProcessProtocol.java
index 69715a9cf8..83ed2020ee 100644
--- a/java/com/google/gerrit/acceptance/InProcessProtocol.java
+++ b/java/com/google/gerrit/acceptance/InProcessProtocol.java
@@ -337,7 +337,7 @@ class InProcessProtocol extends TestProtocol<Context> {
.project(req.project)
.availableTokens(REPOSITORY_SIZE_GROUP);
availableTokens.throwOnError();
- availableTokens.availableTokens().ifPresent(v -> rp.setMaxObjectSizeLimit(v));
+ availableTokens.availableTokens().ifPresent(rp::setMaxPackSizeLimit);
ImmutableList<PostReceiveHook> hooks =
ImmutableList.<PostReceiveHook>builder()
diff --git a/java/com/google/gerrit/server/git/receive/AsyncReceiveCommits.java b/java/com/google/gerrit/server/git/receive/AsyncReceiveCommits.java
index da2887f907..f49fbfdcff 100644
--- a/java/com/google/gerrit/server/git/receive/AsyncReceiveCommits.java
+++ b/java/com/google/gerrit/server/git/receive/AsyncReceiveCommits.java
@@ -327,7 +327,7 @@ public class AsyncReceiveCommits implements PreReceiveHook {
REPOSITORY_SIZE_GROUP, projectName);
throw new RuntimeException(e);
}
- availableTokens.availableTokens().ifPresent(v -> receivePack.setMaxObjectSizeLimit(v));
+ availableTokens.availableTokens().ifPresent(receivePack::setMaxPackSizeLimit);
}
/** Determine if the user can upload commits. */
diff --git a/javatests/com/google/gerrit/acceptance/server/quota/RepositorySizeQuotaIT.java b/javatests/com/google/gerrit/acceptance/server/quota/RepositorySizeQuotaIT.java
index 0814230e30..24c90fce32 100644
--- a/javatests/com/google/gerrit/acceptance/server/quota/RepositorySizeQuotaIT.java
+++ b/javatests/com/google/gerrit/acceptance/server/quota/RepositorySizeQuotaIT.java
@@ -15,9 +15,9 @@
package com.google.gerrit.acceptance.server.quota;
import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth.assert_;
import static com.google.gerrit.server.quota.QuotaGroupDefinitions.REPOSITORY_SIZE_GROUP;
import static com.google.gerrit.server.quota.QuotaResponse.ok;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
import static org.easymock.EasyMock.anyLong;
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
@@ -34,7 +34,7 @@ import com.google.gerrit.server.quota.QuotaResponse;
import com.google.inject.Module;
import java.util.Collections;
import org.easymock.EasyMock;
-import org.eclipse.jgit.api.errors.TooLargeObjectInPackException;
+import org.eclipse.jgit.api.errors.TooLargePackException;
import org.eclipse.jgit.api.errors.TransportException;
import org.junit.Before;
import org.junit.Test;
@@ -77,7 +77,7 @@ public class RepositorySizeQuotaIT extends AbstractDaemonTest {
@Test
public void pushWithAvailableTokens() throws Exception {
expect(quotaBackendWithResource.availableTokens(REPOSITORY_SIZE_GROUP))
- .andReturn(singletonAggregation(ok(276L)))
+ .andReturn(singletonAggregation(ok(277L)))
.times(2);
expect(quotaBackendWithResource.requestTokens(eq(REPOSITORY_SIZE_GROUP), anyLong()))
.andReturn(singletonAggregation(ok()));
@@ -98,15 +98,10 @@ public class RepositorySizeQuotaIT extends AbstractDaemonTest {
expect(quotaBackendWithUser.project(project)).andReturn(quotaBackendWithResource).anyTimes();
replay(quotaBackendWithResource);
replay(quotaBackendWithUser);
- try {
- pushCommit();
- assert_().fail("expected TooLargeObjectInPackException");
- } catch (TooLargeObjectInPackException e) {
- String msg = e.getMessage();
- assertThat(msg).contains("Object too large");
- assertThat(msg)
- .contains(String.format("Max object size limit is %d bytes.", availableTokens));
- }
+ assertThat(assertThrows(TooLargePackException.class, () -> pushCommit()).getMessage())
+ .contains(
+ String.format(
+ "Pack exceeds the limit of %d bytes, rejecting the pack", availableTokens));
verify(quotaBackendWithUser);
verify(quotaBackendWithResource);
}
@@ -120,12 +115,9 @@ public class RepositorySizeQuotaIT extends AbstractDaemonTest {
expect(quotaBackendWithUser.project(project)).andReturn(quotaBackendWithResource).anyTimes();
replay(quotaBackendWithResource);
replay(quotaBackendWithUser);
- try {
- pushCommit();
- assert_().fail("expected TransportException");
- } catch (TransportException e) {
- // TransportException has not much info about the cause
- }
+
+ assertThrows(TransportException.class, () -> pushCommit());
+
verify(quotaBackendWithUser);
verify(quotaBackendWithResource);
}