annotate testharness/install-test-harness.sh @ 164:d0bba0117456

make test script more cross platform?
author Paul Fisher <paul@pfish.zone>
date Mon, 14 Jul 2025 18:12:14 -0400
parents a75a66cb4181
children c4b1e280463c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
164
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
1 #!/bin/sh
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
2
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
3 set -exo pipefail
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
4
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
5 LINUX_BSD_CONF="/etc/pam.d/nonstick-testharness"
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
6
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
7 pam_library_path() {
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
8 case "$(uname -s)" in
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
9 "Linux" | "SunOS")
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
10 echo "/usr/lib/security"
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
11 ;;
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
12 *BSD)
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
13 echo "/usr/lib"
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
14 ;;
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
15 *)
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
16 echo "UNKNOWN OS!!!"
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
17 return 1
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
18 ;;
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
19 esac
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
20 }
163
a75a66cb4181 Add end-to-end tests; fix issues found by tests.
Paul Fisher <paul@pfish.zone>
parents:
diff changeset
21
164
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
22 setup_pam_conf() {
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
23 case "$(uname -s)" in
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
24 "Linux" | *BSD)
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
25 sudo cp nonstick_testharness.conf "$LINUX_BSD_CONF"
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
26 ;;
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
27 "SunOS")
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
28 sudo cp /etc/pam.conf /etc/pam.conf.bak
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
29 sed 's/^\([^#]\)/nonstick-testharness \1/' <./nonstick_testharness.conf \
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
30 | sudo tee -a /etc/pam.conf >/dev/null
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
31 ;;
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
32 *)
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
33 echo "UNKNOWN OS!!!"
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
34 return 1
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
35 ;;
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
36 esac
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
37 }
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
38 cleanup_pam_conf() {
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
39 case "$(uname -s)" in
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
40 "Linux" | *BSD)
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
41 sudo rm "$LINUX_BSD_CONF"
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
42 ;;
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
43 "SunOS")
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
44 sudo mv /etc/pam.conf.bak /etc/pam.conf
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
45 ;;
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
46 esac
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
47 }
163
a75a66cb4181 Add end-to-end tests; fix issues found by tests.
Paul Fisher <paul@pfish.zone>
parents:
diff changeset
48
a75a66cb4181 Add end-to-end tests; fix issues found by tests.
Paul Fisher <paul@pfish.zone>
parents:
diff changeset
49 HERE="$(dirname -- "$0")"
164
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
50 cd "$HERE"
163
a75a66cb4181 Add end-to-end tests; fix issues found by tests.
Paul Fisher <paul@pfish.zone>
parents:
diff changeset
51 cargo build --release
164
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
52 PAM_LIBRARY="$(pam_library_path)/pam_testharness.so"
163
a75a66cb4181 Add end-to-end tests; fix issues found by tests.
Paul Fisher <paul@pfish.zone>
parents:
diff changeset
53
164
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
54 cleanup() {
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
55 sudo rm "$PAM_LIBRARY"
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
56 cleanup_pam_conf
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
57 }
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
58
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
59 sudo cp ../target/release/libnonstick_testharness.so "$PAM_LIBRARY"
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
60 setup_pam_conf
d0bba0117456 make test script more cross platform?
Paul Fisher <paul@pfish.zone>
parents: 163
diff changeset
61 trap cleanup EXIT
163
a75a66cb4181 Add end-to-end tests; fix issues found by tests.
Paul Fisher <paul@pfish.zone>
parents:
diff changeset
62 "$@" && echo "SUCCESS!!!" || echo "FAILURE: $?"