home: hub: mkinitfs

ref: d10fdff81a07b11bbb2563ec0236a85762302961
dir: /tests/initramfs-init.test/

View raw version
#!/usr/bin/env atf-sh

. $(atf_get_srcdir)/test_env.sh

init_tests \
	initramfs_init_cmdline_root \
	initramfs_init_blacklist \
	initramfs_init_tmpfs_root

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
}