mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-14 12:12:07 +00:00
[fuzzer] Update and enable libFuzzer on Fuchsia
This change updates the Fuchsia-specific code to use the C++ friendly duration expressions and flips on the building of libclang_rt.fuzzer-x86_64.a and similar for Fuchsia. Given that compiler-rt doesn't build on Fuchsia, test have been run by explicitly building the library and linking it against lib/fuzzer/tests/FuzzerUnittest.cpp. Differential Revision: https://reviews.llvm.org/D42670 llvm-svn: 323828
This commit is contained in:
parent
0cd834ebbd
commit
b1eaa56704
@ -604,7 +604,7 @@ else()
|
||||
endif()
|
||||
|
||||
if (COMPILER_RT_HAS_SANITIZER_COMMON AND FUZZER_SUPPORTED_ARCH AND
|
||||
OS_NAME MATCHES "Android|Darwin|Linux|NetBSD|FreeBSD")
|
||||
OS_NAME MATCHES "Android|Darwin|Linux|NetBSD|FreeBSD|Fuchsia")
|
||||
set(COMPILER_RT_HAS_FUZZER TRUE)
|
||||
else()
|
||||
set(COMPILER_RT_HAS_FUZZER FALSE)
|
||||
|
@ -56,7 +56,7 @@ void InterruptHandler() {
|
||||
void CrashHandler(zx::port *Port) {
|
||||
std::unique_ptr<zx::port> ExceptionPort(Port);
|
||||
zx_port_packet_t Packet;
|
||||
ExceptionPort->wait(ZX_TIME_INFINITE, &Packet, 0);
|
||||
ExceptionPort->wait(zx::time::infinite(), &Packet, 0);
|
||||
// Unbind as soon as possible so we don't receive exceptions from this thread.
|
||||
if (zx_task_bind_exception_port(ZX_HANDLE_INVALID, ZX_HANDLE_INVALID,
|
||||
kFuzzingCrash, 0) != ZX_OK) {
|
||||
@ -117,7 +117,7 @@ void SetSignalHandler(const FuzzingOptions &Options) {
|
||||
}
|
||||
|
||||
void SleepSeconds(int Seconds) {
|
||||
zx::nanosleep(zx::deadline_after(ZX_SEC(Seconds)));
|
||||
zx::nanosleep(zx::deadline_after(zx::sec(Seconds)));
|
||||
}
|
||||
|
||||
unsigned long GetPid() {
|
||||
@ -200,7 +200,7 @@ int ExecuteCommand(const Command &Cmd) {
|
||||
zx::process Process(ProcessHandle);
|
||||
|
||||
// Now join the process and return the exit status.
|
||||
if ((rc = Process.wait_one(ZX_PROCESS_TERMINATED, ZX_TIME_INFINITE,
|
||||
if ((rc = Process.wait_one(ZX_PROCESS_TERMINATED, zx::time::infinite(),
|
||||
nullptr)) != ZX_OK) {
|
||||
Printf("libFuzzer: failed to join '%s': %s\n", Argv[0],
|
||||
zx_status_get_string(rc));
|
||||
|
Loading…
x
Reference in New Issue
Block a user