mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-26 02:43:24 +00:00
Add OSDK demos in Asterinas Book in OSDK integration test
This commit is contained in:
committed by
Tate, Hongliang Tian
parent
11ff0521e7
commit
63499c675c
56
osdk/tests/examples_in_book/test_and_run_projects.rs
Normal file
56
osdk/tests/examples_in_book/test_and_run_projects.rs
Normal file
@ -0,0 +1,56 @@
|
||||
// SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
use std::{fs, path::PathBuf};
|
||||
|
||||
use crate::util::cargo_osdk;
|
||||
|
||||
#[test]
|
||||
fn create_and_run_kernel() {
|
||||
let work_dir = "/tmp";
|
||||
let os_name = "myos";
|
||||
|
||||
let os_dir = PathBuf::from(work_dir).join(os_name);
|
||||
|
||||
if os_dir.exists() {
|
||||
fs::remove_dir_all(&os_dir).unwrap();
|
||||
}
|
||||
|
||||
let mut command = cargo_osdk(&["new", "--kernel", os_name]);
|
||||
command.current_dir(work_dir);
|
||||
command.ok().unwrap();
|
||||
|
||||
let mut command = cargo_osdk(&["build"]);
|
||||
command.current_dir(&os_dir);
|
||||
command.ok().unwrap();
|
||||
|
||||
let mut command = cargo_osdk(&["run"]);
|
||||
command.current_dir(&os_dir);
|
||||
let output = command.output().unwrap();
|
||||
|
||||
let stdout = String::from_utf8_lossy(&output.stdout).to_string();
|
||||
assert!(stdout.contains("Hello world from guest kernel!"));
|
||||
|
||||
fs::remove_dir_all(&os_dir).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn create_and_test_library() {
|
||||
let work_dir = "/tmp";
|
||||
let module_name = "mymodule";
|
||||
|
||||
let module_dir = PathBuf::from(work_dir).join(module_name);
|
||||
|
||||
if module_dir.exists() {
|
||||
fs::remove_dir_all(&module_dir).unwrap();
|
||||
}
|
||||
|
||||
let mut command = cargo_osdk(&["new", module_name]);
|
||||
command.current_dir(work_dir);
|
||||
command.ok().unwrap();
|
||||
|
||||
let mut command = cargo_osdk(&["test"]);
|
||||
command.current_dir(&module_dir);
|
||||
command.output().unwrap();
|
||||
|
||||
fs::remove_dir_all(&module_dir).unwrap();
|
||||
}
|
Reference in New Issue
Block a user