前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NS3_Tutorial 中文版: 第三

NS3_Tutorial 中文版: 第三

作者头像
py3study
发布2020-01-09 16:47:09
9300
发布2020-01-09 16:47:09
举报
文章被收录于专栏:python3python3

3.3 测试ns-3

你可以通过运行“./test.py -c core”脚本进行ns-3软件包单元测试,

./test.py -c core

这些测试可以被waf并行执行的,最后你可以看到如下的结果:

47 of 47 tests passed (47 passed, 0 failed, 0 crashed, 0 valgrind errors)

这是条相当重要的信息。

实际中,你看到的可能是类似于如下的信息:

Waf: Entering directory ‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build’

Waf: Leaving directory ‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build’

’build’ finished successfully (1.799s)

PASS: TestSuite ns3-wifi-interference

PASS: TestSuite histogram

PASS: TestSuite sample

PASS: TestSuite ipv4-address-helper

PASS: TestSuite devices-wifi

PASS: TestSuite propagation-loss-model

...

PASS: TestSuite object

PASS: TestSuite random-number-generators

47 of 47 tests passed (47 passed, 0 failed, 0 crashed, 0 valgrind errors)

用户通常可以运行此命令来检查ns-3软件包是否正确编译了。

你也可以使用我们的回归测试包来保证你的发行版和工具链产生的二进制文件会产生同参考输出文件相同的结果。你在运行/download.py过程中会下载这些参考记录。 (警告: ns-3.2ns-3.3发布版不使用ns-3-allinone环境,当你进行回归测试时需要在线环境,因为在直接运行测试之前它们需要同一个在线源码库进行参考记录的动态同步)。

在回归测试中Waf会允许一系列的测试,这些测试会产生我们所说的记录文件,记录文件的内容会和参考记录相对比,如果它们相同,那么回归测试会报告一个通过状态(PASS);如果回归测试失败你会看到一个失败标记(FAIL),和一个指针指向有问题的记录文件和它的联合参考记录文件,还附带一个差异参数和选项以便检查哪里出现错误了。如果在一个pcap文件中出现错误, 在对比之前常使用tcpdump来将pcap文件转换为文本文件。

如果需要的支持缺失,某些回归测试会被跳过,测试状态会被标记为跳过(SKIP)。

注意:回归测试也是并行的,所以产生的信息也可能是交叉出现的。

要进行回归测试,需要给Waf提供回归标记:

./waf --regression

可以看到如下信息显示进行了多项测试:

Entering directory ‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build’

[647/669] regression-test (test-csma-bridge)

[648/669] regression-test (test-csma-broadcast)

[649/669] regression-test (test-csma-multicast)

[650/669] regression-test (test-csma-one-subnet)

PASS test-csma-multicast

[651/669] regression-test (test-csma-packet-socket)

PASS test-csma-bridge

...

Regression testing summary:

PASS: 22 of 22 tests passed

Waf: Leaving directory ‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build’

’build’ finished successfully (25.826s)

如果你想看看在回归测试中有哪些项目测试的例子,可以使用如下命令:

cd build/debug/regression/traces/second.ref

tcpdump -nn -tt -r second-2-0.pcap

这些结果对于熟悉tcpdump或者网络嗅探器是很清楚的,在本教程的后半部分我们会更多地提及pcap文件。

在一切完成后,请用cd命令返回顶层ns-3目录:

cd ../../../../..

3.4 运行第一个脚本

我们通常使用Waf运行脚本,这将使编译系统正确设置共享库的路径,并保证这些共享库在运行时可用,如果要运行一个程序,只需在Waf加入—run选项即可,让我们在ns-3环境下运行常见的hello world程序试一下:

./waf --run hello-simulator

Waf首先检查程序正确编译了,而且还可以根据需要重新执行编译。

Waf执行了此程序,并输出如下信息:

Hello Simulator

祝贺你. 你现在是一名ns-3用户了!

如果你想在其他工具下如gdb或者valgrind下运行程序,可参见本Wiki条目。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档