summaryrefslogtreecommitdiff
path: root/app-shells/atuin/atuin-18.0.1.ebuild
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-02-23 17:40:32 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-02-23 17:40:32 +0000
commit9aeefa0bd7e7604816f3ce08002112f9965176c3 (patch)
treea321bc3114ba3db3c2375bff886cc0b4e9a324b6 /app-shells/atuin/atuin-18.0.1.ebuild
parentedca36e835d0d4e929c1dd3e9688954ae0aa191a (diff)
gentoo auto-resync : 23:02:2024 - 17:40:32
Diffstat (limited to 'app-shells/atuin/atuin-18.0.1.ebuild')
-rw-r--r--app-shells/atuin/atuin-18.0.1.ebuild42
1 files changed, 36 insertions, 6 deletions
diff --git a/app-shells/atuin/atuin-18.0.1.ebuild b/app-shells/atuin/atuin-18.0.1.ebuild
index db09098f28cc..23014456276e 100644
--- a/app-shells/atuin/atuin-18.0.1.ebuild
+++ b/app-shells/atuin/atuin-18.0.1.ebuild
@@ -457,6 +457,7 @@ REQUIRED_USE="
test? ( client server sync )
"
RDEPEND="server? ( acct-user/atuin )"
+DEPEND="test? ( dev-db/postgresql )"
BDEPEND=">=virtual/rust-1.71.0"
QA_FLAGS_IGNORED="usr/bin/${PN}"
@@ -467,12 +468,6 @@ DOCS=(
README.md
)
-src_prepare() {
- default
-
- rm atuin/tests/sync.rs || die
-}
-
src_configure() {
local myfeatures=(
$(usev client)
@@ -503,6 +498,41 @@ src_compile() {
done
}
+src_test() {
+ local postgres_dir="${T}"/postgres
+ initdb "${postgres_dir}" || die
+
+ local port=11123
+ # -h '' → only socket connections allowed.
+ postgres -D "${postgres_dir}" \
+ -k "${postgres_dir}" \
+ -p "${port}" &
+ local postgres_pid=${!}
+
+ local timeout_secs=30
+ timeout "${timeout_secs}" bash -c \
+ 'until printf "" >/dev/tcp/${0}/${1} 2>> "${T}/portlog"; do sleep 1; done' \
+ localhost "${port}" || die "Timeout waiting for postgres port ${port} to become available"
+
+ psql -h localhost -p "${port}" -d postgres <<-EOF || die "Failed to configure postgres"
+ create database atuin;
+ create user atuin with encrypted password 'pass';
+ grant all privileges on database atuin to atuin;
+ \connect atuin
+ grant all on schema public to atuin;
+ EOF
+
+ # Subshell so that postgres_pid is in scope when the trap is executed.
+ (
+ cleanup() {
+ kill "${postgres_pid}" || die "failed to send SIGTERM to postgres"
+ }
+ trap cleanup EXIT
+
+ ATUIN_DB_URI="postgres://atuin:pass@localhost:${port}/atuin" cargo_src_test
+ )
+}
+
src_install() {
exeinto "/usr/bin"
doexe "${ATUIN_BIN}"