void test_mdl_createAndExecute() { int status; pqueue* pq = (pqueue*)1; char* const tcpAddr = "127.0.0.1"; const unsigned short tcpPort = 38800; char* const addr = "224.0.0.1"; const unsigned short port = 1; int (*int_func)() = (int(*)())1; void (*void_func)() = (void(*)())2; McastInfo mcastInfo; Mdl* mdl; mcastInfo.group.addr = addr; mcastInfo.group.port = port; mcastInfo.server.addr = tcpAddr; mcastInfo.server.port = tcpPort; /* Invalid product-queue argument */ mdl = mdl_new(NULL, &mcastInfo, void_func, NULL); log_log(LOG_INFO); OP_ASSERT_TRUE(mdl == NULL); log_clear(); /* Invalid multicast information argument */ mdl = mdl_new(pq, NULL, void_func, NULL); log_log(LOG_INFO); OP_ASSERT_TRUE(mdl == NULL); log_clear(); /* Invalid missed-product-function argument */ mdl = mdl_new(pq, &mcastInfo, NULL, NULL); log_log(LOG_INFO); OP_ASSERT_TRUE(mdl == NULL); log_clear(); /* Trivial execution */ vcmtpReceiver_new_ExpectAndReturn( NULL, tcpAddr, tcpPort, int_func, int_func, void_func, addr, port, NULL, 0, NULL, cmp_cstr, cmp_short, NULL, NULL, NULL, cmp_cstr, cmp_short, NULL); mdl = mdl_new(pq, &mcastInfo, void_func, NULL); log_log(LOG_INFO); OP_ASSERT_FALSE(mdl == NULL); vcmtpReceiver_execute_ExpectAndReturn(NULL, 0, NULL); status = mdl_start(mdl); log_log(LOG_INFO); OP_ASSERT_EQUAL_INT(LDM7_SHUTDOWN, status); vcmtpReceiver_free_ExpectAndReturn(NULL, NULL); mdl_free(mdl); log_log(LOG_INFO); OP_VERIFY(); }
static void test_msm_open() { McastSessionMemory* msm; openMsm(&msm); OP_ASSERT_TRUE(msm != NULL); OP_ASSERT_TRUE(msm_close(msm)); log_log(LOG_ERR); OP_VERIFY(); }
static void init() { ServiceAddr* groupAddr = sa_new(GROUP_ADDR, GROUP_PORT); OP_ASSERT_TRUE(groupAddr != NULL); ServiceAddr* serverAddr = sa_new(SERVER_ADDR, SERVER_PORT); OP_ASSERT_TRUE(serverAddr != NULL); mcastInfo = mi_new(feedtype, groupAddr, serverAddr); OP_ASSERT_TRUE(mcastInfo != NULL); sa_free(groupAddr); sa_free(serverAddr); prodQ = (void*)2; }
static void init() { static bool initialized; if (!initialized) { char buf[265]; SERVICE_ADDR = sa_new(HOSTNAME, PORT); OP_ASSERT_TRUE(SERVICE_ADDR != NULL); CWD = getcwd(buf, sizeof(buf)); OP_ASSERT_TRUE(CWD != NULL); initialized = true; } }
static void openMsm( McastSessionMemory** msm) { getLdmLogDir_ExpectAndReturn(CWD); *msm = msm_open(SERVICE_ADDR , MCAST_GROUP_ID); log_log(LOG_ERR); OP_ASSERT_TRUE(*msm != NULL); }
static void test_running() { msm_lock_ExpectAndReturn(true, 0, cmp_bool); mcastPid = getpid(); // emulate running process msm_getPid_MockWithCallback(msm_getPid_callback); msm_unlock_ExpectAndReturn(0); OP_ASSERT_TRUE(mlsm_ensureRunning(feedtype) == 0); log_log(LOG_ERR); OP_VERIFY(); }
static void test_not_running() { msm_lock_ExpectAndReturn(true, 0, cmp_bool); mcastPid = 1; // kill(1, 0) will return -1 -- emulating no-such-process msm_getPid_MockWithCallback(msm_getPid_callback); fork_ExpectAndReturn(1); msm_put_ExpectAndReturn(feedtype, mcastPid, 0, cmp_int, cmp_int); msm_unlock_ExpectAndReturn(0); OP_ASSERT_TRUE(mlsm_ensureRunning(feedtype) == 0); log_log(LOG_ERR); OP_VERIFY(); }
static void test_last_mcast_prod() { McastSessionMemory* msm; int status; getLdmLogDir_ExpectAndReturn(CWD); OP_ASSERT_TRUE(msm_delete(SERVICE_ADDR, MCAST_GROUP_ID)); openMsm(&msm); signaturet sig1; status = msm_getLastMcastProd(msm, sig1); log_log(LOG_ERR); OP_ASSERT_FALSE(status); signaturet sig2; (void)memset(&sig2, 1, sizeof(sig2)); status = msm_setLastMcastProd(msm, sig2); log_log(LOG_ERR); OP_ASSERT_TRUE(status); status = msm_getLastMcastProd(msm, sig1); log_log(LOG_ERR); OP_ASSERT_TRUE(status); OP_ASSERT_TRUE(memcmp(&sig1, &sig2, sizeof(sig1)) == 0); status = msm_close(msm); log_log(LOG_ERR); OP_ASSERT_TRUE(status); // Verify the data in the new file openMsm(&msm); status = msm_getLastMcastProd(msm, sig1); log_log(LOG_ERR); OP_ASSERT_TRUE(status); OP_ASSERT_TRUE(memcmp(&sig1, &sig2, sizeof(signaturet)) == 0); status = msm_close(msm); log_log(LOG_ERR); OP_ASSERT_TRUE(status); OP_VERIFY(); }
static void test_missed_mcast_files() { McastSessionMemory* msm; int status; McastProdIndex iProd; openMsm(&msm); msm_clearAllMissedFiles(msm); status = msm_getAnyMissedFileNoWait(msm, &iProd); log_log(LOG_ERR); OP_ASSERT_FALSE(status); status = msm_addMissedFile(msm, 1); OP_ASSERT_TRUE(status); status = msm_addMissedFile(msm, 2); OP_ASSERT_TRUE(status); status = msm_addMissedFile(msm, 3); OP_ASSERT_TRUE(status); status = msm_peekMissedFileNoWait(msm, &iProd); OP_ASSERT_TRUE(status); OP_ASSERT_TRUE(iProd == 1); status = msm_addRequestedFile(msm, iProd); OP_ASSERT_TRUE(status); status = msm_removeMissedFileNoWait(msm, &iProd); OP_ASSERT_TRUE(status); OP_ASSERT_TRUE(iProd == 1); status = msm_removeMissedFileNoWait(msm, &iProd); OP_ASSERT_TRUE(status); OP_ASSERT_TRUE(iProd == 2); status = msm_addRequestedFile(msm, iProd); OP_ASSERT_TRUE(status); status = msm_removeRequestedFileNoWait(msm, &iProd); OP_ASSERT_TRUE(status); OP_ASSERT_TRUE(iProd == 1); msm_close(msm); log_log(LOG_ERR); OP_ASSERT_TRUE(status); openMsm(&msm); status = msm_getAnyMissedFileNoWait(msm, &iProd); log_log(LOG_ERR); OP_ASSERT_TRUE(status); OP_ASSERT_TRUE(iProd = 2); status = msm_getAnyMissedFileNoWait(msm, &iProd); log_log(LOG_ERR); OP_ASSERT_TRUE(status); OP_ASSERT_TRUE(iProd = 3); status = msm_getAnyMissedFileNoWait(msm, &iProd); log_log(LOG_ERR); OP_ASSERT_FALSE(status); msm_close(msm); OP_VERIFY(); }
static void test_conflict() { OP_ASSERT_TRUE(mlsm_addPotentialSender(mcastInfo) == 0); OP_ASSERT_TRUE(mlsm_addPotentialSender(mcastInfo) == LDM7_DUP); OP_VERIFY(); }
static void test_noPotentialSender() { OP_ASSERT_TRUE(mlsm_ensureRunning(feedtype) == LDM7_NOENT); log_clear(); OP_VERIFY(); }