tree 32ef802777449ea3adb22cd64a302e98c2305b79
parent a008f3eb038b389732e0332e74665c07a852af87
author Nasser Grainawi <nasser@codeaurora.org> 1603769136 -0600
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 1603769136 +0000

Update git submodules

* Update plugins/replication from branch 'stable-2.16'
  to 4cb59f096b84f4369f62c8645db326c61826be79
  - Refactor Replication*IT tests to share a base class
    
    These classes have very similar setups and duplicate helper methods.
    Improve maintainability by reducing the duplication.
    
    ReplicationQueueIT is not modified because it is merged into
    ReplicationIT on stable-3.0.
    
    Change-Id: Ibc22ae4d0db2d09009f65c0e745f1095c67827ba
    
  - ReplicationIT: Add shouldMatch* e2e tests
    
    These new tests utilize creating a branch in a way that does not trigger
    replication so that scheduleFullSync() is responsible for replicating
    the update. In this way, the tests verify the destination receives the
    update because scheduleFullSync() matched the given URI.
    
    Change-Id: I4ae15d0301a308a12cbca3684915e89ca421e02f
    
  - ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT
    
    These tests are focused on verifying storage, so they belong in
    ReplicationStorageIT. Improve these tests to better verify storage
    correctness by switching the 'now' parameter to false such that
    replicationDelay is honored and follow the ReplicationStorageIT
    pattern using a very long delay. These improvements make these tests
    much more stable.
    
    The tests improve the ref matching slightly by comparing to the
    PushOne.ALL_REFS constant.
    
    Also removes the disableDeleteForTesting flag as there are no users of
    it now.
    
    A later change can add ReplicationIT e2e tests for these use cases.
    
    Change-Id: Iaa14a7429a40fb62325259efa1c7d7637deef95a
    
  - ReplicationStorageIT: Add shouldFire*ChangeRefs tests
    
    Copy the shouldFire*IncompleteUri tests as shouldFire*ChangeRefs to
    fill a gap in test coverage.
    
    Change-Id: Ia8df64a8574b776e6a9f7201c0862f1e6794687e
    
  - Move storage-based ITs into ReplicationStorageIT
    
    Tests in ReplicationStorageIT utilize very long replication delays such
    that tasks are never expected to complete during the test. This allows
    test writers to assume the task files are still there.
    
    Refactor tests from ReplicationIT into ReplicationStorageIT and focus
    them on verifying storage correctness. This is mostly a direct copy
    except that shouldFirePendingOnlyToStoredUri gets renamed and split into
    two tests. One that validates tasks are fired and another that validates
    replication completes to the expected destinations. This split is
    necessary because of the very long delay methodology mentioned above.
    
    Code sharing between ReplicationIT and ReplicationStorageIT will be
    improved in a later commit.
    
    Change-Id: I41179c20a10354953cff3628368dfd5f910cc940
    