@@ -991,4 +991,33 @@ TEST_CASE("MPI, all_read_binary_graph_batch, batch for batch")
991991 CHECK ((edges[idx].source == 33 && edges[idx++].target == 37 ));
992992 CHECK ((edges[idx].source == 34 && edges[idx++].target == 37 ));
993993 CHECK ((edges[idx].source == 35 && edges[idx++].target == 37 ));
994+ }
995+
996+ TEST_CASE (" MPI, all_read_binary_graph_batch, read issues" )
997+ {
998+ std::filesystem::path file_path (graph_path + directed_unweighted_graph_enzymes_bin);
999+ mpi::FileWrapper binary_graph{ file_path };
1000+
1001+ BinaryGraphHeader header = mpi::read_binary_graph_header (binary_graph.get ());
1002+ REQUIRE (header.vertex_id_byte_size == sizeof (Vertex32));
1003+ REQUIRE (header.directed );
1004+ REQUIRE (!header.weighted );
1005+ REQUIRE (!header.dynamic );
1006+
1007+ mpi::MPIEdge32 mpi_edge_t ;
1008+
1009+ SECTION (" Read Success" )
1010+ {
1011+ Edges32 edges (header.edge_count );
1012+ mpi::all_read_binary_graph_batch (binary_graph.get (), header, &(edges[0 ]), sizeof (Edge32), 0 , header.edge_count ,
1013+ mpi_edge_t .get ());
1014+ }
1015+
1016+ SECTION (" Read exceeds counter" )
1017+ {
1018+ Edges32 edges (header.edge_count );
1019+ uint64_t count = std::numeric_limits<uint32_t >::max ();
1020+ CHECK_THROWS (mpi::all_read_binary_graph_batch (binary_graph.get (), header, &(edges[0 ]), sizeof (Edge32), 0 , count,
1021+ mpi_edge_t .get ()));
1022+ }
9941023}
0 commit comments