summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/Cargo.lock140
-rw-r--r--test/Cargo.toml2
-rw-r--r--test/socks-server/Cargo.toml2
-rw-r--r--test/socks-server/src/lib.rs7
-rw-r--r--test/test-manager/Cargo.toml2
-rw-r--r--test/test-manager/src/config.rs8
-rw-r--r--test/test-manager/src/logging.rs4
-rw-r--r--test/test-manager/src/summary.rs25
-rw-r--r--test/test-manager/src/tests/mod.rs24
-rw-r--r--test/test-manager/src/vm/network/linux.rs35
-rw-r--r--test/test-manager/src/vm/qemu.rs36
-rw-r--r--test/test-rpc/Cargo.toml2
-rw-r--r--test/test-rpc/src/lib.rs48
-rw-r--r--test/test-rpc/src/logging.rs6
-rw-r--r--test/test-rpc/src/package.rs26
-rw-r--r--test/test-rpc/src/transport.rs27
-rw-r--r--test/test-runner/Cargo.toml2
-rw-r--r--test/test-runner/src/main.rs4
18 files changed, 168 insertions, 232 deletions
diff --git a/test/Cargo.lock b/test/Cargo.lock
index 19d0d98bda..3b6fb48523 100644
--- a/test/Cargo.lock
+++ b/test/Cargo.lock
@@ -170,7 +170,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -191,7 +191,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -454,7 +454,7 @@ dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -612,7 +612,7 @@ checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -764,7 +764,7 @@ dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -777,7 +777,7 @@ dependencies = [
"num-traits",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -800,20 +800,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
-name = "err-derive"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c34a887c8df3ed90498c1c437ce21f211c8e27672921a8ffa293cb8d6d4caa9e"
-dependencies = [
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn 1.0.109",
- "synstructure",
-]
-
-[[package]]
name = "errno"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -969,7 +955,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -1052,7 +1038,7 @@ checksum = "ba330b70a5341d3bc730b8e205aaee97ddab5d9c448c4f51a7c2d924266fa8f9"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -1718,7 +1704,6 @@ version = "0.0.0"
dependencies = [
"cbindgen",
"chrono",
- "err-derive",
"futures",
"http",
"hyper",
@@ -1734,6 +1719,7 @@ dependencies = [
"shadowsocks",
"talpid-time",
"talpid-types",
+ "thiserror",
"tokio",
"tokio-rustls",
"tokio-socks",
@@ -1755,7 +1741,6 @@ name = "mullvad-management-interface"
version = "0.0.0"
dependencies = [
"chrono",
- "err-derive",
"futures",
"log",
"mullvad-paths",
@@ -1766,6 +1751,7 @@ dependencies = [
"prost",
"prost-types",
"talpid-types",
+ "thiserror",
"tokio",
"tonic",
"tonic-build",
@@ -1776,9 +1762,9 @@ dependencies = [
name = "mullvad-paths"
version = "0.0.0"
dependencies = [
- "err-derive",
"log",
"once_cell",
+ "thiserror",
"widestring",
"windows-sys 0.48.0",
]
@@ -1788,13 +1774,13 @@ name = "mullvad-relay-selector"
version = "0.0.0"
dependencies = [
"chrono",
- "err-derive",
"ipnetwork 0.16.0",
"log",
"mullvad-types",
"rand 0.8.5",
"serde_json",
"talpid-types",
+ "thiserror",
]
[[package]]
@@ -1802,7 +1788,6 @@ name = "mullvad-types"
version = "0.0.0"
dependencies = [
"chrono",
- "err-derive",
"ipnetwork 0.16.0",
"jnix",
"log",
@@ -1810,6 +1795,7 @@ dependencies = [
"regex",
"serde",
"talpid-types",
+ "thiserror",
"uuid",
]
@@ -2119,7 +2105,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -2248,38 +2234,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
dependencies = [
"proc-macro2",
- "syn 2.0.37",
-]
-
-[[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
+ "syn 2.0.51",
]
[[package]]
name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
dependencies = [
"unicode-ident",
]
@@ -2311,7 +2273,7 @@ dependencies = [
"prost",
"prost-types",
"regex",
- "syn 2.0.37",
+ "syn 2.0.51",
"tempfile",
"which",
]
@@ -2326,7 +2288,7 @@ dependencies = [
"itertools 0.11.0",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -2355,9 +2317,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.33"
+version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
"proc-macro2",
]
@@ -2752,7 +2714,7 @@ checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -2927,10 +2889,10 @@ dependencies = [
name = "socks-server"
version = "0.0.0"
dependencies = [
- "err-derive",
"fast-socks5",
"futures",
"log",
+ "thiserror",
"tokio",
]
@@ -3002,9 +2964,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.37"
+version = "2.0.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8"
+checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c"
dependencies = [
"proc-macro2",
"quote",
@@ -3018,26 +2980,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
[[package]]
-name = "synstructure"
-version = "0.12.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "unicode-xid",
-]
-
-[[package]]
name = "talpid-dbus"
version = "0.0.0"
dependencies = [
"dbus",
- "err-derive",
"libc",
"log",
"once_cell",
+ "thiserror",
"tokio",
]
@@ -3063,10 +3013,10 @@ name = "talpid-types"
version = "0.0.0"
dependencies = [
"base64 0.13.1",
- "err-derive",
"ipnetwork 0.16.0",
"jnix",
"serde",
+ "thiserror",
"x25519-dalek",
"zeroize",
]
@@ -3075,10 +3025,10 @@ dependencies = [
name = "talpid-windows"
version = "0.0.0"
dependencies = [
- "err-derive",
"futures",
"socket2 0.5.4",
"talpid-types",
+ "thiserror",
"windows-sys 0.48.0",
]
@@ -3153,7 +3103,6 @@ dependencies = [
"data-encoding-macro",
"dirs",
"env_logger",
- "err-derive",
"futures",
"inventory",
"ipnetwork 0.20.0",
@@ -3177,6 +3126,7 @@ dependencies = [
"tarpc",
"test-rpc",
"test_macro",
+ "thiserror",
"tokio",
"tokio-serde",
"tokio-serial",
@@ -3194,7 +3144,6 @@ dependencies = [
"async-trait",
"bytes",
"colored",
- "err-derive",
"futures",
"hyper",
"hyper-rustls",
@@ -3204,6 +3153,7 @@ dependencies = [
"serde",
"serde_json",
"tarpc",
+ "thiserror",
"tokio",
"tokio-rustls",
"tokio-serde",
@@ -3216,7 +3166,6 @@ version = "0.0.0"
dependencies = [
"bytes",
"chrono",
- "err-derive",
"futures",
"libc",
"log",
@@ -3233,6 +3182,7 @@ dependencies = [
"talpid-windows",
"tarpc",
"test-rpc",
+ "thiserror",
"tokio",
"tokio-serde",
"tokio-serial",
@@ -3253,22 +3203,22 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.49"
+version = "1.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.49"
+version = "1.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -3361,7 +3311,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -3503,7 +3453,7 @@ dependencies = [
"proc-macro2",
"prost-build",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -3559,7 +3509,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
[[package]]
@@ -3696,12 +3646,6 @@ dependencies = [
]
[[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
name = "universal-hash"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3814,7 +3758,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
"wasm-bindgen-shared",
]
@@ -3836,7 +3780,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -4149,5 +4093,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.37",
+ "syn 2.0.51",
]
diff --git a/test/Cargo.toml b/test/Cargo.toml
index 27c0f94469..44cc016d66 100644
--- a/test/Cargo.toml
+++ b/test/Cargo.toml
@@ -37,7 +37,7 @@ prost-types = "0.12.0"
tarpc = { version = "0.30", features = ["tokio1", "serde-transport", "serde1"] }
# Logging
env_logger = "0.10.0"
-err-derive = "0.3.1"
+thiserror = "1.0.57"
log = "0.4"
colored = "2.0.0"
# Proxy protocols
diff --git a/test/socks-server/Cargo.toml b/test/socks-server/Cargo.toml
index ba6d1ba4f8..c37450fd87 100644
--- a/test/socks-server/Cargo.toml
+++ b/test/socks-server/Cargo.toml
@@ -12,7 +12,7 @@ workspace = true
[dependencies]
fast-socks5 = "0.9.5"
-err-derive = { workspace = true }
+thiserror = { workspace = true }
tokio = { workspace = true }
log = { workspace = true }
futures = { workspace = true }
diff --git a/test/socks-server/src/lib.rs b/test/socks-server/src/lib.rs
index eed676ac8e..9a85297036 100644
--- a/test/socks-server/src/lib.rs
+++ b/test/socks-server/src/lib.rs
@@ -2,11 +2,10 @@ use futures::StreamExt;
use std::io;
use std::net::SocketAddr;
-#[derive(err_derive::Error, Debug)]
-#[error(no_from)]
+#[derive(thiserror::Error, Debug)]
pub enum Error {
- #[error(display = "Failed to start SOCKS5 server")]
- StartSocksServer(#[error(source)] io::Error),
+ #[error("Failed to start SOCKS5 server")]
+ StartSocksServer(#[source] io::Error),
}
pub struct Handle {
diff --git a/test/test-manager/Cargo.toml b/test/test-manager/Cargo.toml
index 086d937e45..66ef6f0025 100644
--- a/test/test-manager/Cargo.toml
+++ b/test/test-manager/Cargo.toml
@@ -18,7 +18,7 @@ chrono = { workspace = true }
tarpc = { workspace = true }
tokio = { workspace = true }
tokio-serial = { workspace = true }
-err-derive = { workspace = true }
+thiserror = { workspace = true }
bytes = { workspace = true }
test_macro = { path = "./test_macro" }
ipnetwork = "0.20"
diff --git a/test/test-manager/src/config.rs b/test/test-manager/src/config.rs
index 0acbeb322e..1605661d53 100644
--- a/test/test-manager/src/config.rs
+++ b/test/test-manager/src/config.rs
@@ -8,13 +8,13 @@ use std::{
path::{Path, PathBuf},
};
-#[derive(err_derive::Error, Debug)]
+#[derive(thiserror::Error, Debug)]
pub enum Error {
- #[error(display = "Failed to read config")]
+ #[error("Failed to read config")]
Read(io::Error),
- #[error(display = "Failed to parse config")]
+ #[error("Failed to parse config")]
InvalidConfig(serde_json::Error),
- #[error(display = "Failed to write config")]
+ #[error("Failed to write config")]
Write(io::Error),
}
diff --git a/test/test-manager/src/logging.rs b/test/test-manager/src/logging.rs
index 56f7401d65..cd0bd4af28 100644
--- a/test/test-manager/src/logging.rs
+++ b/test/test-manager/src/logging.rs
@@ -107,8 +107,8 @@ impl log::Log for Logger {
fn flush(&self) {}
}
-#[derive(Debug, err_derive::Error)]
-#[error(display = "Test panic: {}", _0)]
+#[derive(Debug, thiserror::Error)]
+#[error("Test panic: {0}")]
pub struct PanicMessage(String);
pub struct TestOutput {
diff --git a/test/test-manager/src/summary.rs b/test/test-manager/src/summary.rs
index 27ff2db572..c485ac6397 100644
--- a/test/test-manager/src/summary.rs
+++ b/test/test-manager/src/summary.rs
@@ -5,21 +5,20 @@ use tokio::{
io::{AsyncBufReadExt, AsyncWriteExt},
};
-#[derive(err_derive::Error, Debug)]
-#[error(no_from)]
+#[derive(thiserror::Error, Debug)]
pub enum Error {
- #[error(display = "Failed to open log file {:?}", _1)]
- Open(#[error(source)] io::Error, std::path::PathBuf),
- #[error(display = "Failed to write to log file")]
- Write(#[error(source)] io::Error),
- #[error(display = "Failed to read from log file")]
- Read(#[error(source)] io::Error),
- #[error(display = "Failed to parse log file")]
+ #[error("Failed to open log file {1:?}")]
+ Open(#[source] io::Error, std::path::PathBuf),
+ #[error("Failed to write to log file")]
+ Write(#[source] io::Error),
+ #[error("Failed to read from log file")]
+ Read(#[source] io::Error),
+ #[error("Failed to parse log file")]
Parse,
- #[error(display = "Failed to serialize value")]
- Serialize(#[error(source)] serde_json::Error),
- #[error(display = "Failed to deserialize value")]
- Deserialize(#[error(source)] serde_json::Error),
+ #[error("Failed to serialize value")]
+ Serialize(#[source] serde_json::Error),
+ #[error("Failed to deserialize value")]
+ Deserialize(#[source] serde_json::Error),
}
#[derive(Clone, Copy)]
diff --git a/test/test-manager/src/tests/mod.rs b/test/test-manager/src/tests/mod.rs
index 7847bc2424..0e3e73a2f6 100644
--- a/test/test-manager/src/tests/mod.rs
+++ b/test/test-manager/src/tests/mod.rs
@@ -37,34 +37,34 @@ pub type TestWrapperFunction = Box<
) -> BoxFuture<'static, Result<(), Error>>,
>;
-#[derive(err_derive::Error, Debug)]
+#[derive(thiserror::Error, Debug)]
pub enum Error {
- #[error(display = "RPC call failed")]
- Rpc(#[source] test_rpc::Error),
+ #[error("RPC call failed")]
+ Rpc(#[from] test_rpc::Error),
- #[error(display = "Timeout waiting for ping")]
+ #[error("Timeout waiting for ping")]
PingTimeout,
- #[error(display = "geoip lookup failed")]
+ #[error("geoip lookup failed")]
GeoipLookup(test_rpc::Error),
- #[error(display = "Found running daemon unexpectedly")]
+ #[error("Found running daemon unexpectedly")]
DaemonRunning,
- #[error(display = "Daemon unexpectedly not running")]
+ #[error("Daemon unexpectedly not running")]
DaemonNotRunning,
- #[error(display = "The daemon returned an error: {}", _0)]
+ #[error("The daemon returned an error: {0}")]
Daemon(String),
- #[error(display = "The daemon ended up in the error state")]
+ #[error("The daemon ended up in the error state")]
UnexpectedErrorState(talpid_types::tunnel::ErrorState),
- #[error(display = "The gRPC client ran into an error: {}", _0)]
- ManagementInterface(#[source] mullvad_management_interface::Error),
+ #[error("The gRPC client ran into an error: {0}")]
+ ManagementInterface(#[from] mullvad_management_interface::Error),
#[cfg(target_os = "macos")]
- #[error(display = "An error occurred: {}", _0)]
+ #[error("An error occurred: {0}")]
Other(String),
}
diff --git a/test/test-manager/src/vm/network/linux.rs b/test/test-manager/src/vm/network/linux.rs
index ae4d708c01..d375fc2eb5 100644
--- a/test/test-manager/src/vm/network/linux.rs
+++ b/test/test-manager/src/vm/network/linux.rs
@@ -66,35 +66,34 @@ pub const NON_TUN_GATEWAY: Ipv4Addr = Ipv4Addr::new(172, 29, 1, 1);
/// Name of the wireguard interface on the host
pub const CUSTOM_TUN_INTERFACE_NAME: &str = "wg-relay0";
-#[derive(err_derive::Error, Debug)]
-#[error(no_from)]
+#[derive(thiserror::Error, Debug)]
pub enum Error {
- #[error(display = "Failed to start 'ip'")]
+ #[error("Failed to start 'ip'")]
IpStart(io::Error),
- #[error(display = "'ip' command failed: {}", _0)]
+ #[error("'ip' command failed: {0}")]
IpFailed(i32),
- #[error(display = "Failed to start 'sysctl'")]
+ #[error("Failed to start 'sysctl'")]
SysctlStart(io::Error),
- #[error(display = "'sysctl' failed: {}", _0)]
+ #[error("'sysctl' failed: {0}")]
SysctlFailed(i32),
- #[error(display = "Failed to start 'nft'")]
+ #[error("Failed to start 'nft'")]
NftStart(io::Error),
- #[error(display = "Failed to wait for 'nft'")]
+ #[error("Failed to wait for 'nft'")]
NftRun(io::Error),
- #[error(display = "'nft' command failed: {}", _0)]
+ #[error("'nft' command failed: {0}")]
NftFailed(i32),
- #[error(display = "Failed to create wg config")]
- CreateWireguardConfig(#[error(source)] async_tempfile::Error),
- #[error(display = "Failed to write wg config")]
- WriteWireguardConfig(#[error(source)] io::Error),
- #[error(display = "Failed to start 'wg'")]
+ #[error("Failed to create wg config")]
+ CreateWireguardConfig(#[source] async_tempfile::Error),
+ #[error("Failed to write wg config")]
+ WriteWireguardConfig(#[source] io::Error),
+ #[error("Failed to start 'wg'")]
WgStart(io::Error),
- #[error(display = "'wg' failed: {}", _0)]
+ #[error("'wg' failed: {0}")]
WgFailed(i32),
- #[error(display = "Failed to start 'dnsmasq'")]
+ #[error("Failed to start 'dnsmasq'")]
DnsmasqStart(io::Error),
- #[error(display = "Failed to create dnsmasq tempfile")]
- CreateDnsmasqFile(#[error(source)] async_tempfile::Error),
+ #[error("Failed to create dnsmasq tempfile")]
+ CreateDnsmasqFile(#[source] async_tempfile::Error),
}
pub type Result<T> = std::result::Result<T, Error>;
diff --git a/test/test-manager/src/vm/qemu.rs b/test/test-manager/src/vm/qemu.rs
index 88f7f95430..5688f47101 100644
--- a/test/test-manager/src/vm/qemu.rs
+++ b/test/test-manager/src/vm/qemu.rs
@@ -25,30 +25,30 @@ const STDERR_LOG_LEVEL: log::Level = log::Level::Error;
const STDOUT_LOG_LEVEL: log::Level = log::Level::Debug;
const OBTAIN_IP_TIMEOUT: Duration = Duration::from_secs(60);
-#[derive(err_derive::Error, Debug)]
+#[derive(thiserror::Error, Debug)]
pub enum Error {
- #[error(display = "Failed to set up network")]
- Network(network::linux::Error),
- #[error(display = "Failed to start QEMU")]
- StartQemu(io::Error),
- #[error(display = "QEMU exited unexpectedly")]
+ #[error("Failed to set up network")]
+ Network(#[source] network::linux::Error),
+ #[error("Failed to start QEMU")]
+ StartQemu(#[source] io::Error),
+ #[error("QEMU exited unexpectedly")]
QemuFailed(Option<ExitStatus>),
- #[error(display = "Could not find pty")]
+ #[error("Could not find pty")]
NoPty,
- #[error(display = "Could not find IP address of guest")]
+ #[error("Could not find IP address of guest")]
NoIpAddr,
- #[error(display = "Failed to copy OVMF vars")]
- CopyOvmfVars(io::Error),
- #[error(display = "Failed to wrap OVMF vars copy in tempfile object")]
+ #[error("Failed to copy OVMF vars")]
+ CopyOvmfVars(#[source] io::Error),
+ #[error("Failed to wrap OVMF vars copy in tempfile object")]
WrapOvmfVars,
- #[error(display = "Failed to start swtpm")]
- StartTpmEmulator(io::Error),
- #[error(display = "swtpm failed")]
- TpmEmulator(io::Error),
- #[error(display = "Timed out waiting for swtpm socket")]
+ #[error("Failed to start swtpm")]
+ StartTpmEmulator(#[source] io::Error),
+ #[error("swtpm failed")]
+ TpmEmulator(#[source] io::Error),
+ #[error("Timed out waiting for swtpm socket")]
TpmSocketTimeout,
- #[error(display = "Failed to create temp dir")]
- MkTempDir(io::Error),
+ #[error("Failed to create temp dir")]
+ MkTempDir(#[source] io::Error),
}
pub type Result<T> = std::result::Result<T, Error>;
diff --git a/test/test-rpc/Cargo.toml b/test/test-rpc/Cargo.toml
index 37335b599e..24596a09af 100644
--- a/test/test-rpc/Cargo.toml
+++ b/test/test-rpc/Cargo.toml
@@ -19,7 +19,7 @@ serde = { workspace = true }
serde_json = { workspace = true }
once_cell = { workspace = true }
bytes = { workspace = true }
-err-derive = { workspace = true }
+thiserror = { workspace = true }
log = { workspace = true }
colored = { workspace = true }
async-trait = { workspace = true }
diff --git a/test/test-rpc/src/lib.rs b/test/test-rpc/src/lib.rs
index d2bee40dbb..166a00d9a7 100644
--- a/test/test-rpc/src/lib.rs
+++ b/test/test-rpc/src/lib.rs
@@ -13,47 +13,47 @@ pub mod net;
pub mod package;
pub mod transport;
-#[derive(err_derive::Error, Debug, Serialize, Deserialize, PartialEq, Eq)]
+#[derive(thiserror::Error, Debug, Serialize, Deserialize, PartialEq, Eq)]
pub enum Error {
- #[error(display = "Test runner RPC failed")]
- Tarpc(#[error(source)] tarpc::client::RpcError),
- #[error(display = "Syscall failed")]
+ #[error("Test runner RPC failed")]
+ Tarpc(#[from] tarpc::client::RpcError),
+ #[error("Syscall failed")]
Syscall,
- #[error(display = "Interface not found")]
+ #[error("Interface not found")]
InterfaceNotFound,
- #[error(display = "HTTP request failed")]
+ #[error("HTTP request failed")]
HttpRequest(String),
- #[error(display = "Failed to deserialize HTTP body")]
+ #[error("Failed to deserialize HTTP body")]
DeserializeBody,
- #[error(display = "DNS resolution failed")]
+ #[error("DNS resolution failed")]
DnsResolution,
- #[error(display = "Test runner RPC timed out")]
+ #[error("Test runner RPC timed out")]
TestRunnerTimeout,
- #[error(display = "Package error")]
- Package(#[error(source)] package::Error),
- #[error(display = "Logger error")]
- Logger(#[error(source)] logging::Error),
- #[error(display = "Failed to send UDP datagram")]
+ #[error("Package error")]
+ Package(#[from] package::Error),
+ #[error("Logger error")]
+ Logger(#[from] logging::Error),
+ #[error("Failed to send UDP datagram")]
SendUdp,
- #[error(display = "Failed to send TCP segment")]
+ #[error("Failed to send TCP segment")]
SendTcp,
- #[error(display = "Failed to send ping")]
+ #[error("Failed to send ping")]
Ping,
- #[error(display = "Failed to get or set registry value")]
+ #[error("Failed to get or set registry value")]
Registry(String),
- #[error(display = "Failed to change the service")]
+ #[error("Failed to change the service")]
Service(String),
- #[error(display = "Could not read from or write to the file system")]
+ #[error("Could not read from or write to the file system")]
FileSystem(String),
- #[error(display = "Could not serialize or deserialize file")]
+ #[error("Could not serialize or deserialize file")]
FileSerialization(String),
- #[error(display = "User must be logged in but is not")]
+ #[error("User must be logged in but is not")]
UserNotLoggedIn(String),
- #[error(display = "Invalid URL")]
+ #[error("Invalid URL")]
InvalidUrl,
- #[error(display = "Timeout")]
+ #[error("Timeout")]
Timeout,
- #[error(display = "TCP forward error")]
+ #[error("TCP forward error")]
TcpForward,
}
diff --git a/test/test-rpc/src/logging.rs b/test/test-rpc/src/logging.rs
index a2156f6d9b..0e5205888b 100644
--- a/test/test-rpc/src/logging.rs
+++ b/test/test-rpc/src/logging.rs
@@ -4,11 +4,11 @@ use std::fmt;
pub type Result<T> = std::result::Result<T, Error>;
-#[derive(err_derive::Error, Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
+#[derive(thiserror::Error, Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
pub enum Error {
- #[error(display = "Could not get standard output from runner")]
+ #[error("Could not get standard output from runner")]
StandardOutput,
- #[error(display = "Could not get mullvad app logs from runner")]
+ #[error("Could not get mullvad app logs from runner")]
Logs(String),
}
diff --git a/test/test-rpc/src/package.rs b/test/test-rpc/src/package.rs
index 89d6dce495..36b7f479ad 100644
--- a/test/test-rpc/src/package.rs
+++ b/test/test-rpc/src/package.rs
@@ -1,40 +1,36 @@
use serde::{Deserialize, Serialize};
use std::path::PathBuf;
-#[derive(err_derive::Error, Debug, Deserialize, Serialize, PartialEq, Eq)]
-#[error(no_from)]
+#[derive(thiserror::Error, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub enum Error {
- #[error(display = "Failed open file for writing")]
+ #[error("Failed open file for writing")]
OpenFile,
- #[error(display = "Failed to write downloaded file to disk")]
+ #[error("Failed to write downloaded file to disk")]
WriteFile,
- #[error(display = "Failed to convert download to bytes")]
+ #[error("Failed to convert download to bytes")]
ToBytes,
- #[error(display = "Failed to convert download to bytes")]
+ #[error("Failed to convert download to bytes")]
RequestFailed,
- #[error(display = "Cannot parse version")]
+ #[error("Cannot parse version")]
InvalidVersion,
- #[error(display = "Failed to run package installer")]
+ #[error("Failed to run package installer")]
RunApp,
- #[error(display = "Failed to create temporary uninstaller")]
+ #[error("Failed to create temporary uninstaller")]
CreateTempUninstaller,
- #[error(
- display = "Installer or uninstaller failed due to an unknown error: {}",
- _0
- )]
+ #[error("Installer or uninstaller failed due to an unknown error: {0}")]
InstallerFailed(i32),
- #[error(display = "Installer or uninstaller failed due to a signal")]
+ #[error("Installer or uninstaller failed due to a signal")]
InstallerFailedSignal,
- #[error(display = "Unrecognized OS: {}", _0)]
+ #[error("Unrecognized OS: {0}")]
UnknownOs(String),
}
diff --git a/test/test-rpc/src/transport.rs b/test/test-rpc/src/transport.rs
index 6a9f8b4588..b8086b4145 100644
--- a/test/test-rpc/src/transport.rs
+++ b/test/test-rpc/src/transport.rs
@@ -217,26 +217,25 @@ type ClientTransports = (
CompletionHandle,
);
-#[derive(err_derive::Error, Debug)]
-#[error(no_from)]
+#[derive(thiserror::Error, Debug)]
enum ForwardError {
- #[error(display = "Failed to deserialize JSON data")]
- DeserializeFailed(#[error(source)] serde_json::Error),
+ #[error("Failed to deserialize JSON data")]
+ DeserializeFailed(#[source] serde_json::Error),
- #[error(display = "Failed to serialize JSON data")]
- SerializeFailed(#[error(source)] serde_json::Error),
+ #[error("Failed to serialize JSON data")]
+ SerializeFailed(#[source] serde_json::Error),
- #[error(display = "Serial connection error")]
- SerialConnection(#[error(source)] io::Error),
+ #[error("Serial connection error")]
+ SerialConnection(#[source] io::Error),
- #[error(display = "Test runner channel error")]
- TestRunnerChannel(#[error(source)] tarpc::transport::channel::ChannelError),
+ #[error("Test runner channel error")]
+ TestRunnerChannel(#[source] tarpc::transport::channel::ChannelError),
- #[error(display = "Daemon channel error")]
- DaemonChannel(#[error(source)] io::Error),
+ #[error("Daemon channel error")]
+ DaemonChannel(#[source] io::Error),
- #[error(display = "Handshake error")]
- HandshakeError(#[error(source)] io::Error),
+ #[error("Handshake error")]
+ HandshakeError(#[source] io::Error),
}
async fn forward_messages<
diff --git a/test/test-runner/Cargo.toml b/test/test-runner/Cargo.toml
index 1a0163213f..dbe57c938e 100644
--- a/test/test-runner/Cargo.toml
+++ b/test/test-runner/Cargo.toml
@@ -15,7 +15,7 @@ futures = { workspace = true }
tarpc = { workspace = true }
tokio = { workspace = true }
tokio-serial = { workspace = true }
-err-derive = { workspace = true }
+thiserror = { workspace = true }
log = { workspace = true }
once_cell = { workspace = true }
parity-tokio-ipc = "0.9"
diff --git a/test/test-runner/src/main.rs b/test/test-runner/src/main.rs
index 74f7761cc2..befeeb61e0 100644
--- a/test/test-runner/src/main.rs
+++ b/test/test-runner/src/main.rs
@@ -325,9 +325,9 @@ fn get_pipe_status() -> ServiceStatus {
/// Keep this constant in sync with `test-manager/src/run_tests.rs`
const BAUD: u32 = if cfg!(target_os = "macos") { 0 } else { 115200 };
-#[derive(err_derive::Error, Debug)]
+#[derive(thiserror::Error, Debug)]
pub enum Error {
- #[error(display = "Unknown RPC")]
+ #[error("Unknown RPC")]
UnknownRpc,
}