mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-10 22:06:48 +00:00
OSDK check and clippy with cfg(ktest)
This commit is contained in:
parent
be3492d7f0
commit
d76c7a5b1e
2
Makefile
2
Makefile
@ -210,7 +210,7 @@ format:
|
|||||||
@make --no-print-directory -C test format
|
@make --no-print-directory -C test format
|
||||||
|
|
||||||
.PHONY: check
|
.PHONY: check
|
||||||
check: $(CARGO_OSDK)
|
check: initramfs $(CARGO_OSDK)
|
||||||
@./tools/format_all.sh --check # Check Rust format issues
|
@./tools/format_all.sh --check # Check Rust format issues
|
||||||
@# Check if STD_CRATES and NOSTD_CRATES combined is the same as all workspace members
|
@# Check if STD_CRATES and NOSTD_CRATES combined is the same as all workspace members
|
||||||
@sed -n '/^\[workspace\]/,/^\[.*\]/{/members = \[/,/\]/p}' Cargo.toml | \
|
@sed -n '/^\[workspace\]/,/^\[.*\]/{/members = \[/,/\]/p}' Cargo.toml | \
|
||||||
|
@ -484,7 +484,7 @@ mod test {
|
|||||||
let mut read = vec![0u8; BUF_SIZE];
|
let mut read = vec![0u8; BUF_SIZE];
|
||||||
let read_after_rename = a_inode_new.read_bytes_at(0, &mut read);
|
let read_after_rename = a_inode_new.read_bytes_at(0, &mut read);
|
||||||
assert!(
|
assert!(
|
||||||
read_after_rename.is_ok() && read_after_rename.clone().unwrap() == BUF_SIZE,
|
read_after_rename.is_ok() && read_after_rename.unwrap() == BUF_SIZE,
|
||||||
"Fail to read after rename: {:?}",
|
"Fail to read after rename: {:?}",
|
||||||
read_after_rename.unwrap_err()
|
read_after_rename.unwrap_err()
|
||||||
);
|
);
|
||||||
@ -495,8 +495,7 @@ mod test {
|
|||||||
let new_buf = vec![7u8; NEW_BUF_SIZE];
|
let new_buf = vec![7u8; NEW_BUF_SIZE];
|
||||||
let new_write_after_rename = a_inode_new.write_bytes_at(0, &new_buf);
|
let new_write_after_rename = a_inode_new.write_bytes_at(0, &new_buf);
|
||||||
assert!(
|
assert!(
|
||||||
new_write_after_rename.is_ok()
|
new_write_after_rename.is_ok() && new_write_after_rename.unwrap() == NEW_BUF_SIZE,
|
||||||
&& new_write_after_rename.clone().unwrap() == NEW_BUF_SIZE,
|
|
||||||
"Fail to write file after rename: {:?}",
|
"Fail to write file after rename: {:?}",
|
||||||
new_write_after_rename.unwrap_err()
|
new_write_after_rename.unwrap_err()
|
||||||
);
|
);
|
||||||
@ -984,7 +983,7 @@ mod test {
|
|||||||
let mut file_names: Vec<String> = (0..file_num).map(|x| x.to_string()).collect();
|
let mut file_names: Vec<String> = (0..file_num).map(|x| x.to_string()).collect();
|
||||||
file_names.sort();
|
file_names.sort();
|
||||||
let mut file_inodes: Vec<Arc<dyn Inode>> = Vec::new();
|
let mut file_inodes: Vec<Arc<dyn Inode>> = Vec::new();
|
||||||
for (_file_id, file_name) in file_names.iter().enumerate() {
|
for file_name in file_names.iter() {
|
||||||
let inode = create_file(root.clone(), file_name);
|
let inode = create_file(root.clone(), file_name);
|
||||||
file_inodes.push(inode);
|
file_inodes.push(inode);
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,6 @@ impl DosTimestamp {
|
|||||||
#[cfg(not(ktest))]
|
#[cfg(not(ktest))]
|
||||||
{
|
{
|
||||||
use crate::time::clocks::RealTimeClock;
|
use crate::time::clocks::RealTimeClock;
|
||||||
|
|
||||||
DosTimestamp::from_duration(RealTimeClock::get().read_time())
|
DosTimestamp::from_duration(RealTimeClock::get().read_time())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,9 +67,9 @@ impl DosTimestamp {
|
|||||||
#[cfg(ktest)]
|
#[cfg(ktest)]
|
||||||
{
|
{
|
||||||
use crate::time::SystemTime;
|
use crate::time::SystemTime;
|
||||||
return DosTimestamp::from_duration(
|
DosTimestamp::from_duration(
|
||||||
SystemTime::UNIX_EPOCH.duration_since(&SystemTime::UNIX_EPOCH)?,
|
SystemTime::UNIX_EPOCH.duration_since(&SystemTime::UNIX_EPOCH)?,
|
||||||
);
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,7 +331,7 @@ mod test {
|
|||||||
#[ktest]
|
#[ktest]
|
||||||
fn test_read_closed() {
|
fn test_read_closed() {
|
||||||
test_blocking(
|
test_blocking(
|
||||||
|writer| drop(writer),
|
drop,
|
||||||
|reader| {
|
|reader| {
|
||||||
let mut buf = [0; 1];
|
let mut buf = [0; 1];
|
||||||
assert_eq!(reader.read(&mut writer_from(&mut buf)).unwrap(), 0);
|
assert_eq!(reader.read(&mut writer_from(&mut buf)).unwrap(), 0);
|
||||||
@ -350,7 +350,7 @@ mod test {
|
|||||||
Errno::EPIPE
|
Errno::EPIPE
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|reader| drop(reader),
|
drop,
|
||||||
Ordering::WriteThenRead,
|
Ordering::WriteThenRead,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -291,7 +291,7 @@ mod test {
|
|||||||
while !*started {
|
while !*started {
|
||||||
started = cvar.wait(started).unwrap_or_else(|err| err.into_guard());
|
started = cvar.wait(started).unwrap_or_else(|err| err.into_guard());
|
||||||
}
|
}
|
||||||
assert_eq!(*started, true);
|
assert!(*started);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -316,7 +316,7 @@ mod test {
|
|||||||
.wait_timeout(started, Duration::from_secs(1))
|
.wait_timeout(started, Duration::from_secs(1))
|
||||||
.unwrap_or_else(|err| err.into_guard());
|
.unwrap_or_else(|err| err.into_guard());
|
||||||
}
|
}
|
||||||
assert_eq!(*started, true);
|
assert!(*started);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -338,7 +338,7 @@ mod test {
|
|||||||
let started = cvar
|
let started = cvar
|
||||||
.wait_while(lock.lock(), |started| *started)
|
.wait_while(lock.lock(), |started| *started)
|
||||||
.unwrap_or_else(|err| err.into_guard());
|
.unwrap_or_else(|err| err.into_guard());
|
||||||
assert_eq!(*started, false);
|
assert!(!*started);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -360,7 +360,7 @@ mod test {
|
|||||||
let (started, _) = cvar
|
let (started, _) = cvar
|
||||||
.wait_timeout_while(lock.lock(), Duration::from_secs(1), |started| *started)
|
.wait_timeout_while(lock.lock(), Duration::from_secs(1), |started| *started)
|
||||||
.unwrap_or_else(|err| err.into_guard());
|
.unwrap_or_else(|err| err.into_guard());
|
||||||
assert_eq!(*started, false);
|
assert!(!*started);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -216,7 +216,7 @@ mod test {
|
|||||||
let mut counter = 0;
|
let mut counter = 0;
|
||||||
|
|
||||||
// Schedule this taskless for `SCHEDULE_TIMES`.
|
// Schedule this taskless for `SCHEDULE_TIMES`.
|
||||||
while taskless.is_scheduled.load(Ordering::Acquire) == false {
|
while !taskless.is_scheduled.load(Ordering::Acquire) {
|
||||||
taskless.schedule();
|
taskless.schedule();
|
||||||
counter += 1;
|
counter += 1;
|
||||||
if counter == SCHEDULE_TIMES {
|
if counter == SCHEDULE_TIMES {
|
||||||
@ -227,7 +227,9 @@ mod test {
|
|||||||
// Wait for all taskless having finished.
|
// Wait for all taskless having finished.
|
||||||
while taskless.is_running.load(Ordering::Acquire)
|
while taskless.is_running.load(Ordering::Acquire)
|
||||||
|| taskless.is_scheduled.load(Ordering::Acquire)
|
|| taskless.is_scheduled.load(Ordering::Acquire)
|
||||||
{}
|
{
|
||||||
|
core::hint::spin_loop()
|
||||||
|
}
|
||||||
|
|
||||||
assert_eq!(counter, COUNTER.load(Ordering::Relaxed));
|
assert_eq!(counter, COUNTER.load(Ordering::Relaxed));
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,7 @@ impl<R> VmarChildOptions<R> {
|
|||||||
#[cfg(ktest)]
|
#[cfg(ktest)]
|
||||||
mod test {
|
mod test {
|
||||||
use aster_rights::Full;
|
use aster_rights::Full;
|
||||||
use ostd::{mm::VmIo, prelude::*};
|
use ostd::prelude::*;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::vm::{
|
use crate::vm::{
|
||||||
|
@ -134,8 +134,8 @@ mod test {
|
|||||||
#[ktest]
|
#[ktest]
|
||||||
fn calculation() {
|
fn calculation() {
|
||||||
let coeff = Coeff::new(23456, 56789, 1_000_000_000);
|
let coeff = Coeff::new(23456, 56789, 1_000_000_000);
|
||||||
assert!(coeff * 0 as u64 == 0);
|
assert!(coeff * 0_u64 == 0);
|
||||||
assert!(coeff * 100 as u64 == 100 * 23456 / 56789);
|
assert!(coeff * 100_u64 == 100 * 23456 / 56789);
|
||||||
assert!(coeff * 1_000_000_000 as u64 == 1_000_000_000 * 23456 / 56789);
|
assert!(coeff * 1_000_000_000_u64 == 1_000_000_000 * 23456 / 56789);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,9 +49,9 @@ pub fn main() {
|
|||||||
OsdkSubcommand::Test(test_args) => {
|
OsdkSubcommand::Test(test_args) => {
|
||||||
execute_test_command(&load_config(&test_args.common_args), test_args);
|
execute_test_command(&load_config(&test_args.common_args), test_args);
|
||||||
}
|
}
|
||||||
OsdkSubcommand::Check(args) => execute_forwarded_command("check", &args.args),
|
OsdkSubcommand::Check(args) => execute_forwarded_command("check", &args.args, true),
|
||||||
OsdkSubcommand::Clippy(args) => execute_forwarded_command("clippy", &args.args),
|
OsdkSubcommand::Clippy(args) => execute_forwarded_command("clippy", &args.args, true),
|
||||||
OsdkSubcommand::Doc(args) => execute_forwarded_command("doc", &args.args),
|
OsdkSubcommand::Doc(args) => execute_forwarded_command("doc", &args.args, false),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,8 +16,10 @@ pub use self::{
|
|||||||
|
|
||||||
use crate::arch::get_default_arch;
|
use crate::arch::get_default_arch;
|
||||||
|
|
||||||
/// Execute the forwarded cargo command with args containing the subcommand and its arguments.
|
/// Execute the forwarded cargo command with arguments.
|
||||||
pub fn execute_forwarded_command(subcommand: &str, args: &Vec<String>) -> ! {
|
///
|
||||||
|
/// The `cfg_ktest` parameter controls whether `cfg(ktest)` is enabled.
|
||||||
|
pub fn execute_forwarded_command(subcommand: &str, args: &Vec<String>, cfg_ktest: bool) -> ! {
|
||||||
let mut cargo = util::cargo();
|
let mut cargo = util::cargo();
|
||||||
cargo.arg(subcommand).args(util::COMMON_CARGO_ARGS);
|
cargo.arg(subcommand).args(util::COMMON_CARGO_ARGS);
|
||||||
if !args.contains(&"--target".to_owned()) {
|
if !args.contains(&"--target".to_owned()) {
|
||||||
@ -27,6 +29,11 @@ pub fn execute_forwarded_command(subcommand: &str, args: &Vec<String>) -> ! {
|
|||||||
|
|
||||||
let env_rustflags = std::env::var("RUSTFLAGS").unwrap_or_default();
|
let env_rustflags = std::env::var("RUSTFLAGS").unwrap_or_default();
|
||||||
let rustflags = env_rustflags + " --check-cfg cfg(ktest)";
|
let rustflags = env_rustflags + " --check-cfg cfg(ktest)";
|
||||||
|
let rustflags = if cfg_ktest {
|
||||||
|
rustflags + " --cfg ktest"
|
||||||
|
} else {
|
||||||
|
rustflags
|
||||||
|
};
|
||||||
|
|
||||||
cargo.env("RUSTFLAGS", rustflags);
|
cargo.env("RUSTFLAGS", rustflags);
|
||||||
|
|
||||||
|
@ -221,9 +221,7 @@ mod tests {
|
|||||||
|
|
||||||
macro_rules! gen_test_case {
|
macro_rules! gen_test_case {
|
||||||
() => {{
|
() => {{
|
||||||
fn dummy_fn() {
|
fn dummy_fn() {}
|
||||||
()
|
|
||||||
}
|
|
||||||
let mut tree = KtestTree::new();
|
let mut tree = KtestTree::new();
|
||||||
let new = |m: &'static str, f: &'static str, p: &'static str| {
|
let new = |m: &'static str, f: &'static str, p: &'static str| {
|
||||||
KtestItem::new(
|
KtestItem::new(
|
||||||
@ -295,7 +293,7 @@ mod tests {
|
|||||||
for mov in crate_.iter() {
|
for mov in crate_.iter() {
|
||||||
let module = mov;
|
let module = mov;
|
||||||
for test in module.iter() {
|
for test in module.iter() {
|
||||||
collection.push(&test);
|
collection.push(test);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -119,6 +119,7 @@ mod test {
|
|||||||
use crate::prelude::*;
|
use crate::prelude::*;
|
||||||
|
|
||||||
#[ktest]
|
#[ktest]
|
||||||
|
#[allow(clippy::eq_op)]
|
||||||
fn trivial_assertion() {
|
fn trivial_assertion() {
|
||||||
assert_eq!(0, 0);
|
assert_eq!(0, 0);
|
||||||
}
|
}
|
||||||
|
@ -334,9 +334,10 @@ mod test {
|
|||||||
.alloc_contiguous()
|
.alloc_contiguous()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let vm_segment_child = vm_segment_parent.range(0..1);
|
let vm_segment_child = vm_segment_parent.range(0..1);
|
||||||
let _dma_stream_parent =
|
let dma_stream_parent =
|
||||||
DmaStream::map(vm_segment_parent, DmaDirection::Bidirectional, false);
|
DmaStream::map(vm_segment_parent, DmaDirection::Bidirectional, false);
|
||||||
let dma_stream_child = DmaStream::map(vm_segment_child, DmaDirection::Bidirectional, false);
|
let dma_stream_child = DmaStream::map(vm_segment_child, DmaDirection::Bidirectional, false);
|
||||||
|
assert!(dma_stream_parent.is_ok());
|
||||||
assert!(dma_stream_child.is_err());
|
assert!(dma_stream_child.is_err());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -313,24 +313,24 @@ mod test {
|
|||||||
fn set_get() {
|
fn set_get() {
|
||||||
let bits = AtomicBits::new_zeroes(128);
|
let bits = AtomicBits::new_zeroes(128);
|
||||||
for i in 0..bits.len() {
|
for i in 0..bits.len() {
|
||||||
assert!(bits.get(i) == false);
|
assert!(!bits.get(i));
|
||||||
|
|
||||||
bits.set(i, true);
|
bits.set(i, true);
|
||||||
assert!(bits.get(i) == true);
|
assert!(bits.get(i));
|
||||||
|
|
||||||
bits.set(i, false);
|
bits.set(i, false);
|
||||||
assert!(bits.get(i) == false);
|
assert!(!bits.get(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
let bits = AtomicBits::new_ones(128);
|
let bits = AtomicBits::new_ones(128);
|
||||||
for i in 0..bits.len() {
|
for i in 0..bits.len() {
|
||||||
assert!(bits.get(i) == true);
|
assert!(bits.get(i));
|
||||||
|
|
||||||
bits.set(i, false);
|
bits.set(i, false);
|
||||||
assert!(bits.get(i) == false);
|
assert!(!bits.get(i));
|
||||||
|
|
||||||
bits.set(i, true);
|
bits.set(i, true);
|
||||||
assert!(bits.get(i) == true);
|
assert!(bits.get(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,9 +389,9 @@ mod test {
|
|||||||
#[ktest]
|
#[ktest]
|
||||||
fn iter() {
|
fn iter() {
|
||||||
let bits = AtomicBits::new_zeroes(7);
|
let bits = AtomicBits::new_zeroes(7);
|
||||||
assert!(bits.iter().all(|bit| bit == false));
|
assert!(bits.iter().all(|bit| !bit));
|
||||||
|
|
||||||
let bits = AtomicBits::new_ones(128);
|
let bits = AtomicBits::new_ones(128);
|
||||||
assert!(bits.iter().all(|bit| bit == true));
|
assert!(bits.iter().all(|bit| bit));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -293,7 +293,7 @@ mod test {
|
|||||||
Task::yield_now();
|
Task::yield_now();
|
||||||
|
|
||||||
cond_cloned.store(true, Ordering::Relaxed);
|
cond_cloned.store(true, Ordering::Relaxed);
|
||||||
wake(&*queue_cloned);
|
wake(&queue_cloned);
|
||||||
})
|
})
|
||||||
.data(())
|
.data(())
|
||||||
.spawn()
|
.spawn()
|
||||||
|
@ -383,6 +383,7 @@ mod test {
|
|||||||
|
|
||||||
#[ktest]
|
#[ktest]
|
||||||
fn create_task() {
|
fn create_task() {
|
||||||
|
#[allow(clippy::eq_op)]
|
||||||
let task = || {
|
let task = || {
|
||||||
assert_eq!(1, 1);
|
assert_eq!(1, 1);
|
||||||
};
|
};
|
||||||
@ -395,6 +396,7 @@ mod test {
|
|||||||
|
|
||||||
#[ktest]
|
#[ktest]
|
||||||
fn spawn_task() {
|
fn spawn_task() {
|
||||||
|
#[allow(clippy::eq_op)]
|
||||||
let task = || {
|
let task = || {
|
||||||
assert_eq!(1, 1);
|
assert_eq!(1, 1);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user