Github user efimpoberezkin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/20983#discussion_r180203421
  
    --- Diff: 
sql/core/src/test/scala/org/apache/spark/sql/streaming/continuous/EpochCoordinatorSuite.scala
 ---
    @@ -0,0 +1,202 @@
    +/*
    + * 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.spark.sql.streaming.continuous
    +
    +import org.mockito.InOrder
    +import org.mockito.Matchers.{any, eq => eqTo}
    +import org.mockito.Mockito._
    +import org.scalatest.BeforeAndAfterEach
    +import org.scalatest.mockito.MockitoSugar
    +
    +import org.apache.spark._
    +import org.apache.spark.rpc.RpcEndpointRef
    +import org.apache.spark.sql.execution.streaming.continuous._
    +import org.apache.spark.sql.sources.v2.reader.streaming.{ContinuousReader, 
PartitionOffset}
    +import org.apache.spark.sql.sources.v2.writer.WriterCommitMessage
    +import org.apache.spark.sql.sources.v2.writer.streaming.StreamWriter
    +import org.apache.spark.sql.test.SharedSparkSession
    +
    +class EpochCoordinatorSuite
    +  extends SparkFunSuite
    +    with SharedSparkSession
    +    with MockitoSugar
    +    with BeforeAndAfterEach {
    +
    +  private var epochCoordinator: RpcEndpointRef = _
    +
    +  private var writer: StreamWriter = _
    +  private var query: ContinuousExecution = _
    +  private var orderVerifier: InOrder = _
    +
    +  private val startEpoch = 1L
    +
    +  override def beforeEach(): Unit = {
    +    val reader = mock[ContinuousReader]
    +    writer = mock[StreamWriter]
    +    query = mock[ContinuousExecution]
    +    orderVerifier = inOrder(writer, query)
    +
    +    epochCoordinator
    +      = EpochCoordinatorRef.create(writer, reader, query, "test", 
startEpoch, spark, SparkEnv.get)
    +  }
    +
    +  override def afterEach(): Unit = {
    +    SparkEnv.get.rpcEnv.stop(epochCoordinator)
    +  }
    +
    +  test("single epoch") {
    +    setWriterPartitions(3)
    +    setReaderPartitions(2)
    +
    +    commitPartitionEpoch(0, startEpoch)
    +    commitPartitionEpoch(1, startEpoch)
    +    commitPartitionEpoch(2, startEpoch)
    +    reportPartitionOffset(0, startEpoch)
    +    reportPartitionOffset(1, startEpoch)
    +
    +    // Here and in subsequent tests this is called to make a synchronous 
call to EpochCoordinator
    +    // so that mocks would have been acted upon by the time verification 
happens
    +    makeSynchronousCall()
    +
    +    verifyCommit(startEpoch)
    +  }
    +
    +  test("consequent epochs, messages for epoch (k + 1) arrive after 
messages for epoch k") {
    +    setWriterPartitions(2)
    +    setReaderPartitions(2)
    +
    +    val epochs = startEpoch to (startEpoch + 1)
    --- End diff --
    
    I agree that it would be more readable, however the fact that we test for 
the start epoch first might be not as obvious then since it'd be hardcoded in 
before. Still pretty obvious though I guess.. and probably there will be no 
need to change start epoch in tests so hardcoding it is fine, and readability 
would increase. Will change this


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to