You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Paul Rogers (JIRA)" <ji...@apache.org> on 2016/12/07 04:01:59 UTC

[jira] [Commented] (DRILL-5112) Unit tests derived from PopUnitTestBase fail in IDE due to config errors

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

Paul Rogers commented on DRILL-5112:
------------------------------------

When run in an IDE, tests do not run with the Maven Surefire settings spelled out in {{drill-root/pom.xml}}:

{code}
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.17</version>
          <configuration>
            <argLine>-Xms512m -Xmx3g -Ddrill.exec.http.enabled=false
              -Ddrill.exec.sys.store.provider.local.write=false
              -Dorg.apache.drill.exec.server.Drillbit.system_options="org.apache.drill.exec.compile.ClassTransformer.scalar_replacement=on"
              -Ddrill.test.query.printing.silent=true
              -Ddrill.catastrophic_to_standard_out=true
{code}

As a result, many tests will fail, or do strange things, when run in an IDE. The workaround is to copy all the config settings to each launch profile in Eclipse.

The proposed solution is to migrate, for the tests described in this bug, to set the properties in the test code (base class) as is already done in tests deriving from {{BaseTestQuery}}.

Note that even doing so, the properties can be easily override via Maven in the future since, under the TypeSafe config system, properties on the command line override those set internally.

> Unit tests derived from PopUnitTestBase fail in IDE due to config errors
> ------------------------------------------------------------------------
>
>                 Key: DRILL-5112
>                 URL: https://issues.apache.org/jira/browse/DRILL-5112
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.8.0
>            Reporter: Paul Rogers
>            Assignee: Paul Rogers
>
> Drill provides a wide variety of unit tests. Many derive from {{PopUnitTestBase}} to test the Physical OPerators.
> The tests use a default configuration:
> {code}
> protected static DrillConfig CONFIG;
>   @BeforeClass
>   public static void setup() {
>     CONFIG = DrillConfig.create();
>   }
> {code}
> The default config tries to locate a {{drill-override.conf}} file somewhere on the class path.
> When run in Eclipse, no such file exists. Instead, no override file is found and defaults are used. The defaults allow a web server to be started.
> Many tests start multiple Drillbits using the above config. When this occurs, each tries to start a web server. The second one fails because the HTTP port is already in use.
> It is not clear how these tests succeed when run from Maven. Perhaps in that scenario the required file is somehow placed onto the class path? No such file exists in the source path.
> The solution is to initialize the config using the same settings as used in the {{BaseTestQuery}} test case: the unit tests then work fine in Eclipse.
> As an aside, having multiple ways to set up the Drill config (and other items) leads to much wasted time as each engineer must learn the quirks of each test hierarchy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)