[
https://issues.apache.org/jira/browse/SPARK-55443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Milicevic updated SPARK-55443:
------------------------------------
Description:
*Summary:*
Build testing infrastructure for Ops implementations
*Description:*
Create testing utilities that make it easy to verify Ops implementations and
enforce proper test coverage when new types are added through the framework.
*What this includes:*
* {{TypeOpsTestSuite}} base class for testing any Ops implementation -
provides standardized tests for each interface (physical type consistency,
external type roundtrip, format correctness, etc.)
* Compliance checking - verify that all required interface methods are
implemented and produce valid results
* Test templates for new types - copy-paste skeletons that a developer fills
in when adding a new type
* Guidelines for what must be tested per interface
*Example:*
{code:java}
abstract class TypeOpsTestSuite[T <: DataType] extends SparkFunSuite {
def createOps(dt: T): TypeOps
def sampleValues: Seq[(T, Any)]
test("PhyTypeOps: getPhysicalType is consistent") { ... }
test("ExternalTypeOps: roundtrip conversion") { ... }
test("FormatTypeOps: format produces valid string") { ... }
}{code}
*Note:*
The format and the exact design hasn't been fully thought out yet, so this is
not final. Things might change as we finalize previous phases.
*Design doc:*
Linked in the parent work item.
was:
*Summary:*
Build testing infrastructure for Ops implementations
*Description:*
Create testing utilities that make it easy to verify Ops implementations and
enforce proper test coverage when new types are added through the framework.
*What this includes:*
* {{TypeOpsTestSuite}} base class for testing any Ops implementation -
provides standardized tests for each interface (physical type consistency,
external type roundtrip, format correctness, etc.)
* Compliance checking - verify that all required interface methods are
implemented and produce valid results
* Test templates for new types - copy-paste skeletons that a developer fills
in when adding a new type
* Guidelines for what must be tested per interface
*Example:*
{code:java}
abstract class TypeOpsTestSuite[T <: DataType] extends SparkFunSuite {
def createOps(dt: T): TypeOps
def sampleValues: Seq[(T, Any)]
test("PhyTypeOps: getPhysicalType is consistent") { ... }
test("ExternalTypeOps: roundtrip conversion") { ... }
test("FormatTypeOps: format produces valid string") { ... }
}{code}
*Note:*
The format and the exact design hasn't been fully thought out yet, so this is
not final. Things might change as we finalize previous phases.
> Phase 2 - Testing Framework
> ---------------------------
>
> Key: SPARK-55443
> URL: https://issues.apache.org/jira/browse/SPARK-55443
> Project: Spark
> Issue Type: Sub-task
> Components: SQL
> Affects Versions: 4.2.0
> Reporter: David Milicevic
> Priority: Major
>
> *Summary:*
> Build testing infrastructure for Ops implementations
> *Description:*
> Create testing utilities that make it easy to verify Ops implementations and
> enforce proper test coverage when new types are added through the framework.
> *What this includes:*
> * {{TypeOpsTestSuite}} base class for testing any Ops implementation -
> provides standardized tests for each interface (physical type consistency,
> external type roundtrip, format correctness, etc.)
> * Compliance checking - verify that all required interface methods are
> implemented and produce valid results
> * Test templates for new types - copy-paste skeletons that a developer fills
> in when adding a new type
> * Guidelines for what must be tested per interface
> *Example:*
> {code:java}
> abstract class TypeOpsTestSuite[T <: DataType] extends SparkFunSuite {
> def createOps(dt: T): TypeOps
> def sampleValues: Seq[(T, Any)]
> test("PhyTypeOps: getPhysicalType is consistent") { ... }
> test("ExternalTypeOps: roundtrip conversion") { ... }
> test("FormatTypeOps: format produces valid string") { ... }
> }{code}
> *Note:*
> The format and the exact design hasn't been fully thought out yet, so this is
> not final. Things might change as we finalize previous phases.
> *Design doc:*
> Linked in the parent work item.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]