Line data Source code
1 : // Copyright (C) 2017 The Android Open Source Project 2 : // 3 : // Licensed under the Apache License, Version 2.0 (the "License"); 4 : // you may not use this file except in compliance with the License. 5 : // You may obtain a copy of the License at 6 : // 7 : // http://www.apache.org/licenses/LICENSE-2.0 8 : // 9 : // Unless required by applicable law or agreed to in writing, software 10 : // distributed under the License is distributed on an "AS IS" BASIS, 11 : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 : // See the License for the specific language governing permissions and 13 : // limitations under the License. 14 : 15 : package com.google.gerrit.server.submit; 16 : 17 : import com.google.common.flogger.FluentLogger; 18 : import com.google.gerrit.entities.Change; 19 : import com.google.gerrit.server.change.TestSubmitInput; 20 : import com.google.gerrit.server.update.BatchUpdateOp; 21 : import com.google.gerrit.server.update.RepoContext; 22 : import java.io.IOException; 23 : import java.util.Queue; 24 : import org.eclipse.jgit.lib.ObjectId; 25 : 26 : class TestHelperOp implements BatchUpdateOp { 27 8 : private static final FluentLogger logger = FluentLogger.forEnclosingClass(); 28 : 29 : private final Change.Id changeId; 30 : private final TestSubmitInput input; 31 : 32 8 : TestHelperOp(Change.Id changeId, SubmitStrategy.Arguments args) { 33 8 : this.changeId = changeId; 34 8 : this.input = (TestSubmitInput) args.submitInput; 35 8 : } 36 : 37 : @Override 38 : public void updateRepo(RepoContext ctx) throws IOException { 39 8 : Queue<Boolean> q = input.generateLockFailures; 40 8 : if (q != null && !q.isEmpty() && q.remove()) { 41 8 : logger.atFine().log( 42 : "Adding bogus ref update to trigger lock failure, via change %s", changeId); 43 8 : ctx.addRefUpdate( 44 8 : ObjectId.fromString("deadbeefdeadbeefdeadbeefdeadbeefdeadbeef"), 45 8 : ObjectId.zeroId(), 46 8 : "refs/test/" + getClass().getSimpleName()); 47 : } 48 8 : } 49 : }