comparison libpam-sys/libpam-sys-test/build.rs @ 125:2b255c92417b

Introduce base PAM functions; use the real X/SSO PAM header for tests.
author Paul Fisher <paul@pfish.zone>
date Mon, 30 Jun 2025 17:47:32 -0400
parents f469b8d9ad78
children c77846f3a979
comparison
equal deleted inserted replaced
124:f469b8d9ad78 125:2b255c92417b
1 use bindgen::MacroTypeVariation; 1 use bindgen::MacroTypeVariation;
2 use libpam_sys::PamImpl; 2 use libpam_sys_impls::__pam_impl_enum__;
3 use quote::{format_ident, ToTokens}; 3 use quote::{format_ident, ToTokens};
4 use std::path::PathBuf; 4 use std::path::PathBuf;
5 use std::{env, fs}; 5 use std::{env, fs};
6 use syn::{Item, ItemConst, Type, TypePath}; 6 use syn::{Item, ItemConst, Type, TypePath};
7
8 // We're using the macro directly so we can match exhaustively.
9 __pam_impl_enum__!();
7 10
8 fn main() { 11 fn main() {
9 let config = match PamImpl::CURRENT { 12 let config = match PamImpl::CURRENT {
10 PamImpl::LinuxPam => TestConfig { 13 PamImpl::LinuxPam => TestConfig {
11 headers: vec![ 14 headers: vec![
35 headers: vec!["<security/pam_appl.h>", "<security/pam_modules.h>"], 38 headers: vec!["<security/pam_appl.h>", "<security/pam_modules.h>"],
36 block_headers: vec!["sys/.*"], 39 block_headers: vec!["sys/.*"],
37 ..Default::default() 40 ..Default::default()
38 }, 41 },
39 PamImpl::XSso => TestConfig { 42 PamImpl::XSso => TestConfig {
40 headers: vec!["\"xsso_constants.h\""], 43 headers: vec!["\"xsso_pam_appl.h\""],
41 ignore_consts: vec!["PAM_CRED_PRELIM_CHECK"], 44 ignore_consts: vec!["PAM_CRED_PRELIM_CHECK"],
42 ..Default::default() 45 ..Default::default()
43 }, 46 },
44 other => panic!("Unknown PAM implementation {other:?}"),
45 }; 47 };
46 generate_const_test(&config); 48 generate_const_test(&config);
47 } 49 }
48 50
49 fn generate_const_test(config: &TestConfig) { 51 fn generate_const_test(config: &TestConfig) {