Skip to content

Commit 38446b2

Browse files
committed
normalize column ref and plan_id num before assert equal
1 parent 08d4d6a commit 38446b2

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

‎dd-java-agent/instrumentation/spark/spark-common/src/testFixtures/groovy/datadog/trace/instrumentation/spark/AbstractSpark32SqlTest.groovy‎

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1310,7 +1310,13 @@ abstract class AbstractSpark32SqlTest extends InstrumentationSpecification {
13101310
}
13111311

13121312
def normalizedActual = normalizeNodeIds(actualParsed, actualToNormalized)
1313-
AbstractSpark24SqlTest.assertSQLPlanEquals(expectedParsed, normalizedActual, names[i])
1313+
1314+
// Normalize environment-dependent column ref IDs (#N, #NL) and plan_id values
1315+
// which vary across test runs and environments
1316+
def normalizedExpected = normalizeColumnRefs(expectedParsed)
1317+
normalizedActual = normalizeColumnRefs(normalizedActual)
1318+
1319+
AbstractSpark24SqlTest.assertSQLPlanEquals(normalizedExpected, normalizedActual, names[i])
13141320
}
13151321
}
13161322
}
@@ -1353,4 +1359,15 @@ abstract class AbstractSpark32SqlTest extends InstrumentationSpecification {
13531359
}
13541360
return plan
13551361
}
1362+
1363+
private static Object normalizeColumnRefs(Object plan) {
1364+
if (plan instanceof String) {
1365+
return plan.replaceAll(/#\d+L?/, '#N').replaceAll(/plan_id=\d+/, 'plan_id=N')
1366+
} else if (plan instanceof List) {
1367+
return plan.collect { normalizeColumnRefs(it) }
1368+
} else if (plan instanceof Map) {
1369+
return plan.collectEntries { k, v -> [k, normalizeColumnRefs(v)] }
1370+
}
1371+
return plan
1372+
}
13561373
}

0 commit comments

Comments
 (0)