You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by Timothy Farkas <tf...@mapr.com> on 2018/04/10 03:02:32 UTC

Unit Testing Docs and [Discuss] Dev Docs location

Hi All,

I am wrapping up a unit testing doc here https://github.com/ilooner/drill/blob/DRILL-6249/docs/DevDocs.md which expands on the unit testing presentation here https://docs.google.com/presentation/d/1YwURHUQRwPYH6d9AU6sF-O_shOKMraMG6KZnRy0ePaM/edit?usp=sharing .

I'd also like to propose adding the unit testing documentation along with other developer docs to the Drill master repo itself as markdown documents in the ./docs folder. There are several

advantages to doing this:


  *   The markdown docs are rendered nicely on github and in your IDE through the use of a markdown plugin.
  *   You can link directly to source files inside a markdown doc with this strategy.
  *   The developer documentation is versioned and updated with the code.
  *   Developer's only have to deal with one repo for both code and documentation changes.


Other projects like Apache Apex, Apache Spark, Apache Kudu and others also utilize the markdown docs folder strategy. See here:

  *   https://github.com/apache/apex-malhar/tree/master/docs
  *   https://github.com/apache/spark/tree/master/docs
  *   <https://github.com/apache/spark/tree/master/docs> https://github.com/apache/kudu/tree/master/docs

Thanks,
Tim





Re: Unit Testing Docs and [Discuss] Dev Docs location

Posted by Paul Rogers <pa...@yahoo.com.INVALID>.
Hi Tim,

All the info on the wiki is public, so feel free to grab that which is useful. Would be happy to review the PR when ready. Once the information is moved, I'll change we Wiki to point to the new markdown doc within Drill source.

Thanks,

- Paul

 

    On Tuesday, April 10, 2018, 9:54:53 AM PDT, Timothy Farkas <tf...@mapr.com> wrote:  
 
 Thanks Paul, I'll try to incorporate your feedback, and I'll ask you to review when I open a PR. By the way, would it be possible to copy your unit testing docs from your wiki to the docs folder in the Drill repo as well? There is a lot of good information that people may be missing out on since they aren't aware of your wiki pages.

Thanks,
Tim

________________________________
From: Paul Rogers <pa...@yahoo.com.INVALID>
Sent: Monday, April 9, 2018 11:30:52 PM
To: dev@drill.apache.org
Subject: Re: Unit Testing Docs and [Discuss] Dev Docs location

Hi Tim,

Great idea! Anything to improve tests is a Good Thing. You have my vote.

FWIW, my notes on Drill testing are in [1]. The three "Updated" links are probably the most useful as they explain the test framework added over the last year or so. See also the "ExampleTest" class that shows how to use the new framework, including the schema builder, row set builder and so on.

I notice that this material is missing a good explanation about how to use the row set mechanisms to do operator-level tests. RowSetTest exercises the whole mechanism, but may not be the best example. TestResultSetLoaderProtocol is a bit better example of using the mechanisms to test something else. Might be worth creating a simple example in ExampleTest or a new ExampleOperatorTest.

I notice your material talks quite a bit about BaseTestQuery. That is a fine class, but the ClusterTest provides better control over boot and session/system options, allows faster reconfiguration of clusters, and supports using row sets to validate results. ClusterTest preserves the ability to use the TestBuilder and similar mechanisms from BaseTestQuery. The hope was that newer tests would use that new mechanism.

Thanks,

- Paul

 [1] https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_paul-2Drogers_drill_wiki_Testing-2DTips&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=gG2e3CKsIBYxZS5oZiEMu3YSWLgXrYBhwDSZmfCr--E&e=



    On Monday, April 9, 2018, 8:02:48 PM PDT, Timothy Farkas <tf...@mapr.com> wrote:

 Hi All,

I am wrapping up a unit testing doc here https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_ilooner_drill_blob_DRILL-2D6249_docs_DevDocs.md&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=3FApRzKadTDduVdaNPyBflsr83WtG8prZJUVD--wnjo&e= which expands on the unit testing presentation here https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.google.com_presentation_d_1YwURHUQRwPYH6d9AU6sF-2DO-5FshOKMraMG6KZnRy0ePaM_edit-3Fusp-3Dsharing&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=M8oFwPRBG_uMSPLL-xtVJ5LpnY0QTJFJuoJwqF80G40&e= .

I'd also like to propose adding the unit testing documentation along with other developer docs to the Drill master repo itself as markdown documents in the ./docs folder. There are several

advantages to doing this:


  *  The markdown docs are rendered nicely on github and in your IDE through the use of a markdown plugin.
  *  You can link directly to source files inside a markdown doc with this strategy.
  *  The developer documentation is versioned and updated with the code.
  *  Developer's only have to deal with one repo for both code and documentation changes.


Other projects like Apache Apex, Apache Spark, Apache Kudu and others also utilize the markdown docs folder strategy. See here:

  *  https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_apex-2Dmalhar_tree_master_docs&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=qqXHZQUNtngWe6yS77XuNBAXyu3ZgMsVkVTcW0Awiuc&e=
  *  https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_spark_tree_master_docs&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=mSTOXxPgLmmk37hCNDIWTQd6AMAY0hC6IE_vBib8IOI&e=
  *  <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_spark_tree_master_docs&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=mSTOXxPgLmmk37hCNDIWTQd6AMAY0hC6IE_vBib8IOI&e=> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_kudu_tree_master_docs&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=DlhIzDweneONTbD8aTBsIAvDG8ZtWNwkWS-dPqzNh_4&e=

Thanks,
Tim


TestResultSetLoaderProtocol
  

Re: Unit Testing Docs and [Discuss] Dev Docs location

Posted by Timothy Farkas <tf...@mapr.com>.
Thanks Paul, I'll try to incorporate your feedback, and I'll ask you to review when I open a PR. By the way, would it be possible to copy your unit testing docs from your wiki to the docs folder in the Drill repo as well? There is a lot of good information that people may be missing out on since they aren't aware of your wiki pages.

Thanks,
Tim

________________________________
From: Paul Rogers <pa...@yahoo.com.INVALID>
Sent: Monday, April 9, 2018 11:30:52 PM
To: dev@drill.apache.org
Subject: Re: Unit Testing Docs and [Discuss] Dev Docs location

Hi Tim,

Great idea! Anything to improve tests is a Good Thing. You have my vote.

FWIW, my notes on Drill testing are in [1]. The three "Updated" links are probably the most useful as they explain the test framework added over the last year or so. See also the "ExampleTest" class that shows how to use the new framework, including the schema builder, row set builder and so on.

I notice that this material is missing a good explanation about how to use the row set mechanisms to do operator-level tests. RowSetTest exercises the whole mechanism, but may not be the best example. TestResultSetLoaderProtocol is a bit better example of using the mechanisms to test something else. Might be worth creating a simple example in ExampleTest or a new ExampleOperatorTest.

I notice your material talks quite a bit about BaseTestQuery. That is a fine class, but the ClusterTest provides better control over boot and session/system options, allows faster reconfiguration of clusters, and supports using row sets to validate results. ClusterTest preserves the ability to use the TestBuilder and similar mechanisms from BaseTestQuery. The hope was that newer tests would use that new mechanism.

Thanks,

- Paul

 [1] https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_paul-2Drogers_drill_wiki_Testing-2DTips&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=gG2e3CKsIBYxZS5oZiEMu3YSWLgXrYBhwDSZmfCr--E&e=



    On Monday, April 9, 2018, 8:02:48 PM PDT, Timothy Farkas <tf...@mapr.com> wrote:

 Hi All,

I am wrapping up a unit testing doc here https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_ilooner_drill_blob_DRILL-2D6249_docs_DevDocs.md&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=3FApRzKadTDduVdaNPyBflsr83WtG8prZJUVD--wnjo&e= which expands on the unit testing presentation here https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.google.com_presentation_d_1YwURHUQRwPYH6d9AU6sF-2DO-5FshOKMraMG6KZnRy0ePaM_edit-3Fusp-3Dsharing&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=M8oFwPRBG_uMSPLL-xtVJ5LpnY0QTJFJuoJwqF80G40&e= .

I'd also like to propose adding the unit testing documentation along with other developer docs to the Drill master repo itself as markdown documents in the ./docs folder. There are several

advantages to doing this:


  *  The markdown docs are rendered nicely on github and in your IDE through the use of a markdown plugin.
  *  You can link directly to source files inside a markdown doc with this strategy.
  *  The developer documentation is versioned and updated with the code.
  *  Developer's only have to deal with one repo for both code and documentation changes.


Other projects like Apache Apex, Apache Spark, Apache Kudu and others also utilize the markdown docs folder strategy. See here:

  *  https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_apex-2Dmalhar_tree_master_docs&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=qqXHZQUNtngWe6yS77XuNBAXyu3ZgMsVkVTcW0Awiuc&e=
  *  https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_spark_tree_master_docs&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=mSTOXxPgLmmk37hCNDIWTQd6AMAY0hC6IE_vBib8IOI&e=
  *  <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_spark_tree_master_docs&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=mSTOXxPgLmmk37hCNDIWTQd6AMAY0hC6IE_vBib8IOI&e=> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_kudu_tree_master_docs&d=DwIFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=4eQVr8zB8ZBff-yxTimdOQ&m=om-0ZQ4YIVot5FqiZ_Gb_bfA0oOz-lfsZq_Vq0Rifbk&s=DlhIzDweneONTbD8aTBsIAvDG8ZtWNwkWS-dPqzNh_4&e=

Thanks,
Tim


TestResultSetLoaderProtocol


Re: Unit Testing Docs and [Discuss] Dev Docs location

Posted by Paul Rogers <pa...@yahoo.com.INVALID>.
Hi Tim,

Great idea! Anything to improve tests is a Good Thing. You have my vote.

FWIW, my notes on Drill testing are in [1]. The three "Updated" links are probably the most useful as they explain the test framework added over the last year or so. See also the "ExampleTest" class that shows how to use the new framework, including the schema builder, row set builder and so on.

I notice that this material is missing a good explanation about how to use the row set mechanisms to do operator-level tests. RowSetTest exercises the whole mechanism, but may not be the best example. TestResultSetLoaderProtocol is a bit better example of using the mechanisms to test something else. Might be worth creating a simple example in ExampleTest or a new ExampleOperatorTest.

I notice your material talks quite a bit about BaseTestQuery. That is a fine class, but the ClusterTest provides better control over boot and session/system options, allows faster reconfiguration of clusters, and supports using row sets to validate results. ClusterTest preserves the ability to use the TestBuilder and similar mechanisms from BaseTestQuery. The hope was that newer tests would use that new mechanism.

Thanks,

- Paul

 [1] https://github.com/paul-rogers/drill/wiki/Testing-Tips



    On Monday, April 9, 2018, 8:02:48 PM PDT, Timothy Farkas <tf...@mapr.com> wrote:  
 
 Hi All,

I am wrapping up a unit testing doc here https://github.com/ilooner/drill/blob/DRILL-6249/docs/DevDocs.md which expands on the unit testing presentation here https://docs.google.com/presentation/d/1YwURHUQRwPYH6d9AU6sF-O_shOKMraMG6KZnRy0ePaM/edit?usp=sharing .

I'd also like to propose adding the unit testing documentation along with other developer docs to the Drill master repo itself as markdown documents in the ./docs folder. There are several

advantages to doing this:


  *  The markdown docs are rendered nicely on github and in your IDE through the use of a markdown plugin.
  *  You can link directly to source files inside a markdown doc with this strategy.
  *  The developer documentation is versioned and updated with the code.
  *  Developer's only have to deal with one repo for both code and documentation changes.


Other projects like Apache Apex, Apache Spark, Apache Kudu and others also utilize the markdown docs folder strategy. See here:

  *  https://github.com/apache/apex-malhar/tree/master/docs
  *  https://github.com/apache/spark/tree/master/docs
  *  <https://github.com/apache/spark/tree/master/docs> https://github.com/apache/kudu/tree/master/docs

Thanks,
Tim


TestResultSetLoaderProtocol