Articles of testing

如何重新configuration​​谷歌testing的32位embedded式软件?

我已经设法根据这个安装Googletesting。 我的问题是:我必须testing一个32位操作系统的embedded式软件开发项目,所以我需要重新configurationGoogletesting从64位。 用旧的1.7.0版本知道解决scheme是这样的: autoreconf -fvi ./configure –build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" make 这是我现在使用新版本的方法: cd home/CWD/googletest/googlemock autoreconf -fvi ./configure –build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" cd home/CWD/googletest/googletest autoreconf -fvi ./configure –build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" cd .. mkdir googletest_build cd googletest_build cmake -DCMAKE_INSTALL_PREFIX:PATH=/home/me/googletest ../googletest make make install 这是否是因为我找不到其他地方的configuration文件,除了terminal中显示的结果与1.7.0版本的重新configuration相同。 但使用后: make UTEST=yes project_Name 我得到这个: Linking… project_Name GTEST_LDFLAGS=-L ../../googletest//lib/ -lpthread -lgtest -lgtest_main […]

Python:如果我的软件包在Linux,Mac和Windows上运行,我该如何testing它

我需要testing我的Python包,如果它在不同的系统上正常工作。 我发现不同的Python版本的Tox ,但不同的操作系统,如Windows,Linux和Mac呢? 你能推荐一个方便的方法来testing我的代码是否适用于所有系统?

是否有必要在所有的Windows操作系统和所有版本上testing我的应用程序?

我将testing声称在Windows XP,Windows Vista和Windows 7上运行的应用程序。我知道我必须为32位和64位(如果存在的话)中的每一个testing应用程序,但是我不知道是否有必要testing每个操作系统的每个版本。 例如,如果我已经testing过Windows 7 Ultimate或Home,是否真的需要testingWindows 7 Starter? 如果我已经testing过Windows Vista Home Premium,是否需要testingWindows Vista Business? 等等 … testing应该支持的三种风格中的每一种版本都是非常耗时的: Windows XP Home w / SP2 Windows XP Professional w / SP2 Windows Vista Starter Windows Vista家庭基本版 Windows Vista家庭高级版 Windows Vista Business Windows Vista企业版 Windows Vista Ultimate Windows 7入门 Windows 7家庭普通版 Windows 7家庭高级版 Windows 7专业版 Windows 7企业版 […]

如何确保数据到达存储器,绕过内存/caching/缓冲IO?

在Linux中,如何确保我的系统write()调用(和类似的write-IO调用/变体)到达非易失性存储,绕过内存/caching/缓冲IO?

如何让我的系统支持纳秒精度

当我从这个页面运行代码high_precision_timer时 ,我知道我的系统只支持微秒精度。 根据该文件, cout << chrono :: high_resolution_clock :: period :: den << endl; 请注意,并不能保证每秒有多less滴答,只有最高可用。 因此,我们要做的第一件事是通过打印一秒钟多less次来获得精度。 我的系统每秒提供1000000个滴答,这是一个微妙的精度。 我也得到完全相同的价值每秒1000000蜱。 这意味着我的系统也支持微秒精度。 每次我运行任何程序,我总是得到价值xyz微秒和xyz000 nanosec。 我认为上述不支持我的系统nanosec可能是原因。 有没有办法让我的系统nanosec支持?

lmbench如何用C测量L1和L2caching的等待时间? (在手册中不能理解说明)

我想了解lmbench如何测量L1,L2和主内存的延迟。 lat_mem_rd的手册页提到了这个方法,但是我不清楚: 基准运行为两个嵌套循环。 外部循环是步幅大小。 内部循环是数组大小。 对于每个arrays大小,基准testing会创build一个指向前进一步的指针环。 遍历数组是由 p =(char **)* p; 在for循环中(for循环的头部不重要;循环是展开循环1000加载长)。 循环完成一百万次加载后停止。 你如何“创造一个指向前进的指针环”? 这是不是意味着如果stride的大小是128字节,你需要build立一个链接列表,每个节点与前一个节点相距128字节? malloc只是返回一些随机的免费内存,所以我不明白在C中是如何可能的。而在这段代码中,我总是会遇到分段错误。 (testing过了,p应该用什么初始化?) SO( 链接 )上有一个类似的线程,第一个答案讨论了这个问题,但是它没有提到如何使用链表来描述链表。 我也看了看源代码本身(lat_mem_rd.c),但是也不能理解这个。 任何帮助表示赞赏。

寻找一种准确的方法来微观testing用C ++编写的并在Linux / OSX上运行的小代码path

我正在寻找一些非常基本的微型基准testing,例如我用C ++编写的小型代码path,比如紧密循环。 我在Linux和OSX上运行,并使用GCC。 什么设施有亚毫秒的精度? 我正在考虑多次运行代码path的简单testing(几千万?)会给我足够的一致性,以获得良好的阅读。 如果有人知道更好的方法,请随时提出build议。

C / asm程序在由非特权用户运行时对Linux有什么危害?

我一直在想一个场景,让用户(可以是任何人,可能是坏的意图)提交在Linux PC上运行的代码(我们称之为基准节点)。 目标是为单线程例程创build一种自动化的基准testing环境。 假设一个网站向代理发布一些代码。 这个代理把这个代码交给基准节点,基准节点只有一个到代理的以太网连接,而不是互联网本身。 如果让一个用户在C / ASM代码上运行基准节点,会面临什么样的安全挑战? 做出以下假设: 该程序作为非特权用户运行 代理将有机会杀死基准节点上的进程(例如以无限循环为例) 代理能够重新启动基准节点(如果它回复…) 那么,这个用户空间程序实际上可能会使操作系统崩溃,还是使代理不可用? 通过汇编,程序员可以基本上做他想做的任何事情(例如操纵堆栈指针),我想知道Linux在这方面的限制/强大。 我也知道进程可能需要与其他进程(shm)共享内存区域,这也可能在这里起作用。 任何有关这个问题的文献或文章都非常受欢迎。 沙盒解决scheme也可能是有趣的,但重要的是,CPU必须执行它在基准testing期间的100%的能力(至less在基准testing的核心上)。

由于套接字失败,围困中止

我遇到这个问题,同时试图从Mac OS X 10.8.3围攻下面的cmd。 siege -d1 -c 20 -t2m -i -f -r10 urls.txt Siege的输出如下: ** SIEGE 2.74 ** Preparing 20 concurrent users for battle. The server is now under siege… done. siege aborted due to excessive socket failure; you can change the failure threshold in $HOME/.siegerc Transactions: 0 hits Availability: 0.00 % Elapsed time: 27.04 […]

Linux基准testing工具

我被要求评估一个新的供应商的计算系统,pipe理层要求我不使用我们现有的任何软件来评估平台(不pipe你信不信,有一些合理的理由)。 无论如何,我已经开始尝试阅读服务器级计算机的有意义的基准testing程序,但是并没有给我们留下深刻的印象。 我试图展示原始计算能力和内存I / O吞吐量。 任何build议,我应该运行有意义的testing? – 我将可以访问现有系统和系统,以评估所有这些testing。