[
https://issues.apache.org/jira/browse/IMPALA-7807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gabor Kaszab updated IMPALA-7807:
---------------------------------
Fix Version/s: Impala 3.2.0
> Analysis test fixture to enable deeper testing
> ----------------------------------------------
>
> Key: IMPALA-7807
> URL: https://issues.apache.org/jira/browse/IMPALA-7807
> Project: IMPALA
> Issue Type: Improvement
> Components: Frontend
> Affects Versions: Impala 3.0
> Reporter: Paul Rogers
> Assignee: Paul Rogers
> Priority: Minor
> Fix For: Impala 3.2.0
>
>
> The Impala front-end provides a number of JUnit tests such as
> {{ExprRewriteRulesTest}}. These tests verify rewrites by providing layers of
> functions that build up a query, analyze the query, run rewrite rules, and
> test one part of the result.
> The tests are fine as far as they go, but they do not cover all cases. For
> example, they tests rewrites in the {{SELECT}} clause, but not {{ORDER BY}}
> or {{GROUP BY}}. (Testing of those uncovered previously hidden bugs.) In some
> cases, we want to test rewrite rules in detail, but the existing tests only
> support a wholesale rewrite.
> Since the existing tests are function based, it is hard to inject new
> behavior somewhere in the process, for example, to test the {{WHERE}} clause
> rather than {{SELECT}} To do that, we need to copy the {{SELECT}} functions,
> and make changes to test {{WHERE}}.
> Since copying of code is generally an undesirable approach, a better approach
> is to use a "test fixture": a class that performs the required steps,
> maintains intermediate state for inspection, and acts as the foundation for
> various kinds of tests (such as the various clauses mentioned above.)
> In practice, all that is required is moving some code from functions on the
> test class to be methods on a fixture class, which also holds onto state that
> would otherwise be lost in function calls.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]