Skip to content

Commit

Permalink
[SPARK-12971] Fix Hive tests which fail in Hadoop-2.3 SBT build
Browse files Browse the repository at this point in the history
ErrorPositionSuite and one of the HiveComparisonTest tests have been consistently failing on the Hadoop 2.3 SBT build (but on no other builds). I believe that this is due to test isolation issues (e.g. tests sharing state via the sets of temporary tables that are registered to TestHive).

This patch attempts to improve the isolation of these tests in order to address this issue.

Author: Josh Rosen <[email protected]>

Closes #10884 from JoshRosen/fix-failing-hadoop-2.3-hive-tests.
  • Loading branch information
JoshRosen committed Jan 24, 2016
1 parent cfdcef7 commit f400460
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,34 @@ package org.apache.spark.sql.hive

import scala.util.Try

import org.scalatest.BeforeAndAfter
import org.scalatest.BeforeAndAfterEach

import org.apache.spark.sql.{AnalysisException, QueryTest}
import org.apache.spark.sql.catalyst.parser.ParseDriver
import org.apache.spark.sql.catalyst.util.quietly
import org.apache.spark.sql.hive.test.TestHiveSingleton

class ErrorPositionSuite extends QueryTest with TestHiveSingleton with BeforeAndAfter {
class ErrorPositionSuite extends QueryTest with TestHiveSingleton with BeforeAndAfterEach {
import hiveContext.implicits._

before {
override protected def beforeEach(): Unit = {
super.beforeEach()
if (sqlContext.tableNames().contains("src")) {
sqlContext.dropTempTable("src")
}
Seq((1, "")).toDF("key", "value").registerTempTable("src")
Seq((1, 1, 1)).toDF("a", "a", "b").registerTempTable("dupAttributes")
}

override protected def afterEach(): Unit = {
try {
sqlContext.dropTempTable("src")
sqlContext.dropTempTable("dupAttributes")
} finally {
super.afterEach()
}
}

positionTest("ambiguous attribute reference 1",
"SELECT a from dupAttributes", "a")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,11 @@ abstract class HiveComparisonTest
""".stripMargin
})

super.afterAll()
try {
TestHive.reset()
} finally {
super.afterAll()
}
}

protected def prepareAnswer(
Expand Down

0 comments on commit f400460

Please sign in to comment.