drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-5842) Refactor and simplify the fragment, operator contexts for testing
Date Sat, 28 Oct 2017 05:39:00 GMT

    [ https://issues.apache.org/jira/browse/DRILL-5842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16223259#comment-16223259

ASF GitHub Bot commented on DRILL-5842:

Github user jinfengni commented on the issue:

    I understand the motivation of this PR is to refactor the various of "context" used in
drill, so that we could get rid of JMock in test. I'm a bit confused after reading the statement
that "we are not yet in a a position to replace the mocks with the test-time alternatives".
I thought that's the purpose of this PR, yet it does not demonstrate the benefit, after going
through big chunk of code change ?

> Refactor and simplify the fragment, operator contexts for testing
> -----------------------------------------------------------------
>                 Key: DRILL-5842
>                 URL: https://issues.apache.org/jira/browse/DRILL-5842
>             Project: Apache Drill
>          Issue Type: Improvement
>    Affects Versions: 1.12.0
>            Reporter: Paul Rogers
>            Assignee: Paul Rogers
>             Fix For: 1.12.0
> Drill's execution engine has a "fragment context" that provides state for a fragment
as a whole, and an "operator context" which provides state for a single operator. Historically,
these have both been concrete classes that make generous references to the Drillbit context,
and hence need a full Drill server in order to operate.
> Drill has historically made extensive use of system-level testing: build the entire server
and fire queries at it to test each component. Over time, we are augmenting that approach
with unit tests: the ability to test each operator (or parts of an operator) in isolation.
> Since each operator requires access to both the operator and fragment context, the fact
that the contexts depend on the overall server creates a large barrier to unit testing. An
earlier checkin started down the path of defining the contexts as interfaces that can have
different run-time and test-time implementations to enable testing.
> This ticket asks to refactor those interfaces: simplifying the operator context and introducing
an interface for the fragment context. New code will use these new interfaces, while older
code continues to use the concrete implementations. Over time, as operators are enhanced,
they can be modified to allow unit-level testing.

This message was sent by Atlassian JIRA

View raw message