描述
我们目前正在针对我们的hdf5抽象层编写测试。
我们有一个测试,确保dataset类型的更改不会影响我们的抽象层。为了测试这一点,每次要测试数据集类型更改时,我们都会创建一个新的hdf5文件。每次操作(读/写)之后,hdf5文件将关闭。
问题是,在调用hdf5 H5F.Close()时,文件中的修改似乎不是同步编写的。
当我们的测试在调试中执行时(使用一步一步的调试器),测试是工作得很好的。
在release中执行时,测试会中断,我们的抽象层读取数据集值,即上次修改之前的dataset 值(来自以前的dataset类型)。
我们还发现,如果在I/O操作之间使用Thread.Sleep(1000)执行测试,则在发布模式下的测试是正确执行的。
问题
编辑
10.2017年4-4
经测试/实施的解决方案
环境
任何帮助都将不胜感激。谢谢你给我时间。
发布于 2017-10-05 09:11:38
来回答我自己的问题:
HDF5库正在运行良好的,错误来自我们的对象之一。
在测试期间,我正在更新缓存的对象。缓存上一次修改时间跟踪器的分辨率是第二种,在进行密集单元测试时不精确。由于这个对象在我们的HDF5文件中定义了模型,它导致读取前一个定义的类型,而不是预期的数据类型。
谢谢你抽出时间!
https://stackoverflow.com/questions/46539862
复制相似问题