()
| 5785 | |
| 5786 | #[tokio::test(flavor = "multi_thread", worker_threads = 50)] |
| 5787 | async fn test_parallel_after_finalize() -> Result<()> { |
| 5788 | let context = create_context()?; |
| 5789 | let graph = context.create_graph()?; |
| 5790 | let input1 = graph.input(scalar_type(INT32))?; |
| 5791 | let input2 = graph.input(scalar_type(INT32))?; |
| 5792 | let output = graph.add(input1.clone(), input2.clone())?; |
| 5793 | graph.set_output_node(output.clone())?; |
| 5794 | graph.finalize()?; |
| 5795 | context.set_main_graph(graph.clone())?; |
| 5796 | |
| 5797 | context.set_node_name(input1.clone(), "one")?; |
| 5798 | context.set_node_name(input2.clone(), "two")?; |
| 5799 | |
| 5800 | context.finalize()?; |
| 5801 | |
| 5802 | assert!(output.clone().get_type().is_ok()); |
| 5803 | |
| 5804 | const PAR_ITERS: usize = 2001; |
| 5805 | |
| 5806 | let mut get_type_futures = vec![]; |
| 5807 | for _ in 0..PAR_ITERS { |
| 5808 | get_type_futures.push(parallel_get_type(output.clone())); |
| 5809 | } |
| 5810 | futures::future::try_join_all(get_type_futures).await?; |
| 5811 | |
| 5812 | let mut get_random_evaluate_futures = vec![]; |
| 5813 | for _ in 0..PAR_ITERS { |
| 5814 | get_random_evaluate_futures |
| 5815 | .push(parallel_random_evaluate(graph.clone(), context.clone())) |
| 5816 | } |
| 5817 | futures::future::try_join_all(get_random_evaluate_futures).await?; |
| 5818 | |
| 5819 | let input_parties = vec![IOStatus::Party(0), IOStatus::Party(1)]; |
| 5820 | let output_parties = vec![IOStatus::Party(0)]; |
| 5821 | |
| 5822 | let mut get_mpc_eval_futures = vec![]; |
| 5823 | for _ in 0..PAR_ITERS { |
| 5824 | get_mpc_eval_futures.push(parallel_prepare_for_mpc_evaluation( |
| 5825 | context.clone(), |
| 5826 | vec![input_parties.clone()], |
| 5827 | vec![output_parties.clone()], |
| 5828 | InlineConfig::default(), |
| 5829 | )); |
| 5830 | } |
| 5831 | futures::future::try_join_all(get_mpc_eval_futures).await?; |
| 5832 | |
| 5833 | Ok(()) |
| 5834 | } |
| 5835 | } |
nothing calls this directly
no test coverage detected