jfjoch_writer: Not dependent on gRPC
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
// Copyright (2019-2023) Paul Scherrer Institute
|
||||
|
||||
#include <catch2/catch.hpp>
|
||||
#include <jfjoch.pb.h>
|
||||
|
||||
#include "../grpc/gRPCServer_Template.h"
|
||||
#include "../broker/JFJochStateMachine.h"
|
||||
#include "../writer/JFJochWriterService.h"
|
||||
#include "../receiver/JFJochReceiverService.h"
|
||||
#include "../writer/StreamWriter.h"
|
||||
#include "FPGAUnitTest.h"
|
||||
#include "../acquisition_device/MockAcquisitionDevice.h"
|
||||
#include "../common/ZMQImagePusher.h"
|
||||
@@ -40,15 +40,14 @@ TEST_CASE("JFJochIntegrationTest_ZMQ", "[JFJochReceiver]") {
|
||||
|
||||
state_machine.NotThreadSafe_Experiment().DataStreams(ndatastream);
|
||||
state_machine.NotThreadSafe_Experiment().PedestalG0Frames(0).PedestalG1Frames(0).PedestalG2Frames(0);
|
||||
services.Writer("unix:writer_test", "inproc://#1").Receiver(&fpga_receiver);
|
||||
services.Receiver(&fpga_receiver);
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
auto writer_server = gRPCServer("unix:writer_test", writer);
|
||||
StreamWriter writer(zmq_context, logger, "inproc://#1");
|
||||
auto writer_future = writer.RunFuture();
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Initialize());
|
||||
logger.Info("Initialized");
|
||||
@@ -95,10 +94,9 @@ TEST_CASE("JFJochIntegrationTest_ZMQ", "[JFJochReceiver]") {
|
||||
REQUIRE(statistics.detector_width() == 2068);
|
||||
REQUIRE(statistics.detector_height() == 2164);
|
||||
REQUIRE(statistics.detector_pixel_depth() == 2);
|
||||
writer_server->Shutdown();
|
||||
writer_future.get();
|
||||
}
|
||||
|
||||
|
||||
TEST_CASE("JFJochIntegrationTest_ZMQ_save_calibration", "[JFJochReceiver]") {
|
||||
Logger logger("JFJochIntegrationTest_ZMQ_save_calibration");
|
||||
ZMQContext zmq_context;
|
||||
@@ -127,15 +125,14 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_save_calibration", "[JFJochReceiver]") {
|
||||
|
||||
state_machine.NotThreadSafe_Experiment().DataStreams(ndatastream);
|
||||
state_machine.NotThreadSafe_Experiment().PedestalG0Frames(0).PedestalG1Frames(0).PedestalG2Frames(0);
|
||||
services.Writer("unix:writer_test", "inproc://#1").Receiver(&fpga_receiver);
|
||||
services.Receiver(&fpga_receiver);
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);;
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
auto writer_server = gRPCServer("unix:writer_test", writer);
|
||||
StreamWriter writer(zmq_context, logger, "inproc://#1");
|
||||
auto writer_future = writer.RunFuture();
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Initialize());
|
||||
logger.Info("Initialized");
|
||||
@@ -183,7 +180,7 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_save_calibration", "[JFJochReceiver]") {
|
||||
REQUIRE(statistics.detector_width() == 2068);
|
||||
REQUIRE(statistics.detector_height() == 2164);
|
||||
REQUIRE(statistics.detector_pixel_depth() == 2);
|
||||
writer_server->Shutdown();
|
||||
REQUIRE_NOTHROW(writer_future.get());
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochIntegrationTest_ZMQ_2DataStreams_4Devices", "[JFJochReceiver]") {
|
||||
@@ -215,15 +212,14 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_2DataStreams_4Devices", "[JFJochReceiver]")
|
||||
|
||||
state_machine.NotThreadSafe_Experiment().DataStreams(ndatastream);
|
||||
state_machine.NotThreadSafe_Experiment().PedestalG0Frames(0).PedestalG1Frames(0).PedestalG2Frames(0);
|
||||
services.Writer("unix:writer_test", "inproc://#1").Receiver(&fpga_receiver);
|
||||
services.Receiver(&fpga_receiver);
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
auto writer_server = gRPCServer("unix:writer_test", writer);
|
||||
StreamWriter writer(zmq_context, logger, "inproc://#1");
|
||||
auto writer_future = writer.RunFuture();
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Initialize());
|
||||
logger.Info("Initialized");
|
||||
@@ -271,7 +267,7 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_2DataStreams_4Devices", "[JFJochReceiver]")
|
||||
REQUIRE(statistics.detector_height() == 2164);
|
||||
REQUIRE(statistics.detector_pixel_depth() == 2);
|
||||
|
||||
writer_server->Shutdown();
|
||||
REQUIRE_NOTHROW(writer_future.get());
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochIntegrationTest_ZMQ_RAW", "[JFJochReceiver]") {
|
||||
@@ -292,7 +288,6 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_RAW", "[JFJochReceiver]") {
|
||||
|
||||
state_machine.NotThreadSafe_Experiment().DataStreams(ndatastream);
|
||||
state_machine.NotThreadSafe_Experiment().Mode(DetectorMode::Conversion);
|
||||
services.Writer("unix:writer_test", "inproc://#1");
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
@@ -309,9 +304,8 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_RAW", "[JFJochReceiver]") {
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
services.Receiver(&fpga_receiver);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
auto writer_server = gRPCServer("unix:writer_test", writer);
|
||||
StreamWriter writer(zmq_context, logger, "inproc://#1");
|
||||
auto writer_future = writer.RunFuture();
|
||||
|
||||
JFJochProtoBuf::DetectorSettings detector_settings;
|
||||
detector_settings.set_frame_time_us(500);
|
||||
@@ -362,8 +356,7 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_RAW", "[JFJochReceiver]") {
|
||||
REQUIRE(statistics.detector_height() == 8 * 512);
|
||||
REQUIRE(statistics.detector_pixel_depth() == 2);
|
||||
|
||||
|
||||
writer_server->Shutdown();
|
||||
REQUIRE_NOTHROW(writer_future.get());
|
||||
}
|
||||
|
||||
|
||||
@@ -383,10 +376,6 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_3Writers", "[JFJochReceiver]") {
|
||||
|
||||
state_machine.NotThreadSafe_Experiment().DataStreams(ndatastream);
|
||||
state_machine.NotThreadSafe_Experiment().PedestalG0Frames(0).PedestalG1Frames(0).PedestalG2Frames(0);
|
||||
services
|
||||
.Writer("unix:writer_test_0", "inproc://#0")
|
||||
.Writer("unix:writer_test_1", "inproc://#1")
|
||||
.Writer("unix:writer_test_2", "inproc://#2");
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
@@ -403,13 +392,14 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_3Writers", "[JFJochReceiver]") {
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
services.Receiver(&fpga_receiver);
|
||||
|
||||
JFJochWriterService writer_0(zmq_context, logger);
|
||||
JFJochWriterService writer_1(zmq_context, logger);
|
||||
JFJochWriterService writer_2(zmq_context, logger);
|
||||
StreamWriter writer_0(zmq_context, logger, "inproc://#0");
|
||||
auto writer_0_future = writer_0.RunFuture();
|
||||
|
||||
auto writer_server_0 = gRPCServer("unix:writer_test_0", writer_0);
|
||||
auto writer_server_1 = gRPCServer("unix:writer_test_1", writer_1);
|
||||
auto writer_server_2 = gRPCServer("unix:writer_test_2", writer_2);
|
||||
StreamWriter writer_1(zmq_context, logger, "inproc://#1");
|
||||
auto writer_1_future = writer_1.RunFuture();
|
||||
|
||||
StreamWriter writer_2(zmq_context, logger, "inproc://#2");
|
||||
auto writer_2_future = writer_2.RunFuture();
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Initialize());
|
||||
logger.Info("Initialized");
|
||||
@@ -451,13 +441,11 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_3Writers", "[JFJochReceiver]") {
|
||||
REQUIRE(statistics.collection_efficiency() == 1.0);
|
||||
REQUIRE(statistics.images_collected() == nimages);
|
||||
|
||||
|
||||
writer_server_0->Shutdown();
|
||||
writer_server_1->Shutdown();
|
||||
writer_server_2->Shutdown();
|
||||
REQUIRE_NOTHROW(writer_0_future.get());
|
||||
REQUIRE_NOTHROW(writer_1_future.get());
|
||||
REQUIRE_NOTHROW(writer_2_future.get());
|
||||
}
|
||||
|
||||
|
||||
TEST_CASE("JFJochIntegrationTest_Cancel", "[JFJochReceiver]") {
|
||||
Logger logger("JFJochIntegrationTest_Cancel");
|
||||
|
||||
@@ -475,7 +463,6 @@ TEST_CASE("JFJochIntegrationTest_Cancel", "[JFJochReceiver]") {
|
||||
|
||||
state_machine.NotThreadSafe_Experiment().DataStreams(ndatastream);
|
||||
state_machine.NotThreadSafe_Experiment().PedestalG0Frames(0).PedestalG1Frames(0).PedestalG2Frames(0);
|
||||
services.Writer("unix:writer_test", "inproc://#1");
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
@@ -497,9 +484,8 @@ TEST_CASE("JFJochIntegrationTest_Cancel", "[JFJochReceiver]") {
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
services.Receiver(&fpga_receiver);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
auto writer_server = gRPCServer("unix:writer_test", writer);
|
||||
StreamWriter writer(zmq_context, logger, "inproc://#1");
|
||||
auto writer_future = writer.RunFuture();
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Initialize());
|
||||
logger.Info("Initialized");
|
||||
@@ -529,8 +515,7 @@ TEST_CASE("JFJochIntegrationTest_Cancel", "[JFJochReceiver]") {
|
||||
REQUIRE(statistics.max_image_number_sent() == 4);
|
||||
REQUIRE(statistics.cancelled());
|
||||
|
||||
|
||||
writer_server->Shutdown();
|
||||
REQUIRE_NOTHROW(writer_future.get());
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview", "[JFJochReceiver]") {
|
||||
@@ -549,7 +534,6 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview", "[JFJochReceiver]") {
|
||||
state_machine.NotThreadSafe_Experiment().DataStreams(ndatastream);
|
||||
state_machine.NotThreadSafe_Experiment().PedestalG0Frames(0).PedestalG1Frames(0).PedestalG2Frames(0).PreviewPeriod(
|
||||
5ms);
|
||||
services.Writer("unix:writer_test", "inproc://#1");
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
@@ -573,7 +557,8 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview", "[JFJochReceiver]") {
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
services.Receiver(&fpga_receiver);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
StreamWriter writer(zmq_context, logger, "inproc://#1");
|
||||
auto writer_future = writer.RunFuture();
|
||||
|
||||
ZMQPreviewPublisher preview(zmq_context, "inproc://#2");
|
||||
fpga_receiver.PreviewPublisher(&preview).NumThreads(1);
|
||||
@@ -582,8 +567,6 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview", "[JFJochReceiver]") {
|
||||
REQUIRE_NOTHROW(rcv_preview_socket.Connect("inproc://#2"));
|
||||
rcv_preview_socket.SubscribeAll();
|
||||
|
||||
auto writer_server = gRPCServer("unix:writer_test", writer);
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Initialize());
|
||||
logger.Info("Initialized");
|
||||
|
||||
@@ -633,8 +616,7 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview", "[JFJochReceiver]") {
|
||||
REQUIRE(statistics.collection_efficiency() == 1.0);
|
||||
REQUIRE(statistics.images_collected() == 5);
|
||||
|
||||
|
||||
writer_server->Shutdown();
|
||||
REQUIRE_NOTHROW(writer_future.get());
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview_no_writer", "[JFJochReceiver]") {
|
||||
@@ -653,7 +635,6 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview_no_writer", "[JFJochReceiver]"
|
||||
state_machine.NotThreadSafe_Experiment().DataStreams(ndatastream);
|
||||
state_machine.NotThreadSafe_Experiment().PedestalG0Frames(0).PedestalG1Frames(0).PedestalG2Frames(0).PreviewPeriod(
|
||||
5ms);
|
||||
services.Writer("unix:writer_test", "inproc://#1");
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
@@ -676,8 +657,6 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview_no_writer", "[JFJochReceiver]"
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
services.Receiver(&fpga_receiver);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
ZMQPreviewPublisher preview(zmq_context, "inproc://#2");
|
||||
fpga_receiver.PreviewPublisher(&preview).NumThreads(1);
|
||||
|
||||
@@ -685,8 +664,6 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview_no_writer", "[JFJochReceiver]"
|
||||
REQUIRE_NOTHROW(rcv_preview_socket.Connect("inproc://#2"));
|
||||
rcv_preview_socket.SubscribeAll();
|
||||
|
||||
auto writer_server = gRPCServer("unix:writer_test", writer);
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Initialize());
|
||||
logger.Info("Initialized");
|
||||
|
||||
@@ -734,8 +711,6 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview_no_writer", "[JFJochReceiver]"
|
||||
|
||||
REQUIRE(statistics.collection_efficiency() == 1.0);
|
||||
REQUIRE(statistics.images_collected() == 5);
|
||||
|
||||
writer_server->Shutdown();
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_spot", "[JFJochReceiver]") {
|
||||
@@ -753,7 +728,6 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_spot", "[JFJochReceiver]") {
|
||||
state_machine.AddDetectorSetup(DetectorGeometry(ndatastream * nmodules, 2, 8, 36));
|
||||
state_machine.NotThreadSafe_Experiment().DataStreams(ndatastream);
|
||||
state_machine.NotThreadSafe_Experiment().PedestalG0Frames(0).PedestalG1Frames(0).PedestalG2Frames(0);
|
||||
services.Writer("unix:writer_test", "inproc://#1");
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
@@ -796,9 +770,8 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_spot", "[JFJochReceiver]") {
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
services.Receiver(&fpga_receiver);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
auto writer_server = gRPCServer("unix:writer_test", writer);
|
||||
StreamWriter writer(zmq_context, logger, "inproc://#1");
|
||||
auto writer_future = writer.RunFuture();
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Initialize());
|
||||
logger.Info("Initialized");
|
||||
@@ -842,8 +815,8 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_spot", "[JFJochReceiver]") {
|
||||
|
||||
REQUIRE(statistics.collection_efficiency() == 1.0);
|
||||
REQUIRE(statistics.images_collected() == 1);
|
||||
|
||||
writer_server->Shutdown();
|
||||
|
||||
REQUIRE_NOTHROW(writer_future.get());
|
||||
}
|
||||
/*
|
||||
TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_spot_and_index", "[JFJochReceiver]") {
|
||||
@@ -979,7 +952,6 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_rad_int", "[JFJochReceiver]") {
|
||||
state_machine.NotThreadSafe_Experiment().PedestalG0Frames(0).PedestalG1Frames(0).PedestalG2Frames(0);
|
||||
state_machine.NotThreadSafe_Experiment().LowQForRadialInt_recipA(0.5).HighQForRadialInt_recipA(3.5)
|
||||
.QSpacingForRadialInt_recipA(1.0);
|
||||
services.Writer("unix:writer_test", "inproc://#1");
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
@@ -1027,8 +999,8 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_rad_int", "[JFJochReceiver]") {
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
services.Receiver(&fpga_receiver);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
auto writer_server = gRPCServer("unix:writer_test", writer);
|
||||
StreamWriter writer(zmq_context, logger, "inproc://#1");
|
||||
auto writer_future = writer.RunFuture();
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Initialize());
|
||||
logger.Info("Initialized");
|
||||
@@ -1070,8 +1042,8 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_rad_int", "[JFJochReceiver]") {
|
||||
|
||||
CHECK(plot_map[0].title() == "dataset");
|
||||
CHECK(plot_map[0].plot().x_size() == 3);
|
||||
|
||||
writer_server->Shutdown();
|
||||
|
||||
REQUIRE_NOTHROW(writer_future.get());
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user