8b6462e81e48c95ab30d3db7409b3c63a18be28a
[rust-lightning] / fuzz / src / process_network_graph.rs
1 // Imports that need to be added manually
2 use lightning::util::logger::Logger;
3 use lightning_rapid_gossip_sync::RapidGossipSync;
4
5 use utils::test_logger;
6
7 use std::sync::Arc;
8
9 /// Actual fuzz test, method signature and name are fixed
10 fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
11         let block_hash = bitcoin::BlockHash::default();
12         let logger = test_logger::TestLogger::new("".to_owned(), out);
13         let network_graph = lightning::routing::gossip::NetworkGraph::new(block_hash, &logger);
14         let rapid_sync = RapidGossipSync::new(&network_graph);
15         let _ = rapid_sync.update_network_graph(data);
16 }
17
18 /// Method that needs to be added manually, {name}_test
19 pub fn process_network_graph_test<Out: test_logger::Output>(data: &[u8], out: Out) {
20         do_test(data, out);
21 }
22
23 /// Method that needs to be added manually, {name}_run
24 #[no_mangle]
25 pub extern "C" fn process_network_graph_run(data: *const u8, datalen: usize) {
26         do_test(unsafe { std::slice::from_raw_parts(data, datalen) }, test_logger::DevNull {});
27 }