druid/quidem-ut
Zoltan Haindrich 26e3c44f4b
Quidem record (#16624)
* enables to launch a fake broker based on test resources (druidtest uri)
* could record queries into new testfiles during usage
* instead of re-purpose Calcite's Hook migrates to use DruidHook which we can add further keys
* added a quidem-ut module which could be the place for tests which could iteract with modules/etc
2024-08-05 14:58:32 +02:00
..
src Quidem record (#16624) 2024-08-05 14:58:32 +02:00
README.md Quidem record (#16624) 2024-08-05 14:58:32 +02:00
pom.xml Quidem record (#16624) 2024-08-05 14:58:32 +02:00

README.md

Quidem UT

Enables to write sql level tests easily. Can be used to write tests against existing test backends (ComponentSupplier) - by doing so the testcases can be moved closer to the excercised codes.

Usage

Install java&maven (if needed)

If you don't have java&maven - one way to set that up is by using sdkman like this:

# install sdkman
curl -s "https://get.sdkman.io" | bash
# at the end of installation either open a new terminal; or follow the instructions at the end

# install java&maven
sdk install java 11.0.23-zulu
sdk install maven

# run mvn to see if it works
mvn --version

# download druid sourcces (FIXME: change this to the main repo/branch before merging)
git clone --branch quidem-record https://github.com/kgyrtkirk/druid

Running these tests

  • CI execution happens by a standard JUnit test QTest in this module
  • the dev/quidem script can be used to run these tests (after the project is built)

Launching a test generating broker

  • make sure to build the project first; one way to do that is:
    mvn install -pl quidem-ut/ -am -DskipTests -Pskip-static-checks
    
  • launch the broker instance with:
    mvn exec:exec -pl quidem-ut -Dquidem.record.autostart=true
    
    • the broker will be running at http://localhost:12345
    • the used test configuration backend can configured by supplying quidem.uri
      mvn exec:exec -pl quidem-ut -Dquidem.uri=druidtest:///?componentSupplier=ThetaSketchComponentSupplier
      
    • new record files can be started by calling http://localhost:12345/quidem/start
      • if quidem.record.autostart is omitted recording will not start
  • after finished with the usage of the broker ; a new record-123.iq file will be in the project's worktree - it will contain all the executed statements
    • running dev/quidem -Dquidem.overwrite updates the resultsets of all iq files around there
    • rename the testfile to have a more descriptive name