Re: Pristines-on-demand: fix disabled tests (#4891)
Okay, with --wc-format-version=1.8, I now get these (X)FAILs and XPASSes (fails_wc-format-version1.8.log in attachment): [[[ XFAIL: diff-diff3-test 18: 3-way merge, double add XFAIL: dirent_uri-test 47: test match with RFC 6125 s. 6.4.3 Rule 3 XFAIL: op-depth-test 42: mixed_rev_move [[needs different libsvn_wc entry point]] XFAIL: op-depth-test 56: commit_moved_away_descendant XFAIL: op-depth-test 68: move retract (issue 4336) XFAIL: op-depth-test 69: move/delete file externals (issue 4293) XFAIL: op-depth-test 75: move more than once, revert intermediate XFAIL: op-depth-test 79: del4: delete AAA XFAIL: op-depth-test 80: del4: add AAA XFAIL: op-depth-test 81: del4: replace AAA XFAIL: op-depth-test 83: del4: replace self AAA XFAIL: op-depth-test 85: move4: delete AAA XFAIL: op-depth-test 87: move4: replace AAA XFAIL: op-depth-test 86: move4: add AAA XFAIL: op-depth-test 89: move4: replace self AAA XFAIL: op-depth-test 95: move within mixed move XFAIL: basic_tests.py 9: basic corruption detection on update [[Relies on wc.text_base_path()]] XFAIL: basic_tests.py 63: peg rev resolution on non-existent wc paths XFAIL: blame_tests.py 15: blame -g handles changes from empty mergeinfo XFAIL: changelist_tests.py 5: diff --changelist (wc-wc and repos-wc) XFAIL: commit_tests.py 66: last changed of copied subdir XFAIL: commit_tests.py 74: commit sees tree conflict on unversioned path XFAIL: copy_tests.py 105: copy and move conflicts XFAIL: depth_tests.py 49: deleted & moved items left untouched XFAIL: depth_tests.py 50: unversioned files in excluded directory XFAIL: diff_tests.py 77: diff repo to wc of a copy XFAIL: diff_tests.py 90: diff unversioned files in git format XFAIL: diff_tests.py 92: diff summary repo wc local copy unmodified XFAIL: diff_tests.py 94: diff git format copy XFAIL: export_tests.py 11: export working copy at base revision XFAIL: externals_tests.py 25: update that modifies a file external XFAIL: externals_tests.py 39: file external remap segfaults due to deleted props XFAIL: externals_tests.py 44: move with file externals XFAIL: externals_tests.py 49: file externals versioned obstruction XFAIL: externals_tests.py 68: check file external recorded info XFAIL: log_tests.py 46: log --use-merge-history --search XFAIL: log_tests.py 47: log --use-merge-history --xml XFAIL: merge_automatic_tests.py 16: cherry2_fwd XFAIL: merge_automatic_tests.py 17: cherry3_fwd XFAIL: merge_tests.py 49: avoid repeated merges for cyclic merging XFAIL: merge_tests.py 64: merge target with non inheritable mergeinfo XFAIL: merge_tests.py 114: don't inherit bogus mergeinfo XFAIL: merge_tests.py 115: don't inherit bogus working mergeinfo XFAIL: patch_tests.py 52: hunks that overlap XFAIL: patch_tests.py 78: patching a specific merge XFAIL: patch_tests.py 80: patch empty prop XFAIL: patch_tests.py 81: patch working copy root XFAIL: patch_tests.py 82: patch working copy root XFAIL: pegrev_parse_tests.py 11: add file '.@tau' without pegrev escape [[The error message mentions '@tau' instead of '.@tau']] XFAIL: pegrev_parse_tests.py 23: add file 'E/@tau' without pegrev escape [[The error message mentions 'E@tau' instead of 'E/@tau']] XFAIL: pegrev_parse_tests.py 25: add file 'E/.@tau' without pegrev escape [[The error message mentions 'E@tau' instead of 'E/.@tau']] XFAIL: pegrev_parse_tests.py 28: add file 'E/@' without pegrev escape [[The error message is E29 but should be E125001]] XFAIL: pegrev_parse_tests.py 39: create directory '.@T' without pegrev escape [[The error message mentions '@T' instead of '.@T']] XFAIL: pegrev_parse_tests.py 49: create directory 'E/@T' without pegrev escape [[The error message mentions 'E@T' instead of 'E/@T']] XFAIL: pegrev_parse_tests.py 51: create directory 'E/.@T' without pegrev escape [[The error message mentions 'E@T' instead of 'E/.@T']] XFAIL: pegrev_parse_tests.py 52: create directory 'E/@' without pegrev escape [[Reports error that E exists but should be E125001 for E/@]] XFAIL: pegrev_parse_tests.py 63: remove '.@kappa' without pegrev escape [[The error message mentions '@kappa' instead of '.@kappa']] XFAIL: pegrev_parse_tests.py 77: remove 'B/@beta' without pegrev escape [[The error message mentions 'B@beta' instead of 'B/@beta']] XFAIL: pegrev_parse_tests.py 79: remove 'D/.@delta' without pegrev escape [[The error message mentions 'D@delta' instead of 'D/.@delta']] XFAIL: pegrev_parse_tests.py 80: remove 'B/@' without pegrev escape [[Removes B instead of reporting E125001 for B/@]] XFAIL: pegrev_parse_tests.py 81: remove missing 'E/@' without pegrev escape [[Removes E instead of reporting ENOENT or E125001 for E/@]] XFAIL: pegrev_parse_tests.py 82: remove missing '@/@' without pegrev escape [[Removes @ instead of reporting ENOENT or E125001 for @/@]] XFAIL: pegrev_parse_tests.py 83: rename 'iota' to 'E/@tau with pegrev escape [[Rename creates 'E/@tau@' instead of
Re: Pristines-on-demand: fix disabled tests (#4891)
Johan Corveleyn wrote: >Should be fixed now, with r1899654. Great! Thanks. >I suppose not passing the option uses wc-format-version=1.15 No... >automatically? Or what is the default? Is format 1.8 the same as 1.14 >and anything in between? Default would be the format '31' which is 1.8 through 1.14. - Julian
Re: Pristines-on-demand: fix disabled tests (#4891)
On Thu, Apr 7, 2022 at 11:31 AM Julian Foad wrote: > Now can you run the test suite with --wc-format-version=1.15? On Unixy > systems that is done by, for example: > > $ make svnserveautocheck WC_FORMAT_VERSION=1.15 ... Okay, passing that option to win-tests.py (the test runner on Windows) failed. Should be fixed now, with r1899654. I suppose not passing the option uses wc-format-version=1.15 automatically? Or what is the default? Is format 1.8 the same as 1.14 and anything in between? Should I run with 'None' and 1.8? Or 1.8 and 1.15? -- Johan
Re: Pristines-on-demand: fix disabled tests (#4891)
On Thu, Apr 7, 2022 at 11:31 AM Julian Foad wrote: > Jun Omae wrote: > >> FAIL: diff_tests.py 48: svn diff --diff-cmd provides the correct arguments > > > > I've posted patch for the failure. > > See https://lists.apache.org/thread/2o0xtqfzy9xg8wzxscj2wb641p2kyo9c > > Thank you, Jun Omae. Sorry, I missed that before. Committed now in r1899645. Thanks, confirmed fixed on Windows. -- Johan
Re: Pristines-on-demand: fix disabled tests (#4891)
Johan, that's a great start, thanks. Now can you run the test suite with --wc-format-version=1.15? On Unixy systems that is done by, for example: $ make svnserveautocheck WC_FORMAT_VERSION=1.15 ... Jun Omae wrote: >> FAIL: diff_tests.py 48: svn diff --diff-cmd provides the correct arguments > > I've posted patch for the failure. > See https://lists.apache.org/thread/2o0xtqfzy9xg8wzxscj2wb641p2kyo9c Thank you, Jun Omae. Sorry, I missed that before. Committed now in r1899645. - Julian
Re: Pristines-on-demand: fix disabled tests (#4891)
On Thu, Apr 7, 2022 at 2:47 PM Johan Corveleyn wrote: > This is in fails.log for that one FAIL: > [[[ > ... > File "C:\Python39\lib\sre_parse.py", line 426, in _escape > raise source.error("bad escape %s" % escape, len(escape)) > re.error: bad escape \c at position 32 (line 1, column 33) > FAIL: diff_tests.py 48: svn diff --diff-cmd provides the correct arguments > ]]] I've posted patch for the failure. See https://lists.apache.org/thread/2o0xtqfzy9xg8wzxscj2wb641p2kyo9c -- Jun Omae (大前 潤)
Re: Pristines-on-demand: fix disabled tests (#4891)
On Wed, Apr 6, 2022 at 5:12 PM Julian Foad wrote: > Johan Corveleyn wrote: > >> A few of these are Windows-specific. I can't very well investigate those > >> myself. Who could volunteer to look at those? They are: > >> > >> externals_tests.py ... ... ...: > >> update_modify_file_external(), > >> remap_file_external_with_prop_del(), > >> file_external_recorded_info(): > >> existing issue (Windows only) > >> > >> These tests are commented with "# Existing issue: `src_stream` not > >> closed in externals.c:apply_textdelta()" > >> > >> Does that mean it's a problem already on trunk? Or a hidden problem? If > >> someone could please take a look, that would be great. If not, could > >> anyone volunteer to test a possible fix if one of us unixers made a guess? > > > > I have no idea what those tests are about, but I can probably help > > test things on Windows. > > I'll try to get the branch built on my Windows machine tonight, and > > then I can help try out various things. > > Great! Thanks. > > I found also this one is a Windows-only test: > > update_tests.py 57 skip_access_denied(): access denied paths should > be skipped > > (In principle I don't see why we shouldn't test a similar access-denied > condition on unix-like systems, though the error code would be > different. Maybe the answer is the semantics would be so different it > would fail at a different place in the code path and so be a different > test case. I don't plan to pursue this.) > > I think the current state is this test will report XFAIL/WIMP with > pristines-on-demand enabled (currently meaning WC format 32) and XPASS > otherwise. > > This test was introduced in r1143071 with the log message "Make svn > update handle some access denied scenarios with a proper skip. This > makes it less likely that the database will be closed after updating with > working queue items left." > > I would guess that gracefully handling the case where the working file > on disk has this particular kind of OS lock isn't of primary concern. Just quickly reporting that I've got the branch built and up and running on Windows now. Running the test suite currently gives these (X)FAILS and XPASSES. Will look closer tonight ... [[[ XFAIL: diff-diff3-test 18: 3-way merge, double add XFAIL: dirent_uri-test 47: test match with RFC 6125 s. 6.4.3 Rule 3 XFAIL: op-depth-test 42: mixed_rev_move [[needs different libsvn_wc entry point]] XFAIL: op-depth-test 56: commit_moved_away_descendant XFAIL: op-depth-test 68: move retract (issue 4336) XFAIL: op-depth-test 69: move/delete file externals (issue 4293) XFAIL: op-depth-test 75: move more than once, revert intermediate XFAIL: op-depth-test 79: del4: delete AAA XFAIL: op-depth-test 80: del4: add AAA XFAIL: op-depth-test 81: del4: replace AAA XFAIL: op-depth-test 83: del4: replace self AAA XFAIL: op-depth-test 85: move4: delete AAA XFAIL: op-depth-test 86: move4: add AAA XFAIL: op-depth-test 87: move4: replace AAA XFAIL: op-depth-test 89: move4: replace self AAA XFAIL: op-depth-test 95: move within mixed move XFAIL: basic_tests.py 9: basic corruption detection on update [[Relies on wc.text_base_path()]] XFAIL: basic_tests.py 63: peg rev resolution on non-existent wc paths XFAIL: blame_tests.py 15: blame -g handles changes from empty mergeinfo XFAIL: changelist_tests.py 5: diff --changelist (wc-wc and repos-wc) XFAIL: commit_tests.py 66: last changed of copied subdir XFAIL: commit_tests.py 74: commit sees tree conflict on unversioned path XFAIL: copy_tests.py 105: copy and move conflicts XFAIL: depth_tests.py 49: deleted & moved items left untouched XFAIL: depth_tests.py 50: unversioned files in excluded directory XFAIL: diff_tests.py 77: diff repo to wc of a copy XFAIL: diff_tests.py 90: diff unversioned files in git format XFAIL: diff_tests.py 92: diff summary repo wc local copy unmodified XFAIL: diff_tests.py 94: diff git format copy XFAIL: export_tests.py 11: export working copy at base revision XFAIL: externals_tests.py 25: update that modifies a file external XFAIL: externals_tests.py 39: file external remap segfaults due to deleted props XFAIL: externals_tests.py 44: move with file externals XFAIL: externals_tests.py 49: file externals versioned obstruction XFAIL: externals_tests.py 68: check file external recorded info XFAIL: log_tests.py 46: log --use-merge-history --search XFAIL: log_tests.py 47: log --use-merge-history --xml XFAIL: merge_automatic_tests.py 16: cherry2_fwd XFAIL: merge_automatic_tests.py 17: cherry3_fwd XFAIL: merge_tests.py 49: avoid repeated merges for cyclic merging XFAIL: merge_tests.py 64: merge target with non inheritable mergeinfo XFAIL: merge_tests.py 114: don't inherit bogus mergeinfo XFAIL: merge_tests.py 115: don't inherit bogus working mergeinfo XFAIL: patch_tests.py 52: hunks that overlap XFAIL: patch_tests.py 78: patching a specific merge XFAIL: patch_tests.py 80: patch empty prop XFAIL: patch_tests.py 81: patch working copy root XFAIL:
Re: Pristines-on-demand: fix disabled tests (#4891)
Today I have done a quick review/fix/postpone cycle on the 'upgrade', 'update', and 'trans' tests. Details in https://subversion.apache.org/issue/4891 . - Julian
Re: Pristines-on-demand: fix disabled tests (#4891)
Johan Corveleyn wrote: >> A few of these are Windows-specific. I can't very well investigate those >> myself. Who could volunteer to look at those? They are: >> >> externals_tests.py ... ... ...: >> update_modify_file_external(), >> remap_file_external_with_prop_del(), >> file_external_recorded_info(): >> existing issue (Windows only) >> >> These tests are commented with "# Existing issue: `src_stream` not >> closed in externals.c:apply_textdelta()" >> >> Does that mean it's a problem already on trunk? Or a hidden problem? If >> someone could please take a look, that would be great. If not, could >> anyone volunteer to test a possible fix if one of us unixers made a guess? > > I have no idea what those tests are about, but I can probably help > test things on Windows. > I'll try to get the branch built on my Windows machine tonight, and > then I can help try out various things. Great! Thanks. I found also this one is a Windows-only test: update_tests.py 57 skip_access_denied(): access denied paths should be skipped (In principle I don't see why we shouldn't test a similar access-denied condition on unix-like systems, though the error code would be different. Maybe the answer is the semantics would be so different it would fail at a different place in the code path and so be a different test case. I don't plan to pursue this.) I think the current state is this test will report XFAIL/WIMP with pristines-on-demand enabled (currently meaning WC format 32) and XPASS otherwise. This test was introduced in r1143071 with the log message "Make svn update handle some access denied scenarios with a proper skip. This makes it less likely that the database will be closed after updating with working queue items left." I would guess that gracefully handling the case where the working file on disk has this particular kind of OS lock isn't of primary concern. - Julian
Re: Pristines-on-demand: fix disabled tests (#4891)
On Wed, Apr 6, 2022 at 4:02 PM Julian Foad wrote: > === Windows-specific issues > > A few of these are Windows-specific. I can't very well investigate those > myself. Who could volunteer to look at those? They are: > > externals_tests.py ... ... ...: > update_modify_file_external(), > remap_file_external_with_prop_del(), > file_external_recorded_info(): > existing issue (Windows only) > > These tests are commented with "# Existing issue: `src_stream` not > closed in externals.c:apply_textdelta()" > > Does that mean it's a problem already on trunk? Or a hidden problem? If > someone could please take a look, that would be great. If not, could > anyone volunteer to test a possible fix if one of us unixers made a guess? I have no idea what those tests are about, but I can probably help test things on Windows. I'll try to get the branch built on my Windows machine tonight, and then I can help try out various things. -- Johan
Pristines-on-demand: fix disabled tests (#4891)
One of the main things blocking pristines-on-demand now is a few edge case test failures. It would be great if we could get some further eyes on these. On the branch, these failures have been converted to XFAIL by adding '@Wimp' decorators. Some of them seem to fail even when run against the old WC format, presumably due to changes that had to be made in libsvn_wc. I suppose these are the most important to fix, to avoid regressions in existing behaviour, whereas edge cases in the new pristines-on-demand mode can be prioritised lower. One ticket summarises all these test failures (except the auth-denied case which is #4888): https://subversion.apache.org/issue/4891 Could anyone help review these test problems to see which might be blockers and need fixing? === Windows-specific issues A few of these are Windows-specific. I can't very well investigate those myself. Who could volunteer to look at those? They are: externals_tests.py ... ... ...: update_modify_file_external(), remap_file_external_with_prop_del(), file_external_recorded_info(): existing issue (Windows only) These tests are commented with "# Existing issue: `src_stream` not closed in externals.c:apply_textdelta()" Does that mean it's a problem already on trunk? Or a hidden problem? If someone could please take a look, that would be great. If not, could anyone volunteer to test a possible fix if one of us unixers made a guess? === The other issues basic_tests.py 8 basic_commit_corruption basic_tests.py 9 basic_update_corruption revert_tests.py 2 revert_reexpand_keyword trans_tests.py 1 keywords_from_birth trans_tests.py 3 eol_change_is_text_mod update_tests.py 57 skip_access_denied upgrade_tests.py 16 replaced_files upgrade_tests.py 7 basic_upgrade_1_0 (I obtained the list by diffing the tests on trunk and the branch, looking for addition of "@Wimp" and similar on the branch tests.) Daniel, you already investigated and commented on some of them. Might you have some time to look further? If so, may I propose you start at the beginning of this list, as you have already added insightful comments/tests/investigations about some of those. I will now start at the end of that list and work backwards. I will spend just a short time on each working out whether it's an easy fix, fixing if so, and postponing if not. So that we meet somewhere in the middle and don't overlap, I will post each time I work through a test or small group of similar tests (such as the two 'trans' tests). === Running a test case Quick reminder on running a test case with a specific WC format: $ (SRC_DIR=...; cd obj-dir/subversion/tests/cmdline/ && \ python3 $SRC_DIR/subversion/tests/cmdline/basic_tests.py 8 \ --bin=$SRC_DIR/bin \ --config-file=$SRC_DIR/subversion/tests/tests.conf \ --wc-format-version=1.15 ) Remember to test also with --wc-format-version=1.8. Thanks, - Julian