From 10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 14:41:41 +0200 Subject: Merging upstream version 1.70.0+dfsg2. Signed-off-by: Daniel Baumann --- vendor/git2/tests/add_extensions.rs | 21 +++++++++++++++ vendor/git2/tests/get_extensions.rs | 16 ++++++++++++ vendor/git2/tests/global_state.rs | 47 ++++++++++++++++++++++++++++++++++ vendor/git2/tests/remove_extensions.rs | 19 ++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 vendor/git2/tests/add_extensions.rs create mode 100644 vendor/git2/tests/get_extensions.rs create mode 100644 vendor/git2/tests/global_state.rs create mode 100644 vendor/git2/tests/remove_extensions.rs (limited to 'vendor/git2/tests') diff --git a/vendor/git2/tests/add_extensions.rs b/vendor/git2/tests/add_extensions.rs new file mode 100644 index 000000000..7d80b705d --- /dev/null +++ b/vendor/git2/tests/add_extensions.rs @@ -0,0 +1,21 @@ +//! Test for `set_extensions`, which writes a global state maintained by libgit2 + +use git2::opts::{get_extensions, set_extensions}; +use git2::Error; + +#[test] +fn test_add_extensions() -> Result<(), Error> { + unsafe { + set_extensions(&["custom"])?; + } + + let extensions = unsafe { get_extensions() }?; + + assert_eq!(extensions.len(), 3); + assert_eq!(extensions.get(0), Some("noop")); + // The objectformat extension was added in 1.6 + assert_eq!(extensions.get(1), Some("objectformat")); + assert_eq!(extensions.get(2), Some("custom")); + + Ok(()) +} diff --git a/vendor/git2/tests/get_extensions.rs b/vendor/git2/tests/get_extensions.rs new file mode 100644 index 000000000..d8dd55fe0 --- /dev/null +++ b/vendor/git2/tests/get_extensions.rs @@ -0,0 +1,16 @@ +//! Test for `get_extensions`, which reads a global state maintained by libgit2 + +use git2::opts::get_extensions; +use git2::Error; + +#[test] +fn test_get_extensions() -> Result<(), Error> { + let extensions = unsafe { get_extensions() }?; + + assert_eq!(extensions.len(), 2); + assert_eq!(extensions.get(0), Some("noop")); + // The objectformat extension was added in 1.6 + assert_eq!(extensions.get(1), Some("objectformat")); + + Ok(()) +} diff --git a/vendor/git2/tests/global_state.rs b/vendor/git2/tests/global_state.rs new file mode 100644 index 000000000..192acdbd3 --- /dev/null +++ b/vendor/git2/tests/global_state.rs @@ -0,0 +1,47 @@ +//! Test for some global state set up by libgit2's `git_libgit2_init` function +//! that need to be synchronized within a single process. + +use git2::opts; +use git2::{ConfigLevel, IntoCString}; + +// Test for mutating configuration file search path which is set during +// initialization in libgit2's `git_sysdir_global_init` function. +#[test] +fn search_path() -> Result<(), Box> { + use std::env::join_paths; + + let path = "fake_path"; + let original = unsafe { opts::get_search_path(ConfigLevel::Global) }; + assert_ne!(original, Ok(path.into_c_string()?)); + + // Set + unsafe { + opts::set_search_path(ConfigLevel::Global, &path)?; + } + assert_eq!( + unsafe { opts::get_search_path(ConfigLevel::Global) }, + Ok(path.into_c_string()?) + ); + + // Append + let paths = join_paths(["$PATH", path].iter())?; + let expected_paths = join_paths([path, path].iter())?.into_c_string()?; + unsafe { + opts::set_search_path(ConfigLevel::Global, paths)?; + } + assert_eq!( + unsafe { opts::get_search_path(ConfigLevel::Global) }, + Ok(expected_paths) + ); + + // Reset + unsafe { + opts::reset_search_path(ConfigLevel::Global)?; + } + assert_eq!( + unsafe { opts::get_search_path(ConfigLevel::Global) }, + original + ); + + Ok(()) +} diff --git a/vendor/git2/tests/remove_extensions.rs b/vendor/git2/tests/remove_extensions.rs new file mode 100644 index 000000000..5f632a880 --- /dev/null +++ b/vendor/git2/tests/remove_extensions.rs @@ -0,0 +1,19 @@ +//! Test for `set_extensions`, which writes a global state maintained by libgit2 + +use git2::opts::{get_extensions, set_extensions}; +use git2::Error; + +#[test] +fn test_remove_extensions() -> Result<(), Error> { + unsafe { + set_extensions(&["custom", "!ignore", "!noop", "!objectformat", "other"])?; + } + + let extensions = unsafe { get_extensions() }?; + + assert_eq!(extensions.len(), 2); + assert_eq!(extensions.get(0), Some("custom")); + assert_eq!(extensions.get(1), Some("other")); + + Ok(()) +} -- cgit v1.2.3