Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interleaved traffic view #54

Closed
wants to merge 67 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
58445fc
Read list of tests from a file rather than a directory.
martinling Dec 13, 2022
bf8f8b8
Add feature to record UI test.
martinling Dec 13, 2022
64cd223
Run tests with an Xvfb server available.
martinling Dec 14, 2022
3bbc7e3
Add UI replay infrastructure and initial test case.
martinling Dec 14, 2022
7c33b80
Avoid logging repeated updates with the same packet count.
martinling Dec 14, 2022
1baf5a5
Handle updates to summaries of existing items in replay test.
martinling Dec 14, 2022
806731a
Add test case single-stepping through mouse enumeration.
martinling Dec 14, 2022
6474d55
Add test of stepping through split polling.
martinling Dec 14, 2022
30e3895
Separate main.rs into lib.rs, ui.rs, and test_replay.rs.
martinling Dec 14, 2022
d8b3fbb
Summarise output of UI replay tests.
martinling Jan 12, 2023
2400b50
Summarise output of decoder tests.
martinling Jan 12, 2023
807e52e
Include summary of node being expanded/collapsed in UI test output.
martinling Jan 13, 2023
f380496
Maintain a region map in parallel with the tree model.
martinling Dec 15, 2022
60fd9a4
Add row_count method.
martinling Jan 18, 2023
80a3536
Add feature to output region map debug messages.
martinling Dec 15, 2022
c014de7
Add self-check of region map against expected row count.
martinling Jan 18, 2023
796def6
Use region map to fetch items.
martinling Dec 16, 2022
f348d18
Use a ModelUpdate struct to represent updates to be applied.
martinling Dec 17, 2022
aa8eba6
Use u64 indices in TreeListModel.
martinling Dec 17, 2022
c9b1f40
Add an is_complete helper to CompletionStatus.
martinling Dec 17, 2022
2d84caa
Replace item_node method with an item_node_rc on NodeRcOps.
martinling Jan 18, 2023
eedfe8e
Implement additional traits on Id<T>.
martinling Nov 7, 2022
8a48a58
Add a bisect() method to HybridIndex.
martinling Nov 7, 2022
0890452
Keep track of first item ID on each endpoint.
martinling Nov 5, 2022
e06d8ea
Index endpoint transaction counts at every item.
martinling Nov 6, 2022
2067257
Implement new API calls on Capture needed for interleaving.
martinling Nov 8, 2022
51abe02
Add interleaving support to tree model.
martinling Jan 18, 2023
8ff169d
Interleave the transactions of transfers.
martinling Dec 17, 2022
259d4c5
Add additional test case for interleaved split polling.
martinling Jan 12, 2023
a894a23
Use longer version of EMF2022 badge capture in tests.
martinling Jan 5, 2023
0ad5100
Add interleaved test case using longer EMF2022 badge capture.
martinling Jan 6, 2023
3f9a652
Add additional test cases using capture between hub and host.
martinling Jan 11, 2023
f6878c0
Verify item ordering in tests.
martinling Jan 29, 2023
fbeb5c0
Improve error reporting in HybridIndex.
martinling Jan 15, 2023
6e3e85e
Use a cursor structure to gather search state.
martinling Jan 13, 2023
81f2d98
Return cursor with search result.
martinling Jan 14, 2023
4581a4b
Add next_child method to ItemSource to retrieve from cursor.
martinling Jan 14, 2023
adc0e8a
Add a start_span helper method to TrafficCursor.
martinling Jan 14, 2023
4b12f87
Store cursor search ranges separately to Transfer structs.
martinling Jan 14, 2023
f8c0b8e
Remove now-superfluous first_ep_transaction_id field from Transfer.
martinling Jan 14, 2023
00ded17
Use an enum to clarify cursor state.
martinling Jan 16, 2023
f9ddcf5
Add cursor method to get current top level item.
martinling Feb 3, 2023
19c6dba
Add cursor method to get next transaction from a given transfer.
martinling Feb 3, 2023
ad358d5
Add cursor method to get next transaction from all transfers.
martinling Feb 3, 2023
f6e8b5f
Call helpers directly from find_child.
martinling Feb 3, 2023
bf24b64
Simplify next_child method.
martinling Feb 3, 2023
4428068
Update cursor for next use before returning results.
martinling Feb 3, 2023
25027dd
Remove index from cursor structure.
martinling Feb 4, 2023
d853a9a
Retain cursor and use it to optimise fetching next row.
martinling Jan 16, 2023
c94b272
Test that searching and using cursor produce matching results.
martinling Jan 16, 2023
84853e2
Add lock-free stream implementation.
martinling Feb 16, 2023
cc9d96b
Make stream block size configurable as a const generic.
martinling Mar 8, 2023
f3845dc
Define a default block size for streams.
martinling Mar 8, 2023
0f261c7
Don't create a backing file until a stream has a full block to write.
martinling Mar 8, 2023
3c3664c
Port to use stream implementation.
martinling Feb 26, 2023
c28387d
Use a 2MB block size for packet data.
martinling Mar 8, 2023
58d2e55
Reintroduce index compression.
martinling Mar 1, 2023
1b064d0
Accelerate fetches from data streams.
martinling Mar 2, 2023
b8a4e66
Add access and block_length methods to DataReader.
martinling Mar 5, 2023
d08dc8b
Implement efficient bisection for IndexReader.
martinling Mar 6, 2023
a882c47
Bisect compressed segments, then bisect deltas for a single segment.
martinling Mar 15, 2023
3e9e5e2
Implement SubAssign for Id<T>.
martinling Mar 15, 2023
136bffd
Limit range of deltas to fetch for bisection.
martinling Mar 15, 2023
fbea88a
Prevent compressed index segments from crossing block boundaries.
martinling Mar 17, 2023
29b835c
Avoid copying deltas when loading for bisection.
martinling Mar 17, 2023
1a06386
Add query validation to CompactReader.
martinling Mar 20, 2023
ab3b036
Add bisection tests for IndexReader.
martinling Apr 6, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,12 @@ jobs:
uses: actions-rs/cargo@v1
with:
command: build
args: --release --all-features
args: --release

- name: Test
uses: actions-rs/cargo@v1
uses: GabrielBB/xvfb-action@v1
with:
command: test
run: cargo test --features=test-ui-replay

- uses: actions/upload-artifact@v2
with:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/target
/tests/*/output.txt
/tests/ui/*/output.txt
149 changes: 146 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,28 @@ humansize = "1.1.1"
bisection = "0.1.0"
derive_more = "0.99.17"
rusb = "0.9.1"
itertools = "0.10.5"
arc-swap = "1.6.0"
lrumap = "0.1.0"
memmap2 = "0.5.8"
serde = { version = "1.0.136", optional = true, features = ["derive"] }
serde_json = { version = "1.0.85", optional = true }

[dev-dependencies]
serde = { version = "1.0.136", features = ["derive"] }
serde_json = "1.0.85"
itertools = "0.10.5"
rand = "0.8.5"
rand_xorshift = "0.3.0"

[features]
step-decoder = []
record-ui-test = ["serde", "serde_json"]
test-ui-replay = ["serde", "serde_json"]
debug-region-map = []

[[test]]
name = "test_replay"
path = "src/test_replay.rs"
harness = false
required-features = ["test-ui-replay"]
Loading