Skip to content
Snippets Groups Projects
Commit f4004601 authored by Josh Rosen's avatar Josh Rosen
Browse files

[SPARK-12971] Fix Hive tests which fail in Hadoop-2.3 SBT build

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 <joshrosen@databricks.com>

Closes #10884 from JoshRosen/fix-failing-hadoop-2.3-hive-tests.
parent cfdcef70
No related branches found
No related tags found
No related merge requests found
......@@ -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")
......
......@@ -150,7 +150,11 @@ abstract class HiveComparisonTest
""".stripMargin
})
super.afterAll()
try {
TestHive.reset()
} finally {
super.afterAll()
}
}
protected def prepareAnswer(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment