diff --git a/.github/workflows/check-and-lint.yaml b/.github/workflows/check-and-lint.yaml index 48e5bd8..7afd783 100644 --- a/.github/workflows/check-and-lint.yaml +++ b/.github/workflows/check-and-lint.yaml @@ -4,6 +4,7 @@ on: branches: - main - ekrem/ci + - dev name: Check and Lint diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..524fd96 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,58 @@ +on: + pull_request: + push: + branches: + - main + - ekrem/ci + - dev + +name: Test with Code Coverage + +jobs: + test: + name: Test + env: + PROJECT_NAME_UNDERSCORE: rust_ci_github_actions_workflow + CARGO_INCREMENTAL: 0 + RUSTFLAGS: -Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort + RUSTDOCFLAGS: -Cpanic=abort + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + - name: Cache dependencies + uses: actions/cache@v2 + env: + cache-name: cache-dependencies + with: + path: | + ~/.cargo/.crates.toml + ~/.cargo/.crates2.json + ~/.cargo/bin + ~/.cargo/registry/index + ~/.cargo/registry/cache + target + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }} + - name: Generate test result and coverage report + run: | + cargo install cargo2junit grcov; + cargo test $CARGO_OPTIONS -- -Z unstable-options --format json | cargo2junit > results.xml; + zip -0 ccov.zip `find . \( -name "$PROJECT_NAME_UNDERSCORE*.gc*" \) -print`; + grcov ccov.zip -s . -t lcov --llvm --ignore-not-existing --ignore "/*" --ignore "tests/*" -o lcov.info; + - name: Upload test results + uses: EnricoMi/publish-unit-test-result-action@v1 + with: + check_name: Test Results + github_token: ${{ secrets.GITHUB_TOKEN }} + files: results.xml + - name: Upload to CodeCov + uses: codecov/codecov-action@v1 + with: + # required for private repositories: + # token: ${{ secrets.CODECOV_TOKEN }} + files: ./lcov.info + fail_ci_if_error: true \ No newline at end of file diff --git a/src/traits/bit_commitment.rs b/src/traits/bit_commitment.rs index a283ec3..e6e336d 100644 --- a/src/traits/bit_commitment.rs +++ b/src/traits/bit_commitment.rs @@ -1,2 +1 @@ -pub trait BitCommitmentTrait { -} \ No newline at end of file +pub trait BitCommitmentTrait {} diff --git a/src/traits/circuit.rs b/src/traits/circuit.rs index b0442ec..0302429 100644 --- a/src/traits/circuit.rs +++ b/src/traits/circuit.rs @@ -1,4 +1,3 @@ - // This trait defines the behavior of a circuit. pub trait CircuitTrait { fn evaluate(&self); @@ -6,4 +5,4 @@ pub trait CircuitTrait { fn from_bristol(file: &str) -> Self; fn generate_commitment_tree(&self); -} \ No newline at end of file +} diff --git a/src/traits/gate.rs b/src/traits/gate.rs index 90a5d48..d487b26 100644 --- a/src/traits/gate.rs +++ b/src/traits/gate.rs @@ -1,3 +1,3 @@ pub trait GateTrait { fn create_challenge_script(&self) -> String; -} \ No newline at end of file +} diff --git a/src/traits/mod.rs b/src/traits/mod.rs index 1e74085..311a838 100644 --- a/src/traits/mod.rs +++ b/src/traits/mod.rs @@ -1,4 +1,4 @@ pub mod bit_commitment; -pub mod gate; pub mod circuit; -pub mod wire; \ No newline at end of file +pub mod gate; +pub mod wire; diff --git a/src/utils.rs b/src/utils.rs index 6e47346..43efcbc 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -3,7 +3,9 @@ use std::io::{self, BufRead}; use std::path::Path; pub fn read_lines

(filename: P) -> io::Result>> -where P: AsRef, { +where + P: AsRef, +{ let file = File::open(filename)?; Ok(io::BufReader::new(file).lines()) } diff --git a/src/wire.rs b/src/wire.rs index 228a3da..8114e69 100644 --- a/src/wire.rs +++ b/src/wire.rs @@ -65,4 +65,3 @@ mod tests { // TODO:Test if script returns 1 given input witness with [preimages[0], preimages[1] } } -