diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/Cargo.lock | 140 | ||||
| -rw-r--r-- | test/Cargo.toml | 2 | ||||
| -rw-r--r-- | test/socks-server/Cargo.toml | 2 | ||||
| -rw-r--r-- | test/socks-server/src/lib.rs | 7 | ||||
| -rw-r--r-- | test/test-manager/Cargo.toml | 2 | ||||
| -rw-r--r-- | test/test-manager/src/config.rs | 8 | ||||
| -rw-r--r-- | test/test-manager/src/logging.rs | 4 | ||||
| -rw-r--r-- | test/test-manager/src/summary.rs | 25 | ||||
| -rw-r--r-- | test/test-manager/src/tests/mod.rs | 24 | ||||
| -rw-r--r-- | test/test-manager/src/vm/network/linux.rs | 35 | ||||
| -rw-r--r-- | test/test-manager/src/vm/qemu.rs | 36 | ||||
| -rw-r--r-- | test/test-rpc/Cargo.toml | 2 | ||||
| -rw-r--r-- | test/test-rpc/src/lib.rs | 48 | ||||
| -rw-r--r-- | test/test-rpc/src/logging.rs | 6 | ||||
| -rw-r--r-- | test/test-rpc/src/package.rs | 26 | ||||
| -rw-r--r-- | test/test-rpc/src/transport.rs | 27 | ||||
| -rw-r--r-- | test/test-runner/Cargo.toml | 2 | ||||
| -rw-r--r-- | test/test-runner/src/main.rs | 4 |
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, } |
