71 lines
2.9 KiB
Scheme
71 lines
2.9 KiB
Scheme
(use-modules (ice-9 match)
|
|
(srfi srfi-64)
|
|
(srfi srfi-1)
|
|
(srfi srfi-13)
|
|
(fruix packages freebsd)
|
|
(fruix system freebsd)
|
|
(fruix system freebsd model)
|
|
(fruix system freebsd render))
|
|
|
|
(define os (operating-system))
|
|
(define generated-files
|
|
(operating-system-generated-files os
|
|
#:guile-store "/tmp/test-guile"
|
|
#:guile-extra-store "/tmp/test-guile-extra"
|
|
#:shepherd-store "/tmp/test-shepherd"
|
|
#:guile-newt-store "/tmp/test-guile-newt"))
|
|
(define loader-conf (assoc-ref generated-files "boot/loader.conf"))
|
|
(define ttys (assoc-ref generated-files "etc/ttys"))
|
|
(define (install-targets package)
|
|
(map (lambda (entry)
|
|
(match entry
|
|
((_ _ target) target)))
|
|
(freebsd-package-install-plan package)))
|
|
|
|
(define userland-targets (install-targets freebsd-userland))
|
|
(define runtime-targets (install-targets freebsd-runtime))
|
|
(define rc-script-targets (install-targets freebsd-rc-scripts))
|
|
|
|
(test-begin "console-defaults")
|
|
|
|
(test-equal "default loader entries"
|
|
'(("boot_serial" . "YES")
|
|
("boot_multicons" . "YES")
|
|
("console" . "comconsole,vidconsole")
|
|
("autoboot_delay" . "1"))
|
|
(effective-loader-entries os))
|
|
|
|
(test-assert "loader.conf enables serial boot"
|
|
(string-contains loader-conf "boot_serial=\"YES\""))
|
|
(test-assert "loader.conf enables multicons"
|
|
(string-contains loader-conf "boot_multicons=\"YES\""))
|
|
(test-assert "loader.conf enables vid+serial console"
|
|
(string-contains loader-conf "console=\"comconsole,vidconsole\""))
|
|
|
|
(test-assert "ttys enables ttyv0"
|
|
(string-contains ttys "ttyv0\t\"/usr/libexec/getty Pc\"\txterm\tonifexists secure"))
|
|
(test-assert "ttys enables ttyv7"
|
|
(string-contains ttys "ttyv7\t\"/usr/libexec/getty Pc\"\txterm\tonifexists secure"))
|
|
(test-assert "ttys enables ttyu0"
|
|
(string-contains ttys "ttyu0\t\"/usr/libexec/getty 3wire\"\tvt100\tonifconsole secure"))
|
|
(test-assert "ttys enables xc0"
|
|
(string-contains ttys "xc0\t\"/usr/libexec/getty Pc\"\txterm\tonifconsole secure"))
|
|
(test-assert "console entry stays disabled"
|
|
(string-contains ttys "console\tnone\tunknown\toff secure"))
|
|
|
|
(test-assert "userland stages login tools"
|
|
(every (lambda (target) (member target userland-targets))
|
|
'("usr/bin/login" "usr/bin/passwd" "usr/bin/su"
|
|
"usr/bin/who" "usr/bin/last" "usr/libexec/getty")))
|
|
(test-assert "runtime stages gettytab"
|
|
(member "etc/gettytab" runtime-targets))
|
|
(test-assert "rc scripts stage readable defaults files explicitly"
|
|
(every (lambda (target) (member target rc-script-targets))
|
|
'("etc/defaults/bluetooth.device.conf"
|
|
"etc/defaults/periodic.conf"
|
|
"etc/defaults/rc.conf")))
|
|
(test-assert "rc scripts do not stage entire defaults directory"
|
|
(not (member "etc/defaults" rc-script-targets)))
|
|
|
|
(test-end "console-defaults")
|