summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-blocks/lib/file_source_impl.cc1
-rw-r--r--gr-blocks/python/blocks/qa_file_source_sink.py16
2 files changed, 17 insertions, 0 deletions
diff --git a/gr-blocks/lib/file_source_impl.cc b/gr-blocks/lib/file_source_impl.cc
index 941ca15c0e..0c3d752d9c 100644
--- a/gr-blocks/lib/file_source_impl.cc
+++ b/gr-blocks/lib/file_source_impl.cc
@@ -67,6 +67,7 @@ namespace gr {
d_updated(false)
{
open(filename, repeat);
+ do_update();
}
file_source_impl::~file_source_impl()
diff --git a/gr-blocks/python/blocks/qa_file_source_sink.py b/gr-blocks/python/blocks/qa_file_source_sink.py
index f35912b229..89841d3be6 100644
--- a/gr-blocks/python/blocks/qa_file_source_sink.py
+++ b/gr-blocks/python/blocks/qa_file_source_sink.py
@@ -88,6 +88,22 @@ class test_file_source_sink(gr_unittest.TestCase):
result_data = snk2.data()
self.assertFloatTuplesAlmostEqual(expected_result, result_data)
+ def test_file_source_can_seek_after_open(self):
+ src_data = range(1000)
+
+ filename = "tmp.32f"
+ src = blocks.vector_source_f(src_data)
+ snk = blocks.file_sink(gr.sizeof_float, filename)
+ snk.set_unbuffered(True)
+
+ self.tb.connect(src, snk)
+ self.tb.run()
+
+ source = blocks.file_source(gr.sizeof_float, filename)
+ self.assertTrue(source.seek(0, os.SEEK_SET))
+
+ os.remove(filename)
+
if __name__ == '__main__':
gr_unittest.run(test_file_source_sink, "test_file_source_sink.xml")