Return-Path: X-Original-To: apmail-drill-issues-archive@minotaur.apache.org Delivered-To: apmail-drill-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 17BBF195AF for ; Wed, 20 Apr 2016 18:10:28 +0000 (UTC) Received: (qmail 83855 invoked by uid 500); 20 Apr 2016 18:10:26 -0000 Delivered-To: apmail-drill-issues-archive@drill.apache.org Received: (qmail 83639 invoked by uid 500); 20 Apr 2016 18:10:26 -0000 Mailing-List: contact issues-help@drill.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@drill.apache.org Delivered-To: mailing list issues@drill.apache.org Received: (qmail 83487 invoked by uid 99); 20 Apr 2016 18:10:26 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 Apr 2016 18:10:26 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id EA28F2C1F77 for ; Wed, 20 Apr 2016 18:10:25 +0000 (UTC) Date: Wed, 20 Apr 2016 18:10:25 +0000 (UTC) From: "Jason Altekruse (JIRA)" To: issues@drill.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Issue Comment Deleted] (DRILL-4437) Implement framework for testing operators in isolation MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/DRILL-4437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Altekruse updated DRILL-4437: ----------------------------------- Comment: was deleted (was: d93a3633815ed1c7efd6660eae62b7351a2c9739) > Implement framework for testing operators in isolation > ------------------------------------------------------ > > Key: DRILL-4437 > URL: https://issues.apache.org/jira/browse/DRILL-4437 > Project: Apache Drill > Issue Type: Test > Components: Tools, Build & Test > Reporter: Jason Altekruse > Assignee: Jason Altekruse > Fix For: 1.7.0 > > > Most of the tests written for Drill are end-to-end. We spin up a full instance of the server, submit one or more SQL queries and check the results. > While integration tests like this are useful for ensuring that all features are guaranteed to not break end-user functionality overuse of this approach has caused a number of pain points. > Overall the tests end up running a lot of the exact same code, parsing and planning many similar queries. > Creating consistent reproductions of issues, especially edge cases found in clustered environments can be extremely difficult. Even the simpler case of testing cases where operators are able to handle a particular series of incoming batches of records has required hacks like generating large enough files so that the scanners happen to break them up into separate batches. These tests are brittle as they make assumptions about how the scanners will work in the future. An example of when this could break, we might do perf evaluation to find out we should be producing larger batches in some cases. Existing tests that are trying to test multiple batches by producing a few more records than the current threshold for batch size would not be testing the same code paths. > We need to make more parts of the system testable without initializing the entire Drill server, as well as making the different internal settings and state of the server configurable for tests. > This is a first effort to enable testing the physical operators in Drill by mocking the components of the system necessary to enable operators to initialize and execute. -- This message was sent by Atlassian JIRA (v6.3.4#6332)