cassandra-pr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ifesdjeen <...@git.apache.org>
Subject [GitHub] cassandra pull request #276: Repair job tests
Date Fri, 05 Oct 2018 09:53:36 GMT
Github user ifesdjeen commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/276#discussion_r222952584
  
    --- Diff: test/unit/org/apache/cassandra/repair/RepairJobTest.java ---
    @@ -0,0 +1,569 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you 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 org.apache.cassandra.repair;
    +
    +import java.net.UnknownHostException;
    +import java.util.Arrays;
    +import java.util.Collection;
    +import java.util.HashMap;
    +import java.util.HashSet;
    +import java.util.List;
    +import java.util.Map;
    +import java.util.Set;
    +import java.util.UUID;
    +import java.util.function.Predicate;
    +
    +import com.google.common.collect.Sets;
    +import org.junit.AfterClass;
    +import org.junit.Assert;
    +import org.junit.Test;
    +
    +import org.apache.cassandra.config.DatabaseDescriptor;
    +import org.apache.cassandra.dht.ByteOrderedPartitioner;
    +import org.apache.cassandra.dht.IPartitioner;
    +import org.apache.cassandra.dht.Range;
    +import org.apache.cassandra.dht.Token;
    +import org.apache.cassandra.locator.InetAddressAndPort;
    +import org.apache.cassandra.streaming.PreviewKind;
    +import org.apache.cassandra.utils.ByteBufferUtil;
    +import org.apache.cassandra.utils.FBUtilities;
    +import org.apache.cassandra.utils.MerkleTree;
    +import org.apache.cassandra.utils.MerkleTrees;
    +
    +import static org.junit.Assert.assertEquals;
    +import static org.junit.Assert.assertFalse;
    +import static org.junit.Assert.assertNull;
    +import static org.junit.Assert.assertTrue;
    +
    +public class RepairJobTest
    +{
    +    private static final IPartitioner PARTITIONER = ByteOrderedPartitioner.instance;
    +
    +    static InetAddressAndPort addr1;
    +    static InetAddressAndPort addr2;
    +    static InetAddressAndPort addr3;
    +    static InetAddressAndPort addr4;
    +    static InetAddressAndPort addr5;
    +
    +    static Range<Token> range1 = range(0, 1);
    +    static Range<Token> range2 = range(2, 3);
    +    static Range<Token> range3 = range(4, 5);
    +    static RepairJobDesc desc = new RepairJobDesc(UUID.randomUUID(), UUID.randomUUID(),
"ks", "cf", Arrays.asList());
    +
    +    @AfterClass
    +    public static void reset()
    +    {
    +        FBUtilities.reset();
    +    }
    +
    +    static
    +    {
    +        try
    +        {
    +            addr1 = InetAddressAndPort.getByName("127.0.0.1");
    +            addr2 = InetAddressAndPort.getByName("127.0.0.2");
    +            addr3 = InetAddressAndPort.getByName("127.0.0.3");
    +            addr4 = InetAddressAndPort.getByName("127.0.0.4");
    +            addr5 = InetAddressAndPort.getByName("127.0.0.5");
    +            DatabaseDescriptor.setBroadcastAddress(addr1.address);
    +        }
    +        catch (UnknownHostException e)
    +        {
    +            e.printStackTrace();
    +        }
    +    }
    +
    +    @Test
    +    public void testCreateStandardSyncTasks()
    +    {
    +        testCreateStandardSyncTasks(false);
    +    }
    +
    +    @Test
    +    public void testCreateStandardSyncTasksPullRepair()
    +    {
    +        testCreateStandardSyncTasks(true);
    +    }
    +
    +    public static void testCreateStandardSyncTasks(boolean pullRepair)
    +    {
    +        List<TreeResponse> treeResponses = Arrays.asList(treeResponse(addr1, range1,
"same",      range2, "same", range3, "same"),
    +                                                         treeResponse(addr2, range1,
"different", range2, "same", range3, "different"),
    +                                                         treeResponse(addr3, range1,
"same",      range2, "same", range3, "same"));
    +
    +        Map<SyncNodePair, SyncTask> tasks = toMap(RepairJob.createStandardSyncTasks(desc,
    +                                                                                    treeResponses,
    +                                                                                    addr1,
// local
    +                                                                                    noTransient(),
// transient
    +                                                                                    false,
    +                                                                                    pullRepair,
    +                                                                                    PreviewKind.ALL));
    +
    +        Assert.assertEquals(2, tasks.size());
    +
    +        SyncTask task = tasks.get(pair(addr1, addr2));
    +        Assert.assertTrue(task.isLocal());
    +        Assert.assertTrue(((LocalSyncTask) task).requestRanges);
    +        Assert.assertEquals(!pullRepair, ((LocalSyncTask) task).transferRanges);
    +        Assert.assertEquals(Arrays.asList(range1, range3), task.rangesToSync);
    +
    +        task = tasks.get(pair(addr2, addr3));
    +        Assert.assertFalse(task.isLocal());
    +        Assert.assertTrue(task instanceof SymmetricRemoteSyncTask);
    +        Assert.assertEquals(Arrays.asList(range1, range3), task.rangesToSync);
    +
    +        Assert.assertNull(tasks.get(pair(addr1, addr3)));
    +    }
    +
    +    @Test
    +    public void testStanardSyncTransient()
    --- End diff --
    
    Thank you for spotting 


---

---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org


Mime
View raw message