diff options
author | Vika <vika@fireburn.ru> | 2025-01-30 08:49:22 +0300 |
---|---|---|
committer | Vika <vika@fireburn.ru> | 2025-01-30 08:49:22 +0300 |
commit | 62263e0e619625f2c5dd0b4364b43bd4fefc8ccd (patch) | |
tree | c796d7f78c2205dff77eacb02d43024a254c6d67 /libsecret/sys/tests | |
parent | 320de85d04061ccc3ce50fb9a460a28068f7146a (diff) | |
download | bowl-62263e0e619625f2c5dd0b4364b43bd4fefc8ccd.tar.zst |
libsecret: 0.6.0 (private fork) -> 0.7.0 (upstream)
libsecret is now maintained again! No need for a private fork.
Diffstat (limited to 'libsecret/sys/tests')
-rw-r--r-- | libsecret/sys/tests/abi.rs | 405 | ||||
-rw-r--r-- | libsecret/sys/tests/constant.c | 69 | ||||
-rw-r--r-- | libsecret/sys/tests/layout.c | 35 | ||||
-rw-r--r-- | libsecret/sys/tests/manual.h | 3 |
4 files changed, 0 insertions, 512 deletions
diff --git a/libsecret/sys/tests/abi.rs b/libsecret/sys/tests/abi.rs deleted file mode 100644 index 591466e..0000000 --- a/libsecret/sys/tests/abi.rs +++ /dev/null @@ -1,405 +0,0 @@ -// Generated by gir (https://github.com/gtk-rs/gir @ 4dd714f7f3b1) -// from -// from gir-files (https://github.com/gtk-rs/gir-files.git @ b9db716f1bb7) -// DO NOT EDIT - -#![cfg(unix)] - -use libsecret_sys::*; -use std::env; -use std::error::Error; -use std::ffi::OsString; -use std::mem::{align_of, size_of}; -use std::path::Path; -use std::process::{Command, Stdio}; -use std::str; -use tempfile::Builder; - -static PACKAGES: &[&str] = &["libsecret-1"]; - -#[derive(Clone, Debug)] -struct Compiler { - pub args: Vec<String>, -} - -impl Compiler { - pub fn new() -> Result<Self, Box<dyn Error>> { - let mut args = get_var("CC", "cc")?; - args.push("-Wno-deprecated-declarations".to_owned()); - // For _Generic - args.push("-std=c11".to_owned()); - // For %z support in printf when using MinGW. - args.push("-D__USE_MINGW_ANSI_STDIO".to_owned()); - args.extend(get_var("CFLAGS", "")?); - args.extend(get_var("CPPFLAGS", "")?); - args.extend(pkg_config_cflags(PACKAGES)?); - Ok(Self { args }) - } - - pub fn compile(&self, src: &Path, out: &Path) -> Result<(), Box<dyn Error>> { - let mut cmd = self.to_command(); - cmd.arg(src); - cmd.arg("-o"); - cmd.arg(out); - let status = cmd.spawn()?.wait()?; - if !status.success() { - return Err(format!("compilation command {cmd:?} failed, {status}").into()); - } - Ok(()) - } - - fn to_command(&self) -> Command { - let mut cmd = Command::new(&self.args[0]); - cmd.args(&self.args[1..]); - cmd - } -} - -fn get_var(name: &str, default: &str) -> Result<Vec<String>, Box<dyn Error>> { - match env::var(name) { - Ok(value) => Ok(shell_words::split(&value)?), - Err(env::VarError::NotPresent) => Ok(shell_words::split(default)?), - Err(err) => Err(format!("{name} {err}").into()), - } -} - -fn pkg_config_cflags(packages: &[&str]) -> Result<Vec<String>, Box<dyn Error>> { - if packages.is_empty() { - return Ok(Vec::new()); - } - let pkg_config = env::var_os("PKG_CONFIG").unwrap_or_else(|| OsString::from("pkg-config")); - let mut cmd = Command::new(pkg_config); - cmd.arg("--cflags"); - cmd.args(packages); - cmd.stderr(Stdio::inherit()); - let out = cmd.output()?; - if !out.status.success() { - let (status, stdout) = (out.status, String::from_utf8_lossy(&out.stdout)); - return Err(format!("command {cmd:?} failed, {status:?}\nstdout: {stdout}").into()); - } - let stdout = str::from_utf8(&out.stdout)?; - Ok(shell_words::split(stdout.trim())?) -} - -#[derive(Copy, Clone, Debug, Eq, PartialEq)] -struct Layout { - size: usize, - alignment: usize, -} - -#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)] -struct Results { - /// Number of successfully completed tests. - passed: usize, - /// Total number of failed tests (including those that failed to compile). - failed: usize, -} - -impl Results { - fn record_passed(&mut self) { - self.passed += 1; - } - fn record_failed(&mut self) { - self.failed += 1; - } - fn summary(&self) -> String { - format!("{} passed; {} failed", self.passed, self.failed) - } - fn expect_total_success(&self) { - if self.failed == 0 { - println!("OK: {}", self.summary()); - } else { - panic!("FAILED: {}", self.summary()); - }; - } -} - -#[test] -fn cross_validate_constants_with_c() { - let mut c_constants: Vec<(String, String)> = Vec::new(); - - for l in get_c_output("constant").unwrap().lines() { - let (name, value) = l.split_once(';').expect("Missing ';' separator"); - c_constants.push((name.to_owned(), value.to_owned())); - } - - let mut results = Results::default(); - - for ((rust_name, rust_value), (c_name, c_value)) in - RUST_CONSTANTS.iter().zip(c_constants.iter()) - { - if rust_name != c_name { - results.record_failed(); - eprintln!("Name mismatch:\nRust: {rust_name:?}\nC: {c_name:?}"); - continue; - } - - if rust_value != c_value { - results.record_failed(); - eprintln!( - "Constant value mismatch for {rust_name}\nRust: {rust_value:?}\nC: {c_value:?}", - ); - continue; - } - - results.record_passed(); - } - - results.expect_total_success(); -} - -#[test] -fn cross_validate_layout_with_c() { - let mut c_layouts = Vec::new(); - - for l in get_c_output("layout").unwrap().lines() { - let (name, value) = l.split_once(';').expect("Missing first ';' separator"); - let (size, alignment) = value.split_once(';').expect("Missing second ';' separator"); - let size = size.parse().expect("Failed to parse size"); - let alignment = alignment.parse().expect("Failed to parse alignment"); - c_layouts.push((name.to_owned(), Layout { size, alignment })); - } - - let mut results = Results::default(); - - for ((rust_name, rust_layout), (c_name, c_layout)) in RUST_LAYOUTS.iter().zip(c_layouts.iter()) - { - if rust_name != c_name { - results.record_failed(); - eprintln!("Name mismatch:\nRust: {rust_name:?}\nC: {c_name:?}"); - continue; - } - - if rust_layout != c_layout { - results.record_failed(); - eprintln!("Layout mismatch for {rust_name}\nRust: {rust_layout:?}\nC: {c_layout:?}",); - continue; - } - - results.record_passed(); - } - - results.expect_total_success(); -} - -fn get_c_output(name: &str) -> Result<String, Box<dyn Error>> { - let tmpdir = Builder::new().prefix("abi").tempdir()?; - let exe = tmpdir.path().join(name); - let c_file = Path::new("tests").join(name).with_extension("c"); - - let cc = Compiler::new().expect("configured compiler"); - cc.compile(&c_file, &exe)?; - - let mut cmd = Command::new(exe); - cmd.stderr(Stdio::inherit()); - let out = cmd.output()?; - if !out.status.success() { - let (status, stdout) = (out.status, String::from_utf8_lossy(&out.stdout)); - return Err(format!("command {cmd:?} failed, {status:?}\nstdout: {stdout}").into()); - } - - Ok(String::from_utf8(out.stdout)?) -} - -const RUST_LAYOUTS: &[(&str, Layout)] = &[ - ( - "SecretBackendFlags", - Layout { - size: size_of::<SecretBackendFlags>(), - alignment: align_of::<SecretBackendFlags>(), - }, - ), - ( - "SecretBackendInterface", - Layout { - size: size_of::<SecretBackendInterface>(), - alignment: align_of::<SecretBackendInterface>(), - }, - ), - ( - "SecretCollection", - Layout { - size: size_of::<SecretCollection>(), - alignment: align_of::<SecretCollection>(), - }, - ), - ( - "SecretCollectionClass", - Layout { - size: size_of::<SecretCollectionClass>(), - alignment: align_of::<SecretCollectionClass>(), - }, - ), - ( - "SecretCollectionCreateFlags", - Layout { - size: size_of::<SecretCollectionCreateFlags>(), - alignment: align_of::<SecretCollectionCreateFlags>(), - }, - ), - ( - "SecretCollectionFlags", - Layout { - size: size_of::<SecretCollectionFlags>(), - alignment: align_of::<SecretCollectionFlags>(), - }, - ), - ( - "SecretError", - Layout { - size: size_of::<SecretError>(), - alignment: align_of::<SecretError>(), - }, - ), - ( - "SecretItem", - Layout { - size: size_of::<SecretItem>(), - alignment: align_of::<SecretItem>(), - }, - ), - ( - "SecretItemClass", - Layout { - size: size_of::<SecretItemClass>(), - alignment: align_of::<SecretItemClass>(), - }, - ), - ( - "SecretItemCreateFlags", - Layout { - size: size_of::<SecretItemCreateFlags>(), - alignment: align_of::<SecretItemCreateFlags>(), - }, - ), - ( - "SecretItemFlags", - Layout { - size: size_of::<SecretItemFlags>(), - alignment: align_of::<SecretItemFlags>(), - }, - ), - ( - "SecretPrompt", - Layout { - size: size_of::<SecretPrompt>(), - alignment: align_of::<SecretPrompt>(), - }, - ), - ( - "SecretPromptClass", - Layout { - size: size_of::<SecretPromptClass>(), - alignment: align_of::<SecretPromptClass>(), - }, - ), - ( - "SecretRetrievableInterface", - Layout { - size: size_of::<SecretRetrievableInterface>(), - alignment: align_of::<SecretRetrievableInterface>(), - }, - ), - ( - "SecretSchema", - Layout { - size: size_of::<SecretSchema>(), - alignment: align_of::<SecretSchema>(), - }, - ), - ( - "SecretSchemaAttribute", - Layout { - size: size_of::<SecretSchemaAttribute>(), - alignment: align_of::<SecretSchemaAttribute>(), - }, - ), - ( - "SecretSchemaAttributeType", - Layout { - size: size_of::<SecretSchemaAttributeType>(), - alignment: align_of::<SecretSchemaAttributeType>(), - }, - ), - ( - "SecretSchemaFlags", - Layout { - size: size_of::<SecretSchemaFlags>(), - alignment: align_of::<SecretSchemaFlags>(), - }, - ), - ( - "SecretSchemaType", - Layout { - size: size_of::<SecretSchemaType>(), - alignment: align_of::<SecretSchemaType>(), - }, - ), - ( - "SecretSearchFlags", - Layout { - size: size_of::<SecretSearchFlags>(), - alignment: align_of::<SecretSearchFlags>(), - }, - ), - ( - "SecretService", - Layout { - size: size_of::<SecretService>(), - alignment: align_of::<SecretService>(), - }, - ), - ( - "SecretServiceClass", - Layout { - size: size_of::<SecretServiceClass>(), - alignment: align_of::<SecretServiceClass>(), - }, - ), - ( - "SecretServiceFlags", - Layout { - size: size_of::<SecretServiceFlags>(), - alignment: align_of::<SecretServiceFlags>(), - }, - ), -]; - -const RUST_CONSTANTS: &[(&str, &str)] = &[ - ("SECRET_BACKEND_EXTENSION_POINT_NAME", "secret-backend"), - ("(gint) SECRET_BACKEND_LOAD_COLLECTIONS", "4"), - ("(gint) SECRET_BACKEND_NONE", "0"), - ("(gint) SECRET_BACKEND_OPEN_SESSION", "2"), - ("(guint) SECRET_COLLECTION_CREATE_NONE", "0"), - ("SECRET_COLLECTION_DEFAULT", "default"), - ("(guint) SECRET_COLLECTION_LOAD_ITEMS", "2"), - ("(guint) SECRET_COLLECTION_NONE", "0"), - ("SECRET_COLLECTION_SESSION", "session"), - ("(gint) SECRET_ERROR_ALREADY_EXISTS", "4"), - ("(gint) SECRET_ERROR_EMPTY_TABLE", "9"), - ("(gint) SECRET_ERROR_INVALID_FILE_FORMAT", "5"), - ("(gint) SECRET_ERROR_IS_LOCKED", "2"), - ("(gint) SECRET_ERROR_MISMATCHED_SCHEMA", "6"), - ("(gint) SECRET_ERROR_NO_MATCHING_ATTRIBUTE", "7"), - ("(gint) SECRET_ERROR_NO_SUCH_OBJECT", "3"), - ("(gint) SECRET_ERROR_PROTOCOL", "1"), - ("(gint) SECRET_ERROR_WRONG_TYPE", "8"), - ("(guint) SECRET_ITEM_CREATE_NONE", "0"), - ("(guint) SECRET_ITEM_CREATE_REPLACE", "2"), - ("(guint) SECRET_ITEM_LOAD_SECRET", "2"), - ("(guint) SECRET_ITEM_NONE", "0"), - ("(gint) SECRET_SCHEMA_ATTRIBUTE_BOOLEAN", "2"), - ("(gint) SECRET_SCHEMA_ATTRIBUTE_INTEGER", "1"), - ("(gint) SECRET_SCHEMA_ATTRIBUTE_STRING", "0"), - ("(guint) SECRET_SCHEMA_DONT_MATCH_NAME", "2"), - ("(guint) SECRET_SCHEMA_NONE", "0"), - ("(gint) SECRET_SCHEMA_TYPE_COMPAT_NETWORK", "1"), - ("(gint) SECRET_SCHEMA_TYPE_NOTE", "0"), - ("(guint) SECRET_SEARCH_ALL", "2"), - ("(guint) SECRET_SEARCH_LOAD_SECRETS", "8"), - ("(guint) SECRET_SEARCH_NONE", "0"), - ("(guint) SECRET_SEARCH_UNLOCK", "4"), - ("(guint) SECRET_SERVICE_LOAD_COLLECTIONS", "4"), - ("(guint) SECRET_SERVICE_NONE", "0"), - ("(guint) SECRET_SERVICE_OPEN_SESSION", "2"), -]; diff --git a/libsecret/sys/tests/constant.c b/libsecret/sys/tests/constant.c deleted file mode 100644 index ff0f600..0000000 --- a/libsecret/sys/tests/constant.c +++ /dev/null @@ -1,69 +0,0 @@ -// Generated by gir (https://github.com/gtk-rs/gir @ 4dd714f7f3b1) -// from -// from gir-files (https://github.com/gtk-rs/gir-files.git @ b9db716f1bb7) -// DO NOT EDIT - -#include "manual.h" -#include <stdio.h> - -#define PRINT_CONSTANT(CONSTANT_NAME) \ - printf("%s;", #CONSTANT_NAME); \ - printf(_Generic((CONSTANT_NAME), \ - char *: "%s", \ - const char *: "%s", \ - char: "%c", \ - signed char: "%hhd", \ - unsigned char: "%hhu", \ - short int: "%hd", \ - unsigned short int: "%hu", \ - int: "%d", \ - unsigned int: "%u", \ - long: "%ld", \ - unsigned long: "%lu", \ - long long: "%lld", \ - unsigned long long: "%llu", \ - float: "%f", \ - double: "%f", \ - long double: "%ld"), \ - CONSTANT_NAME); \ - printf("\n"); - -int main() { - PRINT_CONSTANT(SECRET_BACKEND_EXTENSION_POINT_NAME); - PRINT_CONSTANT((gint) SECRET_BACKEND_LOAD_COLLECTIONS); - PRINT_CONSTANT((gint) SECRET_BACKEND_NONE); - PRINT_CONSTANT((gint) SECRET_BACKEND_OPEN_SESSION); - PRINT_CONSTANT((guint) SECRET_COLLECTION_CREATE_NONE); - PRINT_CONSTANT(SECRET_COLLECTION_DEFAULT); - PRINT_CONSTANT((guint) SECRET_COLLECTION_LOAD_ITEMS); - PRINT_CONSTANT((guint) SECRET_COLLECTION_NONE); - PRINT_CONSTANT(SECRET_COLLECTION_SESSION); - PRINT_CONSTANT((gint) SECRET_ERROR_ALREADY_EXISTS); - PRINT_CONSTANT((gint) SECRET_ERROR_EMPTY_TABLE); - PRINT_CONSTANT((gint) SECRET_ERROR_INVALID_FILE_FORMAT); - PRINT_CONSTANT((gint) SECRET_ERROR_IS_LOCKED); - PRINT_CONSTANT((gint) SECRET_ERROR_MISMATCHED_SCHEMA); - PRINT_CONSTANT((gint) SECRET_ERROR_NO_MATCHING_ATTRIBUTE); - PRINT_CONSTANT((gint) SECRET_ERROR_NO_SUCH_OBJECT); - PRINT_CONSTANT((gint) SECRET_ERROR_PROTOCOL); - PRINT_CONSTANT((gint) SECRET_ERROR_WRONG_TYPE); - PRINT_CONSTANT((guint) SECRET_ITEM_CREATE_NONE); - PRINT_CONSTANT((guint) SECRET_ITEM_CREATE_REPLACE); - PRINT_CONSTANT((guint) SECRET_ITEM_LOAD_SECRET); - PRINT_CONSTANT((guint) SECRET_ITEM_NONE); - PRINT_CONSTANT((gint) SECRET_SCHEMA_ATTRIBUTE_BOOLEAN); - PRINT_CONSTANT((gint) SECRET_SCHEMA_ATTRIBUTE_INTEGER); - PRINT_CONSTANT((gint) SECRET_SCHEMA_ATTRIBUTE_STRING); - PRINT_CONSTANT((guint) SECRET_SCHEMA_DONT_MATCH_NAME); - PRINT_CONSTANT((guint) SECRET_SCHEMA_NONE); - PRINT_CONSTANT((gint) SECRET_SCHEMA_TYPE_COMPAT_NETWORK); - PRINT_CONSTANT((gint) SECRET_SCHEMA_TYPE_NOTE); - PRINT_CONSTANT((guint) SECRET_SEARCH_ALL); - PRINT_CONSTANT((guint) SECRET_SEARCH_LOAD_SECRETS); - PRINT_CONSTANT((guint) SECRET_SEARCH_NONE); - PRINT_CONSTANT((guint) SECRET_SEARCH_UNLOCK); - PRINT_CONSTANT((guint) SECRET_SERVICE_LOAD_COLLECTIONS); - PRINT_CONSTANT((guint) SECRET_SERVICE_NONE); - PRINT_CONSTANT((guint) SECRET_SERVICE_OPEN_SESSION); - return 0; -} diff --git a/libsecret/sys/tests/layout.c b/libsecret/sys/tests/layout.c deleted file mode 100644 index 37a6016..0000000 --- a/libsecret/sys/tests/layout.c +++ /dev/null @@ -1,35 +0,0 @@ -// Generated by gir (https://github.com/gtk-rs/gir @ 4dd714f7f3b1) -// from -// from gir-files (https://github.com/gtk-rs/gir-files.git @ b9db716f1bb7) -// DO NOT EDIT - -#include "manual.h" -#include <stdalign.h> -#include <stdio.h> - -int main() { - printf("%s;%zu;%zu\n", "SecretBackendFlags", sizeof(SecretBackendFlags), alignof(SecretBackendFlags)); - printf("%s;%zu;%zu\n", "SecretBackendInterface", sizeof(SecretBackendInterface), alignof(SecretBackendInterface)); - printf("%s;%zu;%zu\n", "SecretCollection", sizeof(SecretCollection), alignof(SecretCollection)); - printf("%s;%zu;%zu\n", "SecretCollectionClass", sizeof(SecretCollectionClass), alignof(SecretCollectionClass)); - printf("%s;%zu;%zu\n", "SecretCollectionCreateFlags", sizeof(SecretCollectionCreateFlags), alignof(SecretCollectionCreateFlags)); - printf("%s;%zu;%zu\n", "SecretCollectionFlags", sizeof(SecretCollectionFlags), alignof(SecretCollectionFlags)); - printf("%s;%zu;%zu\n", "SecretError", sizeof(SecretError), alignof(SecretError)); - printf("%s;%zu;%zu\n", "SecretItem", sizeof(SecretItem), alignof(SecretItem)); - printf("%s;%zu;%zu\n", "SecretItemClass", sizeof(SecretItemClass), alignof(SecretItemClass)); - printf("%s;%zu;%zu\n", "SecretItemCreateFlags", sizeof(SecretItemCreateFlags), alignof(SecretItemCreateFlags)); - printf("%s;%zu;%zu\n", "SecretItemFlags", sizeof(SecretItemFlags), alignof(SecretItemFlags)); - printf("%s;%zu;%zu\n", "SecretPrompt", sizeof(SecretPrompt), alignof(SecretPrompt)); - printf("%s;%zu;%zu\n", "SecretPromptClass", sizeof(SecretPromptClass), alignof(SecretPromptClass)); - printf("%s;%zu;%zu\n", "SecretRetrievableInterface", sizeof(SecretRetrievableInterface), alignof(SecretRetrievableInterface)); - printf("%s;%zu;%zu\n", "SecretSchema", sizeof(SecretSchema), alignof(SecretSchema)); - printf("%s;%zu;%zu\n", "SecretSchemaAttribute", sizeof(SecretSchemaAttribute), alignof(SecretSchemaAttribute)); - printf("%s;%zu;%zu\n", "SecretSchemaAttributeType", sizeof(SecretSchemaAttributeType), alignof(SecretSchemaAttributeType)); - printf("%s;%zu;%zu\n", "SecretSchemaFlags", sizeof(SecretSchemaFlags), alignof(SecretSchemaFlags)); - printf("%s;%zu;%zu\n", "SecretSchemaType", sizeof(SecretSchemaType), alignof(SecretSchemaType)); - printf("%s;%zu;%zu\n", "SecretSearchFlags", sizeof(SecretSearchFlags), alignof(SecretSearchFlags)); - printf("%s;%zu;%zu\n", "SecretService", sizeof(SecretService), alignof(SecretService)); - printf("%s;%zu;%zu\n", "SecretServiceClass", sizeof(SecretServiceClass), alignof(SecretServiceClass)); - printf("%s;%zu;%zu\n", "SecretServiceFlags", sizeof(SecretServiceFlags), alignof(SecretServiceFlags)); - return 0; -} diff --git a/libsecret/sys/tests/manual.h b/libsecret/sys/tests/manual.h deleted file mode 100644 index 2633804..0000000 --- a/libsecret/sys/tests/manual.h +++ /dev/null @@ -1,3 +0,0 @@ -// Feel free to edit this file, it won't be regenerated by gir generator unless removed. - -#include <libsecret/secret.h> |