Skip to content
Test Framework for Apache Drill
Eiffel E q OpenEdge ABL TSQL HiveQL Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Added the Framework version check before the test runs (#574) Apr 13, 2019 Update Jun 28, 2018 Update and Create (#476) Jun 29, 2018
after-run.sql Increase planner.memory.max_query_memory_per_node (#298) Jul 23, 2017
before-run.sql Update before-run.sql (#468) Jun 15, 2018

Test Framework for Apache Drill

Test Framework for SQL on Hadoop technologies. Currently supports Apache Drill, a schema-free SQL query engine for Hadoop, NoSQL and cloud storage.

The framework is built for regression, integration & sanity testing. Includes test coverage (with baselines) for core Drill functionality, and supported features. And are used by the Apache Drill community for pre-commit regression and part of the release criteria.


  1. The test framework requires a distributed file system such as HDFS or MapR-FS to be configured. Some of the tests can also be run against a local file system. By default, it's configured to run against MapR-FS. You can change the default behavior by modifying conf/core-site.xml. Refer to conf/core-site.xml.example for settings.
  2. To run all tests, Hive and HBase needs to be installed and running. To exclude Hive and HBase tests, please refer to the example in the Execute Tests section.
  3. The test framework should be run on a Drill cluster node. Refer to Drill documentation for details on how to setup Drill. It can also be run on a client node with additional configuration required.
  4. Cluster information are set in the conf/ file. This is the main configuration file for the framework. It needs to be modified with local cluster info before compile the framework and run tests.

Build Project

To begin using the test framework, you need to build the project and download dependent datasets (configured in pom.xml).

git clone
cd drill-test-framework
bin/build_framework -Pdownload

If you've already downloaded the datasets previously, you can simply skip the download.

Execute Tests

In the root directory of your repository, execute the following command to run tests:

bin/run_tests -s <suites> -g <groups> -t <Timeout> -x <Exclude> -n <Concurrency> -d


 bin/run_tests -s Functional/aggregates,Functional/joins -g functional -x hbase -t 180 -n 20 -d
  -s suites (required)
     Here, 'Functional/aggregates,Functional/joins' are directories inside [framework/resources/Functional](framework/resources/Functional). All directories within this parent directory are included
  -g groups (required)
     Here, 'functional' is category of tests to execute
  -t timeout (optional)
     Here, '180' seconds is the max time for a query to execute
  -d data generation (required on first run and upon pulling in new changes. Optional otherwise)
     Here, it turns on data copy and data generation
  -n concurrency (optional)
     Here, '20' queries can execute concurrently
  -x exclude dependencies (optional)
     Here, any 'hbase' test suites within the specified directory are excluded
  -h help (optional)
     Use this option to provide the usage of the command, which includes additional options


We encourage contributions from users! You can fix bugs, make enhancements or add new tests. Create a PR here on GitHub for your change.

Refer to for details on the test framework structure and instructions on how to contribute.


Licensed under the Apache License 2.0. Please see

You can’t perform that action at this time.