diff --git a/fuzzers/wcet_qemu_sys/src/bin/fuzzer.rs b/fuzzers/wcet_qemu_sys/src/bin/fuzzer.rs index 54c1d99f3b..5325863177 100644 --- a/fuzzers/wcet_qemu_sys/src/bin/fuzzer.rs +++ b/fuzzers/wcet_qemu_sys/src/bin/fuzzer.rs @@ -302,7 +302,7 @@ fn fuzz( }); //====== Child Function - let mut run_client = |state: Option>, mut mgr, _core_id| { + let mut run_client = |state: Option>, mut mgr, _core_id| -> std::result::Result<(), libafl::Error> { //====== Set up Emu and termination-point let emu = Emulator::new(&args, &env); @@ -467,6 +467,7 @@ fn fuzz( #[cfg(unix)] let file_null = File::open("/dev/null")?; #[cfg(unix)] + #[cfg(feature = "multicore")] { let null_fd = file_null.as_raw_fd(); dup2(null_fd, io::stdout().as_raw_fd())?; @@ -482,20 +483,32 @@ fn fuzz( }; - match Launcher::builder() - .shmem_provider(shmem_provider) - .configuration(EventConfig::AlwaysUnique) - .monitor(monitor) - .run_client(&mut run_client) - .cores(&Cores::from_cmdline("all").unwrap()) - // .broker_port(1337) - // .remote_broker_addr(remote_broker_addr) - //.stdout_file(Some("/dev/null")) - .build() - .launch() + // Multicore Variant + #[cfg(feature = "multicore")] { - Ok(_) | Err(Error::ShuttingDown) => (), - Err(e) => panic!("{:?}", e), - }; - Ok(()) + match Launcher::builder() + .shmem_provider(shmem_provider) + .configuration(EventConfig::AlwaysUnique) + .monitor(monitor) + .run_client(&mut run_client) + .cores(&Cores::from_cmdline("all").unwrap()) + // .broker_port(1337) + // .remote_broker_addr(remote_broker_addr) + //.stdout_file(Some("/dev/null")) + .build() + .launch() + { + Ok(_) | Err(Error::ShuttingDown) => (), + Err(e) => panic!("{:?}", e), + }; + Ok(()) + } + + // Simple Variant + #[cfg(not(feature = "multicore"))] + { + let stats = SimpleStats::new(|s| println!("{}", s)); + let mgr = SimpleEventManager::new(stats); + run_client(None, mgr, 0) + } }