> Author: rhuijben
> Date: Thu Sep 24 08:38:55 2009
> New Revision: 879627
>
> Add XFail test on how we handle 'svn cp' on directories containing
> a switched subdirectory.
>
> * subversion/tests/cmdline/switch_tests.py
>  (copy_with_switched_subdir): New test.
>  (test_list): Add test as XFail
>
> --- subversion/trunk/subversion/tests/cmdline/switch_tests.py   2009/09/24
> 06:00:01        879626
> +++ subversion/trunk/subversion/tests/cmdline/switch_tests.py   2009/09/24
> 08:38:55        879627
> @@ -2592,6 +2592,82 @@ def relocate_with_switched_children(sbox
>     expected_info = { 'URL' : pattern }
>     svntest.actions.run_and_verify_info([expected_info], path)
>
> +def copy_with_switched_subdir(sbox):
> +  "copy directory with switched subdir"
> +  sbox.build()
> +  wc_dir = sbox.wc_dir
> +  D = os.path.join(wc_dir, 'A/D')
> +  G = os.path.join(D, 'G')
> +
> +  E_url = sbox.repo_url + '/A/B/E'
> +  R = os.path.join(wc_dir, 'R')
> +
> +  state = svntest.actions.get_virginal_state(wc_dir, 1)
> +
> +  # Verify before switching
> +  svntest.actions.run_and_verify_status(wc_dir, state)
> +
> +  # Switch D
> +  svntest.actions.run_and_verify_svn(None, None, [], 'switch', E_url, G)
> +
> +  state.tweak('A/D/G', switched='S')
> +  state.remove('A/D/G/pi', 'A/D/G/rho', 'A/D/G/tau');
> +  state.add({
> +    'A/D/G/alpha' : Item(status='  ', wc_rev=1),
> +    'A/D/G/beta' : Item(status='  ', wc_rev=1),
> +    })
> +  svntest.actions.run_and_verify_status(wc_dir, state)
> +
> +  # And now copy A and everything below it to R
> +  svntest.actions.run_and_verify_svn(None, None, [], 'cp', D, R)
> +
> +  state.add({
> +    'R'         : Item(status='A ', copied='+', wc_rev='-'),
> +    'R/gamma'   : Item(status='  ', copied='+', wc_rev='-'),
> +    'R/G/alpha' : Item(status='  ', copied='+', wc_rev='-'),
> +    'R/G/beta'  : Item(status='  ', copied='+', wc_rev='-'),
> +    'R/H'       : Item(status='  ', copied='+', wc_rev='-'),
> +    'R/H/chi'   : Item(status='  ', copied='+', wc_rev='-'),
> +    'R/H/omega' : Item(status='  ', copied='+', wc_rev='-'),
> +    'R/H/psi'   : Item(status='  ', copied='+', wc_rev='-'),
> +
> +    # This should be:
> +    # 'R/G'       : Item(status='A ', copied='+', wc_rev='-'),
> +    # But is:
> +    'R/G'       : Item(status='  ', copied='+', wc_rev='-'),

Hi Bert,

If 'R/G' "should be" status='A ', then why did you write the test to
expect the incorrect state?

Because R/G *is* showing as added:

C:\SVN\src-trunk>run.python.test.DEBUG.bat switch 38
C:\SVN\src-trunk>set TESTNAME=switch
C:\SVN\src-trunk>set CONFIG=Debug
C:\SVN\src-trunk>if not exist Debug\subversion\tests\cmdline mkdir
Debug\subversion\tests\cmdline
C:\SVN\src-trunk>pushd Debug\subversion\tests\cmdline
C:\SVN\src-trunk\Debug\subversion\tests\cmdline>python
C:\SVN\src-trunk\\subversion\tests\cmdline\switch_tests.py 38
=============================================================
Expected 'G' and actual 'G' in status tree are different!
=============================================================
EXPECTED NODE TO BE:
=============================================================
 * Node name:   G
    Path:       svn-test-work\working_copies\switch_tests-38\R\G
    Contents:   N/A (node is a directory)
    Properties: {}
    Attributes: {'status': '  ', 'copied': '+', 'wc_rev': '-'}
    Children:   2
=============================================================
ACTUAL NODE FOUND:
=============================================================
 * Node name:   G
    Path:       svn-test-work\working_copies\switch_tests-38\R\G
    Contents:   N/A (node is a directory)
    Properties: {}
    Attributes: {'status': 'A ', 'copied': '+', 'wc_rev': '-'}
    Children:   2
Unequal at node G
Unequal at node R
Unequal at node switch_tests-38
Unequal at node working_copies
Unequal at node svn-test-work
EXPECTED STATUS OUTPUT TREE:
ROOT
  +-- svn-test-work
        +-- working_copies
              +-- switch_tests-38
                    |-- A
                    |     |-- B
                    |     |     |-- E
                    |     |     |     |-- alpha
                    |     |     |     +-- beta
                    |     |     |-- F
                    |     |     +-- lambda
                    |     |-- C
                    |     |-- D
                    |     |     |-- G
                    |     |     |     |-- alpha
                    |     |     |     +-- beta
                    |     |     |-- H
                    |     |     |     |-- chi
                    |     |     |     |-- omega
                    |     |     |     +-- psi
                    |     |     +-- gamma
                    |     +-- mu
                    |-- R
                    |     |-- G
                    |     |     |-- alpha
                    |     |     +-- beta
                    |     |-- H
                    |     |     |-- chi
                    |     |     |-- omega
                    |     |     +-- psi
                    |     +-- gamma
                    +-- iota
ACTUAL STATUS OUTPUT TREE:
ROOT
  +-- svn-test-work
        +-- working_copies
              +-- switch_tests-38
                    |-- A
                    |     |-- B
                    |     |     |-- E
                    |     |     |     |-- alpha
                    |     |     |     +-- beta
                    |     |     |-- F
                    |     |     +-- lambda
                    |     |-- C
                    |     |-- D
                    |     |     |-- G
                    |     |     |     |-- alpha
                    |     |     |     +-- beta
                    |     |     |-- H
                    |     |     |     |-- chi
                    |     |     |     |-- omega
                    |     |     |     +-- psi
                    |     |     +-- gamma
                    |     +-- mu
                    |-- R
                    |     |-- G
                    |     |     |-- alpha
                    |     |     +-- beta
                    |     |-- H
                    |     |     |-- chi
                    |     |     |-- omega
                    |     |     +-- psi
                    |     +-- gamma
                    +-- iota
ACTUAL STATUS TREE:
svntest.wc.State(wc_dir, {
  'R'                 : Item(status='A ', copied='+', wc_rev='-'),
  'R/gamma'           : Item(status='  ', copied='+', wc_rev='-'),
  'R/H'               : Item(status='  ', copied='+', wc_rev='-'),
  'R/H/omega'         : Item(status='  ', copied='+', wc_rev='-'),
  'R/H/chi'           : Item(status='  ', copied='+', wc_rev='-'),
  'R/H/psi'           : Item(status='  ', copied='+', wc_rev='-'),
  'R/G'               : Item(status='A ', copied='+', wc_rev='-'),
  'R/G/alpha'         : Item(status='  ', copied='+', wc_rev='-'),
  'R/G/beta'          : Item(status='  ', copied='+', wc_rev='-'),
  'A'                 : Item(status='  ', wc_rev='1'),
  'A/B'               : Item(status='  ', wc_rev='1'),
  'A/B/E'             : Item(status='  ', wc_rev='1'),
  'A/B/E/alpha'       : Item(status='  ', wc_rev='1'),
  'A/B/E/beta'        : Item(status='  ', wc_rev='1'),
  'A/B/F'             : Item(status='  ', wc_rev='1'),
  'A/B/lambda'        : Item(status='  ', wc_rev='1'),
  'A/D'               : Item(status='  ', wc_rev='1'),
  'A/D/G'             : Item(status='  ', wc_rev='1', switched='S'),
  'A/D/G/alpha'       : Item(status='  ', wc_rev='1'),
  'A/D/G/beta'        : Item(status='  ', wc_rev='1'),
  'A/D/H'             : Item(status='  ', wc_rev='1'),
  'A/D/H/psi'         : Item(status='  ', wc_rev='1'),
  'A/D/H/omega'       : Item(status='  ', wc_rev='1'),
  'A/D/H/chi'         : Item(status='  ', wc_rev='1'),
  'A/D/gamma'         : Item(status='  ', wc_rev='1'),
  'A/C'               : Item(status='  ', wc_rev='1'),
  'A/mu'              : Item(status='  ', wc_rev='1'),
  'iota'              : Item(status='  ', wc_rev='1'),
})EXCEPTION: SVNTreeUnequal
Traceback (most recent call last):
  File "C:\SVN\src-trunk\subversion\tests\cmdline\svntest\main.py",
line 1222, in run
    rc = self.pred.run(sandbox)
  File "C:\SVN\src-trunk\subversion\tests\cmdline\svntest\testcase.py",
line 114, in run
    return self._delegate.run(sandbox)
  File "C:\SVN\src-trunk\subversion\tests\cmdline\svntest\testcase.py",
line 176, in run
    return self.func(sandbox)
  File "C:\SVN\src-trunk\\subversion\tests\cmdline\switch_tests.py",
line 3079, in copy_with_switched_subdir
    svntest.actions.run_and_verify_status(wc_dir, state)
  File "C:\SVN\src-trunk\subversion\tests\cmdline\svntest\actions.py",
line 1408, in run_and_verify_status
    singleton_handler_b, b_baton)
  File "C:\SVN\src-trunk\subversion\tests\cmdline\svntest\tree.py",
line 662, in compare_trees
    singleton_handler_b, b_baton)
  File "C:\SVN\src-trunk\subversion\tests\cmdline\svntest\tree.py",
line 662, in compare_trees
    singleton_handler_b, b_baton)
  File "C:\SVN\src-trunk\subversion\tests\cmdline\svntest\tree.py",
line 662, in compare_trees
    singleton_handler_b, b_baton)
  File "C:\SVN\src-trunk\subversion\tests\cmdline\svntest\tree.py",
line 662, in compare_trees
    singleton_handler_b, b_baton)
  File "C:\SVN\src-trunk\subversion\tests\cmdline\svntest\tree.py",
line 662, in compare_trees
    singleton_handler_b, b_baton)
  File "C:\SVN\src-trunk\subversion\tests\cmdline\svntest\tree.py",
line 648, in compare_trees
    raise SVNTreeUnequal
SVNTreeUnequal
XFAIL: switch_tests.py 38: copy directory with switched subdir

Paul

Reply via email to