mirror of https://github.com/google/oss-fuzz.git
31 lines
877 B
Swift
31 lines
877 B
Swift
|
import GRPC
|
||
|
import NIO
|
||
|
import EchoImplementation
|
||
|
|
||
|
@_cdecl("LLVMFuzzerTestOneInput")
|
||
|
public func test(_ start: UnsafeRawPointer, _ count: Int) -> CInt {
|
||
|
let bytes = UnsafeRawBufferPointer(start: start, count: count)
|
||
|
|
||
|
let channel = EmbeddedChannel()
|
||
|
let configuration = Server.Configuration(
|
||
|
target: .unixDomainSocket("/ignored"),
|
||
|
eventLoopGroup: channel.eventLoop,
|
||
|
serviceProviders: [EchoProvider()]
|
||
|
)
|
||
|
let handler = GRPCServerPipelineConfigurator(configuration: configuration)
|
||
|
|
||
|
var buffer = channel.allocator.buffer(capacity: count)
|
||
|
buffer.writeBytes(bytes)
|
||
|
do {
|
||
|
try channel.pipeline.addHandler(handler).wait()
|
||
|
try channel.writeInbound(buffer)
|
||
|
channel.embeddedEventLoop.run()
|
||
|
} catch {
|
||
|
}
|
||
|
do {
|
||
|
try _ = channel.finish(acceptAlreadyClosed: true)
|
||
|
} catch {
|
||
|
}
|
||
|
return 0
|
||
|
}
|