Samtools (htslib) integration testing #1120

Closed
jpdna opened this Issue Aug 19, 2016 · 3 comments

Comments

Projects
None yet
2 participants
@jpdna
Member

jpdna commented Aug 19, 2016

Need to add SAM/BAM/VCF round trip integration tests (htslib) to complement existing htsjdk based unit tests. As motivated by #1104

@jpdna jpdna changed the title from Samtools integration testing to Samtools (htslib) integration testing Aug 19, 2016

@jpdna jpdna self-assigned this Aug 19, 2016

@jpdna

This comment has been minimized.

Show comment
Hide comment
@jpdna

jpdna Aug 19, 2016

Member

Wanted to see if anyone has suggestions on three aspects of this before I get going on it:

1) How should we inform the test suite of where it can find samtools executable?
We could ask that a "SAMTOOLS_HOME" env variable be set and if test suite finds a working samtools there then those tests run, otherwise skipped with a warning output? Or - the test itself could download a samtools docker container, but then docker is needed. Method we use needs to work with Jenkins.

  1. Where should the intregration test code should go? One idea: test/scala/org/bdgenomics/adam/rdd/read/SamtoolsSuite.scala for the sam/bam

  2. Is it an ok approach to extend ADAMFunSuite for these samtools intergration tests just as we do for all the unit test suites?

Member

jpdna commented Aug 19, 2016

Wanted to see if anyone has suggestions on three aspects of this before I get going on it:

1) How should we inform the test suite of where it can find samtools executable?
We could ask that a "SAMTOOLS_HOME" env variable be set and if test suite finds a working samtools there then those tests run, otherwise skipped with a warning output? Or - the test itself could download a samtools docker container, but then docker is needed. Method we use needs to work with Jenkins.

  1. Where should the intregration test code should go? One idea: test/scala/org/bdgenomics/adam/rdd/read/SamtoolsSuite.scala for the sam/bam

  2. Is it an ok approach to extend ADAMFunSuite for these samtools intergration tests just as we do for all the unit test suites?

@fnothaft

This comment has been minimized.

Show comment
Hide comment
@fnothaft

fnothaft Aug 19, 2016

Member

Going out of order:

  1. Is it an ok approach to extend ADAMFunSuite for these samtools intergration tests just as we do for all the unit test suites?

That sounds good to me!

  1. How should we inform the test suite of where it can find samtools executable?

We could ask that a "SAMTOOLS_HOME" env variable be set and if test suite finds a working samtools there then those tests run, otherwise skipped with a warning output? Or - the test itself could download a samtools docker container, but then docker is needed. Method we use needs to work with Jenkins.

We'll want to tag all of these tests with some sort of an integration test tag. That said, I think that requiring Docker for the integration tests is A-OK. We'll be the main consumers of the integration test suite.

We'll also need to create a repo with integration test files, because these should be real life sized inputs.

  1. Where should the intregration test code should go? One idea: test/scala/org/bdgenomics/adam/rdd/read/SamtoolsSuite.scala for the sam/bam

I would probably put them in an org.bdgenomics.adam.integration package. This one would probably fit best in org.bdgenomics.adam.cli.integration, actually.

Member

fnothaft commented Aug 19, 2016

Going out of order:

  1. Is it an ok approach to extend ADAMFunSuite for these samtools intergration tests just as we do for all the unit test suites?

That sounds good to me!

  1. How should we inform the test suite of where it can find samtools executable?

We could ask that a "SAMTOOLS_HOME" env variable be set and if test suite finds a working samtools there then those tests run, otherwise skipped with a warning output? Or - the test itself could download a samtools docker container, but then docker is needed. Method we use needs to work with Jenkins.

We'll want to tag all of these tests with some sort of an integration test tag. That said, I think that requiring Docker for the integration tests is A-OK. We'll be the main consumers of the integration test suite.

We'll also need to create a repo with integration test files, because these should be real life sized inputs.

  1. Where should the intregration test code should go? One idea: test/scala/org/bdgenomics/adam/rdd/read/SamtoolsSuite.scala for the sam/bam

I would probably put them in an org.bdgenomics.adam.integration package. This one would probably fit best in org.bdgenomics.adam.cli.integration, actually.

@fnothaft

This comment has been minimized.

Show comment
Hide comment
@fnothaft

fnothaft Mar 3, 2017

Member

Closing this in favor of #1407.

Member

fnothaft commented Mar 3, 2017

Closing this in favor of #1407.

@fnothaft fnothaft closed this Mar 3, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment