• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Ns2中的測試用例

    發表于:2009-03-05來源:作者:點擊數: 標簽:
    1測試用例說明 在NS2的源代碼包中包含了幾乎所有協議的 測試 代碼,全部存放在ns2\tcl\test目錄下,即test-suite-*.tcl這樣的文件。每個文件基本就對應一個協議,而且有一個對應的輸出目錄存放供比較用的運行結果。在運行test-suite-*.tcl之后將會產生一個te

    1測試用例說明
            在NS2的源代碼包中包含了幾乎所有協議的測試代碼,全部存放在ns2\tcl\test目錄下,即test-suite-*.tcl這樣的文件。每個文件基本就對應一個協議,而且有一個對應的輸出目錄存放供比較用的運行結果。在運行test-suite-*.tcl之后將會產生一個temp.rands文件,只要這個文件和相應目錄下的文件比較相一致就說明NS2的安裝是正確的。
            如test-suite-adaptive-red.tcl這個文件的對應目錄就是test-output-adaptive-red。
            每個測試用的tcl文件中都使用了一個或多個測試用例,因此output目錄下也對應有一個或者多個文件,這些供比較用的文件都是用gzip壓縮的,比較前應先解壓縮。通過ns test-suite-*.tcl這樣的命令可以知道每個TCL文件所支持的測試用例。使用ns test-suite-*.tcl test_name這樣的格式就可以調用指定的測試用例。

            Ns test-suite-adaptive-red.tcl red1
            就指明了要調用red1這個測試用例,運行之后在測試目錄下生成temp.rands文件,將這個文件與test-output-adaptive-red\red1.Z解壓縮后的文件進行比較即可。
    2測試代碼
            在此測試目錄下同時提供了完整的測試Shell代碼,不過很遺憾在windows下沒法運行(需要cygwin),于是自己動手寫了下面的C++代碼進行完整的測試。
    // NsTest.cpp : 定義控制臺應用程序的入口點。
    //
     
    #include "stdafx.h"
    #include <windows.h>
    #include <fstream>
    #include <math.h>
    using namespace std;
     
    #define TEST_PATH "d:\\temp\\test\\"
    #define FIND_MASK "d:\\temp\\test\\test-suite-*.tcl"
    #define NS_PATH "d:\\research\\debug\\ns-2.31.exe"
     
    void Compare(char* f1, char* f2)
    {
         // 比較兩個文件是否相同,之所以不用cmp進行比較,是因為在不同版本生成的數據中輸出格式可能會不一致,
         // 主要是科學計數法輸出的不一致,如提供的原始數據為.2e-05,而生成的數據為.2e-005
         ifstream s1(f1);
         ifstream s2(f2);
         if(s1.is_open() && s2.is_open())
         {
             char line1[2048], line2[2048];
             int nLine = 0;
             while(!s1.eof() && !s2.eof())
             {
                  nLine++;
                  s1.getline(line1, 2048);
                  s2.getline(line2, 2048);
                  if(strcmp(line1, line2) == 0) continue;
                  double d[4];
                  sscanf(line1, "%lf %lf", &d[0], &d[1]);
                  sscanf(line2, "%lf %lf", &d[2], &d[3]);
                  if(fabs(d[0] - d[2]) > 0.00005 || fabs(d[1] - d[3]) > 0.005)
              

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>