mirror of
https://github.com/juanfont/headscale.git
synced 2026-01-23 10:25:47 +00:00
Modernize code to use Go 1.26 features:
1. Replace ptr.To with the new() builtin:
Before: ptr.To(value)
After: new(value)
2. Replace append clone pattern with slices.Clone:
Before: copy := append([]T{}, slice...)
After: copy := slices.Clone(slice)
3. Replace manual contains loops with slices.Contains:
Before: for _, v := range slice { if v == target { return true } }
After: slices.Contains(slice, target)
The ptr.To function from tailscale.com/types/ptr is no longer
needed as Go 1.26's enhanced new() builtin accepts a value
argument and returns a pointer to a copy of that value.
Note: Auto-generated files (types_clone.go) are not modified
as they are generated by tailscale.com/cmd/cloner.
|
||
|---|---|---|
| .. | ||
| dockertestutil | ||
| dsic | ||
| hsic | ||
| integrationutil | ||
| tsic | ||
| acl_test.go | ||
| api_auth_test.go | ||
| auth_key_test.go | ||
| auth_oidc_test.go | ||
| auth_web_flow_test.go | ||
| cli_test.go | ||
| control.go | ||
| derp_verify_endpoint_test.go | ||
| dns_test.go | ||
| embedded_derp_test.go | ||
| general_test.go | ||
| helpers.go | ||
| README.md | ||
| route_test.go | ||
| run.sh | ||
| scenario.go | ||
| scenario_test.go | ||
| ssh_test.go | ||
| tags_test.go | ||
| tailscale.go | ||
Integration testing
Headscale relies on integration testing to ensure we remain compatible with Tailscale.
This is typically performed by starting a Headscale server and running a test "scenario" with an array of Tailscale clients and versions.
Headscale's test framework and the current set of scenarios are defined in this directory.
Tests are located in files ending with _test.go and the framework are located in the rest.
Running integration tests locally
The easiest way to run tests locally is to use act, a local GitHub Actions runner:
act pull_request -W .github/workflows/test-integration.yaml
Alternatively, the docker run command in each GitHub workflow file can be used.
Running integration tests on GitHub Actions
Each test currently runs as a separate workflows in GitHub actions, to add new test, run
go generate inside ../cmd/gh-action-integration-generator/ and commit the result.