Skip to content

Commit 2607052

Browse files
authored
fix: remove unused steps (#1580)
* chore: remove unused code * chore: update pin-project version to remove rust lint warnings * chore: fix potential test failed Co-authored-by: nathan <[email protected]>
1 parent 60d9a6b commit 2607052

File tree

14 files changed

+89
-105
lines changed

14 files changed

+89
-105
lines changed
Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Rust coverage tests
1+
name: Rust code coverage
22

33
on:
44
push:
@@ -9,65 +9,58 @@ on:
99
- "frontend/rust-lib/**"
1010
- "shared-lib/**"
1111

12-
pull_request:
13-
branches:
14-
- "main"
15-
- "release/*"
16-
paths:
17-
- "frontend/rust-lib/**"
18-
- "shared-lib/**"
19-
2012
env:
2113
CARGO_TERM_COLOR: always
2214

23-
2415
jobs:
25-
test-coverage:
16+
tests:
2617
runs-on: ubuntu-latest
2718
steps:
2819
- name: Checkout
2920
uses: actions/checkout@v2
30-
21+
3122
- id: rust_toolchain
3223
uses: actions-rs/toolchain@v1
3324
with:
3425
toolchain: 'stable-2022-04-07'
3526

3627
- name: Cache Cargo
3728
uses: actions/cache@v2
38-
with:
29+
with:
3930
path: |
4031
~/.cargo
4132
key: ${{ runner.os }}-cargo-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
4233

4334
- name: Cache Rust
4435
uses: actions/cache@v2
45-
with:
36+
with:
4637
path: |
4738
frontend/rust-lib/target
4839
shared-lib/target
49-
key: ${{ runner.os }}-rust-rust-lib-share-lib-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
40+
key: ${{ runner.os }}-rust-rust-lib-share-lib-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
5041

51-
- name: Setup Environment
52-
run: |
53-
if [ "$RUNNER_OS" == "Linux" ]; then
54-
sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
55-
sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list
56-
sudo apt-get update
57-
sudo apt-get install -y dart curl build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
58-
sudo apt-get install keybinder-3.0
59-
elif [ "$RUNNER_OS" == "macOS" ]; then
60-
echo 'do nothing'
61-
fi
62-
shell: bash
6342

64-
- name: Install cargo-make, grcov and llvm-tools-preview
43+
- name: Install cargo-make
6544
working-directory: frontend
6645
run: |
6746
cargo install cargo-make
47+
48+
- name: Setup environment - Flutter
49+
uses: subosito/flutter-action@v2
50+
with:
51+
channel: 'stable'
52+
flutter-version: '3.0.5'
53+
54+
- name: Install code-coverage tools
55+
working-directory: frontend
56+
run: |
57+
sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
58+
sudo apt-get update
59+
sudo apt-get install -y build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
60+
sudo apt-get install keybinder-3.0
6861
cargo install grcov
6962
rustup component add llvm-tools-preview
7063
71-
- name: Run Coverage tests and generate LCOV report
64+
- name: Run tests
7265
working-directory: frontend
73-
run: cargo make get_ci_test_coverage
66+
run: cargo make rust_unit_test_with_coverage

frontend/rust-lib/Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/rust-lib/flowy-folder/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ log = "0.4.14"
2626
diesel = {version = "1.4.8", features = ["sqlite"]}
2727
diesel_derives = {version = "1.4.1", features = ["sqlite"]}
2828
futures = "0.3.15"
29-
pin-project = "1.0.0"
29+
pin-project = "1.0"
3030
strum = "0.21"
3131
strum_macros = "0.21"
3232
tokio = { version = "1", features = ["rt"] }

frontend/rust-lib/flowy-grid/src/services/filter/controller.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,9 @@ impl FilterController {
6868
}
6969

7070
#[tracing::instrument(name = "schedule_filter_task", level = "trace", skip(self))]
71-
async fn gen_task(&mut self, task_type: FilterEvent) {
71+
async fn gen_task(&mut self, task_type: FilterEvent, qos: QualityOfService) {
7272
let task_id = self.task_scheduler.read().await.next_task_id();
73-
let task = Task::new(
74-
&self.handler_id,
75-
task_id,
76-
TaskContent::Text(task_type.to_string()),
77-
QualityOfService::UserInteractive,
78-
);
73+
let task = Task::new(&self.handler_id, task_id, TaskContent::Text(task_type.to_string()), qos);
7974
self.task_scheduler.write().await.add_task(task);
8075
}
8176

@@ -187,7 +182,11 @@ impl FilterController {
187182
}
188183

189184
pub async fn did_receive_row_changed(&mut self, row_id: &str) {
190-
self.gen_task(FilterEvent::RowDidChanged(row_id.to_string())).await
185+
self.gen_task(
186+
FilterEvent::RowDidChanged(row_id.to_string()),
187+
QualityOfService::UserInteractive,
188+
)
189+
.await
191190
}
192191

193192
#[tracing::instrument(level = "trace", skip(self))]
@@ -237,7 +236,9 @@ impl FilterController {
237236
self.filter_map.remove(filter_type);
238237
}
239238

240-
let _ = self.gen_task(FilterEvent::FilterDidChanged).await;
239+
let _ = self
240+
.gen_task(FilterEvent::FilterDidChanged, QualityOfService::Background)
241+
.await;
241242
tracing::trace!("{:?}", notification);
242243
notification
243244
}

frontend/rust-lib/flowy-grid/tests/grid/filter_test/script.rs

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use std::time::Duration;
77
use bytes::Bytes;
88
use futures::TryFutureExt;
9+
use tokio::sync::broadcast::Receiver;
910
use flowy_grid::entities::{AlterFilterParams, AlterFilterPayloadPB, DeleteFilterParams, GridLayout, GridSettingChangesetParams, GridSettingPB, RowPB, TextFilterConditionPB, FieldType, NumberFilterConditionPB, CheckboxFilterConditionPB, DateFilterConditionPB, DateFilterContentPB, SelectOptionConditionPB, TextFilterPB, NumberFilterPB, CheckboxFilterPB, DateFilterPB, SelectOptionFilterPB, CellChangesetPB, FilterPB, ChecklistFilterConditionPB, ChecklistFilterPB};
1011
use flowy_grid::services::field::{SelectOptionCellChangeset, SelectOptionIds};
1112
use flowy_grid::services::setting::GridSettingChangesetBuilder;
@@ -89,13 +90,15 @@ pub enum FilterScript {
8990

9091
pub struct GridFilterTest {
9192
inner: GridEditorTest,
93+
recv: Option<Receiver<GridViewChanged>>,
9294
}
9395

9496
impl GridFilterTest {
9597
pub async fn new() -> Self {
9698
let editor_test = GridEditorTest::new_table().await;
9799
Self {
98-
inner: editor_test
100+
inner: editor_test,
101+
recv: None,
99102
}
100103
}
101104

@@ -116,17 +119,19 @@ impl GridFilterTest {
116119
pub async fn run_script(&mut self, script: FilterScript) {
117120
match script {
118121
FilterScript::UpdateTextCell { row_index, text} => {
122+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
119123
self.update_text_cell(row_index, &text).await;
120124
}
121-
122125
FilterScript::UpdateSingleSelectCell { row_index, option_id} => {
126+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
123127
self.update_single_select_cell(row_index, &option_id).await;
124128
}
125129
FilterScript::InsertFilter { payload } => {
130+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
126131
self.insert_filter(payload).await;
127132
}
128133
FilterScript::CreateTextFilter { condition, content} => {
129-
134+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
130135
let field_rev = self.get_first_field_rev(FieldType::RichText);
131136
let text_filter= TextFilterPB {
132137
condition,
@@ -139,6 +144,7 @@ impl GridFilterTest {
139144
self.insert_filter(payload).await;
140145
}
141146
FilterScript::UpdateTextFilter { filter, condition, content} => {
147+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
142148
let params = AlterFilterParams {
143149
view_id: self.view_id(),
144150
field_id: filter.field_id,
@@ -150,6 +156,7 @@ impl GridFilterTest {
150156
self.editor.create_or_update_filter(params).await.unwrap();
151157
}
152158
FilterScript::CreateNumberFilter {condition, content} => {
159+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
153160
let field_rev = self.get_first_field_rev(FieldType::Number);
154161
let number_filter = NumberFilterPB {
155162
condition,
@@ -162,6 +169,7 @@ impl GridFilterTest {
162169
self.insert_filter(payload).await;
163170
}
164171
FilterScript::CreateCheckboxFilter {condition} => {
172+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
165173
let field_rev = self.get_first_field_rev(FieldType::Checkbox);
166174
let checkbox_filter = CheckboxFilterPB {
167175
condition
@@ -171,6 +179,7 @@ impl GridFilterTest {
171179
self.insert_filter(payload).await;
172180
}
173181
FilterScript::CreateDateFilter { condition, start, end, timestamp} => {
182+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
174183
let field_rev = self.get_first_field_rev(FieldType::DateTime);
175184
let date_filter = DateFilterPB {
176185
condition,
@@ -184,20 +193,23 @@ impl GridFilterTest {
184193
self.insert_filter(payload).await;
185194
}
186195
FilterScript::CreateMultiSelectFilter { condition, option_ids} => {
196+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
187197
let field_rev = self.get_first_field_rev(FieldType::MultiSelect);
188198
let filter = SelectOptionFilterPB { condition, option_ids };
189199
let payload =
190200
AlterFilterPayloadPB::new( &self.view_id(),field_rev, filter);
191201
self.insert_filter(payload).await;
192202
}
193203
FilterScript::CreateSingleSelectFilter { condition, option_ids} => {
204+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
194205
let field_rev = self.get_first_field_rev(FieldType::SingleSelect);
195206
let filter = SelectOptionFilterPB { condition, option_ids };
196207
let payload =
197208
AlterFilterPayloadPB::new(& self.view_id(),field_rev, filter);
198209
self.insert_filter(payload).await;
199210
}
200211
FilterScript::CreateChecklistFilter { condition} => {
212+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
201213
let field_rev = self.get_first_field_rev(FieldType::Checklist);
202214
// let type_option = self.get_checklist_type_option(&field_rev.id);
203215
let filter = ChecklistFilterPB { condition };
@@ -216,6 +228,7 @@ impl GridFilterTest {
216228

217229
}
218230
FilterScript::DeleteFilter { filter_id, filter_type } => {
231+
self.recv = Some(self.editor.subscribe_view_changed(&self.view_id()).await.unwrap());
219232
let params = DeleteFilterParams { view_id: self.view_id(),filter_type, filter_id };
220233
let _ = self.editor.delete_filter(params).await.unwrap();
221234
}
@@ -224,24 +237,21 @@ impl GridFilterTest {
224237
assert_eq!(expected_setting, setting);
225238
}
226239
FilterScript::AssertFilterChanged { visible_row_len, hide_row_len} => {
227-
let editor = self.editor.clone();
228-
let view_id = self.view_id();
229-
let mut receiver =
230-
tokio::spawn(async move {
231-
editor.subscribe_view_changed(&view_id).await.unwrap()
232-
}).await.unwrap();
233-
match tokio::time::timeout(Duration::from_secs(2), receiver.recv()).await {
234-
Ok(changed) => {
235-
//
236-
match changed.unwrap() { GridViewChanged::DidReceiveFilterResult(changed) => {
237-
assert_eq!(changed.visible_rows.len(), visible_row_len, "visible rows not match");
238-
assert_eq!(changed.invisible_rows.len(), hide_row_len, "invisible rows not match");
239-
} }
240-
},
241-
Err(e) => {
242-
panic!("Process task timeout: {:?}", e);
240+
if let Some(mut receiver) = self.recv.take() {
241+
match tokio::time::timeout(Duration::from_secs(2), receiver.recv()).await {
242+
Ok(changed) => {
243+
//
244+
match changed.unwrap() { GridViewChanged::DidReceiveFilterResult(changed) => {
245+
assert_eq!(changed.visible_rows.len(), visible_row_len, "visible rows not match");
246+
assert_eq!(changed.invisible_rows.len(), hide_row_len, "invisible rows not match");
247+
} }
248+
},
249+
Err(e) => {
250+
panic!("Process task timeout: {:?}", e);
251+
}
243252
}
244253
}
254+
245255
}
246256
FilterScript::AssertNumberOfVisibleRows { expected } => {
247257
let grid = self.editor.get_grid(&self.view_id()).await.unwrap();

frontend/rust-lib/flowy-grid/tests/grid/filter_test/text_filter_test.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ async fn grid_filter_text_is_not_empty_test() {
3030
content: "".to_string(),
3131
},
3232
AssertFilterCount { count: 1 },
33+
// There is only one row in the test data that its text is empty
3334
AssertFilterChanged {
3435
visible_row_len: 0,
3536
hide_row_len: 1,
@@ -44,10 +45,11 @@ async fn grid_filter_text_is_not_empty_test() {
4445
filter_id: filter.id,
4546
filter_type: FilterType::from(&field_rev),
4647
},
47-
// AssertFilterChanged {
48-
// visible_row_len: 1,
49-
// hide_row_len: 0,
50-
// },
48+
AssertFilterCount { count: 0 },
49+
AssertFilterChanged {
50+
visible_row_len: 1,
51+
hide_row_len: 0,
52+
},
5153
])
5254
.await;
5355
}

frontend/rust-lib/flowy-sdk/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ fn crate_log_filter(level: String) -> String {
8989
filters.push(format!("lib_infra={}", level));
9090
filters.push(format!("flowy_sync={}", level));
9191
filters.push(format!("flowy_revision={}", level));
92+
filters.push(format!("flowy_task={}", level));
9293
// filters.push(format!("lib_dispatch={}", level));
9394

9495
filters.push(format!("dart_ffi={}", "info"));

frontend/rust-lib/flowy-task/src/scheduler.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,12 @@ impl TaskDispatcher {
7171
Ok(result) => match result {
7272
Ok(_) => task.set_state(TaskState::Done),
7373
Err(e) => {
74-
tracing::error!("Process task failed: {:?}", e);
74+
tracing::error!("Process {} task failed: {:?}", handler.handler_id(), e);
7575
task.set_state(TaskState::Failure);
7676
}
7777
},
7878
Err(e) => {
79-
tracing::error!("Process task timeout: {:?}", e);
79+
tracing::error!("Process {} task timeout: {:?}", handler.handler_id(), e);
8080
task.set_state(TaskState::Timeout);
8181
}
8282
}

frontend/rust-lib/lib-dispatch/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ edition = "2018"
66
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
77

88
[dependencies]
9-
pin-project = "1.0.0"
9+
pin-project = "1.0"
1010
futures-core = { version = "0.3", default-features = false }
1111
paste = "1"
1212
futures-channel = "0.3.15"

0 commit comments

Comments
 (0)