Add a test run script to flake.

This commit is contained in:
2026-10-09 16:02:27 +01:00
parent 759640f519
commit 674c339d37
+33 -2
View File
@@ -59,35 +59,64 @@
gnumake gnumake
findutils findutils
binutils binutils
cpio
gzip
]; ];
buildInputs = [ buildInputs = [
pkgs.pkgsStatic.busybox
mruby mruby
]; ];
buildPhase = '' buildPhase = ''
make \ make \
MRUBY_CFLAGS="-I${mruby}/include" \ MRUBY_CFLAGS="-I${mruby}/include" \
MRUBY_LIBS="-L${mruby}/lib -lmruby" MRUBY_LIBS="-L${mruby}/lib -lmruby" \
BUSYBOX="${pkgs.pkgsStatic.busybox}/bin/busybox"
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
cp bin/blade $out/bin/blade cp bin/blade $out/bin/blade
cp bin/initramfs.cpio.gz $out/bin/initramfs.cpio.gz
''; '';
}; };
run-blade = hostPkgs.writeShellScriptBin "run-blade" ''
set -euo pipefail
exec ${hostPkgs.qemu}/bin/qemu-system-x86_64 \
--enable-kvm \
-m 512M \
-smp 2 \
-kernel "${hostPkgs.linux}/bzImage" \
-initrd ${blade}/bin/initramfs.cpio.gz \
-append "console=ttyS0 rdinit=/init" \
-nographic
'';
in in
{ {
packages.${system} = { packages.${system} = {
default = blade; default = blade;
blade = blade; blade = blade;
mruby = mruby; mruby = mruby;
run-blade = run-blade;
}; };
devShells.${system}.default = hostPkgs.mkShell { apps.${system} = {
default = {
type = "app";
program = "${run-blade}/bin/run-blade";
};
};
devShells.${system}.default = pkgs.mkShell {
inputsFrom = [ blade ]; inputsFrom = [ blade ];
packages = with hostPkgs; [ packages = with hostPkgs; [
linux
qemu
cpio
gzip
clang-tools clang-tools
pkg-config pkg-config
ccache ccache
@@ -105,6 +134,8 @@
export MRUBY_CFLAGS=-I${mruby}/include export MRUBY_CFLAGS=-I${mruby}/include
export MRUBY_LIBS="-L${mruby}/lib -lmruby" export MRUBY_LIBS="-L${mruby}/lib -lmruby"
export BUSYBOX="${pkgs.pkgsStatic.busybox}/bin/busybox"
export LINUX="${hostPkgs.linux}/bzImage"
''; '';
}; };
}; };