diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 86bf4fede..8d424afc1 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -15,6 +15,7 @@ on: jobs: coverage: + name: Integration runs-on: ubuntu-latest defaults: run: @@ -38,7 +39,7 @@ jobs: - name: Install cargo-llvm-cov uses: taiki-e/install-action@cargo-llvm-cov - name: Generate code coverage - run: cargo llvm-cov nextest --all-features --workspace --lcov --output-path lcov.info + run: cargo llvm-cov nextest --workspace --exclude malachite-itf --all-features --lcov --output-path lcov.info - name: Generate text report run: cargo llvm-cov report - name: Upload coverage to Codecov @@ -46,4 +47,41 @@ jobs: with: token: ${{ secrets.CODECOV_TOKEN }} files: Code/lcov.info + flags: integration + fail_ci_if_error: true + + mbt-coverage: + name: MBT + runs-on: ubuntu-latest + defaults: + run: + working-directory: Code + env: + CARGO_TERM_COLOR: always + steps: + - name: Checkout + uses: actions/checkout@v4 + - uses: actions/setup-node@v3 + with: + node-version: "18" + - run: npm install -g @informalsystems/quint + - name: Setup Rust toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: nightly + components: llvm-tools-preview + - name: Install cargo-nextest + uses: taiki-e/install-action@cargo-nextest + - name: Install cargo-llvm-cov + uses: taiki-e/install-action@cargo-llvm-cov + - name: Generate code coverage + run: cargo llvm-cov nextest -p malachite-itf --all-features --lcov --output-path lcov.info + - name: Generate text report + run: cargo llvm-cov report + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: Code/lcov.info + flags: mbt fail_ci_if_error: true diff --git a/Code/.cargo/config.toml b/Code/.cargo/config.toml new file mode 100644 index 000000000..9ab3fa3a0 --- /dev/null +++ b/Code/.cargo/config.toml @@ -0,0 +1,2 @@ +[alias] +mbt = "nextest run -p malachite-itf --all-features" diff --git a/Code/itf/src/consensus.rs b/Code/itf/src/consensus.rs deleted file mode 100644 index 2bb430b6a..000000000 --- a/Code/itf/src/consensus.rs +++ /dev/null @@ -1,178 +0,0 @@ -use num_bigint::BigInt; -use serde::Deserialize; -use std::collections::HashMap; - -use crate::deserializers as de; - -pub type Address = String; -pub type Value = String; -pub type Step = String; -pub type Round = BigInt; -pub type Height = BigInt; - -#[derive(Clone, Debug, Deserialize)] -pub enum Timeout { - #[serde(rename = "timeoutPrevote")] - Prevote, - - #[serde(rename = "timeoutPrecommit")] - Precommit, - - #[serde(rename = "timeoutPropose")] - Propose, -} - -#[derive(Clone, Debug, Deserialize)] -pub struct State { - pub system: System, - - #[serde(rename = "_Event")] - pub event: Event, - - #[serde(rename = "_Result")] - pub result: Result, -} - -#[derive(Clone, Debug, Deserialize)] -pub struct System(HashMap); - -#[derive(Clone, Debug, Deserialize)] -#[serde(tag = "name")] -pub enum Event { - Initial, - NewRound { - height: Height, - round: Round, - }, - Proposal { - height: Height, - round: Round, - value: Value, - }, - ProposalAndPolkaAndValid { - height: Height, - round: Round, - value: Value, - }, - ProposalAndCommitAndValid { - height: Height, - round: Round, - value: Value, - }, - NewHeight { - height: Height, - round: Round, - }, - NewRoundProposer { - height: Height, - round: Round, - value: Value, - }, - PolkaNil { - height: Height, - round: Round, - value: Value, - }, - PolkaAny { - height: Height, - round: Round, - value: Value, - }, - PrecommitAny { - height: Height, - round: Round, - value: Value, - }, - TimeoutPrevote { - height: Height, - round: Round, - }, - TimeoutPrecommit { - height: Height, - round: Round, - value: Value, - }, - TimeoutPropose { - height: Height, - round: Round, - value: Value, - }, - ProposalInvalid { - height: Height, - round: Round, - }, -} - -#[derive(Clone, Debug, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct Result { - pub name: String, - #[serde(deserialize_with = "de::proposal_or_none")] - pub proposal: Option, - #[serde(deserialize_with = "de::vote_message_or_none")] - pub vote_message: Option, - #[serde(deserialize_with = "de::empty_string_as_none")] - pub timeout: Option, - #[serde(deserialize_with = "de::empty_string_as_none")] - pub decided: Option, - #[serde(deserialize_with = "de::minus_one_as_none")] - pub skip_round: Option, -} - -#[derive(Clone, Debug, Deserialize, PartialEq, Eq)] -#[serde(rename_all = "camelCase")] -pub struct Proposal { - pub src: Address, - pub height: Height, - pub round: Round, - pub proposal: Value, - pub valid_round: Round, -} - -impl Proposal { - pub fn is_empty(&self) -> bool { - self.src.is_empty() - && self.proposal.is_empty() - && self.height == BigInt::from(-1) - && self.round == BigInt::from(-1) - && self.valid_round == BigInt::from(-1) - } -} - -#[derive(Clone, Debug, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct VoteMessage { - pub src: Address, - pub height: Height, - pub round: Round, - pub step: Step, - pub id: Value, -} - -impl VoteMessage { - pub fn is_empty(&self) -> bool { - self.src.is_empty() - && self.id.is_empty() - && self.height == BigInt::from(-1) - && self.round == BigInt::from(-1) - && self.step.is_empty() - } -} - -#[derive(Clone, Debug, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct ConsensusState { - pub p: Address, - pub height: Height, - pub round: Round, - pub step: Step, - - #[serde(deserialize_with = "de::minus_one_as_none")] - pub locked_round: Option, - #[serde(deserialize_with = "de::empty_string_as_none")] - pub locked_value: Option, - #[serde(deserialize_with = "de::minus_one_as_none")] - pub valid_round: Option, - #[serde(deserialize_with = "de::empty_string_as_none")] - pub valid_value: Option, -} diff --git a/Code/itf/src/deserializers.rs b/Code/itf/src/deserializers.rs deleted file mode 100644 index 53231f40d..000000000 --- a/Code/itf/src/deserializers.rs +++ /dev/null @@ -1,53 +0,0 @@ -use num_bigint::BigInt; -use serde::de::IntoDeserializer; -use serde::Deserialize; - -use crate::consensus::{Proposal, VoteMessage}; - -pub(crate) fn empty_string_as_none<'de, D, T>(de: D) -> Result, D::Error> -where - D: serde::Deserializer<'de>, - T: serde::Deserialize<'de>, -{ - let opt = Option::::deserialize(de)?; - match opt.as_deref() { - None | Some("") => Ok(None), - Some(s) => T::deserialize(s.into_deserializer()).map(Some), - } -} - -pub(crate) fn minus_one_as_none<'de, D>(de: D) -> Result, D::Error> -where - D: serde::Deserializer<'de>, -{ - let opt = Option::::deserialize(de)?; - match opt { - None => Ok(None), - Some(i) if i == BigInt::from(-1) => Ok(None), - Some(i) => Ok(Some(i)), - } -} - -pub(crate) fn proposal_or_none<'de, D>(de: D) -> Result, D::Error> -where - D: serde::Deserializer<'de>, -{ - let proposal = Proposal::deserialize(de)?; - if proposal.is_empty() { - Ok(None) - } else { - Ok(Some(proposal)) - } -} - -pub(crate) fn vote_message_or_none<'de, D>(de: D) -> Result, D::Error> -where - D: serde::Deserializer<'de>, -{ - let vote_message = VoteMessage::deserialize(de)?; - if vote_message.is_empty() { - Ok(None) - } else { - Ok(Some(vote_message)) - } -} diff --git a/Code/itf/src/lib.rs b/Code/itf/src/lib.rs index d8bacfb93..be66ce483 100644 --- a/Code/itf/src/lib.rs +++ b/Code/itf/src/lib.rs @@ -1,5 +1,2 @@ -pub mod consensus; -pub mod votekeeper; - -mod deserializers; pub mod utils; +pub mod votekeeper; diff --git a/Code/itf/tests/consensus.rs b/Code/itf/tests/consensus.rs deleted file mode 100644 index 9eac81275..000000000 --- a/Code/itf/tests/consensus.rs +++ /dev/null @@ -1,18 +0,0 @@ -use glob::glob; - -use malachite_itf::consensus::State; - -#[test] -fn test_itf() { - for json_fixture in glob("tests/fixtures/consensus/*.json") - .expect("Failed to read glob pattern") - .flatten() - { - println!("Parsing {json_fixture:?}"); - - let json = std::fs::read_to_string(&json_fixture).unwrap(); - let state = itf::trace_from_str::(&json).unwrap(); - - dbg!(state); - } -} diff --git a/Code/itf/tests/fixtures/consensus/consensus_DecideNonProposerTest_0.itf.json b/Code/itf/tests/fixtures/consensus/consensus_DecideNonProposerTest_0.itf.json deleted file mode 100644 index 16347d3a4..000000000 --- a/Code/itf/tests/fixtures/consensus/consensus_DecideNonProposerTest_0.itf.json +++ /dev/null @@ -1 +0,0 @@ -{"#meta":{"format":"ITF","format-description":"https://apalache.informal.systems/docs/adr/015adr-trace.html","source":"consensus.qnt","status":"passed","description":"Created by Quint on Fri Nov 10 2023 14:33:14 GMT+0100 (GMT+01:00)","timestamp":1699623194345},"vars":["system","_Event","_Result"],"states":[{"#meta":{"index":0},"_Event":{"height":{"#bigint":"-1"},"name":"Initial","round":{"#bigint":"-1"},"value":"","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"1"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"newRound","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":1},"_Event":{"height":{"#bigint":"1"},"name":"NewRound","round":{"#bigint":"0"},"value":"","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPropose","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"1"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"propose","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":2},"_Event":{"height":{"#bigint":"1"},"name":"NewRound","round":{"#bigint":"0"},"value":"","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPropose","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"1"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"propose","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":3},"_Event":{"height":{"#bigint":"1"},"name":"Proposal","round":{"#bigint":"0"},"value":"block","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"1"},"id":"block","round":{"#bigint":"0"},"src":"Josef","step":"prevote"}},"system":{"#map":[["Josef",{"height":{"#bigint":"1"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"prevote","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":4},"_Event":{"height":{"#bigint":"1"},"name":"Proposal","round":{"#bigint":"0"},"value":"block","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"1"},"id":"block","round":{"#bigint":"0"},"src":"Josef","step":"prevote"}},"system":{"#map":[["Josef",{"height":{"#bigint":"1"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"prevote","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":5},"_Event":{"height":{"#bigint":"1"},"name":"ProposalAndPolkaAndValid","round":{"#bigint":"0"},"value":"block","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"1"},"id":"block","round":{"#bigint":"0"},"src":"Josef","step":"precommit"}},"system":{"#map":[["Josef",{"height":{"#bigint":"1"},"lockedRound":{"#bigint":"0"},"lockedValue":"block","p":"Josef","round":{"#bigint":"0"},"step":"precommit","validRound":{"#bigint":"0"},"validValue":"block"}]]}},{"#meta":{"index":6},"_Event":{"height":{"#bigint":"1"},"name":"ProposalAndPolkaAndValid","round":{"#bigint":"0"},"value":"block","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"1"},"id":"block","round":{"#bigint":"0"},"src":"Josef","step":"precommit"}},"system":{"#map":[["Josef",{"height":{"#bigint":"1"},"lockedRound":{"#bigint":"0"},"lockedValue":"block","p":"Josef","round":{"#bigint":"0"},"step":"precommit","validRound":{"#bigint":"0"},"validValue":"block"}]]}},{"#meta":{"index":7},"_Event":{"height":{"#bigint":"1"},"name":"ProposalAndCommitAndValid","round":{"#bigint":"0"},"value":"block","vr":{"#bigint":"-1"}},"_Result":{"decided":"block","name":"decided","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"1"},"lockedRound":{"#bigint":"0"},"lockedValue":"block","p":"Josef","round":{"#bigint":"0"},"step":"decided","validRound":{"#bigint":"0"},"validValue":"block"}]]}},{"#meta":{"index":8},"_Event":{"height":{"#bigint":"1"},"name":"ProposalAndCommitAndValid","round":{"#bigint":"0"},"value":"block","vr":{"#bigint":"-1"}},"_Result":{"decided":"block","name":"decided","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"1"},"lockedRound":{"#bigint":"0"},"lockedValue":"block","p":"Josef","round":{"#bigint":"0"},"step":"decided","validRound":{"#bigint":"0"},"validValue":"block"}]]}},{"#meta":{"index":9},"_Event":{"height":{"#bigint":"2"},"name":"NewHeight","round":{"#bigint":"0"},"value":"","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"newRound","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":10},"_Event":{"height":{"#bigint":"2"},"name":"NewHeight","round":{"#bigint":"0"},"value":"","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"newRound","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":11},"_Event":{"height":{"#bigint":"2"},"name":"NewRoundProposer","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"proposal","proposal":{"height":{"#bigint":"2"},"proposal":"nextBlock","round":{"#bigint":"0"},"src":"Josef","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"propose","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":12},"_Event":{"height":{"#bigint":"2"},"name":"NewRoundProposer","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"proposal","proposal":{"height":{"#bigint":"2"},"proposal":"nextBlock","round":{"#bigint":"0"},"src":"Josef","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"propose","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":13},"_Event":{"height":{"#bigint":"2"},"name":"Proposal","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"2"},"id":"nextBlock","round":{"#bigint":"0"},"src":"Josef","step":"prevote"}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"prevote","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":14},"_Event":{"height":{"#bigint":"2"},"name":"Proposal","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"2"},"id":"nextBlock","round":{"#bigint":"0"},"src":"Josef","step":"prevote"}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"prevote","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":15},"_Event":{"height":{"#bigint":"2"},"name":"PolkaAny","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPrevote","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"prevote","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":16},"_Event":{"height":{"#bigint":"2"},"name":"PolkaAny","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPrevote","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"prevote","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":17},"_Event":{"height":{"#bigint":"2"},"name":"TimeoutPrevote","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"2"},"id":"nil","round":{"#bigint":"0"},"src":"Josef","step":"precommit"}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":18},"_Event":{"height":{"#bigint":"2"},"name":"TimeoutPrevote","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"2"},"id":"nil","round":{"#bigint":"0"},"src":"Josef","step":"precommit"}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":19},"_Event":{"height":{"#bigint":"2"},"name":"PrecommitAny","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPrecommit","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":20},"_Event":{"height":{"#bigint":"2"},"name":"PrecommitAny","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPrecommit","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":21},"_Event":{"height":{"#bigint":"2"},"name":"TimeoutPrecommit","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"skipRound","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"1"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":22},"_Event":{"height":{"#bigint":"2"},"name":"TimeoutPrecommit","round":{"#bigint":"0"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"skipRound","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"1"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"0"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":23},"_Event":{"height":{"#bigint":"2"},"name":"NewRound","round":{"#bigint":"1"},"value":"","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPropose","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"1"},"step":"propose","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":24},"_Event":{"height":{"#bigint":"2"},"name":"NewRound","round":{"#bigint":"1"},"value":"","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPropose","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"1"},"step":"propose","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":25},"_Event":{"height":{"#bigint":"2"},"name":"TimeoutPropose","round":{"#bigint":"1"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"2"},"id":"nil","round":{"#bigint":"1"},"src":"Josef","step":"prevote"}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"1"},"step":"prevote","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":26},"_Event":{"height":{"#bigint":"2"},"name":"TimeoutPropose","round":{"#bigint":"1"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"2"},"id":"nil","round":{"#bigint":"1"},"src":"Josef","step":"prevote"}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"1"},"step":"prevote","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":27},"_Event":{"height":{"#bigint":"2"},"name":"PolkaNil","round":{"#bigint":"1"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"2"},"id":"nil","round":{"#bigint":"1"},"src":"Josef","step":"precommit"}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"1"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":28},"_Event":{"height":{"#bigint":"2"},"name":"PolkaNil","round":{"#bigint":"1"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"2"},"id":"nil","round":{"#bigint":"1"},"src":"Josef","step":"precommit"}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"1"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":29},"_Event":{"height":{"#bigint":"2"},"name":"PrecommitAny","round":{"#bigint":"1"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPrecommit","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"1"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":30},"_Event":{"height":{"#bigint":"2"},"name":"PrecommitAny","round":{"#bigint":"1"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPrecommit","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"1"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":31},"_Event":{"height":{"#bigint":"2"},"name":"TimeoutPrecommit","round":{"#bigint":"1"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"skipRound","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"2"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"1"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":32},"_Event":{"height":{"#bigint":"2"},"name":"TimeoutPrecommit","round":{"#bigint":"1"},"value":"nextBlock","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"skipRound","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"2"},"timeout":"","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"1"},"step":"precommit","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":33},"_Event":{"height":{"#bigint":"2"},"name":"NewRound","round":{"#bigint":"2"},"value":"","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPropose","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"2"},"step":"propose","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":34},"_Event":{"height":{"#bigint":"2"},"name":"NewRound","round":{"#bigint":"2"},"value":"","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"timeout","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"timeoutPropose","voteMessage":{"height":{"#bigint":"-1"},"id":"","round":{"#bigint":"-1"},"src":"","step":""}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"2"},"step":"propose","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}},{"#meta":{"index":35},"_Event":{"height":{"#bigint":"2"},"name":"ProposalInvalid","round":{"#bigint":"2"},"value":"","vr":{"#bigint":"-1"}},"_Result":{"decided":"","name":"votemessage","proposal":{"height":{"#bigint":"-1"},"proposal":"","round":{"#bigint":"-1"},"src":"","validRound":{"#bigint":"-1"}},"skipRound":{"#bigint":"-1"},"timeout":"","voteMessage":{"height":{"#bigint":"2"},"id":"nil","round":{"#bigint":"2"},"src":"Josef","step":"prevote"}},"system":{"#map":[["Josef",{"height":{"#bigint":"2"},"lockedRound":{"#bigint":"-1"},"lockedValue":"nil","p":"Josef","round":{"#bigint":"2"},"step":"prevote","validRound":{"#bigint":"-1"},"validValue":"nil"}]]}}]} \ No newline at end of file diff --git a/codecov.yml b/codecov.yml index 4a394a747..d15ffde23 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,6 +1,10 @@ codecov: require_ci_to_pass: yes +# ignore: +# - "Code/itf" +# - "Code/test" + coverage: precision: 2 round: nearest