| // Copyright 2021 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "src/sys/fuzzing/common/options.h" |
| #include "src/sys/fuzzing/framework/engine/process-proxy-test.h" |
| #include "src/sys/fuzzing/framework/engine/process-proxy.h" |
| |
| namespace fuzzing { |
| namespace { |
| |
| // Unit tests. |
| // Log detection is disabled for these tests, so they may emit fatal logs without failing. |
| |
| using ProcessProxyFatalTest = ProcessProxyTest; |
| |
| TEST_F(ProcessProxyFatalTest, Crash) { |
| ProcessProxyImpl impl(dispatcher(), pool()); |
| impl.Configure(ProcessProxyTest::DefaultOptions()); |
| impl.SetHandlers(IgnoreReceivedSignals, IgnoreErrors); |
| auto proxy = Bind(&impl); |
| TestTarget target; |
| auto process = target.Launch(); |
| EXPECT_EQ(proxy->Connect(IgnoreSentSignals(), std::move(process), IgnoreOptions()), ZX_OK); |
| target.Crash(); |
| EXPECT_EQ(impl.Join(), Result::CRASH); |
| } |
| |
| } // namespace |
| } // namespace fuzzing |