mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-06-14 09:16:51 +00:00
3bff16b5d1
Test infrastructure reactivated. Now a run_tests executable is created and runs some tests. git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@138 64b25241-fba3-4117-9849-534c7e92360d
127 lines
5.6 KiB
C++
127 lines
5.6 KiB
C++
|
|
/**
|
|
* Copyright notice
|
|
*/
|
|
|
|
/**
|
|
* Author: Carlos Avilés, 2010. carlos.avilesr(at)googlemail.com
|
|
*/
|
|
|
|
/**
|
|
* This class implements a Unit Tests for the class ControlThread.
|
|
*
|
|
*/
|
|
|
|
#include <gtest/gtest.h>
|
|
#include <gr_msg_queue.h>
|
|
#include "control_thread.h"
|
|
#include "in_memory_configuration.h"
|
|
|
|
|
|
TEST(Control_Thread_Test, InstantiateRunControlMessages) {
|
|
|
|
InMemoryConfiguration *config = new InMemoryConfiguration();
|
|
config->set_property("SignalSource.implementation", "File_Signal_Source");
|
|
config->set_property("SignalSource.filename", "/Users/carlesfernandez/Documents/workspace/gnss-sdr/trunk/data/sc2_d16.dat");
|
|
config->set_property("SignalSource.item_type", "gr_complex");
|
|
config->set_property("SignalConditioner.implementation", "Pass_Through");
|
|
config->set_property("SignalConditioner.item_type", "gr_complex");
|
|
config->set_property("Channels.count", "12");
|
|
config->set_property("Acquisition.implementation", "GPS_L1_CA_PCPS_Acquisition");
|
|
config->set_property("Acquisition.item_type", "gr_complex");
|
|
config->set_property("Tracking.implementation", "GPS_L1_CA_DLL_FLL_PLL_Tracking");
|
|
config->set_property("Tracking.item_type", "gr_complex");
|
|
config->set_property("Navigation.implementation", "GPS_L1_CA_Telemetry_Decoder");
|
|
config->set_property("Navigation.item_type", "gr_complex");
|
|
config->set_property("Pseudorange.implementation", "GPS_L1_CA_Observables");
|
|
config->set_property("Pseudorange.item_type", "gr_complex");
|
|
config->set_property("PVT.implementation", "GPS_L1_CA_PVT");
|
|
config->set_property("PVT.item_type", "gr_complex");
|
|
config->set_property("OutputFilter.implementation", "Null_Sink_Output_Filter");
|
|
config->set_property("OutputFilter.item_type", "gr_complex");
|
|
|
|
ControlThread *control_thread = new ControlThread(config);
|
|
|
|
gr_msg_queue_sptr control_queue = gr_make_msg_queue(0);
|
|
ControlMessageFactory *control_msg_factory = new ControlMessageFactory();
|
|
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(0,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(1,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(2,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(3,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(4,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(5,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(6,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(7,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(8,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(9,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(10,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(11,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(12,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(13,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(14,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(15,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(16,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(200,0));
|
|
|
|
control_thread->set_control_queue(control_queue);
|
|
|
|
control_thread->run();
|
|
|
|
EXPECT_EQ(18, control_thread->processed_control_messages());
|
|
EXPECT_EQ(1, control_thread->applied_actions());
|
|
|
|
delete config;
|
|
delete control_thread;
|
|
delete control_msg_factory;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TEST(Control_Thread_Test, InstantiateRunControlMessages2) {
|
|
|
|
InMemoryConfiguration *config = new InMemoryConfiguration();
|
|
config->set_property("SignalSource.implementation", "File_Signal_Source");
|
|
config->set_property("SignalSource.filename", "/Users/carlesfernandez/Documents/workspace/gnss-sdr/trunk/data/sc2_d16.dat");
|
|
config->set_property("SignalSource.item_type", "gr_complex");
|
|
config->set_property("SignalConditioner.implementation", "Pass_Through");
|
|
config->set_property("SignalConditioner.item_type", "gr_complex");
|
|
config->set_property("Channels.count", "12");
|
|
config->set_property("Acquisition.implementation", "GPS_L1_CA_PCPS_Acquisition");
|
|
config->set_property("Acquisition.item_type", "gr_complex");
|
|
config->set_property("Tracking.implementation", "GPS_L1_CA_DLL_FLL_PLL_Tracking");
|
|
config->set_property("Tracking.item_type", "gr_complex");
|
|
config->set_property("Navigation.implementation", "GPS_L1_CA_Telemetry_Decoder");
|
|
config->set_property("Navigation.item_type", "gr_complex");
|
|
config->set_property("Pseudorange.implementation", "GPS_L1_CA_Observables");
|
|
config->set_property("Pseudorange.item_type", "gr_complex");
|
|
config->set_property("PVT.implementation", "GPS_L1_CA_PVT");
|
|
config->set_property("PVT.item_type", "gr_complex");
|
|
config->set_property("OutputFilter.implementation", "Null_Sink_Output_Filter");
|
|
config->set_property("OutputFilter.item_type", "gr_complex");
|
|
|
|
ControlThread *control_thread = new ControlThread(config);
|
|
|
|
gr_msg_queue_sptr control_queue = gr_make_msg_queue(0);
|
|
ControlMessageFactory *control_msg_factory = new ControlMessageFactory();
|
|
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(0,0));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(0,2));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(0,1));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(0,3));
|
|
control_queue->handle(control_msg_factory->GetQueueMessage(200,0));
|
|
|
|
control_thread->set_control_queue(control_queue);
|
|
|
|
control_thread->run();
|
|
|
|
EXPECT_EQ(5, control_thread->processed_control_messages());
|
|
EXPECT_EQ(1, control_thread->applied_actions());
|
|
|
|
delete config;
|
|
delete control_thread;
|
|
delete control_msg_factory;
|
|
}
|