VERY SAFE TESTING and also runner is not needed for now

This commit is contained in:
Bryan McShea
2024-02-22 23:24:06 -05:00
parent df670e9998
commit d95a73203b
9 changed files with 152 additions and 163 deletions

View File

@@ -2,8 +2,8 @@ use clap::Parser;
use std::process::{self, Command, Stdio};
use target::Target;
mod boot;
mod target;
pub mod boot;
pub mod target;
#[derive(Parser)]
#[command(author, version, about, long_about = None)]
@@ -20,7 +20,7 @@ fn main() {
let args = Args::parse();
let target = args.target.unwrap_or(Target::default());
std::env::set_current_dir("../kernel").expect("uh oh");
build(&target);
build(&target, false);
run_qemu(&target, args.gdb);
}
@@ -51,10 +51,14 @@ fn run_qemu(target: &Target, gdb: Option<Option<u16>>) {
}
}
fn build(target: &Target) {
fn build(target: &Target, test: bool) {
let mut cargo = Command::new("cargo");
cargo.arg("build");
cargo.args(["--package", "kernel"]);
if test {
cargo.arg("test");
cargo.arg("--no-run");
} else {
cargo.arg("build");
}
cargo.args(["--target", target.rust_target()]);
let status = cargo.status().expect("uh oh");
if !status.success() {
@@ -64,3 +68,16 @@ fn build(target: &Target) {
boot::build_bootloader_img(bootloader);
}
}
#[cfg(test)]
mod tests {
use crate::{build, run_qemu, target::Target};
#[test]
fn default() {
std::env::set_current_dir("../kernel").expect("uh oh");
let target = Target::default();
build(&target, true);
run_qemu(&target, None);
}
}