-
Notifications
You must be signed in to change notification settings - Fork 102
/
Copy pathprove_test.rs
57 lines (49 loc) · 1.72 KB
/
prove_test.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
use crate::common::{
complete_proof_request, make_proof_request, randomly_select_block, setup, v2_assert_report,
};
use raiko_host::server::api;
use raiko_lib::consts::Network;
use raiko_lib::proof_type::ProofType;
use raiko_tasks::TaskStatus;
use test_log::test;
#[cfg(all(feature = "risc0", feature = "test-mock-guest"))]
#[test(tokio::test)]
async fn test_v2_mainnet_prove_risc0() {
test_v2_prove(Network::TaikoMainnet, ProofType::Risc0).await;
}
#[test(tokio::test)]
async fn test_v2_mainnet_native_prove() {
test_v2_prove(Network::TaikoMainnet, ProofType::Native).await;
}
async fn test_v2_prove(network: Network, proof_type: ProofType) {
let api_version = "v2";
let block_number = randomly_select_block(network)
.await
.expect("randomly select block failed");
println!(
"test_prove_v2_mainnet_native network: {network}, proof_type: {proof_type}, block_number: {block_number}"
);
let (_server, client) = setup().await;
let request = make_proof_request(&network, &proof_type, block_number);
let status: api::v2::Status = client
.post("/v2/proof", &request)
.await
.expect("failed to send request");
assert!(
matches!(
status,
api::v2::Status::Ok {
data: api::v2::ProofResponse::Status {
status: TaskStatus::Registered,
..
}
}
),
"status: {status:?}"
);
complete_proof_request(api_version, &client, &request).await;
// sending the same completed request should should be ok
complete_proof_request(api_version, &client, &request).await;
// santy check for report format
v2_assert_report(&client).await;
}