Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added a framework for end-to-end tests #1022

Merged
merged 2 commits into from
Jan 29, 2025

Conversation

normanj-bitquill
Copy link
Contributor

  • Only contains sample queries, not a full suite. All tests make use of the integration test docker cluster.
  • Can run the tests with "sbt e2etest/test"

Description

Adds a testing framework for end-to-end tests. The integration test docker cluster is used for the tests. Tests can run against Spark or OpenSearch (using the async query API).

To run the end-to-end tests:

sbt e2dtest/test

Related Issues

#647

Check List

  • Updated documentation (docs/ppl-lang/README.md)
  • Implemented unit tests
  • Implemented tests for combination with other commands
  • New added source code should include a copyright header
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

* Only contains sample queries, not a full suite. All tests make use of the integration test
docker cluster.
* Can run the tests with "sbt e2etest/test"

Signed-off-by: Norman Jordan <[email protected]>
Copy link
Member

@YANG-DB YANG-DB left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great - I would add more details about the docker-compose services including each service responsibilities and how the sequence of call if operated by the different E2E use cases ...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great
I'm missing some detailed review and call diagram sequence of how the E2E operates for each case:

  • SQL Queries for Spark Master
  • PPL Queries for Spark Master
  • SQL Queries for OpenSearch Async API
  • PPL Queries for OpenSearch Async API

What are the functions of each docker-compose service and which sequence the call each other

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some documentation with diagrams to explain how these queries are executed.

@YANG-DB
Copy link
Member

YANG-DB commented Jan 28, 2025

@normanj-bitquill
It would also be nice to have a doc showing how to call PPL / SQL queries via the dashboard's workbench

* Documented how queries are processed in the integ-test cluster
* Documented how to use the Query Workbench with the integ-test cluster
* Removed the shading of Jackson libraries (fixes opensearch-project#973)

Signed-off-by: Norman Jordan <[email protected]>
@normanj-bitquill
Copy link
Contributor Author

@normanj-bitquill It would also be nice to have a doc showing how to call PPL / SQL queries via the dashboard's workbench

@YANG-DB I added some documentation about how to use the query workbench.

@normanj-bitquill
Copy link
Contributor Author

@YANG-DB This now includes a fix for #973

I disabled shading the Jackson libraries. Saving a dataset in Spark to CSV or JSON requires use of Jackson libraries. If this part of the PR is controversial, I can probably switch to Parquet, but it will add some complexity for comparing to expected results.

@YANG-DB YANG-DB merged commit 98579e1 into opensearch-project:main Jan 29, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants