Skip to content

Commit

Permalink
ci: add lack clippy tests for some contracts and fix contracts accord…
Browse files Browse the repository at this point in the history
…ing to them (#285)

* ci: add lack clippy tests for contracts

* fix: cargo clippy for intermediate-number contract

* fix: cargo clippy for simple-callee contract

* fix: cargo clippy for voting-with-uuid contract

* ci: update rust toolchain for testing eventns contract

* build: cargo schema in event contract

* fix: cargo clippy in call number contract

* ci: modify tests.yml
  • Loading branch information
loloicci committed Apr 11, 2023
1 parent df28f42 commit f3d7757
Show file tree
Hide file tree
Showing 8 changed files with 78 additions and 48 deletions.
89 changes: 62 additions & 27 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -985,15 +985,15 @@ jobs:
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.57.0
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v2
with:
path: ~/.cargo
key: cargocache-v2-contract_events-rust:1.57.0-${{ hashFiles('contracts/events/Cargo.lock') }}
key: cargocache-v2-contract_events-rust:1.60.0-${{ hashFiles('contracts/events/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
Expand Down Expand Up @@ -1210,28 +1210,63 @@ jobs:
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/staking.wasm
cargo clippy --tests -- -D warnings
# These four tests issue errors in 1.51.0. In 1.57.0, they succeeds.
# - name: Clippy linting on dynamic-callee-contract
# working-directory: ${{env.contracts}}/dynamic-callee-contract
# run: |
# mkdir -p target/wasm32-unknown-unknown/release
# touch target/wasm32-unknown-unknown/release/dynamic_callee_contract.wasm
# cargo clippy --tests -- -D warnings
# - name: Clippy linting on dynamic-caller-contract
# working-directory: ${{env.contracts}}/dynamic-caller-contract
# run: |
# mkdir -p target/wasm32-unknown-unknown/release
# touch target/wasm32-unknown-unknown/release/dynamic_caller_contract.wasm
# cargo clippy --tests -- -D warnings
# - name: Clippy linting on number
# working-directory: ${{env.contracts}}/number
# run: |
# mkdir -p target/wasm32-unknown-unknown/release
# touch target/wasm32-unknown-unknown/release/number.wasm
# cargo clippy --tests -- -D warnings
# - name: Clippy linting on call-number
# working-directory: ${{env.contracts}}/call-number
# run: |
# mkdir -p target/wasm32-unknown-unknown/release
# touch target/wasm32-unknown-unknown/release/call_number.wasm
# cargo clippy --tests -- -D warnings
- name: Clippy linting on dynamic-callee-contract
working-directory: ${{env.contracts}}/dynamic-callee-contract
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/dynamic_callee_contract.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on dynamic-caller-contract
working-directory: ${{env.contracts}}/dynamic-caller-contract
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/dynamic_caller_contract.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on number
working-directory: ${{env.contracts}}/number
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/number.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on intermediate-number
working-directory: ${{env.contracts}}/intermediate-number
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/intermediate_number.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on call-number
working-directory: ${{env.contracts}}/call-number
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/call_number.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on cyberpunk
working-directory: ${{env.contracts}}/cyberpunk
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/cyberpunk.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on events
working-directory: ${{env.contracts}}/events
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/events.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on floaty
working-directory: ${{env.contracts}}/floaty
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/floaty.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on simple-callee
working-directory: ${{env.contracts}}/simple-callee
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/simple_callee.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on voting-with-uuid
working-directory: ${{env.contracts}}/voting-with-uuid
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/cw_voting_with_uuid.wasm
cargo clippy --tests -- -D warnings
10 changes: 4 additions & 6 deletions contracts/call-number/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ fn handle_submsg_reply_add(deps: Deps, by: i32) -> Result<Response, ContractErro
0,
);
let response = Response::default().add_submessage(execute_msg);
return Ok(response);
Ok(response)
}

fn handle_submsg_reply_sub(deps: Deps, by: i32) -> Result<Response, ContractError> {
Expand All @@ -122,7 +122,7 @@ fn handle_submsg_reply_sub(deps: Deps, by: i32) -> Result<Response, ContractErro
0,
);
let response = Response::default().add_submessage(execute_msg);
return Ok(response);
Ok(response)
}

fn handle_submsg_reply_mul(deps: Deps, by: i32) -> Result<Response, ContractError> {
Expand All @@ -132,7 +132,7 @@ fn handle_submsg_reply_mul(deps: Deps, by: i32) -> Result<Response, ContractErro
0,
);
let response = Response::default().add_submessage(execute_msg);
return Ok(response);
Ok(response)
}

fn handle_log_query(deps: Deps) -> Result<Response, ContractError> {
Expand All @@ -148,9 +148,7 @@ fn handle_log_query(deps: Deps) -> Result<Response, ContractError> {

fn handle_log_query_dyn(deps: Deps) -> Result<Response, ContractError> {
let address: Addr = from_slice(&deps.storage.get(ADDRESS_KEY).unwrap())?;
let contract = NumberContract {
address: address.clone(),
};
let contract = NumberContract { address };
let value_dyn = contract.number();

let response = Response::default().add_attribute("value_by_query_dyn", value_dyn.to_string());
Expand Down
2 changes: 1 addition & 1 deletion contracts/dynamic-caller-contract/tests/integration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ static CONTRACT_CALLER: &[u8] =
include_bytes!("../target/wasm32-unknown-unknown/release/dynamic_caller_contract.wasm");

fn required_imports() -> Vec<(String, String, FunctionType)> {
let module_name = String::from("dynamiclinked_CalleeContract");
let module_name = "dynamiclinked_CalleeContract";
vec![
(
String::from("pong"),
Expand Down
4 changes: 2 additions & 2 deletions contracts/events/schema/execute_msg.json
Original file line number Diff line number Diff line change
Expand Up @@ -235,15 +235,15 @@
}
},
"Event": {
"description": "A full [*Cosmos SDK* event].\n\nThis version uses string attributes (similar to [*Cosmos SDK* StringEvent]), which then get magically converted to bytes for Tendermint somewhere between the Rust-Go interface, JSON deserialization and the `NewEvent` call in Cosmos SDK.\n\n[*Cosmos SDK* event]: https://docs.cosmos.network/master/core/events.html [*Cosmos SDK* StringEvent]: https://github.com/cosmos/cosmos-sdk/blob/v0.42.5/proto/cosmos/base/abci/v1beta1/abci.proto#L56-L70",
"description": "A full [*Cosmos SDK* event].\n\nThis version uses string attributes (similar to [*Cosmos SDK* StringEvent]), which then get magically converted to bytes for Tendermint somewhere between the Rust-Go interface, JSON deserialization and the `NewEvent` call in Cosmos SDK.\n\n[*Cosmos SDK* event]: https://docs.cosmos.network/main/core/events.html [*Cosmos SDK* StringEvent]: https://github.com/cosmos/cosmos-sdk/blob/v0.42.5/proto/cosmos/base/abci/v1beta1/abci.proto#L56-L70",
"type": "object",
"required": [
"attributes",
"type"
],
"properties": {
"attributes": {
"description": "The attributes to be included in the event.\n\nYou can learn more about these from [*Cosmos SDK* docs].\n\n[*Cosmos SDK* docs]: https://docs.cosmos.network/master/core/events.html",
"description": "The attributes to be included in the event.\n\nYou can learn more about these from [*Cosmos SDK* docs].\n\n[*Cosmos SDK* docs]: https://docs.cosmos.network/main/core/events.html",
"type": "array",
"items": {
"$ref": "#/definitions/Attribute"
Expand Down
4 changes: 1 addition & 3 deletions contracts/intermediate-number/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,7 @@ fn query_number(deps: Deps) -> Result<NumberResponse, ContractError> {

fn handle_number(deps: Deps) -> Result<i32, ContractError> {
let address: Addr = from_slice(&deps.storage.get(ADDRESS_KEY).unwrap())?;
let contract = NumberContract {
address: address.clone(),
};
let contract = NumberContract { address };
let value_dyn = contract.number();
Ok(value_dyn)
}
Expand Down
8 changes: 2 additions & 6 deletions contracts/simple-callee/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,10 @@ mod callable_points {
use super::*;

#[callable_point]
fn succeed(_deps: DepsMut, _env: Env) {
()
}
fn succeed(_deps: DepsMut, _env: Env) {}

#[callable_point]
fn succeed_readonly(_deps: Deps, _env: Env) {
()
}
fn succeed_readonly(_deps: Deps, _env: Env) {}

#[callable_point]
fn fail(_deps: DepsMut, _env: Env) {
Expand Down
5 changes: 4 additions & 1 deletion contracts/simple-callee/tests/integration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,10 @@ fn callable_point_succeed_readonly_works() {

let required_exports = required_exports();
let export_index = 1;
assert_eq!("succeed_readonly".to_string(), required_exports[export_index].0);
assert_eq!(
"succeed_readonly".to_string(),
required_exports[export_index].0
);

// check succeed_readonly
instance
Expand Down
4 changes: 2 additions & 2 deletions contracts/voting-with-uuid/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ pub fn end_poll(
attr("action", "end_poll"),
attr("poll_id", poll_id.to_string()),
attr("rejected_reason", rejected_reason),
attr("passed", &passed.to_string()),
attr("passed", passed.to_string()),
];

Ok(Response::new().add_attributes(attributes))
Expand Down Expand Up @@ -393,7 +393,7 @@ pub fn cast_vote(
let attributes = vec![
attr("action", "vote_casted"),
attr("poll_id", poll_id.to_string()),
attr("weight", &weight.to_string()),
attr("weight", weight.to_string()),
attr("voter", &info.sender),
];

Expand Down

0 comments on commit f3d7757

Please sign in to comment.