Hi Aditya, (1) There are a currently a few different ways to target a specific test or subset of tests.
If for example tests were organized like the current system tests, where suites are grouped by directory, you could run cd <system_test_dir> ducktape replication_testsuite/ You can also target tests in a particular file (ducktape <path_to_file>), all tests in a test class (ducktape <path_to_file>::<test_class>), or a particular test method in a class (ducktape <path_to_file>::<test_class>.<test_method>) (2) ducktape runs on a vagrant cluster by parsing the information returned by the "vagrant ssh-config" command into JSON configuration used by the JsonCluster class, so in that sense we are already using the JSON flavor. I see a few potential challenges, but nothing too bad. - There may be some work involved in getting ssh configs right - A couple assumptions about where files are deployed on remote machines are baked into some of the Service classes, so some minor refactoring may be needed to make this a little more general. This would be a good thing. In any case, we're happy to help out/take pull requests on ducktape etc. Best, Geoff On Thu, Jun 11, 2015 at 10:13 AM, Aditya Auradkar < aaurad...@linkedin.com.invalid> wrote: > Hi Geoffrey, > > Thanks for the writeup. Couple of questions: > - Is it possible to configure suites using ducktape? For example: assume > all the tests in system_tests have been migrated to ducktape. Can I run a > subset of all tests grouped by functional areas i.e. replication, broker > failure etc. > > - Ducktape allows us to run tests on a vagrant cluster or on a static > cluster configured via JSON. Once ported to ducktape, can we very easily > run the existing system tests in both flavors? > > Thanks, > Aditya > > ________________________________________ > From: Geoffrey Anderson [ge...@confluent.io] > Sent: Monday, June 08, 2015 10:56 PM > To: dev@kafka.apache.org > Subject: Re: [DISCUSS] KIP-25 System test improvements > > Hi KIP-25 thread, > > I consolidated some of the questions from this thread and elsewhere. > > Q: Can we see a map of what system-test currently tests, which ones we want > to replace and JIRAs for replacing? > A: Initial draft here: > > https://cwiki.apache.org/confluence/display/KAFKA/Roadmap+-+port+existing+system+tests > > Q: Will ducktape be maintained separately as a github repo? > A: Yes https://github.com/confluentinc/ducktape > > Q: How easy is viewing the test results and logs, how will test output be > structured? > A: Hierarchical structure as outlined here: > https://github.com/confluentinc/ducktape/wiki/Design-overview#output > > Q: Does it support code coverage? If not, how easy/ difficult would it be > to support? > A: It does not, and we have no immediate plans to support this. Difficulty > unclear. > > Q: It would be nice if each Kafka version that we release will also > have a separate "tests" artifact that users can download, untar and easily > run against a Kafka cluster of the same version. > A: This seems reasonable and not too much extra work. Definitely open to > discussion on this. > > Q: Why not share running services across multiple tests? > A: Prefer to optimize for simplicity and correctness over what might be a > questionable improvement in run-time. > > Q: Are regressions - in the road map? > A: yes > > Q: Are Jepsen style tests involving network failures in the road map? > A: yes > > Thanks much, > Geoff > > > > On Mon, Jun 8, 2015 at 4:55 PM, Geoffrey Anderson <ge...@confluent.io> > wrote: > > > Hi Gwen, > > > > I don't see any problem with this as long as we're convinced there's a > > good use case, which seems to be true. > > > > Cheers, > > Geoff > > > > On Thu, Jun 4, 2015 at 5:20 PM, Gwen Shapira <gshap...@cloudera.com> > > wrote: > > > >> Not completely random places :) > >> People may use Cloudera / HWX distributions which include Kafka, but > want > >> to verify that these bits match a specific upstream release. > >> > >> I think having the tests separately will be useful for this. In this > case, > >> finding the tests are not a big issue - we'll add a download link :) > >> > >> On Thu, Jun 4, 2015 at 5:00 PM, Jiangjie Qin <j...@linkedin.com.invalid > > > >> wrote: > >> > >> > Hey Gwen, > >> > > >> > Currently the test and code are downloaded at the same time. > Supposedly > >> > the tests in the same repository should cover match the code. > >> > Are you saying people downloaded a release from some random place and > >> want > >> > to verify it? If that is the case, does that mean people still need to > >> > find the correct place to download the right test artifact? > >> > > >> > Thanks, > >> > > >> > Jiangjie (Becket) Qin > >> > > >> > > >> > > >> > On 6/4/15, 4:29 PM, "Gwen Shapira" <gshap...@cloudera.com> wrote: > >> > > >> > >Hi, > >> > > > >> > >Reviving the discussion a bit :) > >> > > > >> > >I think it will be nice if each Kafka version that we release will > also > >> > >have a separate "tests" artifact that users can download, untar and > >> easily > >> > >run against a Kafka cluster of the same version. > >> > > > >> > >The idea is that if someone downloads packages that claim to contain > >> > >something of a specific Kafka version (i.e. Kafka 0.8.2.0 + patches), > >> > >users > >> > >can easily download the tests and verify that it indeed passes the > >> tests > >> > >for this version and therefore behaves the way this version is > >> expected to > >> > >behave. > >> > > > >> > >Does it make sense? > >> > > > >> > >Gwen > >> > > > >> > >On Thu, May 21, 2015 at 3:26 PM, Geoffrey Anderson < > ge...@confluent.io > >> > > >> > >wrote: > >> > > > >> > >> Hi Ashish, > >> > >> > >> > >> Looks like Ewen already hit the main points, but a few additions: > >> > >> > >> > >> 1. ducktape repo is here: https://github.com/confluentinc/ducktape > >> > >> ducktape itself will be pip installable in the near future, and > Kafka > >> > >> system tests will be able to depend on a particular version of > >> ducktape. > >> > >> > >> > >> 2. The reporting is nothing fancy. We're definitely open to > >> feedback, > >> > >>but > >> > >> it consists of: > >> > >> - top level summary of the test run (simple PASS/FAIL for each > test) > >> > >> - top level info and debug logs > >> > >> - per-test info and debug logs > >> > >> - per-test "service" logs gathered from each service used in the > >> test. > >> > >>For > >> > >> example, if your test pulls up a Kafka cluster with 5 brokers, the > >> end > >> > >> result will have the Kafka logs from each of those 5 machines. > >> > >> > >> > >> Cheers, > >> > >> Geoff > >> > >> > >> > >> On Thu, May 21, 2015 at 3:15 PM, Ewen Cheslack-Postava > >> > >><e...@confluent.io> > >> > >> wrote: > >> > >> > >> > >> > Ashish, > >> > >> > > >> > >> > 1. That was the plan. We put some effort into cleanly separating > >> the > >> > >> > framework so it would be reusable across many projects. > >> > >> > 2. I think you're seeing a test in progress where the final > report > >> > >>hasn't > >> > >> > been created yet. If you visit one of the older ones you'll see > it > >> > >>has a > >> > >> > landing page with links: > >> > >> > http://testing.confluent.io/confluent_platform/2015-05-20--001/ > >> > >> Apparently > >> > >> > we need to adjust when we update the 'latest' symlink. The logs > >> that > >> > >>are > >> > >> > collected for tests are configurable, and service implementations > >> > >>include > >> > >> > sane defaults (so, e.g., you will always get the normal log file > >> for > >> > >> Kafka, > >> > >> > but only get the data files if the test asks for them). > >> > >> > 3. No code coverage support. Haven't looked into it, so I > couldn't > >> > >> comment > >> > >> > on how hard it would be to add. > >> > >> > > >> > >> > -Ewen > >> > >> > > >> > >> > On Thu, May 21, 2015 at 2:38 PM, Ashish Singh < > asi...@cloudera.com > >> > > >> > >> wrote: > >> > >> > > >> > >> > > Geoffrey, > >> > >> > > > >> > >> > > This looks great! > >> > >> > > > >> > >> > > A few questions. > >> > >> > > 1. Will ducktape be maintained separately as a github repo? > >> > >> > > 2. How easy is viewing the test results and logs. The link in > >> KIP, > >> > >> > > http://testing.confluent.io/confluent_platform/latest/, lists > a > >> > >>bunch > >> > >> of > >> > >> > > files and dirs. Could you add to KIP how the result and logs > for > >> the > >> > >> > tests > >> > >> > > will be organized. > >> > >> > > 3. Does it support code coverage? If not, how easy/ difficult > >> would > >> > >>it > >> > >> > be? > >> > >> > > > >> > >> > > On Thu, May 21, 2015 at 2:03 PM, Geoffrey Anderson > >> > >><ge...@confluent.io > >> > >> > > >> > >> > > wrote: > >> > >> > > > >> > >> > > > Great, I'll work on putting together a more detailed map of > >> this > >> > >> > > > replacement process. > >> > >> > > > > >> > >> > > > On Thu, May 21, 2015 at 11:13 AM, Gwen Shapira < > >> > >> gshap...@cloudera.com> > >> > >> > > > wrote: > >> > >> > > > > >> > >> > > > > Love this idea :) > >> > >> > > > > > >> > >> > > > > I took a look at Ducktape API and it looks like a good fit > - > >> > >>clean > >> > >> > API, > >> > >> > > > > extensible, easy to use and powerful enough for our > use-case. > >> > >> > > > > > >> > >> > > > > Something I'd like to see as part of the KIP is a map of > what > >> > >> > > system-test > >> > >> > > > > currently tests, which ones we want to replace and a JIRA > for > >> > >> > replacing > >> > >> > > > > (possibly one for each group of tests). > >> > >> > > > > Basically, I know we all want to use the new system for new > >> test > >> > >> > cases > >> > >> > > > > (upgrades, etc), but I really want to make sure we don't > get > >> > >>stuck > >> > >> > with > >> > >> > > > > both systems forever. > >> > >> > > > > > >> > >> > > > > Gwen > >> > >> > > > > > >> > >> > > > > On Thu, May 21, 2015 at 9:01 PM, Geoffrey Anderson < > >> > >> > ge...@confluent.io > >> > >> > > > > >> > >> > > > > wrote: > >> > >> > > > > > >> > >> > > > > > Hi, > >> > >> > > > > > > >> > >> > > > > > Just kicking off the discussion thread on KIP-25 > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > >> > >> > > > > >> > >> > > > >> > >> > > >> > >> > >> > >> > >> > > >> > https://cwiki.apache.org/confluence/display/KAFKA/KIP+-+25+System+test+im > >> > >>provements > >> > >> > > > > > > >> > >> > > > > > Thanks, > >> > >> > > > > > Geoff > >> > >> > > > > > > >> > >> > > > > > >> > >> > > > > >> > >> > > > >> > >> > > > >> > >> > > > >> > >> > > -- > >> > >> > > > >> > >> > > Regards, > >> > >> > > Ashish > >> > >> > > > >> > >> > > >> > >> > > >> > >> > > >> > >> > -- > >> > >> > Thanks, > >> > >> > Ewen > >> > >> > > >> > >> > >> > > >> > > >> > > > > >