You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Gabor Kaszab (JIRA)" <ji...@apache.org> on 2019/03/14 14:50:00 UTC

[jira] [Updated] (IMPALA-7807) Analysis test fixture to enable deeper testing

     [ 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: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org