fix spandoc instrumentation for await expressions (#618)

* fix spandoc instrumentation for await expressions

* depend on released version of spandoc
This commit is contained in:
Jane Lusby 2020-07-09 14:43:44 -07:00 committed by GitHub
parent 0474a79669
commit 765e1e61e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 149 additions and 107 deletions

133
Cargo.lock generated
View File

@ -42,24 +42,24 @@ dependencies = [
[[package]]
name = "addr2line"
version = "0.12.2"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "602d785912f476e480434627e8732e6766b760c045bbf897d9dfaa9f4fbd399c"
checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072"
dependencies = [
"gimli",
]
[[package]]
name = "adler32"
version = "1.1.0"
name = "adler"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
checksum = "ccc9a9dd069569f212bc4330af9f17c4afb5e8ce185e83dbb14f1349dda18b10"
[[package]]
name = "aho-corasick"
version = "0.7.12"
version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c259a748ac706ba73d609b73fc13469e128337f9a6b2fb3cc82d100f8dd8d511"
checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
dependencies = [
"memchr",
]
@ -70,7 +70,7 @@ version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
dependencies = [
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -105,7 +105,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi",
"libc",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -116,9 +116,9 @@ checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
[[package]]
name = "backtrace"
version = "0.3.49"
version = "0.3.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05100821de9e028f12ae3d189176b41ee198341eb8f369956407fea2f5cc666c"
checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293"
dependencies = [
"addr2line",
"cfg-if",
@ -501,7 +501,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
dependencies = [
"libc",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -649,7 +649,7 @@ dependencies = [
"libc",
"log",
"rustc_version",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -684,9 +684,9 @@ dependencies = [
[[package]]
name = "gimli"
version = "0.21.0"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724"
[[package]]
name = "gumdrop"
@ -739,9 +739,9 @@ dependencies = [
[[package]]
name = "hermit-abi"
version = "0.1.14"
version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909"
checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
dependencies = [
"libc",
]
@ -878,9 +878,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.71"
version = "0.2.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
checksum = "a9f8082297d534141b30c8d39e9b1773713ab50fdbe4ff30f750d063b3bfd701"
[[package]]
name = "linked-hash-map"
@ -926,12 +926,6 @@ dependencies = [
"regex-automata",
]
[[package]]
name = "matches"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
[[package]]
name = "maybe-uninit"
version = "2.0.0"
@ -946,9 +940,9 @@ checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
[[package]]
name = "memoffset"
version = "0.5.4"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8"
checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
dependencies = [
"autocfg",
]
@ -1058,11 +1052,11 @@ dependencies = [
[[package]]
name = "miniz_oxide"
version = "0.3.7"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f"
dependencies = [
"adler32",
"adler",
]
[[package]]
@ -1086,14 +1080,14 @@ dependencies = [
[[package]]
name = "mio-named-pipes"
version = "0.1.6"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5e374eff525ce1c5b7687c4cef63943e7686524a387933ad27ca7ec43779cb3"
checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
dependencies = [
"log",
"mio",
"miow 0.3.5",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -1126,7 +1120,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e"
dependencies = [
"socket2",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -1137,7 +1131,7 @@ checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
dependencies = [
"cfg-if",
"libc",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -1220,7 +1214,7 @@ dependencies = [
"redox_syscall",
"rustc_version",
"smallvec 0.6.13",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -1233,8 +1227,8 @@ dependencies = [
"cloudabi",
"libc",
"redox_syscall",
"smallvec 1.4.0",
"winapi 0.3.8",
"smallvec 1.4.1",
"winapi 0.3.9",
]
[[package]]
@ -1302,7 +1296,7 @@ version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
dependencies = [
"unicode-xid 0.2.0",
"unicode-xid 0.2.1",
]
[[package]]
@ -1343,7 +1337,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7a1905379198075914bc93d32a5465c40474f90a078bb13439cb00c547bcc"
dependencies = [
"libc",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -1380,7 +1374,7 @@ dependencies = [
"libc",
"rand_core 0.3.1",
"rdrand",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -1459,9 +1453,9 @@ dependencies = [
[[package]]
name = "redjubjub"
version = "0.2.0"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9717635678eabb203f6806561c7aa976610a9f6f0bfaadf1ca14dca35957741"
checksum = "a07921b44f102eef69b63546f25927c9ed0efe561de73d40d3c4b86e5e127f63"
dependencies = [
"blake2b_simd",
"byteorder",
@ -1512,7 +1506,7 @@ version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
dependencies = [
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -1657,9 +1651,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.55"
version = "1.0.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec2c5d7e739bc07a3e73381a39d61fdb5f671c60c1df26a130690665803d8226"
checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3"
dependencies = [
"itoa",
"ryu",
@ -1762,9 +1756,9 @@ dependencies = [
[[package]]
name = "smallvec"
version = "1.4.0"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
checksum = "3757cb9d89161a2f24e1cf78efa0c1fcff485d18e3f55e0aa3480824ddaa0f3f"
[[package]]
name = "socket2"
@ -1775,20 +1769,29 @@ dependencies = [
"cfg-if",
"libc",
"redox_syscall",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
name = "spandoc"
version = "0.1.3"
source = "git+https://github.com/yaahc/spandoc.git?rev=554358be632b156a6f0af963b0b244e2665b4767#554358be632b156a6f0af963b0b244e2665b4767"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c287699b5fa467d5286a2be14bff499f684133c223cf79c46c6251d5920badb"
dependencies = [
"spandoc-attribute",
"tracing",
"tracing-futures",
]
[[package]]
name = "spandoc-attribute"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5254766110c377a921c002ca0775d4e384ba69af951fc4329d9dd77af2c25763"
dependencies = [
"matches",
"proc-macro2 1.0.18",
"quote 1.0.7",
"syn 1.0.33",
"tracing",
"tracing-futures",
]
[[package]]
@ -1822,7 +1825,7 @@ checksum = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd"
dependencies = [
"proc-macro2 1.0.18",
"quote 1.0.7",
"unicode-xid 0.2.0",
"unicode-xid 0.2.1",
]
[[package]]
@ -1834,7 +1837,7 @@ dependencies = [
"proc-macro2 1.0.18",
"quote 1.0.7",
"syn 1.0.33",
"unicode-xid 0.2.0",
"unicode-xid 0.2.1",
]
[[package]]
@ -1858,7 +1861,7 @@ dependencies = [
"rand 0.7.3",
"redox_syscall",
"remove_dir_all",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -1906,7 +1909,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
dependencies = [
"libc",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -1930,7 +1933,7 @@ dependencies = [
"signal-hook-registry",
"slab",
"tokio-macros",
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]
@ -2217,7 +2220,7 @@ dependencies = [
"serde",
"serde_json",
"sharded-slab",
"smallvec 1.4.0",
"smallvec 1.4.1",
"tracing-core",
"tracing-log",
"tracing-serde",
@ -2243,9 +2246,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
[[package]]
name = "unicode-xid"
version = "0.2.0"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
[[package]]
name = "version_check"
@ -2286,9 +2289,9 @@ checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
[[package]]
name = "winapi"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
@ -2312,7 +2315,7 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
dependencies = [
"winapi 0.3.8",
"winapi 0.3.9",
]
[[package]]

View File

@ -20,4 +20,3 @@ panic = "abort"
[patch.crates-io]
abscissa_core = { git = "https://github.com/yaahc/abscissa.git", rev = "41d342a9344e38442b2211b07f28a89505892a21" }
spandoc = { git = "https://github.com/yaahc/spandoc.git", rev = "554358be632b156a6f0af963b0b244e2665b4767" }

View File

@ -23,7 +23,7 @@ zebra-state = { path = "../zebra-state" }
[dev-dependencies]
color-eyre = "0.5"
rand = "0.7"
spandoc = "0.1"
spandoc = "0.2"
tokio = { version = "0.2", features = ["full"] }
tracing-error = "0.1.2"
tracing-subscriber = "0.2.7"

View File

@ -750,6 +750,10 @@ mod tests {
const VERIFY_TIMEOUT_SECONDS: u64 = 10;
#[tokio::test]
async fn single_item_checkpoint_list_test() -> Result<(), Report> {
single_item_checkpoint_list().await
}
#[spandoc::spandoc]
async fn single_item_checkpoint_list() -> Result<(), Report> {
zebra_test::init();
@ -781,17 +785,17 @@ mod tests {
BlockHeight(0)
);
/// Make sure the verifier service is ready
/// SPANDOC: Make sure the verifier service is ready
let ready_verifier_service = checkpoint_verifier
.ready_and()
.map_err(|e| eyre!(e))
.await?;
/// Set up the future for block 0
/// SPANDOC: Set up the future for block 0
let verify_future = timeout(
Duration::from_secs(VERIFY_TIMEOUT_SECONDS),
ready_verifier_service.call(block0.clone()),
);
/// Wait for the response for block 0
/// SPANDOC: Wait for the response for block 0
// TODO(teor || jlusby): check error kind
let verify_response = verify_future
.map_err(|e| eyre!(e))
@ -818,6 +822,10 @@ mod tests {
}
#[tokio::test]
async fn multi_item_checkpoint_list_test() -> Result<(), Report> {
multi_item_checkpoint_list().await
}
#[spandoc::spandoc]
async fn multi_item_checkpoint_list() -> Result<(), Report> {
zebra_test::init();
@ -860,18 +868,18 @@ mod tests {
// Now verify each block
for (block, height, hash) in checkpoint_data {
/// Make sure the verifier service is ready
/// SPANDOC: Make sure the verifier service is ready
let ready_verifier_service = checkpoint_verifier
.ready_and()
.map_err(|e| eyre!(e))
.await?;
/// Set up the future for block {?height}
/// SPANDOC: Set up the future for block {?height}
let verify_future = timeout(
Duration::from_secs(VERIFY_TIMEOUT_SECONDS),
ready_verifier_service.call(block.clone()),
);
/// Wait for the response for block {?height}
/// SPANDOC: Wait for the response for block {?height}
// TODO(teor || jlusby): check error kind
let verify_response = verify_future
.map_err(|e| eyre!(e))
@ -923,6 +931,10 @@ mod tests {
}
#[tokio::test]
async fn block_higher_than_max_checkpoint_fail_test() -> Result<(), Report> {
block_higher_than_max_checkpoint_fail().await
}
#[spandoc::spandoc]
async fn block_higher_than_max_checkpoint_fail() -> Result<(), Report> {
zebra_test::init();
@ -955,17 +967,17 @@ mod tests {
BlockHeight(0)
);
/// Make sure the verifier service is ready
/// SPANDOC: Make sure the verifier service is ready
let ready_verifier_service = checkpoint_verifier
.ready_and()
.map_err(|e| eyre!(e))
.await?;
/// Set up the future for block 415000
/// SPANDOC: Set up the future for block 415000
let verify_future = timeout(
Duration::from_secs(VERIFY_TIMEOUT_SECONDS),
ready_verifier_service.call(block415000.clone()),
);
/// Wait for the response for block 415000, and expect failure
/// SPANDOC: Wait for the response for block 415000, and expect failure
// TODO(teor || jlusby): check error kind
let _ = verify_future
.map_err(|e| eyre!(e))
@ -990,6 +1002,10 @@ mod tests {
}
#[tokio::test]
async fn wrong_checkpoint_hash_fail_test() -> Result<(), Report> {
wrong_checkpoint_hash_fail().await
}
#[spandoc::spandoc]
async fn wrong_checkpoint_hash_fail() -> Result<(), Report> {
zebra_test::init();
@ -1026,12 +1042,12 @@ mod tests {
BlockHeight(0)
);
/// Make sure the verifier service is ready (1/3)
/// SPANDOC: Make sure the verifier service is ready (1/3)
let ready_verifier_service = checkpoint_verifier
.ready_and()
.map_err(|e| eyre!(e))
.await?;
/// Set up the future for bad block 0 (1/3)
/// SPANDOC: Set up the future for bad block 0 (1/3)
// TODO(teor || jlusby): check error kind
let bad_verify_future_1 = timeout(
Duration::from_secs(VERIFY_TIMEOUT_SECONDS),
@ -1053,12 +1069,12 @@ mod tests {
BlockHeight(0)
);
/// Make sure the verifier service is ready (2/3)
/// SPANDOC: Make sure the verifier service is ready (2/3)
let ready_verifier_service = checkpoint_verifier
.ready_and()
.map_err(|e| eyre!(e))
.await?;
/// Set up the future for bad block 0 again (2/3)
/// SPANDOC: Set up the future for bad block 0 again (2/3)
// TODO(teor || jlusby): check error kind
let bad_verify_future_2 = timeout(
Duration::from_secs(VERIFY_TIMEOUT_SECONDS),
@ -1080,17 +1096,17 @@ mod tests {
BlockHeight(0)
);
/// Make sure the verifier service is ready (3/3)
/// SPANDOC: Make sure the verifier service is ready (3/3)
let ready_verifier_service = checkpoint_verifier
.ready_and()
.map_err(|e| eyre!(e))
.await?;
/// Set up the future for good block 0 (3/3)
/// SPANDOC: Set up the future for good block 0 (3/3)
let good_verify_future = timeout(
Duration::from_secs(VERIFY_TIMEOUT_SECONDS),
ready_verifier_service.call(good_block0.clone()),
);
/// Wait for the response for good block 0, and expect success (3/3)
/// SPANDOC: Wait for the response for good block 0, and expect success (3/3)
// TODO(teor || jlusby): check error kind
let verify_response = good_verify_future
.map_err(|e| eyre!(e))
@ -1115,7 +1131,7 @@ mod tests {
// Now, await the bad futures, which should have completed
/// Wait for the response for block 0, and expect failure (1/3)
/// SPANDOC: Wait for the response for block 0, and expect failure (1/3)
// TODO(teor || jlusby): check error kind
let _ = bad_verify_future_1
.map_err(|e| eyre!(e))
@ -1136,7 +1152,7 @@ mod tests {
BlockHeight(0)
);
/// Wait for the response for block 0, and expect failure again (2/3)
/// SPANDOC: Wait for the response for block 0, and expect failure again (2/3)
// TODO(teor || jlusby): check error kind
let _ = bad_verify_future_2
.map_err(|e| eyre!(e))
@ -1161,6 +1177,10 @@ mod tests {
}
#[tokio::test]
async fn checkpoint_drop_cancel_test() -> Result<(), Report> {
checkpoint_drop_cancel().await
}
#[spandoc::spandoc]
async fn checkpoint_drop_cancel() -> Result<(), Report> {
zebra_test::init();
@ -1203,13 +1223,13 @@ mod tests {
let mut futures = Vec::new();
// Now collect verify futures for each block
for (block, height, hash) in checkpoint_data {
/// Make sure the verifier service is ready
/// SPANDOC: Make sure the verifier service is ready
let ready_verifier_service = checkpoint_verifier
.ready_and()
.map_err(|e| eyre!(e))
.await?;
/// Set up the future for block {?height}
/// SPANDOC: Set up the future for block {?height}
let verify_future = timeout(
Duration::from_secs(VERIFY_TIMEOUT_SECONDS),
ready_verifier_service.call(block.clone()),
@ -1236,7 +1256,7 @@ mod tests {
drop(checkpoint_verifier);
for (verify_future, height, hash) in futures {
/// Check the response for block {?height}
/// SPANDOC: Check the response for block {?height}
let verify_response = verify_future
.map_err(|e| eyre!(e))
.await

View File

@ -291,6 +291,10 @@ mod tests {
}
#[tokio::test]
async fn verify_test() -> Result<(), Report> {
verify().await
}
#[spandoc::spandoc]
async fn verify() -> Result<(), Report> {
zebra_test::init();
@ -302,9 +306,9 @@ mod tests {
let state_service = Box::new(zebra_state::in_memory::init());
let mut block_verifier = super::init(state_service);
/// Make sure the verifier service is ready
/// SPANDOC: Make sure the verifier service is ready
let ready_verifier_service = block_verifier.ready_and().await.map_err(|e| eyre!(e))?;
/// Verify the block
/// SPANDOC: Verify the block
let verify_response = ready_verifier_service
.call(block.clone())
.await
@ -316,6 +320,10 @@ mod tests {
}
#[tokio::test]
async fn round_trip_test() -> Result<(), Report> {
round_trip().await
}
#[spandoc::spandoc]
async fn round_trip() -> Result<(), Report> {
zebra_test::init();
@ -327,9 +335,9 @@ mod tests {
let mut state_service = zebra_state::in_memory::init();
let mut block_verifier = super::init(state_service.clone());
/// Make sure the verifier service is ready
/// SPANDOC: Make sure the verifier service is ready
let ready_verifier_service = block_verifier.ready_and().await.map_err(|e| eyre!(e))?;
/// Verify the block
/// SPANDOC: Verify the block
let verify_response = ready_verifier_service
.call(block.clone())
.await
@ -337,9 +345,9 @@ mod tests {
assert_eq!(verify_response, hash);
/// Make sure the state service is ready
/// SPANDOC: Make sure the state service is ready
let ready_state_service = state_service.ready_and().await.map_err(|e| eyre!(e))?;
/// Make sure the block was added to the state
/// SPANDOC: Make sure the block was added to the state
let state_response = ready_state_service
.call(zebra_state::Request::GetBlock { hash })
.await
@ -358,6 +366,10 @@ mod tests {
}
#[tokio::test]
async fn verify_fail_add_block_test() -> Result<(), Report> {
verify_fail_add_block().await
}
#[spandoc::spandoc]
async fn verify_fail_add_block() -> Result<(), Report> {
zebra_test::init();
@ -369,9 +381,9 @@ mod tests {
let mut state_service = zebra_state::in_memory::init();
let mut block_verifier = super::init(state_service.clone());
/// Make sure the verifier service is ready (1/2)
/// SPANDOC: Make sure the verifier service is ready (1/2)
let ready_verifier_service = block_verifier.ready_and().await.map_err(|e| eyre!(e))?;
/// Verify the block for the first time
/// SPANDOC: Verify the block for the first time
let verify_response = ready_verifier_service
.call(block.clone())
.await
@ -379,9 +391,9 @@ mod tests {
assert_eq!(verify_response, hash);
/// Make sure the state service is ready (1/2)
/// SPANDOC: Make sure the state service is ready (1/2)
let ready_state_service = state_service.ready_and().await.map_err(|e| eyre!(e))?;
/// Make sure the block was added to the state
/// SPANDOC: Make sure the block was added to the state
let state_response = ready_state_service
.call(zebra_state::Request::GetBlock { hash })
.await
@ -396,9 +408,9 @@ mod tests {
bail!("unexpected response kind: {:?}", state_response);
}
/// Make sure the verifier service is ready (2/2)
/// SPANDOC: Make sure the verifier service is ready (2/2)
let ready_verifier_service = block_verifier.ready_and().await.map_err(|e| eyre!(e))?;
/// Now try to add the block again, verify should fail
/// SPANDOC: Now try to add the block again, verify should fail
// TODO(teor): ignore duplicate block verifies?
// TODO(teor || jlusby): check error kind
ready_verifier_service
@ -406,9 +418,9 @@ mod tests {
.await
.unwrap_err();
/// Make sure the state service is ready (2/2)
/// SPANDOC: Make sure the state service is ready (2/2)
let ready_state_service = state_service.ready_and().await.map_err(|e| eyre!(e))?;
/// But the state should still return the original block we added
/// SPANDOC: But the state should still return the original block we added
let state_response = ready_state_service
.call(zebra_state::Request::GetBlock { hash })
.await
@ -427,6 +439,10 @@ mod tests {
}
#[tokio::test]
async fn verify_fail_future_time_test() -> Result<(), Report> {
verify_fail_future_time().await
}
#[spandoc::spandoc]
async fn verify_fail_future_time() -> Result<(), Report> {
zebra_test::init();
@ -449,18 +465,18 @@ mod tests {
let arc_block: Arc<Block> = block.into();
/// Make sure the verifier service is ready
/// SPANDOC: Make sure the verifier service is ready
let ready_verifier_service = block_verifier.ready_and().await.map_err(|e| eyre!(e))?;
/// Try to add the block, and expect failure
/// SPANDOC: Try to add the block, and expect failure
// TODO(teor || jlusby): check error kind
ready_verifier_service
.call(arc_block.clone())
.await
.unwrap_err();
/// Make sure the state service is ready (2/2)
/// SPANDOC: Make sure the state service is ready (2/2)
let ready_state_service = state_service.ready_and().await.map_err(|e| eyre!(e))?;
/// Now make sure the block isn't in the state
/// SPANDOC: Now make sure the block isn't in the state
// TODO(teor || jlusby): check error kind
ready_state_service
.call(zebra_state::Request::GetBlock {
@ -473,6 +489,10 @@ mod tests {
}
#[tokio::test]
async fn header_solution_test() -> Result<(), Report> {
header_solution().await
}
#[spandoc::spandoc]
async fn header_solution() -> Result<(), Report> {
zebra_test::init();

View File

@ -19,7 +19,7 @@ serde = { version = "1", features = ["serde_derive"] }
[dev-dependencies]
tokio = { version = "0.2.21", features = ["full"] }
zebra-test = { path = "../zebra-test/" }
spandoc = "0.1"
spandoc = "0.2"
tracing = "0.1.16"
tracing-futures = "0.2.4"
tempdir = "0.3.7"