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

Run arroyo test suite in ducktape #5499

Merged
merged 3 commits into from
Jul 22, 2022
Merged

Conversation

VladLazar
Copy link
Contributor

@VladLazar VladLazar commented Jul 18, 2022

Cover letter

This PR adds a ducktape test that runs part of the arroyo test suite (not all of the tests run against a live cluster and we're only interested in those).

In order to avoid forking the tests (which leads to license complications and having to maintain the fork) I've made it such that the environment clones the external repository and runs the tests from there.

Unfortunately, the arroyo tests use pytest, which makes it difficult to deal with logging and error reporting. The approach I've taken is to log all the output from the pytest invocation and to parse that for failures.

Perhaps these test should only run in the nightly. Any opinions on that?

Fixes #4575

Notes

force_push:

  • use --depth 1 when cloning the external repo

force_push:

  • pin arroyo to the current tip of main
  • remove stray assertion

@VladLazar VladLazar requested review from NyaliaLui, a team and dotnwat as code owners July 18, 2022 11:20
@VladLazar VladLazar requested review from andrewhsu and removed request for a team July 18, 2022 11:20
Copy link
Contributor

@NyaliaLui NyaliaLui left a comment

Choose a reason for hiding this comment

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

Perhaps these test should only run in the nightly. Any opinions on that?

I am in favor of running tests from 3rd party libs on nightly because they can have dependencies that can fill-up space and complicate things on our CI pipeline.

@VladLazar VladLazar force-pushed the arroyo-tests branch 2 times, most recently from d43c53c to 2c96216 Compare July 19, 2022 15:46
tests/docker/Dockerfile Outdated Show resolved Hide resolved
Run the arroyo test suite against a redpanda cluster in
a ducktape environment.

The test suite lives here under tests/ in https://github.com/getsentry/arroyo.
Copy link
Contributor

Choose a reason for hiding this comment

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

very cool.

Copy link
Contributor

Choose a reason for hiding this comment

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

we should respond on twitter once this lands.

Copy link
Contributor

@NyaliaLui NyaliaLui left a comment

Choose a reason for hiding this comment

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

Beautiful.

There's only one nit.

EDIT: Whoops, I approved before CI finished. Please wait until that finishes before you merge ;)

@NyaliaLui NyaliaLui self-requested a review July 20, 2022 13:14
NyaliaLui
NyaliaLui previously approved these changes Jul 20, 2022
@@ -163,6 +163,10 @@ RUN apt update && \
file && \
rm -rf /var/lib/apt/lists/*

RUN mkdir /root/external_test_suites && \
git -C /root/external_test_suites clone --depth=1 https://github.com/getsentry/arroyo.git && \
Copy link
Member

Choose a reason for hiding this comment

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

based on the rest of the Dockerfile it looks like we try to pin everything to a specific sha1/version

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah. It's definitely a trade-off. It's more stable if we pin, but then someone needs to remember to update it manually every now and then. That being said, that test suite doesn't seem to change much over time. I'll pin it to the current tip of the main branch.

Copy link
Member

Choose a reason for hiding this comment

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

yeh, agree about updating. i think we need some out-of-band process by which we periodically upgrade the dependencies. at least this way we keep flakiness minimized

Vlad Lazar added 3 commits July 22, 2022 10:17
This commit extends the ducktape test container to clone and install
arroyo (https://github.com/getsentry/arroyo) in order to run its test
suite against a Redpanda cluster.
Pytest is required in order to run the arroyo tests.
This commit adds a ducktape test that runs the arroyo test suite
against a redpanda cluster. All test output is logged and test failures
are parsed from the pytest output. The test fails if there were pytest
failures or if pytest returns an error code indicating that the tests
couldn't run.
@dotnwat
Copy link
Member

dotnwat commented Jul 22, 2022

Failure found #342

@dotnwat dotnwat merged commit 5bdd7d7 into redpanda-data:dev Jul 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Port OSS Sentry tests to ducktape
5 participants