[Tim, gets different results across whole runs of python_d ../Lib/test/regrtest.py -R 2:40: test_filecmp test_exceptions ]
I think I found the cause for test_filecmp giving different results across runs, at least on Windows. It appears to be due to this test line: self.failUnless(d.same_files == ['file']) and you _still_ think I'm nuts ;-) The skinny is that d = filecmp.dircmp(self.dir, self.dir_same) and filecmp contains a module-level _cache with a funky scheme for avoiding file comparisons if various os.stat() values haven't changed. But st_mtime on Windows doesn't necessarily change when a file is modified -- it has limited resolution (2 seconds on FAT32, and I'm having a hard time finding a believable answer for NTFS (which I'm using)). In any case, filecmp._cache _usually_ doesn't change during a run, but sometimes it sprouts a new entry, like {('c:\\docume~1\\owner\\locals~1\\temp\\dir\\file', 'c:\\docume~1\\owner\\locals~1\\temp\\dir-same\\file'): ((32768, 27L, 1149640843.78125), (32768, 27L, 1149640843.796875), True) } and then that shows up as a small "leak". That's easily repaired, and after doing so I haven't seen test_filecmp report a leak again. test_exceptions is a different story. My first 12 post-fix runs of: python_d ..\Lib\test\regrtest.py -R2:40: test_filecmp test_exceptions gave leak-free: test_filecmp beginning 42 repetitions 123456789012345678901234567890123456789012 .......................................... test_exceptions beginning 42 repetitions 123456789012345678901234567890123456789012 .......................................... All 2 tests OK. [25878 refs] output, but the 13th was unlucky: test_filecmp beginning 42 repetitions 123456789012345678901234567890123456789012 .......................................... test_exceptions beginning 42 repetitions 123456789012345678901234567890123456789012 .......................................... test_exceptions leaked [0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] references All 2 tests OK. [25883 refs] Running test_filecmp too isn't necessary for me to see this -- test_exceptions can be run by itself, although it typically takes me about 15 runs before "a leak" is reported. When a leak is reported, it's always 203, and there's only one of those in the leak vector, but I've seen it at index positions 0, 1, 2, and 3 (i.e., it moves around; it was at index 1 in the output above). Anyone bored enough to report what happens on Linux? Anyone remember adding a goofy cache to exception internals? a-suitable-msg-for-6/6/6-ly y'rs - tim _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com