@@ -134,11 +134,11 @@ trait CometPlanStabilitySuite extends DisableAdaptiveExecutionSuite with TPCDSBa
134134 }
135135 }
136136
137- private def checkWithApproved (plan : SparkPlan , name : String , explain : String ): Unit = {
137+ private def checkWithApproved (plan : SparkPlan , name : String , actualExplain : String ): Unit = {
138138 val dir = getDirForTest(name)
139139 val tempDir = FileUtils .getTempDirectory
140140 val actualSimplified = getSimplifiedPlan(plan)
141- val foundMatch = isApproved(dir, actualSimplified, explain )
141+ val foundMatch = isApproved(dir, actualSimplified, actualExplain )
142142
143143 if (! foundMatch) {
144144 // show diff with last approved
@@ -148,24 +148,43 @@ trait CometPlanStabilitySuite extends DisableAdaptiveExecutionSuite with TPCDSBa
148148 val actualSimplifiedFile = new File (tempDir, s " $name.actual.simplified.txt " )
149149 val actualExplainFile = new File (tempDir, s " $name.actual.explain.txt " )
150150
151+ val simplifiedFile = new File (dir, " simplified.txt" )
151152 val approvedSimplified =
152- FileUtils .readFileToString(approvedSimplifiedFile, StandardCharsets .UTF_8 )
153+ FileUtils .readFileToString(simplifiedFile, StandardCharsets .UTF_8 )
154+ val explainFile = new File (dir, " explain.txt" )
155+ val approvedExplain = FileUtils .readFileToString(explainFile, StandardCharsets .UTF_8 )
156+
153157 // write out for debugging
154158 FileUtils .writeStringToFile(actualSimplifiedFile, actualSimplified, StandardCharsets .UTF_8 )
155- FileUtils .writeStringToFile(actualExplainFile, explain, StandardCharsets .UTF_8 )
156-
157- fail(s """
158- |Plans did not match:
159- |last approved simplified plan: ${approvedSimplifiedFile.getAbsolutePath}
160- |last approved explain plan: ${approvedExplainFile.getAbsolutePath}
161- |
162- | $approvedSimplified
163- |
164- |actual simplified plan: ${actualSimplifiedFile.getAbsolutePath}
165- |actual explain plan: ${actualExplainFile.getAbsolutePath}
166- |
167- | $actualSimplified
159+ FileUtils .writeStringToFile(actualExplainFile, actualExplain, StandardCharsets .UTF_8 )
160+
161+ if (approvedSimplified != actualSimplified) {
162+ fail(s """
163+ |Plans did not match:
164+ |last approved simplified plan: ${approvedSimplifiedFile.getAbsolutePath}
165+ |
166+ | $approvedSimplified
167+ |
168+ |actual simplified plan: ${actualSimplifiedFile.getAbsolutePath}
169+ |
170+ | $actualSimplified
171+ """ .stripMargin)
172+
173+ } else if (approvedExplain != actualExplain) {
174+ fail(s """
175+ |Plans did not match:
176+ |last approved explain plan: ${approvedExplainFile.getAbsolutePath}
177+ |
178+ | $approvedExplain
179+ |
180+ |actual explain plan: ${actualExplainFile.getAbsolutePath}
181+ |
182+ | $actualExplain
168183 """ .stripMargin)
184+
185+ } else {
186+ fail(" unreachable" )
187+ }
169188 }
170189 }
171190
0 commit comments