|
1 | 1 | use tokio::sync::RwLockWriteGuard;
|
2 | 2 |
|
3 |
| -use crate::test::LOCK; |
4 |
| - |
5 |
| -use super::{run_spec_test_with_path, run_unified_format_test_filtered, unified_runner::TestCase}; |
| 3 | +use crate::test::{spec::unified_runner::run_unified_tests, LOCK}; |
6 | 4 |
|
7 | 5 | #[cfg_attr(feature = "tokio-runtime", tokio::test(flavor = "multi_thread"))]
|
8 | 6 | #[cfg_attr(feature = "async-std-runtime", async_std::test)]
|
9 |
| -async fn run() { |
| 7 | +async fn run_unified() { |
10 | 8 | let _guard: RwLockWriteGuard<()> = LOCK.run_exclusively().await;
|
11 |
| - run_spec_test_with_path(&["crud", "unified"], |path, file| { |
12 |
| - run_unified_format_test_filtered(path, file, test_predicate) |
13 |
| - }) |
14 |
| - .await; |
15 |
| -} |
16 |
| - |
17 |
| -fn test_predicate(test: &TestCase) -> bool { |
18 |
| - // The Rust driver doesn't support unacknowledged writes. |
19 |
| - let lower = test.description.to_lowercase(); |
20 |
| - |
21 |
| - !lower.contains("unacknowledged") |
22 |
| - // TODO: RUST-663: unskip aggregate $out and $merge tests |
23 |
| - && !(lower.contains("aggregate with $out includes read preference for 5.0+ server")) |
24 |
| - && !(lower.contains("aggregate with $out omits read preference for pre-5.0 server")) |
25 |
| - && !(lower.contains("aggregate with $merge includes read preference for 5.0+ server")) |
26 |
| - && !(lower.contains("aggregate with $merge omits read preference for pre-5.0 server")) |
| 9 | + run_unified_tests(&["crud", "unified"]) |
| 10 | + .skip_files(&[ |
| 11 | + // The Rust driver does not support unacknowledged writes (and does not intend to in |
| 12 | + // the future). |
| 13 | + "bulkWrite-deleteMany-hint-unacknowledged.json", |
| 14 | + "bulkWrite-deleteOne-hint-unacknowledged.json", |
| 15 | + "bulkWrite-replaceOne-hint-unacknowledged.json", |
| 16 | + "bulkWrite-updateMany-hint-unacknowledged.json", |
| 17 | + "bulkWrite-updateOne-hint-unacknowledged.json", |
| 18 | + "deleteMany-hint-unacknowledged.json", |
| 19 | + "deleteOne-hint-unacknowledged.json", |
| 20 | + "findOneAndDelete-hint-unacknowledged.json", |
| 21 | + "findOneAndReplace-hint-unacknowledged.json", |
| 22 | + "findOneAndUpdate-hint-unacknowledged.json", |
| 23 | + "replaceOne-hint-unacknowledged.json", |
| 24 | + "updateMany-hint-unacknowledged.json", |
| 25 | + "updateOne-hint-unacknowledged.json", |
| 26 | + ]) |
| 27 | + .skip_tests(&[ |
| 28 | + // Unacknowledged write; see above. |
| 29 | + "Unacknowledged write using dollar-prefixed or dotted keys may be silently rejected \ |
| 30 | + on pre-5.0 server", |
| 31 | + // TODO RUST-663: Unskip these tests. |
| 32 | + "Aggregate with $out includes read preference for 5.0+ server", |
| 33 | + "Aggregate with $out omits read preference for pre-5.0 server", |
| 34 | + "Aggregate with $merge includes read preference for 5.0+ server", |
| 35 | + "Aggregate with $merge omits read preference for pre-5.0 server", |
| 36 | + "Database-level aggregate with $out omits read preference for pre-5.0 server", |
| 37 | + "Database-level aggregate with $merge omits read preference for pre-5.0 server", |
| 38 | + ]) |
| 39 | + .await; |
27 | 40 | }
|
0 commit comments