summaryrefslogtreecommitdiffhomepage
path: root/test
AgeCommit message (Collapse)AuthorFilesLines
2024-02-08Add test for remote custom SOCKS5 bridgeDavid Lönnhager1-3/+98
2024-02-08Add instructions to enable `w32tm` in new testrunnersMarkus Pettersson1-0/+9
Add instructions on how to create a Windows service which ensures that the time service is enabled to prevent the VM clock from getting out of sync.
2024-02-07Add RPCs for running TCP forwarder on test runnerDavid Lönnhager7-4/+247
2024-02-07Move testing SOCKS server to own crateDavid Lönnhager6-31/+77
2024-02-07Add SOCKS5 server to test-managerDavid Lönnhager4-0/+50
2024-02-06Simplify how settings are reset in testsDavid Lönnhager3-76/+9
2024-02-02Fix `shellcheck` lints of our various bash scriptsSebastian Holmin2-20/+24
The following lints have been fixed: SC2046,SC2086,SC2068,SC2148,SC2007,SC2004,SC2006, SC2164,SC2145,SC1091,SC2034,SC2155.
2024-02-01Set serial baud rate to zero on macOSLinus Färnstrand2-2/+12
2024-02-01Don't pin serialport to a fork. Use upgraded upstreamLinus Färnstrand2-54/+32
The fix we needed is now part of serialport 4.3.0. Avoiding git commits is good in general
2024-01-18Print if lockdown mode is enabled when disconnected for `mullvad status`Sebastian Holmin3-5/+5
Add `locked_down` field to disconnected tunnel state.
2024-01-18Upgrade h2 to fix RUSTSEC-2024-0003Linus Färnstrand1-3/+3
2024-01-17Ignore PQ setting in tests where it's irrelevantDavid Lönnhager1-1/+1
2024-01-17Make test_installation_idempotency succeed when there is no accountDavid Lönnhager1-4/+9
2024-01-17Return specific error when connect_and_wait fails due to entering the error ↵David Lönnhager2-4/+8
state
2024-01-17Make changelog link static in testDavid Lönnhager1-1/+1
2024-01-16Add rust-version to all Cargo.tomlLinus Färnstrand5-0/+5
2024-01-15Use type safe Mullvad protobuf client over generated ditoMarkus Pettersson15-369/+287
Re-write some code in the test framework to prefer the type safe wrapper around the Mullvad app gRPC client instead of its auto-generated dito. `ManagementServiceClient` is automatically generated from the protobuf definitions found in `management_interface.proto`, and contains some very crude types. The `MullvadProxyClient` is a type-safe wrapper around `ManagementServiceClient` which performs conversions & validation of the data types from the gRPC server (the daemon) to their respective mappings in the `talpid-*` and `mullvad-*` crates. These types are more ergonomic to work with, and since we already have the conversions in place we should prefer those.
2024-01-12Remove legacy provisioning for linuxDavid Lönnhager3-24/+4
2024-01-12Add e2e test for containers on LinuxDavid Lönnhager2-0/+68
2024-01-12Add podman and docker to ssh-setup.shDavid Lönnhager1-2/+8
2024-01-11Update Cargo.lock with changed versionLinus Färnstrand1-1/+1
2024-01-11Add package metadata to crates in testing frameworkLinus Färnstrand5-7/+27
Such as authors, repository, licence etc. And have all crates inherit from the workspace
2024-01-11Synchronize `mullvad-api` and `mullvad-daemon` when the `api-override`Markus Pettersson1-3/+3
feature is enabled Move the logic for using overridden API endpoints for API calls from `mullvad-api::rest` to `mullvad_daemon::api`. This is in line with how the interaction between the two crates work for a normal release build, i.e. when the `api-override` feature is disabled. This commit also removes references to `force_direct_connection` in the Android code. The flag does not exist in the `mullvad-*` rust crates anymore, so it would be erroneous to try to serialize/deserialize the value from the Android client.
2024-01-09Fix versions in test framework lock fileDavid Lönnhager1-3/+3
2024-01-09Exit immediately if ssh-setup.sh failsDavid Lönnhager2-3/+15
2024-01-09Remove version and publish cargo metadataLinus Färnstrand3-3/+0
Since Rust 1.75.0 the `version` field is optional. The version defaults to "0.0.0" if it's not specified, and `publish` defaults to false if no version has been given. So by not specifying a version we get both `version = "0.0.0" and `publish = false` "for free"
2024-01-08Add 'skipped' status to test summaryDavid Lönnhager3-29/+69
2024-01-08Add 'target_os' attribute to test macroDavid Lönnhager13-37/+75
2024-01-08Remove `ApiEndpointUpdateHandler`Markus Pettersson1-4/+1
Previously, the `mullvad-api` would tell the `mullvad-daemon` that it wanted a new API endpoint by calling a certain callback (`ApiEndpointUpdateCallback`), which would asynchronously resolve a new API endpoint and tell the daemon to punch an appropriate hole in the firewall for that particular endpoint before the `mullvad-api` crate would consume it. The logic of the callback can be moved inside `AccessModeSelector`, which simplifies the contract between `mullvad-daemon` and `mullvad-api` somewhat.
2024-01-04Fix code not following new linting rules in testing frameworkLinus Färnstrand6-9/+10
2024-01-04Add workspace level linting to test workspaceLinus Färnstrand4-0/+15
2024-01-04Remove legacy docs from BUILD_OS_IMAGE.mdDavid Lönnhager1-88/+0
2024-01-04Mention 'sudo' group in BUILD_OS_IMAGE.mdDavid Lönnhager1-2/+3
2024-01-03Allow app to use custom socks5 and shadwosocks proxiesJonathan1-8/+5
This PR has a couple of different purposes - Allow users to use socks5 local proxies with the CLI without having to be root nor use split-tunneling. This only works for OpenVPN. - Unify the types used by different proxy parts of the codebase, such as the Access Methods as well as some already existing OpenVPN proxy code. This PR changes the firewall on all desktop platforms as well as changes the routing table slightly on MacOS and Windows. On Linux the firewall code is modified to apply the appropriate firewall marks to all packages that go to a remote endpoint corresponding to the remote part of a local socks5 proxy. The firewall marks will allow the routing to be done without having to modify the routing table. On MacOS and Windows the routing table is modified to allow packages to go to that same endpoint to pass outside the VPN tunnel, it will additionally punch a hole in the firewall. The PR also migrates the settings file from version 7 to version 8 in order to properly and neatly unify Proxy related types. Finally it provides some slight extensions to the gRPC interface in order to allow for control over the custom proxy settings.
2024-01-02Fix clippy lintsMarkus Pettersson4-25/+21
2023-12-21Remove `GetCurrentLocation`.Sebastian Holmin3-8/+5
Make the daemon send two tunnel state updates, one with out IP being empty, and another with it being filled when am.i.mullvad.net responds. Update CLI for this change. Other front ends are left out.
2023-12-15[Clippy] Fix complex typesMarkus Pettersson1-16/+17
2023-12-15[Clippy] Fix unused `async`Markus Pettersson6-7/+8
2023-12-15Add missing system deps to `test/Dockerfile`Markus Pettersson1-0/+3
Add some missing system libraries for compiling the test framework. These are dependencies which the base `mullvad/mullvadvpn-app-build` container does not include.
2023-12-14Add documentation on the configuration format used by `test-manager`Markus Pettersson2-1/+74
2023-12-14Add documentation on how to add new VM images to Github actionsMarkus Pettersson1-0/+14
2023-12-14Improve test framework documentionMarkus Pettersson3-88/+153
- Try to simplify the steps involved in creating a new test runner - Move `BUILD_OS_IMAGE` to `docs/`.
2023-12-12Fix `stop_app` RPC for macosMarkus Pettersson1-1/+1
2023-12-12Override `CARGO_TARGET_DIR`Markus Pettersson1-0/+1
2023-12-08Use app build container for building test runnerMarkus Pettersson2-8/+6
2023-12-07Refactor `start_packet_monitor_for_interface`Markus Pettersson1-35/+31
Flatten the inner loop of `start_packet_monitor_for_interface` by using `tokio::select!` instead of composing `futures::select`
2023-12-07RefactoringMarkus Pettersson2-23/+35
- Import qualified `network_monitor` - Add `obtain_guest_ip` - Fix docs
2023-12-07Refactor `test_upgrade_app` to use `Pinger` for leak testingMarkus Pettersson2-54/+9
2023-12-07Add ping monitoring to `helpers.rs`Markus Pettersson2-46/+131
2023-12-07Add regression test checking idempotency of app installationMarkus Pettersson1-2/+96
Installing the app twice (or more times) should have the same observable effect as installing it once. If the app is upgraded and the user is in a connected state before starting the upgrade, no traffic should leak during the installation process and the app should start up in a connected state preserving the relay constraints.