Agora  1.2.0
Agora project
test_demul_threaded.cc File Reference
#include <gtest/gtest.h>
#include <thread>
#include "concurrentqueue.h"
#include "config.h"
#include "dodemul.h"
#include "gettime.h"
#include "modulation.h"
#include "phy_stats.h"
#include "utils.h"
Include dependency graph for test_demul_threaded.cc:

Functions

void MasterToWorkerDynamicMaster (Config *cfg, moodycamel::ConcurrentQueue< EventData > &event_queue, moodycamel::ConcurrentQueue< EventData > &complete_task_queue)
 
void MasterToWorkerDynamicWorker (Config *cfg, size_t worker_id, moodycamel::ConcurrentQueue< EventData > &event_queue, moodycamel::ConcurrentQueue< EventData > &complete_task_queue, moodycamel::ProducerToken *ptok, Table< complex_float > &data_buffer, PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > &ul_beam_matrices, Table< complex_float > &ue_spec_pilot_buffer, Table< complex_float > &equal_buffer, PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > &demod_buffers_, PhyStats *phy_stats, Stats *stats)
 
 TEST (TestDemul, VaryingConfig)
 
int main (int argc, char **argv)
 

Variables

static constexpr size_t kNumWorkers = 14
 
static constexpr size_t kMaxTestNum = 100
 
static constexpr size_t kMaxItrNum = (1 << 30)
 
static constexpr size_t kModTestNum = 3
 
static constexpr size_t kModBitsNums [kModTestNum] = {4, 6, 4}
 
static constexpr double kCodeRate [kModTestNum] = {0.333, 0.333, 0.666}
 
static constexpr size_t kFrameOffsets [kModTestNum] = {0, 20, 30}
 
static std::atomic< size_t > num_workers_ready_atomic
 

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

◆ MasterToWorkerDynamicMaster()

void MasterToWorkerDynamicMaster ( Config cfg,
moodycamel::ConcurrentQueue< EventData > &  event_queue,
moodycamel::ConcurrentQueue< EventData > &  complete_task_queue 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ MasterToWorkerDynamicWorker()

void MasterToWorkerDynamicWorker ( Config cfg,
size_t  worker_id,
moodycamel::ConcurrentQueue< EventData > &  event_queue,
moodycamel::ConcurrentQueue< EventData > &  complete_task_queue,
moodycamel::ProducerToken ptok,
Table< complex_float > &  data_buffer,
PtrGrid< kFrameWnd, kMaxDataSCs, complex_float > &  ul_beam_matrices,
Table< complex_float > &  ue_spec_pilot_buffer,
Table< complex_float > &  equal_buffer,
PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > &  demod_buffers_,
PhyStats phy_stats,
Stats stats 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ TEST()

TEST ( TestDemul  ,
VaryingConfig   
)

Test correctness of bs_ant_num() values in multi-threaded DoDemul when bs_ant_num() varies in runtime

Here is the call graph for this function:

Variable Documentation

◆ kCodeRate

constexpr double kCodeRate[kModTestNum] = {0.333, 0.333, 0.666}
staticconstexpr

◆ kFrameOffsets

constexpr size_t kFrameOffsets[kModTestNum] = {0, 20, 30}
staticconstexpr

◆ kMaxItrNum

constexpr size_t kMaxItrNum = (1 << 30)
staticconstexpr

◆ kMaxTestNum

constexpr size_t kMaxTestNum = 100
staticconstexpr

◆ kModBitsNums

constexpr size_t kModBitsNums[kModTestNum] = {4, 6, 4}
staticconstexpr

◆ kModTestNum

constexpr size_t kModTestNum = 3
staticconstexpr

◆ kNumWorkers

constexpr size_t kNumWorkers = 14
staticconstexpr

◆ num_workers_ready_atomic

std::atomic<size_t> num_workers_ready_atomic
static