55 lines
1.8 KiB
Diff
55 lines
1.8 KiB
Diff
From 32769daca67af91c1f8bdb5972e500fa9e66c9ea Mon Sep 17 00:00:00 2001
|
|
From: konstin <konstin@mailbox.org>
|
|
Date: Tue, 4 Feb 2025 18:45:16 +0100
|
|
Subject: [PATCH] Adapt directory permission test
|
|
|
|
Adapt the directory permissions test to the changes made in https://github.com/astral-sh/tokio-tar/pull/8.
|
|
---
|
|
tests/entry.rs | 20 +++++++++++++++-----
|
|
1 file changed, 15 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/tests/entry.rs b/tests/entry.rs
|
|
index 5b45669..4c31956 100644
|
|
--- a/tests/entry.rs
|
|
+++ b/tests/entry.rs
|
|
@@ -2,7 +2,7 @@ extern crate tokio_tar as async_tar;
|
|
|
|
extern crate tempfile;
|
|
|
|
-use tokio::{fs::File, io::AsyncReadExt};
|
|
+use tokio::{fs, fs::File, io::AsyncReadExt};
|
|
use tokio_stream::*;
|
|
|
|
use tempfile::Builder;
|
|
@@ -157,7 +157,7 @@ async fn relative_link_deref_error() {
|
|
|
|
#[tokio::test]
|
|
#[cfg(unix)]
|
|
-async fn directory_maintains_permissions() {
|
|
+async fn directory_permissions_are_cleared() {
|
|
use ::std::os::unix::fs::PermissionsExt;
|
|
|
|
let mut ar = async_tar::Builder::new(Vec::new());
|
|
@@ -176,9 +176,19 @@ async fn directory_maintains_permissions() {
|
|
let td = t!(Builder::new().prefix("tar").tempdir());
|
|
t!(ar.unpack(td.path()).await);
|
|
let f = t!(File::open(td.path().join("foo")).await);
|
|
- let md = t!(f.metadata().await);
|
|
- assert!(md.is_dir());
|
|
- assert_eq!(md.permissions().mode(), 0o40777);
|
|
+ let from_archive_md = t!(f.metadata().await);
|
|
+ assert!(from_archive_md.is_dir());
|
|
+
|
|
+ // To determine the default umask, create a fresh directory that gets it assigned by the OS.
|
|
+ let manually_created = td.path().join("bar");
|
|
+ t!(fs::create_dir(&manually_created).await);
|
|
+ let f = t!(File::open(&manually_created).await);
|
|
+ let loca_md = t!(f.metadata().await);
|
|
+
|
|
+ assert_eq!(
|
|
+ from_archive_md.permissions().mode(),
|
|
+ loca_md.permissions().mode()
|
|
+ );
|
|
}
|
|
|
|
#[tokio::test]
|