kanidm/unix_integration/resolver/Cargo.toml
Firstyear 63deda350c
20250225 improve test performance ()
* Ignore tests that are no longer used.

Each time a library or binary is added, that requires compilation to create
the *empty* test harness, which then is executed and takes multiple seconds
to start up, do nothing, and return success.

This removes test's for libraries that aren't actually using or running
any tests.

Additionally, each time a new test binary is added, that adds a ton of
compilation time, but also test execution time as the binary for each
test runner must start up, execute, and shutdown. So this merges all
the testkit integration tests to a single running which significantly
speeds up test execution.

* Improve IDL exists behaviour, improve memberof verification

Again to improve test performance. This improves the validation of idx
existance to be a faster SQLite call, caches the results as needed.

Memberof was taking up a large amount of time in verify phases of test
finalisation, and so a better in memory version has been added.

* Disable TLS native roots when not needed

* Cleanup tests that are hitting native certs, or do nothing at all
2025-03-04 10:36:53 +10:00

144 lines
4 KiB
TOML

[package]
name = "kanidm_unix_int"
description = "Kanidm Unix Integration Clients"
documentation = "https://docs.rs/kanidm/latest/kanidm/"
version = { workspace = true }
authors = { workspace = true }
rust-version = { workspace = true }
edition = { workspace = true }
license = { workspace = true }
homepage = { workspace = true }
repository = { workspace = true }
[features]
default = ["unix"]
unix = []
selinux = ["dep:selinux"]
tpm = ["kanidm-hsm-crypto/tpm"]
[[bin]]
name = "kanidm_unixd"
path = "src/bin/kanidm_unixd.rs"
required-features = ["unix"]
test = false
doctest = false
[[bin]]
name = "kanidm_unixd_tasks"
path = "src/bin/kanidm_unixd_tasks.rs"
required-features = ["unix"]
test = false
doctest = false
[[bin]]
name = "kanidm_ssh_authorizedkeys"
path = "src/bin/kanidm_ssh_authorizedkeys.rs"
required-features = ["unix"]
test = false
doctest = false
[[bin]]
name = "kanidm-unix"
path = "src/bin/kanidm-unix.rs"
required-features = ["unix"]
test = false
doctest = false
[lib]
name = "kanidm_unix_resolver"
path = "src/lib.rs"
test = true
doctest = false
[dependencies]
async-trait = { workspace = true }
bytes = { workspace = true }
clap = { workspace = true, features = ["derive", "env"] }
dialoguer = { workspace = true }
futures = { workspace = true }
hashbrown = { workspace = true }
libc = { workspace = true }
lru = { workspace = true }
kanidm_client = { workspace = true }
kanidm_proto = { workspace = true }
kanidm-hsm-crypto = { workspace = true }
kanidm_lib_crypto = { workspace = true }
kanidm_lib_file_permissions = { workspace = true }
kanidm_unix_common = { workspace = true }
notify-debouncer-full = { workspace = true }
rusqlite = { workspace = true }
selinux = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
sketching = { workspace = true }
time = { workspace = true, features = ["std"] }
toml = { workspace = true }
tokio = { workspace = true, features = [
"rt",
"fs",
"macros",
"sync",
"time",
"net",
"io-util",
] }
tokio-util = { workspace = true, features = ["codec"] }
tracing = { workspace = true }
uuid = { workspace = true }
walkdir = { workspace = true }
[target.'cfg(target_os = "linux")'.dependencies]
sd-notify = { workspace = true }
prctl = { workspace = true }
[target.'cfg(not(target_family = "windows"))'.dependencies]
kanidm_utils_users = { workspace = true }
[target.'cfg(not(target_os = "illumos"))'.dependencies]
mimalloc = { workspace = true }
[dev-dependencies]
kanidmd_core = { workspace = true }
kanidmd_testkit = { workspace = true }
[build-dependencies]
clap = { workspace = true, features = ["derive"] }
clap_complete = { workspace = true }
kanidm_build_profiles = { workspace = true }
## Debian packaging
# We only package unixd itself here as shared libraries must be packaged separarately due to multiarch rules.
[package.metadata.deb]
name = "kanidm-unixd"
maintainer = "James Hodgkinson <james@terminaloutcomes.com>"
# Can't use $auto depends because the name of libssl3 varies by distro and version
depends = [
"libc6",
"tpm-udev",
"libssl3 | libssl3t64",
"libpam-kanidm",
"libnss-kanidm"
]
section = "network"
priority = "optional"
changelog = "../../target/debian/changelog" # Generated by platform/debian/build_debs.sh
assets = [
[ "target/release/kanidm_ssh_authorizedkeys", "usr/sbin/", "755" ],
[ "target/release/kanidm_unixd_tasks", "usr/sbin/", "755" ],
[ "target/release/kanidm_unixd", "usr/sbin/", "755" ],
[ "target/release/kanidm-unix", "usr/sbin/", "755" ],
[ "../../examples/unixd-safe-default", "etc/kanidm/unixd", "644" ],
[ "../../examples/kanidm-safe-default", "etc/kanidm/config", "644" ],
[ "../../examples/kanidm", "usr/share/kanidm-unixd/", "444" ],
[ "../../examples/unixd", "usr/share/kanidm-unixd/", "444" ],
]
maintainer-scripts = "debian/"
systemd-units = [
{ unit-name = "kanidm-unixd", enable = true},
{ unit-name = "kanidm-unixd-tasks", enable = true},
]
[package.metadata.cargo-machete]
ignored = ["kanidm_build_profiles", "clap_complete"]