aboutsummaryrefslogtreecommitdiff
path: root/vendor/tempfile/tests/tempfile.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
committerValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
commita990de90fe41456a23e58bd087d2f107d321f3a1 (patch)
tree15afc392522a9e85dc3332235e311b7d39352ea9 /vendor/tempfile/tests/tempfile.rs
parent3d48cd3f81164bbfc1a755dc1d4a9a02f98c8ddd (diff)
downloadfparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.tar.xz
fparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.zip
Deleted vendor folder
Diffstat (limited to 'vendor/tempfile/tests/tempfile.rs')
-rw-r--r--vendor/tempfile/tests/tempfile.rs68
1 files changed, 0 insertions, 68 deletions
diff --git a/vendor/tempfile/tests/tempfile.rs b/vendor/tempfile/tests/tempfile.rs
deleted file mode 100644
index c2f6844..0000000
--- a/vendor/tempfile/tests/tempfile.rs
+++ /dev/null
@@ -1,68 +0,0 @@
-#![deny(rust_2018_idioms)]
-
-use std::fs;
-use std::io::{Read, Seek, SeekFrom, Write};
-#[cfg(target_os = "linux")]
-use std::{
- sync::mpsc::{sync_channel, TryRecvError},
- thread,
-};
-
-#[test]
-fn test_basic() {
- let mut tmpfile = tempfile::tempfile().unwrap();
- write!(tmpfile, "abcde").unwrap();
- tmpfile.seek(SeekFrom::Start(0)).unwrap();
- let mut buf = String::new();
- tmpfile.read_to_string(&mut buf).unwrap();
- assert_eq!("abcde", buf);
-}
-
-#[test]
-fn test_cleanup() {
- let tmpdir = tempfile::tempdir().unwrap();
- {
- let mut tmpfile = tempfile::tempfile_in(&tmpdir).unwrap();
- write!(tmpfile, "abcde").unwrap();
- }
- let num_files = fs::read_dir(&tmpdir).unwrap().count();
- assert!(num_files == 0);
-}
-
-// Only run this test on Linux. MacOS doesn't like us creating so many files, apparently.
-#[cfg(target_os = "linux")]
-#[test]
-fn test_pathological_cleaner() {
- let tmpdir = tempfile::tempdir().unwrap();
- let (tx, rx) = sync_channel(0);
- let cleaner_thread = thread::spawn(move || {
- let tmp_path = rx.recv().unwrap();
- while rx.try_recv() == Err(TryRecvError::Empty) {
- let files = fs::read_dir(&tmp_path).unwrap();
- for f in files {
- // skip errors
- if f.is_err() {
- continue;
- }
- let f = f.unwrap();
- let _ = fs::remove_file(f.path());
- }
- }
- });
-
- // block until cleaner_thread makes progress
- tx.send(tmpdir.path().to_owned()).unwrap();
- // need 40-400 iterations to encounter race with cleaner on original system
- for _ in 0..10000 {
- let mut tmpfile = tempfile::tempfile_in(&tmpdir).unwrap();
- write!(tmpfile, "abcde").unwrap();
- tmpfile.seek(SeekFrom::Start(0)).unwrap();
- let mut buf = String::new();
- tmpfile.read_to_string(&mut buf).unwrap();
- assert_eq!("abcde", buf);
- }
-
- // close the channel to make cleaner_thread exit
- drop(tx);
- cleaner_thread.join().expect("The cleaner thread failed");
-}