我的程序仅在1台Linux(14.04.3)机器上有以下问题,它运行的是Ruby 1.9.3。 该程序在所有其他Linux机器上运行时没有错误(14.04.3)。 任何帮助表示赞赏。
程序
def test_image_data
(0..@ptif_wac_true.pages-1).each do |pagenum|
@ptif_wac_true.page = pagenum
@ptif_wac_test.page = pagenum
[[0,0],[@ptif_wac_true.x_tiles-1,@ptif_wac_true.y_tiles-1]].each do |tile_x,tile_y|
tile_true = @ptif_wac_true.get_tile(tile_y,tile_x).open.read
tmp_true = Tempfile.new("tile_true_#{pagenum}_#{tile_x}_#{tile_y}", @tmp_dir)
begin
tmp_true.write(tile_true)
ensure
tmp_true.close
end
tile_test = @ptif_wac_test.get_tile(tile_y,tile_x).open.read
tmp_test = Tempfile.new("tile_test_#{pagenum}_#{tile_x}_#{tile_y}", @tmp_dir)
begin
tmp_test.write(tile_test)
ensure
tmp_test.close
end
template = "convert '#{tmp_true.path}' '#{tmp_test.path}' -compose Difference -composite -colorspace gray -format '%[fx:mean*100]' info:"
assert_operator( `#{template}`.to_f,:<=, 0.55, "Page: #{pagenum} TileX #{tile_x} TileY #{tile_y} does not look right!")
tmp_true.unlink #lets cleanup after done, its a good practice
tmp_test.unlink
end
end
我该怎么办才能解决这个问题? 以下是我得到的错误。
错误:
test_image_data(Pnm2ptifTest): IOError: closed stream ./test_pnm2ptif:155:in `read' ./test_pnm2ptif:155:in `block (2 levels) in test_image_data' ./test_pnm2ptif:154:in `each' ./test_pnm2ptif:154:in `block in test_image_data' ./test_pnm2ptif:151:in `each' ./test_pnm2ptif:151:in `test_image_data'