OSDK check and clippy with cfg(ktest)

This commit is contained in:
Zhang Junyang 2024-08-15 15:17:59 +08:00 committed by Tate, Hongliang Tian
parent be3492d7f0
commit d76c7a5b1e
16 changed files with 48 additions and 39 deletions

View File

@ -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 | \

View File

@ -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);
} }

View File

@ -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)?,
); )
} }
} }

View File

@ -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,
); );
} }

View File

@ -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);
} }
} }
} }

View File

@ -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));
} }

View File

@ -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::{

View File

@ -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);
} }
} }

View File

@ -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),
} }
} }

View File

@ -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);

View File

@ -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);
} }
} }
} }

View File

@ -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);
} }

View File

@ -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());
} }

View File

@ -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));
} }
} }

View File

@ -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()

View File

@ -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);
}; };