diff --git a/sql/core/src/test/scala/org/apache/spark/sql/ExpressionsSchemaSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/ExpressionsSchemaSuite.scala index dd72473f0ea6c..6d6cbf7508d1b 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/ExpressionsSchemaSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/ExpressionsSchemaSuite.scala @@ -136,19 +136,19 @@ class ExpressionsSchemaSuite extends QueryTest with SharedSparkSession { } } + val header = Seq( + s"", + "## Summary", + s" - Number of queries: ${outputs.size}", + s" - Number of expressions that missing example: ${missingExamples.size}", + s" - Expressions missing examples: ${missingExamples.mkString(",")}", + "## Schema of Built-in Functions", + "| Class name | Function name or alias | Query example | Output schema |", + "| ---------- | ---------------------- | ------------- | ------------- |" + ) + if (regenerateGoldenFiles) { - val missingExampleStr = missingExamples.mkString(",") - val goldenOutput = { - s"\n" + - "## Summary\n" + - s" - Number of queries: ${outputs.size}\n" + - s" - Number of expressions that missing example: ${missingExamples.size}\n" + - s" - Expressions missing examples: $missingExampleStr\n" + - "## Schema of Built-in Functions\n" + - "| Class name | Function name or alias | Query example | Output schema |\n" + - "| ---------- | ---------------------- | ------------- | ------------- |\n" + - outputBuffer.mkString("\n") - } + val goldenOutput = (header ++ outputBuffer).mkString("\n") val parent = resultFile.getParentFile if (!parent.exists()) { assert(parent.mkdirs(), "Could not create directory: " + parent) @@ -156,18 +156,19 @@ class ExpressionsSchemaSuite extends QueryTest with SharedSparkSession { stringToFile(resultFile, goldenOutput) } + val outputSize = outputs.size + val headerSize = header.size val expectedOutputs: Seq[QueryOutput] = { - val goldenOutput = fileToString(resultFile) - val lines = goldenOutput.split("\n") + val expectedGoldenOutput = fileToString(resultFile) + val lines = expectedGoldenOutput.split("\n") + val expectedSize = lines.size - // The header of golden file has one line, plus four lines of the summary and three - // lines of the header of schema table. - assert(lines.size == outputs.size + 8, - s"Expected ${outputs.size + 8} blocks in result file but got ${lines.size}. " + - s"Try regenerate the result files.") + assert(expectedSize == outputSize + headerSize, + s"Expected $expectedSize blocks in result file but got " + + s"${outputSize + headerSize}. Try regenerate the result files.") - Seq.tabulate(outputs.size) { i => - val segments = lines(i + 8).split('|') + Seq.tabulate(outputSize) { i => + val segments = lines(i + headerSize).split('|') QueryOutput( className = segments(1).trim, funcName = segments(2).trim, @@ -177,7 +178,8 @@ class ExpressionsSchemaSuite extends QueryTest with SharedSparkSession { } // Compare results. - assert(expectedOutputs.size == outputs.size, s"Number of queries not equals") + assert(expectedOutputs.size == outputSize, + "The number of queries not equals the number of expected queries.") outputs.zip(expectedOutputs).foreach { case (output, expected) => assert(expected.sql == output.sql, "SQL query did not match")