Manual——Test (翻译1)
LTE Manual ——Logging(翻译)
(本文为个人学习笔记,如有不当的地方,欢迎指正!)
1.17.3 Testing framework(测试框架)
(2)Test.py
$ ./waf configure --enable-examples --enable-tests
$ ./waf build
$ ./test.py
Waf: Entering directory '/home/craigdo/repos/ns--allinone-test/ns--dev/build'
Waf: Leaving directory '/home/craigdo/repos/ns--allinone-test/ns--dev/build'
'build' finished successfully (.939s)
FAIL: TestSuite propagation-loss-model
PASS: TestSuite object-name-service
PASS: TestSuite pcap-file-object
PASS: TestSuite ns3-tcp-cwnd
...
PASS: TestSuite ns3-tcp-interoperability
PASS: Example csma-broadcast
PASS: Example csma-multicast
Usage: test.py [options] Options:
-h, --help show this help message and exit
-b BUILDPATH, --buildpath=BUILDPATH
specify the path where ns- was built (defaults to the
build directory for the current variant)
-c KIND, --constrain=KIND
constrain the test-runner by kind of test
-e EXAMPLE, --example=EXAMPLE
specify a single example to run (no relative path is
needed)
-d, --duration print the duration of each test suite and example
-e EXAMPLE, --example=EXAMPLE
specify a single example to run (no relative path is
needed)
-u, --update-data If examples use reference data files, get them to re-
generate them
-f FULLNESS, --fullness=FULLNESS
choose the duration of tests to run: QUICK, EXTENSIVE,
or TAKES_FOREVER, where EXTENSIVE includes QUICK and
TAKES_FOREVER includes QUICK and EXTENSIVE (only QUICK
tests are run by default)
-g, --grind run the test suites and examples using valgrind
-k, --kinds print the kinds of tests available
-l, --list print the list of known tests
-m, --multiple report multiple failures from test suites and test
cases
-n, --nowaf do not run waf before starting testing
-p PYEXAMPLE, --pyexample=PYEXAMPLE
specify a single python example to run (with relative
path)
-r, --retain retain all temporary files (which are normally
deleted)
-s TEST-SUITE, --suite=TEST-SUITE
specify a single test suite to run
-t TEXT-FILE, --text=TEXT-FILE
write detailed test results into TEXT-FILE.txt
-v, --verbose print progress and informational messages
-w HTML-FILE, --web=HTML-FILE, --html=HTML-FILE
write detailed test results into HTML-FILE.html
-x XML-FILE, --xml=XML-FILE
write detailed test results into XML-FILE.xml
如果指定可选的输出方式,可以生成详细的测试和状态描述。可选的样式有 text 和 HTML 。buildbots 选择 HTML 方式生成 HTML 测试报告用于 nightly builds :
$ ./test.py --html=nightly.html
$ ./test.py --text=results.txt
$ ./test.py --suite=propagation-loss-model
或者等价于
$ ./test.py -s propagation-loss-model
结果是单个 test suite 正在运行。
FAIL: TestSuite propagation-loss-model
$ ./test.py --suite=propagation-loss-model --text=results.txt
FAIL: Test Suite ''propagation-loss-model'' (real 0.02 user 0.01 system 0.00)
PASS: Test Case "Check ... Friis ... model ..." (real 0.01 user 0.00 system 0.00)
FAIL: Test Case "Check ... Log Distance ... model" (real 0.01 user 0.01 system 0.00)
Details:
Message: Got unexpected SNR value
Condition: [long description of what actually failed]
Actual: 176.395
Limit: 176.407 +- 0.0005
File: ../src/test/ns3wifi/propagation-loss-models-test-suite.cc
Line:
$ ./test.py --constrain=unit
相似地,下列命令会导致只有 example smoke tests 运行:
$ ./test.py --constrain=unit
为了快速看到合法的约束列表,你可以要求它们列举出来。下使用列代码:
$ ./test.py --kinds
Waf: Entering directory '/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build'
Waf: Leaving directory '/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build'
'build' finished successfully (.939s)Waf: Entering directory '/home/craigdo/repos/ns-3-allinone-test/ns-3-dev/build'
bvt: Build Verification Tests (to see if build completed successfully)
core: Run all TestSuite-based tests (exclude examples)
example: Examples (to see if example programs run successfully)
performance: Performance Tests (check to see if the system is as fast as expected)
system: System Tests (spans modules to check integration of modules)
unit: Unit Tests (within modules to check basic functionality)
$ ./test.py --list
Waf: Entering directory `/home/craigdo/repos/ns--allinone-test/ns--dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns--allinone-test/ns--dev/build'
'build' finished successfully (.939s) Test Type Test Name
--------- ---------
performance many-uniform-random-variables-one-get-value-call
performance one-uniform-random-variable-many-get-value-calls
performance type-id-perf
system buildings-pathloss-test
system buildings-shadowing-test
system devices-mesh-dot11s-regression
system devices-mesh-flame-regression
system epc-gtpu
...
unit wimax-phy-layer
unit wimax-service-flow
unit wimax-ss-mac-layer
unit wimax-tlv
example adhoc-aloha-ideal-phy
example adhoc-aloha-ideal-phy-matrix-propagation-loss-model
example adhoc-aloha-ideal-phy-with-microwave-oven
example aodv
...
$ ./test.py --example=udp-echo
PASS: Example examples/udp/udp-echo
$ ./test.py --buildpath=/home/craigdo/repos/ns--allinone-test/ns--dev/build/debug --example=wifi-simple-adhoc
$ ./test.py --pyexample=examples/tutorial/first.py
会导致单个 example 运行,
PASS: Example examples/tutorial/first.py
$ ./test.py --list --nowaf
将会导致显示当前已经编译的 test suites ,类似于:
propagation-loss-model
ns3-tcp-cwnd
ns3-tcp-interoperability
pcap-file
object-name-service
random-variable-stream-generators
$ ./test.py --grind
$ ./test.py --retain
$ ./test.py --verbose
$ ./test.py --verbose --grind --constrain=core --html=results.html
(3)TestTaxonomy
- Build Verification Tests
- Unit Tests
- System Tests
- Examples
- Performance Tests
- QUICK
- EXTENSIVE
- TAKES_FOREVER
(3d)Examples
(4)Running Tests(运行测试)
$ ./waf --configure --enable-examples --enable-tests
(5)Debugging Tests
$ ./waf --run "test-runner --help"
你会看到类似下面的输出:
Usage: /home/craigdo/repos/ns--allinone-test/ns--dev/build/utils/ns3-dev-test-runner-debug [OPTIONS] Options:
--help : print these options
--print-test-name-list : print the list of names of tests available
--list : an alias for --print-test-name-list
--print-test-types : print the type of tests along with their names
--print-test-type-list : print the list of types of tests available
--print-temp-dir : print name of temporary directory before running
the tests
--test-type=TYPE : process only tests of type TYPE
--test-name=NAME : process only test whose name matches NAME
--suite=NAME : an alias (here for compatibility reasons only)
for --test-name=NAME
--assert-on-failure : when a test fails, crash immediately (useful
when running under a debugger
--stop-on-failure : when a test fails, stop immediately
--fullness=FULLNESS : choose the duration of tests to run: QUICK,
EXTENSIVE, or TAKES_FOREVER, where EXTENSIVE
includes QUICK and TAKES_FOREVER includes
QUICK and EXTENSIVE (only QUICK tests are
run by default)
--verbose : print details of test execution
--xml : format test run output as xml
--tempdir=DIR : set temp dir for tests to store output files
--datadir=DIR : set data dir for tests to read reference files
--out=FILE : send test result to FILE instead of standard output
--append=FILE : append test result to FILE instead of standard output
$ ./waf shell
$ cd build/utils
$ gdb ns3-dev-test-runner-debug
$ run --suite=global-value --assert-on-failure
$ ./waf --run "test-runner --suite=pcap-file"
$ NS_LOG="Packet" ./waf -- run "test-runner -- suite=pcap-file"
例如,对 “lte-test-rr-ff-mac-scheduler.cc” 添加日志功能,可以获取相关的吞吐量信息,使用类似上述的命令:
$ NS_LOG="LenaTestRrFfMacScheduler" ./waf --run "test-runner --suite=lte-rr-ff-mac-scheduler" >& log5.out
可以在 log5.out 中查看有用的日志信息,部分截图如下:
(5a)Test output(测试输出)
/tmp/ns-3.10.25.37.
$ ./test.py -r
(5b)Reporting of test failures(上报测试失败)
$ ./waf --run "test-runner --suite=pcap-file --out=myfile.txt"
(5c)Debugging test suite failures
CRASH: TestSuite ns3-wifi-interference
$ ./waf --command-template="gdb %s" --run "test-runner"
Waf: Entering directory `/home/tomh/hg/sep09/ns--allinone/ns--dev-/build'Waf: Leaving directory `/home/tomh/hg/sep09/ns-3-allinone/ns-3-dev-678/build''build' finished successfully (.380s)
GNU gdb 6.8-debian
Copyright (C) Free Software Foundation, Inc.
L cense GPLv3+: GNU GPL version or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
(gdb) r --suite=
Starting program: <..>/build/utils/ns3-dev-test-runner-debug --suite=ns3-wifi-interference
[Thread debugging using libthread_db enabled]
assert failed. file=../src/core/model/type-id.cc, line=, cond="uid <= m_information.size () && uid != 0"
...
这里还有另外一个例子教你如何使用 valgrind 调试内存问题,例如:
VALGR: TestSuite devices-mesh-dot11s-regression $ ./waf --command-template="valgrind %s --suite=devices-mesh-dot11s-regression" --run test-runner
(5)Class TestRunner
(6)Test Suite
- Build Verification Tests
- Unit Tests
- System Tests
- Examples
- Performance Tests
class MySuite : public TestSuite
{
public:
MyTestSuite ();
}; MyTestSuite::MyTestSuite ()
: TestSuite ("my-test-suite-name", UNIT)
{
AddTestCase (new MyTestCase, TestCase::QUICK);
}
static MyTestSuite myTestSuite;
(7)Test Case
class MyTestCase : public TestCase{
MyTestCase ();
virtual void DoSetup (void);
virtual void DoRun (void);}; MyTestCase::MyTestCase ()
: TestCase ("Check some bit of functionality"){} voidMyTestCase::DoRun (void){
NS_TEST_ASSERT_MSG_EQ (true, true, "Some failure message");}
Manual——Test (翻译1)的更多相关文章
- 【socket编程】select manual page翻译
原文: select manual page 依赖的头文件 /* According to POSIX.1-2001, POSIX.1-2008 */ #include <sys/select. ...
- trove manual installation 翻译
目标 此文件提供了一步一步的指导手动安装trove在一个现有OpenStack的环境为了开发. 该文件将不包括: OpenStack的设置 trove服务配置 要求 正在运行的OpenStack的环境 ...
- 开始进行lammps手册的学习啦,跟着Manual一边翻译一边做吧!(转载)
转载自:http://blog.sina.com.cn/s/blog_64813e370100ngsz.html 注明:黄色部分基本上为不懂的部分,红色字体为所做注释 一.各种文件的介绍: 1 in ...
- Show Global Status 整理
原文来源:MySQL 5.5 Reference Manual 部分翻译取自:<MySQL_5.1中文参考手册> 转载请注明原文链接http://www.cnblogs.com/lenag ...
- 生物信息学工具--bowtie&bowtie2
Bowtie和Bowtie2使用 [怪毛匠子整理] Source URL: http://www.bbioo.com/lifesciences/40-112837-1.html Bowtie和Bowt ...
- LwIP Application Developers Manual2---Protocols概览
1.前言 本文是对LwIP Application Developers Manual的翻译 lwIP是模块化的并支持广泛的协议,这些大部分协议可以被裁减从而减小代码的尺寸 2.协议概览 链路层和网络 ...
- LwIP Application Developers Manual1---介绍
1.前言 本文主要是对LwIP Application Developers Manual的翻译 2.读者(应用开发手册的读者) 谁适合读这份手册 网络应用的开发者 想了解lwIP的网络应用开发者 阅 ...
- Xming 多屏选项
最早接触xming是从GrADS软件弹出的那个窗口开始的.到后来发现它是一个显示图形界面的软件,设置multiwindow 选项,xshell+xming连远程服务器,屡试不爽.随着设备升级,用上了双 ...
- MySQL - Show Processlist 整理
MySQL - Show Processlist 整理 原文来源:MySQL 5.5 Reference Manual 部分翻译取自:<MySQL_5.1中文参考手册> 转载请注明原文 ...
- MySQL - Show Processlist 整理(转)
原文来源:MySQL 5.5 Reference Manual 部分翻译取自:<MySQL_5.1中文参考手册> 转载请注明原文链接http://www.cnblogs.com/len ...
随机推荐
- Spark:读取hdfs gz压缩包
spark 1.5.1是支持直接读取gz格式的压缩包的,和普通文件没有什么区别: 使用spark-shell进入spark shell 交互界面: 输入命令: sc.textFile("\h ...
- Hadoop基础知识
摘要:Hadoop的安装目录了解.etc的核心配置项.hadoop的启动.HDFS文件的block块级副本的存放策略.checkpoint触发设置. 1.hadoop目录了解 bin:可执行文件,命令 ...
- Python爬虫学习
lxml相关 http://blog.csdn.net/kl28978113/article/details/52241678 lxml安装 http://www.lfd.uci.edu/~gohl ...
- 阿里云推荐码 hut29f
阿里云 推荐码 hut29f,适用于新手首次购买.
- Office2010安装错误1402问题(我安装成功了)
转载:http://blog.sina.com.cn/s/blog_555ea2470101831d.html 做个记录. 1.卸载OFFICE 使用工具 MicrosoftFixit,Window ...
- 二十七、JDK1.5新特性---Annotation
上篇文章介绍了反射的一些基础知识以及应用案例,本文将介绍jdk 1.5 出现的新特性——Annotation也就是我们所说的注解,即使用注释的方式加入一些程序的信息. 注解相当于一种标记,在程序中加了 ...
- Database cannot be started in this edition of SQL Server" error when restoring a Microsoft Dynamics CRM database
处理办法:http://support.microsoft.com/kb/2567984
- XML转换JSON的工具使用方法
1.xml的文件,文件的内容如下: <?xml version="1.0" encoding="UTF-8" standalone="yes&q ...
- java 线程 障碍器
package de.bvb; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.TimeUnit; /** ...
- 定时备份SQL SERVER的数据库并且把备份文件复制到另外一台服务器
需求介绍:每天备份线上正式库并且把备份文件复制到测试服务器,测试服务器自动把数据库备份文件还原. 方案介绍: 第1步:在正式库上创建存储过程用来备份数据库和复制到测试服务器,然后新建作业每天定时执行创 ...