use keyutils::keytypes;
use keyutils::{KeyType, Keyring, Permission, SpecialKeyring};
fn getuid() -> libc::uid_t {
unsafe { libc::getuid() }
}
fn getgid() -> libc::gid_t {
unsafe { libc::getgid() }
}
#[test]
fn join_existing_named_session() {
let name = "join_existing_named_session";
let session_before = Keyring::attach_or_create(SpecialKeyring::Session).unwrap();
let keyring = Keyring::join_session(name).unwrap();
let session_after = Keyring::attach_or_create(SpecialKeyring::Session).unwrap();
assert_ne!(session_before, keyring);
assert_eq!(session_after, keyring);
let desc = keyring.description().unwrap();
assert_eq!(desc.type_, keytypes::Keyring::name());
assert_eq!(desc.uid, getuid());
assert_eq!(desc.gid, getgid());
assert_eq!(
desc.perms,
Permission::POSSESSOR_ALL
| Permission::USER_VIEW
| Permission::USER_READ
| Permission::USER_LINK
);
assert_eq!(desc.description, name);
keyring.invalidate().unwrap()
}