diff options
| author | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-10-06 18:24:06 +0200 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-11-03 10:00:51 +0100 |
| commit | 7b5084918ab1498012fff85ff9948c32236f1a8b (patch) | |
| tree | b41e8876cc693e9c7cef1c2d88e7b5a6839a618d /test | |
| parent | a91f05f3da72271e3e7c2a5525940a98afedfcee (diff) | |
| download | mullvadvpn-7b5084918ab1498012fff85ff9948c32236f1a8b.tar.xz mullvadvpn-7b5084918ab1498012fff85ff9948c32236f1a8b.zip | |
Add support for running alternative distros in E2E test framework
Diffstat (limited to 'test')
| -rw-r--r-- | test/test-runner/src/package.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/test/test-runner/src/package.rs b/test/test-runner/src/package.rs index 5cc0b92dab..8ab3bc6d5e 100644 --- a/test/test-runner/src/package.rs +++ b/test/test-runner/src/package.rs @@ -14,6 +14,8 @@ pub async fn uninstall_app(env: HashMap<String, String>) -> Result<()> { uninstall_apt("mullvad-vpn", env, true).await } Distribution::Fedora => uninstall_rpm("mullvad-vpn", env).await, + // FIXME: Do not assume that it is Debian/Ubuntu-based. + Distribution::Unofficial { name: _ } => uninstall_apt("mullvad-vpn", env, true).await, } } @@ -105,6 +107,8 @@ pub async fn install_package(package: Package) -> Result<()> { match get_distribution()? { Distribution::Debian | Distribution::Ubuntu => install_apt(&package.path).await, Distribution::Fedora => install_rpm(&package.path).await, + // FIXME: Do not assume that it is Debian/Ubuntu-based. + Distribution::Unofficial { name: _ } => install_apt(&package.path).await, } } @@ -263,26 +267,30 @@ async fn install_nsis_exe(path: &Path) -> Result<()> { } #[cfg(target_os = "linux")] +#[allow(unused)] enum Distribution { Debian, Ubuntu, Fedora, + // Not an officially supported Linux distro. + Unofficial { name: String }, } #[cfg(target_os = "linux")] fn get_distribution() -> Result<Distribution> { let os_release = rs_release::get_os_release().map_err(|_error| Error::UnknownOs("unknown".to_string()))?; - match os_release + let id = os_release .get("id") .or(os_release.get("ID")) - .ok_or(Error::UnknownOs("unknown".to_string()))? - .as_str() - { + .ok_or(Error::UnknownOs("unknown".to_string()))?; + match id.as_str() { "debian" => Ok(Distribution::Debian), "ubuntu" => Ok(Distribution::Ubuntu), "fedora" => Ok(Distribution::Fedora), - os => Err(Error::UnknownOs(os.to_string())), + other => Ok(Distribution::Unofficial { + name: other.to_string(), + }), } } |
