Hi!
The current cmdline tests for tree-conflicts (in update_tests.py,
switch_tests.py and merge_tests.py) only test for file victims.
The new tests in this patch still do exactly what the old tests did (file
victims), but they also test for directory victims and (more) file victims
in a large set of tree-conflict cases in varying depths of directory trees.
AFAIK, this new set is complete in that it covers every imaginable case of
tree conflicts, for all of update, switch and merge.
I started off with sbutler's new (unfinished) test scheme which is already
committed on the tree-conflicts branch, and took it to a workable state. I
removed the old file-based tests, after checking for identical results.
Currently, most of these new tests still yield undesirable results. The
course that I aim for is this:
1) Commit the new tree-conflicts tests, so that they PASS the current
tree-conflicts branch, even though many test results are still
undesirable. (This patch)
2) One by one, look at the undesirable results and fix them in subsequent
patches. Patches should both fix the situation and make the tests
pass the fixed situation.
So, as mentioned, this patch passes the current situation on the
tree-conflicts branch. But, one test case cannot be passed, because it fails
in a segmentation fault!
I have investigated this and posted a preliminary patch in another mail:
http://subversion.tigris.org/servlets/ReadMsg?listName=dev&msgNo=141887
I would like this patch to be committed on the tree-conflicts branch, so
that continuing work on fixing tree-conflicts situations can be comprehensive.
Thanks!
[[[
Replacing file-based tree-conflicts cmdline tests. The new tests are
concerned with directory *and* file victims, in different tree depths.
Contains new tests for update, switch and merge operations.
* subversion/tests/cmdline/svntest/actions.py
(set_up_tree_conflicts): Remove old helper for update, switch.
(set_up_tree_conflicts_for_merge): Remove old helper for merge.
(make_tc_test_trees): Rename and split new helper into make_deep_trees()
and add_deep_trees().
(tc_leaf_del): Rename new helper to deep_trees_leaf_del().
(tc_tree_del): Rename new helper to deep_trees_tree_del().
(tc_tree_del): Rename new helper to deep_trees_tree_del().
(tc_text_append): Rename new helper to deep_trees_leaf_edit().
(set_up_deep_tree_conflicts_up): Remove function, its purpose replaced by
deep_trees_run_tests_scheme_for_update().
(set_up_deep_tree_conflicts_sw): Remove function, its purpose replaced by
deep_trees_run_tests_scheme_for_switch().
(add_deep_trees): New function, replacing make_tc_test_trees().
(make_deep_trees): New function, used by add_deep_trees().
(deep_trees_virginal_state): New wc.State structure.
(deep_trees_leaf_edit): New function.
(deep_trees_after_leaf_edit): New wc.State structure.
(deep_trees_leaf_del): New function.
(deep_trees_after_leaf_del): New wc.State structure.
(deep_trees_tree_del): New function.
(deep_trees_after_tree_del): New wc.State structure.
(DeepTreesTestCase): New class.
(deep_trees_run_tests_scheme_for_update): New function.
(deep_trees_run_tests_scheme_for_switch): New function.
(deep_trees_run_tests_scheme_for_merge): New function.
* subversion/tests/cmdline/update_tests.py
(tree_conflicts_in_updated_files): Remove old test, replaced by
tree_conflicts_on_update().
(tree_conflicts_on_update): New test, replacing
tree_conflicts_in_updated_files(). Adds directory victims, and
conflicts in different tree depths.
* subversion/tests/cmdline/switch_tests.py
(tree_conflicts_in_switched_files): Remove old test, replaced by
tree_conflicts_on_switch().
(tree_conflicts_on_switch): New test, replacing
tree_conflicts_in_switched_files(). Adds directory victims, and
conflicts in different tree depths.
* subversion/tests/cmdline/merge_tests.py
(tree_conflicts_in_merged_files): Remove old test, replaced by
tree_conflicts_on_merge().
(tree_conflicts_on_merge): New test, replacing
tree_conflicts_in_merged_files(). Adds directory victims, and conflicts
in different tree depths. Adds another case to the old merge test,
namely omitting a local commit.
]]]
--
Neels Hofmeyr -- elego Software Solutions GmbH
Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
phone: +49 30 23458696 mobile: +49 177 2345869 fax: +49 30 23458695
http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
Handelsreg: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
Received on 2008-08-17 14:37:31 CEST