-
Notifications
You must be signed in to change notification settings - Fork 46
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
E2E tests runner #643
E2E tests runner #643
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## develop #643 +/- ##
===========================================
- Coverage 77.61% 75.99% -1.62%
===========================================
Files 131 135 +4
Lines 8555 8791 +236
===========================================
+ Hits 6640 6681 +41
- Misses 1915 2110 +195 ☔ View full report in Codecov by Sentry. |
Hi @da2ce7 I'm also experimenting with using Rust instead of Bash for the CI scripting. We have discussed in the past that it would be nice to write those scripts in Rust too. I think in this case it's a perfect fit. |
3ca6864
to
3f5bc44
Compare
bd739f7
to
8ffcc5c
Compare
8ffcc5c
to
8932e29
Compare
8932e29
to
bbc6733
Compare
Hi @da2ce7 I'm using Docker for the E2E test environment like in the Index. In the Index we needed because we wanted to also run the Tracker. Here we don't need it, we could simply run Another problem with Docker is, we can not use port 0 to assign a free port becuase we need to publish the port when we run docker. So, I'm considering not using Docker. What do you think? |
afa80fe
to
bf14375
Compare
bf14375
to
5959e42
Compare
5959e42
to
8b66ba9
Compare
It will be used to store temp files during CI scripts execution.
It uses Rust instead of Bash. You can run it with: ``` cargo run --bin e2e_tests_runner share/default/config/tracker.e2e.container.sqlite3.toml ``` It will: - Build the tracker docker image. - Run the docker image. - Wait until the container is healthy. - Parse logs to get running services. - Build config file for the tracker_checker. - Run the tracker_checker. - Stop the container.
8b66ba9
to
ec13fb4
Compare
Hi @da2ce7, some comments:
Maybe this script should be an independent crate in the It's like this script in Bash but in Rust. Rigth now, there is no coupling between the main crate and this binary. And I don't like having CI/Testing code in the production package.
See #643 (comment)
I'm using a file in
I could add one more test. I could check that there are no "panics" in the logs. That was one of the reasons I started adding E2E tests. There were some panics in the bootstrapping of the services that made the halt signal not work. But the servers were running anyway, so these panics were not detected by tests.
That way we don't even need the temp dir. We could also remove the file at the end and do all in the root folder. |
ACK ec13fb4 |
With an independent crate for CI scripts, we need to run their tests in new workflows. Maybe that's too complex. We could use one single crate for all the scripts with one binary per script. |
A new binary to run E2E tests: