From 7a14591e5707c4c3611ce5e9626293b6082c9beb Mon Sep 17 00:00:00 2001 From: Ryan Walter Murray Date: Fri, 23 Jan 2026 11:24:21 +0100 Subject: [PATCH 1/2] Minimal test exposing bug --- tests/test_dfs0.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/test_dfs0.py b/tests/test_dfs0.py index c2c40be..4e50450 100644 --- a/tests/test_dfs0.py +++ b/tests/test_dfs0.py @@ -25,6 +25,33 @@ class Dfs0Tests(unittest.TestCase): # maxValue = examples_dfs0.FindMaxValue("testdata/data_ndr_roese.dfs0", 4); # assert_equal(1.0754467248916626, maxValue); + def test_many_open_closes_1(self): + fn = r"testdata\Rain_accumulated.dfs0" + + for i in range(1000): + dfs = DfsFile() + dfs.Open(fn) + + # if you close, then this does not error + #dfs.Close() + + def test_many_open_closes_2(self): + fn = r"testdata\Rain_accumulated.dfs0" + + files = [] + + # if this exceeds 509, we get problem. + # probably related to 512 limit of max number of files open at one time + # https://stackoverflow.com/questions/870173/is-there-a-limit-on-number-of-open-files-in-windows + for i in range(509): + dfs = DfsFile() + dfs.Open(fn) + files.append(dfs) + + for dfs in files: + dfs.Close() + + def test_Read_non_ascii_itemname(self): dfs = DfsFile() dfs.Open("testdata/TS_non_ascii.dfs0") From 23b6a4e3bd268c0b03d6c6e8bb6a6137a2f61fc2 Mon Sep 17 00:00:00 2001 From: Ryan Walter Murray Date: Fri, 23 Jan 2026 12:47:35 +0100 Subject: [PATCH 2/2] Fix path to test data --- tests/test_dfs0.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_dfs0.py b/tests/test_dfs0.py index 4e50450..81d861c 100644 --- a/tests/test_dfs0.py +++ b/tests/test_dfs0.py @@ -26,7 +26,7 @@ class Dfs0Tests(unittest.TestCase): # assert_equal(1.0754467248916626, maxValue); def test_many_open_closes_1(self): - fn = r"testdata\Rain_accumulated.dfs0" + fn = "testdata/Rain_accumulated.dfs0" for i in range(1000): dfs = DfsFile() @@ -36,7 +36,7 @@ def test_many_open_closes_1(self): #dfs.Close() def test_many_open_closes_2(self): - fn = r"testdata\Rain_accumulated.dfs0" + fn = "testdata/Rain_accumulated.dfs0" files = []