【发布时间】:2014-01-07 18:06:32
【问题描述】:
我正在尝试测试一个严重依赖一天中时间的应用程序。我希望能够像在正常时间(未加速)但在任意日期/时间段上运行程序一样执行程序。
我的第一个想法是用我自己的库调用来抽象时间检索函数调用,这将允许我改变测试行为,但我想知道是否可以不向我的代码库添加条件逻辑或构建测试变体的二进制。
我真正在寻找的是某种本地化的时域,这是否可以通过容器(如 Docker)或使用 LD_PRELOAD 来拦截调用?
我还看到了一个补丁,它允许使用 unshare(COL_TIME) 将时间与系统时间断开连接,但它看起来不像这样进入。
这似乎是一个以前必须解决过无数次的问题,有谁愿意分享他们的解决方案吗?
谢谢 阿杰
【问题讨论】:
-
您对时间的严重依赖究竟是什么?你有应用程序的完整源代码吗?它是用什么语言写的?
-
它是 c++,我可以访问整个源代码。从某种意义上说,在代码的许多部分中,正在检索当前日期时间,并且需要与为给定的测试运行提供的历史数据同步。