[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Problems running testsuite on Windows with Python 3

From: Yasuhito FUTATSUKI <futatuki_at_poem.co.jp>
Date: Wed, 6 May 2020 17:35:55 +0900

On 2020/05/04 4:49, Johan Corveleyn wrote:
> On Sun, May 3, 2020 at 6:23 PM Yasuhito FUTATSUKI <futatuki_at_poem.co.jp> wrote:
>>
>> On 2020/05/03 10:02, Johan Corveleyn wrote:
>>> On Fri, May 1, 2020 at 7:46 PM Yasuhito FUTATSUKI <futatuki_at_poem.co.jp> wrote:
>>>>
>>>> On 2020/04/23 2:05, Yasuhito FUTATSUKI wrote:

>>>> It seems following tests are EOL style sensitive, but they didn't
>>>> check without strict EOL style on Windows:
>>>>
>>>> merge_tests.merge_conflict_markers_matching_eol
>>>> merge_tests.merge_eolstyle_handling
>>>> patch_tests.patch_no_svn_eol_style
>>>> patch_tests.patch_with_svn_eol_style
>>>> patch_tests.patch_with_svn_eol_style_uncommitted
>>>> update_tests.conflict_markers_matching_eol
>>>> update_tests.update_eol_style_handling
>>>>
>>>> I've not check that each tests depend that native EOL is '\n' or not.
>>>> However, I think if some tests depend on it, other test cases for
>>>> those aims are needed on Windows, or at least explicitly skip the tests
>>>> on Windows to clarify that those tests check nothing for the aims.
>>>>
>>>> The updated patch attached only make these tests EOL style sensitive
>>>> (and relax check of EOL on Python 2 if keep_eol_style optional
>>>> parameter is not specified).
>>>
>>> Thank you for continuing to work on this, Yasuhito.
>>>
>>> This patch indeed fixes the above 7 tests when running with Python 3 on Windows.
>>> However, when running with Python 2 there are now 6 tests that fail
>>> (without this patch, all tests are successful with Py2):
>>
>> Thank you for testing.
>>
>> As far as this test result, those test cases don't depend on specific
>> native EOL.
>>
>>> FAIL: merge_tests.py 34: conflict markers should match the file's eol style
>>> FAIL: patch_tests.py 13: patch target with no svn:eol-style
>>> FAIL: patch_tests.py 14: patch target with svn:eol-style
>>> FAIL: patch_tests.py 15: patch target with uncommitted svn:eol-style
>>> FAIL: patch_tests.py 57: patch a binary file
>>> FAIL: update_tests.py 26: conflict markers should match the file's eol style
>>>
>>> See fails.log in attachment.
>>
>> I overlooked that result of io.TextIO.read() is unicode on Python 2.
>> I hope updated patch may resolve this issue.
>
> Okay, that latest version fixes this test for Python 2:
>
> patch_tests.py 57: patch a binary file
>
> But the five other failures still remain for Py2:
>
> FAIL: merge_tests.py 34: conflict markers should match the file's eol style
> FAIL: patch_tests.py 13: patch target with no svn:eol-style
> FAIL: patch_tests.py 14: patch target with svn:eol-style
> FAIL: patch_tests.py 15: patch target with uncommitted svn:eol-style
> FAIL: update_tests.py 26: conflict markers should match the file's eol style
>
> See fails_py2.log in attachment.

I read those test code again, and I found that they don't distinct
text I/O and binary I/O when they write to files in some case, So I
updated the patch address them. (sain_keep_eol_style_win_patch_20200506.txt)

> For Python 3 we're getting close. After this patch and the one for
> svnrdump_tests, we only have 2 failures left with Python 3:

Please don't forget our goal is not to make the tests be passed but
to make the tests check what we want to check, on Windows both with
py2 and py3.

I've fixed the test codes to make them what the author intended I think.
If the results of py2 and py3 are still different, the test code are
still broken. With a broken test, we can't warrant ether the test target
code is correct or the test case is correct, even if the tests can be
passed. So we should also check the test cases (scenarios and expected
results) themselves are correct on Windows(, and I didn't it... at
least, yet).
 
> FAIL: svnadmin_tests.py 35: detect denormalized names and name collisions

This is caused by output message of svnadmin, containing non UTF-8
character. Attached patch fix_svnadmin_tests_patch.txt address it,
however I don't have confidence because I don't know what charset/encoding
svnadmin on Windows use. With Python 2, output message is treated
as bytes as is, this is not affected.

> FAIL: svndumpfilter_tests.py 7: svndumpfilter with an empty prefix

It seems this is just same reason as svnrdump_tests.py was broken.
(fix_svndumpfilter_tests_patch.txt)

Cheers,

-- 
Yasuhito FUTATSUKI <futatuki_at_poem.co.jp>/<futatuki_at_yf.bsdclub.org>



Received on 2020-05-06 10:36:34 CEST

This is an archived mail posted to the Subversion Dev mailing list.