
This reverts commit 0d157b3561
.
Reason for revert: full class name goes into H2 keys and values,
and possibly in other data structures in other deployments
(eg. at google), causing cache misses, warnings and/or more
cache dysfunction.
See also https://bugs.chromium.org/p/gerrit/issues/detail?id=7784&desc=2
Change-Id: I03851b8f783b93929e7dc27548fb75882b6bfe05
91 lines
2.8 KiB
Java
91 lines
2.8 KiB
Java
// Copyright (C) 2017 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.server.patch;
|
|
|
|
import static com.google.common.truth.Truth.assertThat;
|
|
|
|
import com.google.gerrit.reviewdb.client.Patch;
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.InputStream;
|
|
import java.io.ObjectInputStream;
|
|
import java.io.ObjectOutputStream;
|
|
import java.util.Arrays;
|
|
import java.util.Comparator;
|
|
import org.junit.Test;
|
|
|
|
public class PatchListTest {
|
|
@Test
|
|
public void fileOrder() {
|
|
String[] names = {
|
|
"zzz", "def/g", "/!xxx", "abc", Patch.MERGE_LIST, "qrx", Patch.COMMIT_MSG,
|
|
};
|
|
String[] want = {
|
|
Patch.COMMIT_MSG, Patch.MERGE_LIST, "/!xxx", "abc", "def/g", "qrx", "zzz",
|
|
};
|
|
|
|
Arrays.sort(
|
|
names,
|
|
0,
|
|
names.length,
|
|
new Comparator<String>() {
|
|
@Override
|
|
public int compare(String o1, String o2) {
|
|
return PatchList.comparePaths(o1, o2);
|
|
}
|
|
});
|
|
assertThat(names).isEqualTo(want);
|
|
}
|
|
|
|
@Test
|
|
public void fileOrderNoMerge() {
|
|
String[] names = {
|
|
"zzz", "def/g", "/!xxx", "abc", "qrx", Patch.COMMIT_MSG,
|
|
};
|
|
String[] want = {
|
|
Patch.COMMIT_MSG, "/!xxx", "abc", "def/g", "qrx", "zzz",
|
|
};
|
|
|
|
Arrays.sort(
|
|
names,
|
|
0,
|
|
names.length,
|
|
new Comparator<String>() {
|
|
@Override
|
|
public int compare(String o1, String o2) {
|
|
return PatchList.comparePaths(o1, o2);
|
|
}
|
|
});
|
|
assertThat(names).isEqualTo(want);
|
|
}
|
|
|
|
@Test
|
|
public void largeObjectTombstoneCanBeSerializedAndDeserialized() throws Exception {
|
|
// Serialize
|
|
byte[] serializedObject;
|
|
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
ObjectOutputStream objectStream = new ObjectOutputStream(baos)) {
|
|
objectStream.writeObject(new PatchListCacheImpl.LargeObjectTombstone());
|
|
serializedObject = baos.toByteArray();
|
|
assertThat(serializedObject).isNotNull();
|
|
}
|
|
// Deserialize
|
|
try (InputStream is = new ByteArrayInputStream(serializedObject);
|
|
ObjectInputStream ois = new ObjectInputStream(is)) {
|
|
assertThat(ois.readObject()).isInstanceOf(PatchListCacheImpl.LargeObjectTombstone.class);
|
|
}
|
|
}
|
|
}
|