Browse Source

Fix running cargo bench & test in CI. (#14943)

tags/v1.77.0rc1
Patrick Cloke 1 year ago
committed by GitHub
parent
commit
585180594b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 0 deletions
  1. +25
    -0
      .github/workflows/tests.yml
  2. +1
    -0
      changelog.d/14943.feature
  3. +10
    -0
      rust/benches/evaluator.rs

+ 25
- 0
.github/workflows/tests.yml View File

@@ -566,6 +566,29 @@ jobs:

- run: cargo test

# We want to ensure that the cargo benchmarks still compile, which requires a
# nightly compiler.
cargo-bench:
if: ${{ needs.changes.outputs.rust == 'true' }}
runs-on: ubuntu-latest
needs:
- linting-done
- changes

steps:
- uses: actions/checkout@v3

- name: Install Rust
# There don't seem to be versioned releases of this action per se: for each rust
# version there is a branch which gets constantly rebased on top of master.
# We pin to a specific commit for paranoia's sake.
uses: dtolnay/rust-toolchain@e645b0cf01249a964ec099494d38d2da0f0b349f
with:
toolchain: nightly-2022-12-01
- uses: Swatinem/rust-cache@v2

- run: cargo bench --no-run

# a job which marks all the other jobs as complete, thus allowing PRs to be merged.
tests-done:
if: ${{ always() }}
@@ -577,6 +600,7 @@ jobs:
- portdb
- complement
- cargo-test
- cargo-bench
runs-on: ubuntu-latest
steps:
- uses: matrix-org/done-action@v2
@@ -588,3 +612,4 @@ jobs:
skippable: |
lint-newsfile
cargo-test
cargo-bench

+ 1
- 0
changelog.d/14943.feature View File

@@ -0,0 +1 @@
Experimental support for [MSC3952](https://github.com/matrix-org/matrix-spec-proposals/pull/3952): intentional mentions.

+ 10
- 0
rust/benches/evaluator.rs View File

@@ -13,6 +13,7 @@
// limitations under the License.

#![feature(test)]
use std::collections::BTreeSet;
use synapse::push::{
evaluator::PushRuleEvaluator, Condition, EventMatchCondition, FilteredPushRules, PushRules,
};
@@ -32,6 +33,8 @@ fn bench_match_exact(b: &mut Bencher) {

let eval = PushRuleEvaluator::py_new(
flattened_keys,
BTreeSet::new(),
false,
10,
Some(0),
Default::default(),
@@ -68,6 +71,8 @@ fn bench_match_word(b: &mut Bencher) {

let eval = PushRuleEvaluator::py_new(
flattened_keys,
BTreeSet::new(),
false,
10,
Some(0),
Default::default(),
@@ -104,6 +109,8 @@ fn bench_match_word_miss(b: &mut Bencher) {

let eval = PushRuleEvaluator::py_new(
flattened_keys,
BTreeSet::new(),
false,
10,
Some(0),
Default::default(),
@@ -140,6 +147,8 @@ fn bench_eval_message(b: &mut Bencher) {

let eval = PushRuleEvaluator::py_new(
flattened_keys,
BTreeSet::new(),
false,
10,
Some(0),
Default::default(),
@@ -156,6 +165,7 @@ fn bench_eval_message(b: &mut Bencher) {
false,
false,
false,
false,
);

b.iter(|| eval.run(&rules, Some("bob"), Some("person")));


Loading…
Cancel
Save