NS3_Tutorial 中文版: 第三章 NS3 快速上手(续)
2010-08-06 13:00
190 查看
3.3 测试ns-3[/b]
你可以通过运行“./test.py -c core[/b]”脚本进行ns-3[/b]软件包单元测试,
./test.py -c core[/b]
这些测试可以被waf[/b]并行执行的,最后你可以看到如下的结果:
47 of 47 tests passed (47 passed, 0 failed, 0 crashed, 0 valgrind errors)[/b]
这是条相当重要的信息。
实际中,你看到的可能是类似于如下的信息:
Waf: Entering directory [/b]‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build[/b]’[/b]
Waf: Leaving directory [/b]‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build[/b]’[/b]
’build[/b]’ finished successfully (1.799s)[/b]
PASS: TestSuite ns3-wifi-interference[/b]
PASS: TestSuite histogram[/b]
PASS: TestSuite sample[/b]
PASS: TestSuite ipv4-address-helper[/b]
PASS: TestSuite devices-wifi[/b]
PASS: TestSuite propagation-loss-model[/b]
...[/b]
[/b]PASS: TestSuite object[/b]
PASS: TestSuite random-number-generators[/b]
47 of 47 tests passed (47 passed, 0 failed, 0 crashed, 0 valgrind errors)[/b]
用户通常可以运行此命令来检查ns-3[/b]软件包是否正确编译了。
你也可以使用我们的回归测试包来保证你的发行版和工具链产生的二进制文件会产生同参考输出文件相同的结果。你在运行/download.py过程中会下载这些参考记录。 (警告: ns-3.2[/b]和ns-3.3[/b]发布版不使用ns-3-allinone环境,当你进行回归测试时需要在线环境,因为在直接运行测试之前它们需要同一个在线源码库进行参考记录的动态同步)。
在回归测试中Waf[/b]会允许一系列的测试,这些测试会产生我们所说的记录文件,记录文件的内容会和参考记录相对比,如果它们相同,那么回归测试会报告一个通过状态(PASS);如果回归测试失败你会看到一个失败标记(FAIL[/b])[/b],和一个指针指向有问题的记录文件和它的联合参考记录文件,还附带一个差异参数和选项以便检查哪里出现错误了。如果在一个pcap[/b]文件中出现错误, 在对比之前常使用tcpdump[/b]来将pcap[/b]文件转换为文本文件。
如果需要的支持缺失,某些回归测试会被跳过,测试状态会被标记为跳过(SKIP)。
注意:回归测试也是并行的,所以产生的信息也可能是交叉出现的。
要进行回归测试,需要给Waf[/b]提供回归标记:
./waf --regression[/b]
可以看到如下信息显示进行了多项测试:
Entering directory [/b]‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build[/b]’[/b]
[647/669] regression-test (test-csma-bridge)[/b]
[648/669] regression-test (test-csma-broadcast)[/b]
[649/669] regression-test (test-csma-multicast)[/b]
[650/669] regression-test (test-csma-one-subnet)[/b]
PASS test-csma-multicast[/b]
[651/669] regression-test (test-csma-packet-socket)[/b]
PASS test-csma-bridge[/b]
...[/b]
Regression testing summary:[/b]
PASS: 22 of 22 tests passed[/b]
Waf: Leaving directory [/b]‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build[/b]’[/b]
’build[/b]’ finished successfully (25.826s)[/b]
如果你想看看在回归测试中有哪些项目测试的例子,可以使用如下命令:
cd build/debug/regression/traces/second.ref[/b]
tcpdump -nn -tt -r second-2-0.pcap[/b]
这些结果对于熟悉tcpdump[/b]或者网络嗅探器是很清楚的,在本教程的后半部分我们会更多地提及pcap[/b]文件。
在一切完成后,请用cd[/b]命令返回顶层ns-3[/b]目录:
cd ../../../../..[/b]
3.4 运行第一个脚本[/b]
我们通常使用Waf[/b]运行脚本,这将使编译系统正确设置共享库的路径,并保证这些共享库在运行时可用,如果要运行一个程序,只需在Waf加入―run[/b]选项即可,让我们在ns-3[/b]环境下运行常见的hello world[/b]程序试一下:
./waf --run hello-simulator[/b]
Waf首先检查程序正确编译了,而且还可以根据需要重新执行编译。
Waf[/b]执行了此程序,并输出如下信息:
Hello Simulator[/b]
祝贺你. 你现在是一名ns-3[/b]用户了!
如果你想在其他工具下如gdb[/b]或者valgrind[/b]下运行程序,可参见本Wiki[/b]条目。
你可以通过运行“./test.py -c core[/b]”脚本进行ns-3[/b]软件包单元测试,
./test.py -c core[/b]
这些测试可以被waf[/b]并行执行的,最后你可以看到如下的结果:
47 of 47 tests passed (47 passed, 0 failed, 0 crashed, 0 valgrind errors)[/b]
这是条相当重要的信息。
实际中,你看到的可能是类似于如下的信息:
Waf: Entering directory [/b]‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build[/b]’[/b]
Waf: Leaving directory [/b]‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build[/b]’[/b]
’build[/b]’ finished successfully (1.799s)[/b]
PASS: TestSuite ns3-wifi-interference[/b]
PASS: TestSuite histogram[/b]
PASS: TestSuite sample[/b]
PASS: TestSuite ipv4-address-helper[/b]
PASS: TestSuite devices-wifi[/b]
PASS: TestSuite propagation-loss-model[/b]
...[/b]
[/b]PASS: TestSuite object[/b]
PASS: TestSuite random-number-generators[/b]
47 of 47 tests passed (47 passed, 0 failed, 0 crashed, 0 valgrind errors)[/b]
用户通常可以运行此命令来检查ns-3[/b]软件包是否正确编译了。
你也可以使用我们的回归测试包来保证你的发行版和工具链产生的二进制文件会产生同参考输出文件相同的结果。你在运行/download.py过程中会下载这些参考记录。 (警告: ns-3.2[/b]和ns-3.3[/b]发布版不使用ns-3-allinone环境,当你进行回归测试时需要在线环境,因为在直接运行测试之前它们需要同一个在线源码库进行参考记录的动态同步)。
在回归测试中Waf[/b]会允许一系列的测试,这些测试会产生我们所说的记录文件,记录文件的内容会和参考记录相对比,如果它们相同,那么回归测试会报告一个通过状态(PASS);如果回归测试失败你会看到一个失败标记(FAIL[/b])[/b],和一个指针指向有问题的记录文件和它的联合参考记录文件,还附带一个差异参数和选项以便检查哪里出现错误了。如果在一个pcap[/b]文件中出现错误, 在对比之前常使用tcpdump[/b]来将pcap[/b]文件转换为文本文件。
如果需要的支持缺失,某些回归测试会被跳过,测试状态会被标记为跳过(SKIP)。
注意:回归测试也是并行的,所以产生的信息也可能是交叉出现的。
要进行回归测试,需要给Waf[/b]提供回归标记:
./waf --regression[/b]
可以看到如下信息显示进行了多项测试:
Entering directory [/b]‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build[/b]’[/b]
[647/669] regression-test (test-csma-bridge)[/b]
[648/669] regression-test (test-csma-broadcast)[/b]
[649/669] regression-test (test-csma-multicast)[/b]
[650/669] regression-test (test-csma-one-subnet)[/b]
PASS test-csma-multicast[/b]
[651/669] regression-test (test-csma-packet-socket)[/b]
PASS test-csma-bridge[/b]
...[/b]
Regression testing summary:[/b]
PASS: 22 of 22 tests passed[/b]
Waf: Leaving directory [/b]‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build[/b]’[/b]
’build[/b]’ finished successfully (25.826s)[/b]
如果你想看看在回归测试中有哪些项目测试的例子,可以使用如下命令:
cd build/debug/regression/traces/second.ref[/b]
tcpdump -nn -tt -r second-2-0.pcap[/b]
这些结果对于熟悉tcpdump[/b]或者网络嗅探器是很清楚的,在本教程的后半部分我们会更多地提及pcap[/b]文件。
在一切完成后,请用cd[/b]命令返回顶层ns-3[/b]目录:
cd ../../../../..[/b]
3.4 运行第一个脚本[/b]
我们通常使用Waf[/b]运行脚本,这将使编译系统正确设置共享库的路径,并保证这些共享库在运行时可用,如果要运行一个程序,只需在Waf加入―run[/b]选项即可,让我们在ns-3[/b]环境下运行常见的hello world[/b]程序试一下:
./waf --run hello-simulator[/b]
Waf首先检查程序正确编译了,而且还可以根据需要重新执行编译。
Waf[/b]执行了此程序,并输出如下信息:
Hello Simulator[/b]
祝贺你. 你现在是一名ns-3[/b]用户了!
如果你想在其他工具下如gdb[/b]或者valgrind[/b]下运行程序,可参见本Wiki[/b]条目。
相关文章推荐
- NS3_Tutorial 中文版: 第三章 NS3 快速上手
- NS3_Tutorial 中文版: 英文的目录和原文超链接
- NS3_Tutorial 中文版: 第一章 简介 第二章 资源
- NS3_Tutorial 中文版: 第四章 NS3 概念概述(1/2)
- 【C】【笔记】《C和指针》 第一章 快速上手 第二章 基本概念 第三章 数据 第四章 语句 第五章 操作符和表达式
- NS3_Tutorial 中文版: 第四章 NS3 概念概述(2/2)
- NS3_Tutorial 中文版: 第一章 简介
- 分享《Python 游戏编程快速上手(第3版)》高清中文版PDF+高清英文版PDF+源代码
- NS3_Tutorial 中文版: 第五章 Tweaking NS3(1/2)
- Python编程快速上手 让繁琐工作自动化 | 第三章 :实践项目
- 《Python编程快速上手:让繁琐工作自动化》【高清中文版PDF+高清英文版PDF+源代码】
- NS3_Tutorial 中文版: 第五章 Tweaking NS3(2/2)
- NS3_Tutorial 中文版: 第四章 NS3 概念概述
- The Java EE 5 Tutorial 中文版 (翻译) (第三章)
- Weex快速上手教程(Weex Tutorial)
- Weex快速上手教程(Weex Tutorial)
- Python编程快速上手-第三章实践
- Arquillian测试框架快速上手教程(三)- 使用 Arquillian 进行Java持久化测试
- 云数据库MySQL版快速上手教程
- freemarker快速上手+空值的多种处理方法