亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mpflowgraphtest.cpp

?? 著名開源軟件sipX中的sipXPortLib,和其它組件一起工作
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// 
//
// Copyright (C) 2004 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// Copyright (C) 2004 Pingtel Corp.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// $$
//////////////////////////////////////////////////////////////////////////////

#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/TestCase.h>
#include <sipxunit/TestUtilities.h>

#include <mp/MpFlowGraphBase.h>
#include <mp/MpTestResource.h>

/**
 * Unittest for MpFlowGraph
 */
class MpFlowGraphTest : public CppUnit::TestCase
{
    CPPUNIT_TEST_SUITE(MpFlowGraphTest);
    CPPUNIT_TEST(testCreators);
    CPPUNIT_TEST(testLinkAndResource);
    CPPUNIT_TEST(testDestroyResources);
    CPPUNIT_TEST(testEnableDisable);
    CPPUNIT_TEST(testSamplesPerFrameAndSec);
    CPPUNIT_TEST(testStartAndStop);
    CPPUNIT_TEST(testAccessors);
    CPPUNIT_TEST(testProcessNextFrame);
    CPPUNIT_TEST_SUITE_END();


public:
    void testCreators()
    {
        MpFlowGraphBase*    pFlowGraph = 0;
        MpTestResource* pResource1 = 0;
        MpTestResource* pResource2 = 0;
        OsStatus        res;

        // verify that we can create and delete MpFlowGraphBase objects
        pFlowGraph = new MpFlowGraphBase(80, 8000);

        // verify that the initial state information is sensible
        CPPUNIT_ASSERT(pFlowGraph->getState() == MpFlowGraphBase::STOPPED);
        CPPUNIT_ASSERT(pFlowGraph->numLinks() == 0);
        CPPUNIT_ASSERT(pFlowGraph->numFramesProcessed() == 0);
        CPPUNIT_ASSERT(pFlowGraph->numResources() == 0);
        CPPUNIT_ASSERT(!pFlowGraph->isStarted());

        delete pFlowGraph;

        // when we have a flow graph that contains resources and links,
        // verify that destroying the flow graph also gets rid of the resources
        // and links.
        pFlowGraph = new MpFlowGraphBase(80, 8000);
        pResource1 = new MpTestResource("test1", 1, 1, 1, 1);
        pResource2 = new MpTestResource("test2", 1, 1, 1, 1);

        res = pFlowGraph->addResource(*pResource1);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        res = pFlowGraph->addResource(*pResource2);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        res = pFlowGraph->addLink(*pResource1, 0, *pResource2, 0);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        delete pFlowGraph;
    }

    void testLinkAndResource()
    {
        MpFlowGraphBase*    pFlowGraph = 0;
        MpTestResource* pResource1 = 0;
        MpTestResource* pResource2 = 0;
        OsStatus        res;

        // ====== Test the addLink(), addResource(),
        //                 removeLink() and removeResource() methods ======
        pFlowGraph = new MpFlowGraphBase(80, 8000);
        pResource1 = new MpTestResource("test1", 2, 2, 2, 2);
        pResource2 = new MpTestResource("test2", 2, 2, 2, 2);

        res = pFlowGraph->addResource(*pResource1);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        res = pFlowGraph->addResource(*pResource2);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        // connect pResource1 output port 0 --> pResource2 input port 0
        res = pFlowGraph->addLink(*pResource1, 0, *pResource2, 0);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        // try connecting an invalid input port to a valid output port
        res = pFlowGraph->addLink(*pResource1, 2, *pResource2, 1);
        CPPUNIT_ASSERT(res == OS_INVALID_ARGUMENT);

        // try connecting a valid input port to an invalid output port
        res = pFlowGraph->addLink(*pResource1, 1, *pResource2, 2);
        CPPUNIT_ASSERT(res == OS_INVALID_ARGUMENT);

        // try removing a link on a port that doesn't exist
        res = pFlowGraph->removeLink(*pResource1, 2);
        CPPUNIT_ASSERT(res == OS_INVALID_ARGUMENT);

        // remove the link and resources
        res = pFlowGraph->removeLink(*pResource1, 0);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        res = pFlowGraph->removeResource(*pResource1);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        res = pFlowGraph->removeResource(*pResource2);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        delete pResource1;
        delete pResource2;
        delete pFlowGraph;
    }

    void testDestroyResources()
    {
        MpFlowGraphBase*    pFlowGraph = 0;
        MpTestResource* pResource1 = 0;
        MpTestResource* pResource2 = 0;
        OsStatus        res;

        pFlowGraph = new MpFlowGraphBase(80, 8000);
        pResource1 = new MpTestResource("test1", 2, 2, 2, 2);
        pResource2 = new MpTestResource("test2", 2, 2, 2, 2);

        res = pFlowGraph->addResource(*pResource1);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        res = pFlowGraph->addResource(*pResource2);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        res = pFlowGraph->addLink(*pResource1, 0, *pResource2, 0);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        res = pFlowGraph->destroyResources();
        CPPUNIT_ASSERT((res == OS_SUCCESS) &&
          (pFlowGraph->numResources() == 0) &&
          (pFlowGraph->numLinks() == 0));

        delete pFlowGraph;
    }

    void testEnableDisable()
    {
        MpFlowGraphBase*    pFlowGraph = 0;
        MpTestResource* pResource1 = 0;
        MpTestResource* pResource2 = 0;
        OsStatus        res;

        pFlowGraph = new MpFlowGraphBase(80, 8000);
        pResource1 = new MpTestResource("test1", 2, 2, 2, 2);
        pResource2 = new MpTestResource("test2", 2, 2, 2, 2);

        res = pFlowGraph->addResource(*pResource1);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        res = pFlowGraph->addResource(*pResource2);
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        CPPUNIT_ASSERT((pResource1->isEnabled() == FALSE) &&
            (pResource2->isEnabled() == FALSE));

        // enable all of the resources in the flow graph
        res = pFlowGraph->enable();
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        CPPUNIT_ASSERT(pResource1->isEnabled() && pResource2->isEnabled());

        // now disable all of the the resources in the flow graph
        res = pFlowGraph->disable();
        CPPUNIT_ASSERT(res == OS_SUCCESS);

        CPPUNIT_ASSERT((pResource1->isEnabled() == FALSE) &&
                       (pResource2->isEnabled() == FALSE));

        delete pFlowGraph;
    }

    /**
     * FAILS : Segmention fault
     */
    void testProcessNextFrame()
    {
       // Set up a flow graph with two resources (resource1 and resource2). Both
       // resources have 4 inputs and 4 outputs.  All four outputs of resource1
       // are connected to the corresponding inputs of resource2.  The resources
       // are further configured to behave as follows for each frame processing
       // interval.
       //
       // Resource 1:                   |   Resource 2:
       //   Creates output buffers on   |     Processes input buffers received on
       //   output ports 0, 2 and 3.    |     input ports 0, 1 and 2.
       //
       //   resource1   Output 0        -->   Input 0
       //   ignores     Output 1 (NULL) -->   Input 1
       //   its         Output 2        -->   Input 2
       //   inputs      Output 3        -->   Input 3 (not processed)
       //
       // The net result is that each frame time, resource2 should receive
       // non-NULL buffers on input ports 0, 2 and 3.  Since resource2 is not
       // processing input buffers on input port 3, for each frame, the old

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxxxx牲另类人与| 91视频国产观看| 亚洲成人午夜影院| 亚洲国产cao| 亚洲国产成人av好男人在线观看| 一区av在线播放| 亚洲国产综合在线| 手机精品视频在线观看| 五月婷婷欧美视频| 美国毛片一区二区三区| 美女视频第一区二区三区免费观看网站| 亚洲成人自拍一区| 久久精品国产秦先生| 九色综合国产一区二区三区| 国产一区二区精品在线观看| 国产成人免费在线视频| 日韩高清国产一区在线| 国产精品一二一区| 亚洲精品乱码久久久久久久久| 制服丝袜亚洲色图| 精品美女在线观看| 中文字幕制服丝袜成人av| 亚洲乱码国产乱码精品精小说| 亚洲国产日韩综合久久精品| 久久国产麻豆精品| 成人免费高清在线| 在线91免费看| 久久久久久久久久久黄色| 17c精品麻豆一区二区免费| 亚洲小少妇裸体bbw| 国产一区在线观看麻豆| 97精品国产露脸对白| 欧美猛男gaygay网站| 久久久精品国产免费观看同学| 1000部国产精品成人观看| 午夜av电影一区| 大陆成人av片| 日韩视频免费直播| 亚洲欧美日韩国产另类专区| 麻豆精品久久精品色综合| 成人午夜免费视频| 制服丝袜亚洲色图| 亚洲蜜臀av乱码久久精品蜜桃| 久久精品国产免费| 精品视频一区三区九区| 国产精品久久毛片a| 免费看日韩精品| 欧美亚日韩国产aⅴ精品中极品| 欧美精品一区二区三区高清aⅴ| 一区二区三区四区高清精品免费观看| 国内精品伊人久久久久av影院| 91官网在线免费观看| 日本一区二区三区四区在线视频 | 亚洲精品免费在线播放| 久久精品国产精品亚洲精品| 97久久精品人人做人人爽50路| 精品国产3级a| 蜜臀av性久久久久蜜臀aⅴ四虎 | 中文字幕在线一区免费| 日本一区二区三区四区| 久久精品国产秦先生| 欧美日韩mp4| 亚洲电影一区二区| 一本久道久久综合中文字幕| 久久色.com| 麻豆国产一区二区| 欧美一级久久久| 日本视频一区二区| 欧美高清www午色夜在线视频| 伊人色综合久久天天人手人婷| 99re视频精品| 中文字幕va一区二区三区| 国产精品亚洲一区二区三区妖精 | 狠狠色丁香久久婷婷综合丁香| 91麻豆精品国产自产在线| 亚洲欧美日韩国产综合在线| 一本色道久久综合亚洲aⅴ蜜桃 | 午夜精品aaa| 欧美麻豆精品久久久久久| 午夜视频久久久久久| 欧美性videosxxxxx| 亚洲高清视频的网址| 欧美日韩在线播放三区| 视频一区在线视频| 日韩一区二区精品| 精品综合久久久久久8888| 久久久综合激的五月天| 国产东北露脸精品视频| 欧美国产精品中文字幕| 成人免费av资源| 亚洲码国产岛国毛片在线| 91精品福利视频| 午夜久久电影网| 精品蜜桃在线看| av中文一区二区三区| 亚洲综合精品久久| 日韩视频免费观看高清在线视频| 国产美女视频91| 最新中文字幕一区二区三区| 欧美丝袜丝nylons| 国产一区二区三区黄视频 | 欧美在线一区二区| 日本sm残虐另类| 久久精品亚洲麻豆av一区二区| 国产乱色国产精品免费视频| 国产精品无码永久免费888| 色噜噜狠狠成人中文综合| 日日摸夜夜添夜夜添亚洲女人| 久久精品视频一区二区三区| 91久久久免费一区二区| 久久99热狠狠色一区二区| 国产精品久久久久久久久搜平片| 欧美日韩一区二区在线视频| 精品一区二区三区免费播放| 日韩美女精品在线| 日韩欧美你懂的| 99久久精品国产毛片| 免费黄网站欧美| 一二三四区精品视频| 欧美精品一区二区三区蜜桃视频| 日本高清无吗v一区| 九一九一国产精品| 亚洲一卡二卡三卡四卡| 国产精品午夜在线| 欧美刺激脚交jootjob| 亚洲成av人片一区二区三区| 青青草原综合久久大伊人精品| 91视频xxxx| 亚洲欧美二区三区| 91小视频在线| 免费在线视频一区| 久久先锋资源网| 国产精品资源在线| 中文字幕一区日韩精品欧美| 91毛片在线观看| 日本91福利区| 精品国产在天天线2019| 国产在线不卡一区| 精品国产凹凸成av人导航| 天天综合色天天| 欧美成人高清电影在线| 精品一区二区三区免费毛片爱| 久久日一线二线三线suv| 国产一区二区三区久久久| 国产日产欧美一区| 成人精品鲁一区一区二区| 久久激情综合网| av欧美精品.com| 欧美电影在线免费观看| 日韩电影在线一区| 色94色欧美sute亚洲13| 亚洲成av人影院在线观看网| 精品国产123| 欧美性一级生活| 国产网站一区二区| 国产v综合v亚洲欧| 欧洲在线/亚洲| 日本一不卡视频| 久久色.com| 一区二区三区四区不卡视频| 国产精品―色哟哟| 亚洲啪啪综合av一区二区三区| 久久精品一二三| 中文字幕国产精品一区二区| 国产精品视频一区二区三区不卡| 中文字幕av一区二区三区高| 中文乱码免费一区二区| 亚洲色图欧洲色图婷婷| 亚洲成a人片在线不卡一二三区 | 日本精品裸体写真集在线观看 | 播五月开心婷婷综合| 亚洲男人的天堂av| 午夜精品成人在线视频| 狠狠久久亚洲欧美| 成人国产电影网| 欧美日韩国产乱码电影| 日韩欧美一区二区久久婷婷| 国产亚洲成av人在线观看导航| 国产精品国产精品国产专区不片| 亚洲一区在线免费观看| 久久精品国内一区二区三区| 国产成人啪午夜精品网站男同| 色先锋久久av资源部| 欧美一区二区国产| 国产精品网站在线观看| 图片区小说区国产精品视频| 成人小视频免费观看| 在线电影欧美成精品| 国产精品国模大尺度视频| 无码av中文一区二区三区桃花岛| 高清日韩电视剧大全免费| 欧美日韩免费观看一区三区| 国产日韩精品一区| 午夜伦理一区二区| 99re热这里只有精品视频| 日韩欧美在线影院| 一区二区三区毛片| 成人免费观看av| 欧美成人精品福利| 亚洲高清视频的网址|