Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
1965b43
Add -r option to performance tests to allow them to be repeated, stor…
henkberendsen Feb 14, 2025
f465a1c
golangci-lint run
ShadowJonathan Feb 17, 2025
035af4e
gofumpt run
ShadowJonathan Feb 17, 2025
550b5d5
fix maps.Keys not being usable until go 1.23
ShadowJonathan Feb 17, 2025
79b4451
update some more dependencies
ShadowJonathan Feb 17, 2025
3fb6fd2
make callbacks resilient to changes
ShadowJonathan Feb 17, 2025
5ca74a9
convert #32 into todo
ShadowJonathan Feb 17, 2025
f0cec92
fix stray bad mass replace
ShadowJonathan Feb 17, 2025
a294f15
goland code inspection recommendations
ShadowJonathan Feb 17, 2025
5132796
handle, clear, or acknowledge a whole bunch of todos
ShadowJonathan Feb 17, 2025
a88d4f0
add relay dial function to Stage
ShadowJonathan Feb 17, 2025
fa107e1
gofumpt
ShadowJonathan Feb 17, 2025
d3caff4
additional gofumpt checks
ShadowJonathan Feb 17, 2025
7668064
add golangci-lint CI checks
ShadowJonathan Feb 17, 2025
cc0d12a
specify go.mod as golang version source
ShadowJonathan Feb 17, 2025
5d05c3e
additional: specify go.mod as golang version source
ShadowJonathan Feb 17, 2025
04dc1b4
Fix linting errors
ShadowJonathan Feb 18, 2025
d239013
Add pingtracker
ShadowJonathan Feb 18, 2025
6975c13
Prevent asymmetric status quo
ShadowJonathan Feb 18, 2025
2290365
Add stack print entries for recovers
ShadowJonathan Feb 18, 2025
8ed5b3b
Add tracker carry-forward to Booting and Established
ShadowJonathan Feb 18, 2025
251ab06
change task label to task type
ShadowJonathan Feb 20, 2025
e65a61f
add disconnect type and client handling
ShadowJonathan Feb 20, 2025
e32f559
add more expiry in places, and also to observer
ShadowJonathan Feb 20, 2025
c80bd36
properly fix expiry handling and passdown
ShadowJonathan Feb 20, 2025
0e3acdf
handle zero time.Time{} objects
ShadowJonathan Feb 20, 2025
446a28f
Properly clean up goroutines and contexts
ShadowJonathan Feb 21, 2025
fa17a3a
doAutoRestart = true
ShadowJonathan Feb 21, 2025
f69c926
remove bind close debug line
ShadowJonathan Feb 21, 2025
73b309e
Update python script to aggregate the data from multiple repetitions …
henkberendsen Feb 21, 2025
e4f0349
Run CI test suite on all henk/ branches (as well as main
henkberendsen Feb 21, 2025
e528e6e
Add bitrate performance test in CI
henkberendsen Feb 21, 2025
9336d9f
Higher bitrate values in CI performance test
henkberendsen Feb 21, 2025
dcd6d12
Add options to performance test -b flag to choose whether to compare …
henkberendsen Feb 23, 2025
925ab6a
Simplify X-axis of performance test graphs: always plot independent t…
henkberendsen Feb 28, 2025
8cb029a
Update -b flag in performance test command, and allow files passed to…
henkberendsen Feb 28, 2025
8187106
Skip delay measurement for independent variable bitrate (no correlation)
henkberendsen Feb 28, 2025
fb01c20
Add -L flag to specify the name of the test log directory
henkberendsen Mar 1, 2025
5ea23a1
Use new -L flag to upload individual performance test graphs as artif…
henkberendsen Mar 1, 2025
9e31b0f
Adjust workflow to upload all performance test graphs with a wildcard…
henkberendsen Mar 1, 2025
40880c4
Increase system test timeout duration to prevent failures in GitHub r…
henkberendsen Mar 1, 2025
d538fda
Implement client-side device key
ShadowJonathan Mar 3, 2025
24e7372
control: Misc changes, remove TODO, add LogonDeviceKey anti-glare
ShadowJonathan Mar 3, 2025
b9cb25f
Add more low-range test variable values to bitrate performance test
henkberendsen Mar 3, 2025
ce43583
Refine bitrate performance test variable values to improve graph clarity
henkberendsen Mar 3, 2025
34108d5
Add `go test` to CI
ShadowJonathan Mar 4, 2025
44bff50
fix 'go get' for go test cli
ShadowJonathan Mar 4, 2025
35294a8
fix 'go test' for go test ci
ShadowJonathan Mar 4, 2025
d81ffa1
Merge pull request #123 from eduP2P/henk/test-suite
ShadowJonathan Mar 4, 2025
13eec0a
Merge branch 'henk/test-suite' into henk/test-suite-repeated-performa…
henkberendsen Mar 4, 2025
e403e46
add sidebanddata.go, clean up msgsess
ShadowJonathan Mar 6, 2025
7e53f69
add first-iteration mDNS manager, does not work (see #124)
ShadowJonathan Mar 6, 2025
ff7f1a0
remove injectable from mdns manager
ShadowJonathan Mar 6, 2025
87ba66a
eman: skip ppp and down interfaces for local endpoints
ShadowJonathan Mar 7, 2025
e4a4abf
wg.GetInterface()
ShadowJonathan Mar 7, 2025
cf22bbb
stage.getLocalEndpoints()
ShadowJonathan Mar 7, 2025
e3b0001
ensurePeerState() in forState()
ShadowJonathan Mar 7, 2025
462ed4a
mDNS work
ShadowJonathan Mar 7, 2025
ca16256
Document new performance test -r and modified -b flag, and rewrite + …
henkberendsen Mar 7, 2025
5a09c0a
filter non-self mDNS packets
ShadowJonathan Mar 7, 2025
afd2216
linter changes
ShadowJonathan Mar 7, 2025
d9a64cd
Merge pull request #125 from eduP2P/jo/mdns
ShadowJonathan Mar 7, 2025
d438ca1
add runningCtx
ShadowJonathan Mar 7, 2025
60434cc
use AfterFunc for actor close
ShadowJonathan Mar 7, 2025
56551c4
Document many panics
ShadowJonathan Mar 7, 2025
e796d2c
Fix relay panic and remove stray WithoutCancel's
ShadowJonathan Mar 7, 2025
09db984
Add function that generates a graph to show the variance in measureme…
henkberendsen Mar 7, 2025
b686497
Document new performance test variance graph, and show how it improve…
henkberendsen Mar 7, 2025
918b99d
Add update below funding attribution about finished repeated performa…
henkberendsen Mar 7, 2025
f617180
Merge pull request #133 from eduP2P/henk/test-suite-repeated-performa…
ShadowJonathan Mar 9, 2025
f1a2476
Remove go-test.yml CI, as IntegrationTest already exists.
ShadowJonathan Mar 10, 2025
49d9b44
actors: Remove extra cancels, put cancel on defer, rearrange CheckOrM…
ShadowJonathan Mar 10, 2025
6b0caea
praise the linter
ShadowJonathan Mar 10, 2025
be8eac0
Add bit of documentation regarding mDNS, add a TODO which was realise…
ShadowJonathan Mar 13, 2025
0acee9d
Explicitly add keepalive of 10 seconds to TCP connections (relay and …
ShadowJonathan Mar 14, 2025
e294d60
Add keepalive to Relay and Control server
ShadowJonathan Mar 17, 2025
c1afd66
Fix ChannelConn close panic
ShadowJonathan Mar 20, 2025
f23f27f
Fix windows compile issue
ShadowJonathan Mar 20, 2025
4df89ea
Add mdns_test program
ShadowJonathan Mar 20, 2025
ed0174c
Various improvements to MMan
ShadowJonathan Mar 20, 2025
1a9474d
Have stage actor crash cancel entire stage, and have that cancel the …
ShadowJonathan Mar 20, 2025
75ee7a5
MMan: support ipv6
ShadowJonathan Mar 20, 2025
b95cf34
Do last of cleanup of MMan
ShadowJonathan Mar 20, 2025
fe659f0
Compare CI performance (#140)
henkberendsen Mar 27, 2025
d9ec31b
Update bug.md: set Type: Bug
ShadowJonathan Apr 1, 2025
4449afe
Parallel system tests (#146)
henkberendsen Apr 14, 2025
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
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Bug
about: Template for a problem with the library's behaviour
title: ""
labels: Bug
type: Bug
assignees: ''

---
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/task.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Task
about: Template for the smallest actionable chunk
title: ''
labels: Task
type: Task
assignees: ''

---
Expand Down
145 changes: 138 additions & 7 deletions .github/workflows/CI_test_suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,29 @@ name: CI Test Suite

on:
push:
branches: [ "main" ]
branches:
- "main"
- "henk/*"
pull_request:
branches: [ "main" ]

jobs:

SystemTests:
SystemTestsSequential:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'pull_request' }}
steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
go-version-file: go.mod

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.9'
python-version: '3.12'

- name: System tests dependencies
run: xargs -a system_test_requirements.txt sudo apt-get install
Expand All @@ -31,9 +34,9 @@ jobs:
run: pip install -r python_requirements.txt
working-directory: test_suite

- name: Run system tests
- name: Run system tests sequentially
id: system-test
run: ./system_tests.sh -c 0
run: ./system_tests.sh -b
working-directory: test_suite
continue-on-error: true

Expand All @@ -47,7 +50,42 @@ jobs:
if: ${{ steps.system-test.outcome == 'failure' }}
run: exit 1

IntegrationTests:
SystemTestsParallel:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' }}
steps:
- uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build Dockerfile to run system tests in parallel
uses: docker/build-push-action@v6
with:
file: test_suite/Dockerfile
load: true
tags: system_tests:latest
build-args: BRANCH=${{ github.ref_name }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Run system tests in parallel
id: system-test
run: GITHUB_ACTION=true ./system_tests.sh -t 4
working-directory: test_suite
continue-on-error: true

- name: Upload system test logs
uses: actions/upload-artifact@v4
with:
name: system-test-logs
path: test_suite/system_test_logs/

- name: Fail job if system test failed (for clarity in GitHub UI)
if: ${{ steps.system-test.outcome == 'failure' }}
run: exit 1

PerformanceTests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -57,6 +95,99 @@ jobs:
with:
go-version: '1.22'

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: System tests dependencies
run: xargs -a system_test_requirements.txt sudo apt-get install
working-directory: test_suite

- name: Performance tests dependencies
run: pip install -r python_requirements.txt
working-directory: test_suite

- name: Run performance test with varying bitrate
id: system-test
run: ./system_tests.sh -b -p -L performance
working-directory: test_suite
continue-on-error: true

- name: Upload performance test graphs
uses: actions/upload-artifact@v4
with:
name: performance-test-graphs
path: test_suite/system_test_logs/performance/*/*.png

- name: Upload performance test data
uses: actions/upload-artifact@v4
with:
name: performance-test-data
path: test_suite/system_test_logs/performance/*/performance_test_data.json

- name: Upload full performance test logs
uses: actions/upload-artifact@v4
with:
name: performance-test-logs
path: test_suite/system_test_logs/

- name: Fail job if performance test failed (for clarity in GitHub UI)
if: ${{ steps.system-test.outcome == 'failure' }}
run: exit 1

- name: Download artifact from target branch head
id: download_target_branch
if: ${{ github.event_name == 'pull_request' }}
uses: dawidd6/action-download-artifact@v9
with:
branch: ${{ github.base_ref }}
name: performance-test-data
path: ./test_suite
skip_unpack: true
workflow_conclusion: ""
continue-on-error: true

- name: Download artifact from previous commit
id: download_previous_commit
if: ${{ github.event_name == 'push' }}
uses: dawidd6/action-download-artifact@v9
with:
commit: ${{ github.event.before }}
name: performance-test-data
path: ./test_suite
skip_unpack: true
workflow_conclusion: ""
continue-on-error: true

- name: Stop job and give warning if downloading previous artifact failed
if: ${{ steps.download_target_branch.outcome == 'failure' || steps.download_previous_commit.outcome == 'failure' }}
run: |
echo "# ⚠️ Could not make performance comparison" >> $GITHUB_STEP_SUMMARY
echo "Downloading performance test data of target branch head/previous commit failed. See the corresponding PerformanceTests job step for details" >> $GITHUB_STEP_SUMMARY

- name: Unzip artifact
working-directory: test_suite
if: ${{ steps.download_target_branch.outcome == 'success' || steps.download_previous_commit.outcome == 'success' }}
run: unzip performance-test-data.zip -d previous_performance

- name: Compare current and artifact performance, and redirect results to job step summary
id: performance-comparison
working-directory: test_suite
if: ${{ steps.download_target_branch.outcome == 'success' || steps.download_previous_commit.outcome == 'success' }}
run: python compare_performance.py previous_performance/ system_test_logs/performance/ > $GITHUB_STEP_SUMMARY


IntegrationTests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Run integration tests
id: integration-test
run: go test -coverpkg=./... -coverprofile cover.out -v ./...
Expand Down
23 changes: 23 additions & 0 deletions .github/workflows/golangci-lint-main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: golangci-lint
on:
push:
branches:
- main

permissions:
contents: read

jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.60
args: -E stylecheck,revive,gocritic,gofumpt
23 changes: 23 additions & 0 deletions .github/workflows/golangci-lint-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: golangci-lint
on:
pull_request:

permissions:
contents: read
pull-requests: read

jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.60
args: -E stylecheck,revive,gocritic,gofumpt
only-new-issues: true
Loading
Loading