Skip to content

Commit d7e9963

Browse files
committed
update tests results and implement ci
1 parent e7c6441 commit d7e9963

2 files changed

Lines changed: 71 additions & 8 deletions

File tree

.github/workflows/ci.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
- master
8+
push:
9+
branches:
10+
- main
11+
- master
12+
13+
permissions:
14+
contents: read
15+
16+
jobs:
17+
build-and-test:
18+
name: build-and-test
19+
runs-on: ubuntu-latest
20+
container:
21+
image: archlinux:latest
22+
23+
steps:
24+
- name: Install dependencies
25+
run: |
26+
pacman -Syu --noconfirm
27+
pacman -S --noconfirm base-devel cmake gcc liburing pkgconf git nodejs
28+
29+
- name: Check out repository
30+
uses: actions/checkout@v4
31+
32+
- name: Configure server tests
33+
run: cmake -S server -B build/server -DCMAKE_BUILD_TYPE=Release
34+
35+
- name: Build server tests
36+
run: cmake --build build/server -j
37+
38+
- name: Run tests
39+
run: ctest --test-dir build/server --output-on-failure
40+
41+
- name: Configure example
42+
run: cmake -S example -B build/example -DCMAKE_BUILD_TYPE=Release -DENABLE_ASAN=OFF
43+
44+
- name: Build example
45+
run: cmake --build build/example -j

README.md

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,29 @@ cd ../benchmarks
7171
DURATION=30s THREADS=4 CONNECTIONS=100 ./benchmark.sh
7272
```
7373

74-
Output (2026-04-02 16:42:45 MSK, non-ASAN Release build):
75-
76-
- **GET /echo**
77-
- **C++**: 427149 req/s
78-
- **Tokio**: 500231 req/s
79-
- **POST /echo**
80-
- **C++**: 387572 req/s
81-
- **Tokio**: 452589 req/s
74+
Output (non-ASAN Release build):
75+
76+
#### GET /echo
77+
78+
| Server | Latency avg | Latency stdev | Latency max | +/- stdev | Requests/sec | Transfer/sec |
79+
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
80+
| C++ coroutine server | 132.16us | 66.78us | 4.97ms | 80.82% | 439792.17 | 29.78MB |
81+
| Rust Tokio server | 150.12us | 119.34us | 5.53ms | 94.01% | 506996.06 | 40.61MB |
82+
83+
#### POST /echo
84+
85+
| Server | Latency avg | Latency stdev | Latency max | +/- stdev | Requests/sec | Transfer/sec |
86+
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
87+
| C++ coroutine server | 149.98us | 77.14us | 5.27ms | 81.01% | 402624.34 | 29.57MB |
88+
| Rust Tokio server | 168.98us | 138.11us | 5.80ms | 91.79% | 465844.80 | 39.98MB |
89+
90+
## Pull Request Checks
91+
92+
Pull requests targeting `main` or `master` run the `CI / build-and-test`
93+
GitHub Actions check. Configure both branches in GitHub branch protection or a
94+
repository ruleset with:
95+
96+
- Require a pull request before merging
97+
- Require status checks to pass before merging
98+
- Required status check: `build-and-test` (shown in Actions as `CI / build-and-test`)
99+
- Restrict direct pushes to matching branches

0 commit comments

Comments
 (0)