diff options
author | Yurii Rashkovskii <yrashk@gmail.com> | 2018-05-07 13:33:51 -0700 |
---|---|---|
committer | Yurii Rashkovskii <yrashk@gmail.com> | 2018-05-07 13:33:51 -0700 |
commit | 783d547bddf66070b3a33b1fd4b972d945e5942c (patch) | |
tree | 6da3897a967f3f4345944f7b8cfe945b174d3068 | |
parent | 17fe52a6c741ec7265d402c41e9419e903126fe8 (diff) | |
download | nixlib-783d547bddf66070b3a33b1fd4b972d945e5942c.tar nixlib-783d547bddf66070b3a33b1fd4b972d945e5942c.tar.gz nixlib-783d547bddf66070b3a33b1fd4b972d945e5942c.tar.bz2 nixlib-783d547bddf66070b3a33b1fd4b972d945e5942c.tar.lz nixlib-783d547bddf66070b3a33b1fd4b972d945e5942c.tar.xz nixlib-783d547bddf66070b3a33b1fd4b972d945e5942c.tar.zst nixlib-783d547bddf66070b3a33b1fd4b972d945e5942c.zip |
sit: fix tests on aarch64
As we found out in #40032, sit tests won't pass on aarch64. The problem seems to be related to `create_dir` not returning an error if the directory already exists, happening specifically on aarch64+debug (not aarch64+release) This update injects a patch for tests that will also be included in subsequent versions of SIT.
-rw-r--r-- | pkgs/applications/version-management/sit/aarch64-eexist.patch | 17 | ||||
-rw-r--r-- | pkgs/applications/version-management/sit/default.nix | 2 |
2 files changed, 19 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/sit/aarch64-eexist.patch b/pkgs/applications/version-management/sit/aarch64-eexist.patch new file mode 100644 index 000000000000..8b45e77d040d --- /dev/null +++ b/pkgs/applications/version-management/sit/aarch64-eexist.patch @@ -0,0 +1,17 @@ +diff --git a/sit-core/src/repository.rs b/sit-core/src/repository.rs +index ebd357d..074dcc9 100644 +--- a/sit-core/src/repository.rs ++++ b/sit-core/src/repository.rs +@@ -305,6 +305,12 @@ impl Repository { + let id: String = name.into(); + let mut path = self.items_path.clone(); + path.push(&id); ++ #[cfg(all(debug_assertions, target_arch = "aarch64"))] { ++ use std::io; ++ if path.is_dir() { ++ return Err(io::Error::from_raw_os_error(17).into()); // 17 is EEXIST ++ } ++ } + fs::create_dir(path)?; + let id = OsString::from(id); + Ok(Item { diff --git a/pkgs/applications/version-management/sit/default.nix b/pkgs/applications/version-management/sit/default.nix index 0cc75f8bd5a3..ae84add283e6 100644 --- a/pkgs/applications/version-management/sit/default.nix +++ b/pkgs/applications/version-management/sit/default.nix @@ -15,6 +15,8 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "102haqix13nwcncng1s8qkw68spn6fhh3vysk2nbahw6f78zczqg"; + patches = [ ./aarch64-eexist.patch ]; + meta = with stdenv.lib; { description = "Serverless Information Tracker"; homepage = https://sit.sh/; |