unsupported operation: returning ready events from epoll_wait is not yet implemented
()
| 459 | #[mz_ore::test(tokio::test)] |
| 460 | #[cfg_attr(miri, ignore)] // unsupported operation: returning ready events from epoll_wait is not yet implemented |
| 461 | async fn expression_cache() { |
| 462 | let first_version = Version::new(0, 1, 0); |
| 463 | let second_version = Version::new(0, 2, 0); |
| 464 | let persist = PersistClient::new_for_tests().await; |
| 465 | let shard_id = ShardId::new(); |
| 466 | |
| 467 | let mut current_ids = BTreeSet::new(); |
| 468 | let mut remove_prior_versions = false; |
| 469 | // Compacting the shard takes too long, so we leave it to integration tests. |
| 470 | let compact_shard = false; |
| 471 | let dyncfgs = &mz_persist_client::cfg::all_dyncfgs(ConfigSet::default()); |
| 472 | |
| 473 | let mut next_id = 0; |
| 474 | |
| 475 | let (mut local_exps, mut global_exps) = { |
| 476 | // Open a new empty cache. |
| 477 | let (cache, local_exprs, global_exprs) = |
| 478 | ExpressionCacheHandle::spawn_expression_cache(ExpressionCacheConfig { |
| 479 | build_version: first_version.clone(), |
| 480 | persist: persist.clone(), |
| 481 | shard_id, |
| 482 | current_ids: current_ids.clone(), |
| 483 | remove_prior_versions, |
| 484 | compact_shard, |
| 485 | dyncfgs: dyncfgs.clone(), |
| 486 | }) |
| 487 | .await; |
| 488 | assert_eq!(local_exprs, BTreeMap::new(), "new cache should be empty"); |
| 489 | assert_eq!(global_exprs, BTreeMap::new(), "new cache should be empty"); |
| 490 | |
| 491 | // Insert some expressions into the cache. |
| 492 | let mut local_exps = BTreeMap::new(); |
| 493 | let mut global_exps = BTreeMap::new(); |
| 494 | for _ in 0..4 { |
| 495 | let id = GlobalId::User(next_id); |
| 496 | let local_exp = gen_local_expressions(); |
| 497 | let global_exp = gen_global_expressions(); |
| 498 | |
| 499 | cache |
| 500 | .update( |
| 501 | vec![(id, local_exp.clone())], |
| 502 | vec![(id, global_exp.clone())], |
| 503 | BTreeSet::new(), |
| 504 | ) |
| 505 | .await; |
| 506 | |
| 507 | current_ids.insert(id); |
| 508 | current_ids.extend(global_exp.index_imports()); |
| 509 | local_exps.insert(id, local_exp); |
| 510 | global_exps.insert(id, global_exp); |
| 511 | |
| 512 | next_id += 1; |
| 513 | } |
| 514 | (local_exps, global_exps) |
| 515 | }; |
| 516 | |
| 517 | { |
| 518 | // Re-open the cache. |
nothing calls this directly
no test coverage detected