ref: 86e617bfe18977cd367c461635c4c29f0823f574
dir: /tests/initramfs-init.test/
#!/usr/bin/env atf-sh . $(atf_get_srcdir)/test_env.sh init_tests \ initramfs_init_cmdline_root \ initramfs_init_blacklist \ initramfs_init_tmpfs_root \ initramfs_init_tmpfs_root_modloop_sign \ initramfs_init_tmpfs_root_net_apkovl \ initramfs_init_tmpfs_root_console_serial \ initramfs_init_tmpfs_root_autodetect_serial \ initramfs_init_tmpfs_root_remount_opts fake_cmdline() { mkdir -p proc echo "$@" > proc/cmdline } fake_bin() { mkdir -p bin cat > bin/"$1" chmod +x bin/"$1" } fake_sysroot_init() { mkdir -p sysroot/sbin touch sysroot/sbin/init chmod +x sysroot/sbin/init } fake_switch_root() { fake_bin switch_root <<-EOF #!/bin/sh echo "switch_root OK" EOF } initramfs_init_cmdline_root_body() { fake_cmdline "root=/dev/vda1" fake_switch_root atf_check -o match:"Alpine Init" \ -o match:"nlplug-findfs" \ -o match:"mount.*-o ro.*/dev/vda1.*/sysroot" \ -o match:"switch_root OK" \ initramfs-init } initramfs_init_blacklist_body() { fake_cmdline "root=/dev/vda1 blacklist=dummy,evbug" fake_switch_root atf_check -o match:"switch_root OK" \ initramfs-init atf_check -o match:"blacklist dummy" \ -o match:"blacklist evbug" \ cat etc/modprobe.d/* } initramfs_init_tmpfs_root_body() { fake_cmdline "" fake_switch_root fake_sysroot_init atf_check \ -o match:"nlplug-findfs" \ -o match:"mount.*tmpfs .*/sysroot" \ -o match:"switch_root OK" \ initramfs-init } initramfs_init_tmpfs_root_modloop_sign_body() { fake_cmdline "" fake_switch_root fake_sysroot_init mkdir -p var/cache/misc touch var/cache/misc/modloop.SIGN.RSA.ncopa-4d1b7620.rsa.pub atf_check \ -o match:"switch_root OK" \ initramfs-init atf_check \ test -f sysroot/var/cache/misc/modloop.SIGN.RSA.ncopa-4d1b7620.rsa.pub } initramfs_init_tmpfs_root_net_apkovl_body() { fake_cmdline "apkovl=https://example.com/{UUID}/foo.apkovl.tar.gz" fake_switch_root fake_sysroot_init mkdir -p sys/class/dmi/id echo "c7c29fe0-cf90-4024-8ba3-208387fc7ac6" > sys/class/dmi/id/product_uuid atf_check \ -o match:"wget .* https://example.com/c7c29fe0-cf90-4024-8ba3-208387fc7ac6/foo.apkovl.tar.gz" \ initramfs-init } initramfs_init_tmpfs_root_console_serial_body() { fake_cmdline "console=ttyS0" fake_switch_root fake_sysroot_init fake_bin stty <<-EOF #!/bin/sh true EOF mkdir -p sys/class/tty/console echo tty0 > sys/class/tty/console/active atf_check \ -o ignore \ initramfs-init atf_check \ -o match:"tty0::respawn:/sbin/getty" \ -o match:"ttyS0::respawn:/sbin/getty" \ cat sysroot/etc/inittab } initramfs_init_tmpfs_root_autodetect_serial_body() { fake_cmdline "" fake_switch_root fake_sysroot_init fake_bin stty <<-EOF #!/bin/sh true EOF mkdir -p proc/tty/driver cat > proc/tty/driver/serial <<-EOF 0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 CTS|DSR 1: uart:16550A port:000002F8 irq:3 tx:103 rx:0 RTS|DTR 2: uart:unknown port:000003E8 irq:4 3: uart:unknown port:000002E8 irq:3 EOF atf_check \ -o ignore \ initramfs-init atf_check \ -o match:"ttyS0::respawn:/sbin/getty" \ cat sysroot/etc/inittab } initramfs_init_tmpfs_root_remount_opts_body() { fake_cmdline "" fake_switch_root fake_sysroot_init fake_bin df <<-EOF #!/bin/sh echo "Filesystem 1024-blocks Used Available Capacity Mounted on" echo "/dev/sr0 514938888 417682860 73101632 85% /media/sr0" EOF fake_bin stat <<-EOF #!/bin/sh for i; do case "\$i" in /dev/sr0|/dev/cdrom) echo "b,0" exit 0 ;; esac done echo "0,0" EOF mkdir -p sysroot/etc cat >sysroot/etc/fstab <<-EOF /dev/cdrom /media/cdrom iso9660 noauto,ro,customopts 0 0 /dev/usbdisk /media/usb vfat noauto,ro 0 0 EOF cat >proc/mounts <<-EOF sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 devtmpfs /dev devtmpfs rw,nosuid,noexec,relatime,size=10240k,nr_inodes=4080869,mode=755,inode64 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 /dev/sr0 /media/sr0 iso9660 rw,noatime,data=ordered 0 0 EOF mkdir -p tmp dev media/sr0/apks echo "/media/sr0/apks" > tmp/repositories ln -s sr0 dev/cdrom atf_check \ -o match:"mount -o move.*/media/cdrom" \ -o match:"mount -o remount.*customopts.*/media/cdrom" \ initramfs-init }