Author: rhuijben
Date: Thu Jul  1 22:50:24 2010
New Revision: 959804

URL: http://svn.apache.org/viewvc?rev=959804&view=rev
Log:
Add three extra upgrade tests to test some more specific scenarios for
the pristine and property work; things like copies, replacements,
not-present nodes, combined with properties.

* subversion/tests/cmdline/upgrade_tests.py
  (replace_sbox_with_tarfile): Allow specifying the directory name.
  (do_x3_upgrade): New helper function.
  (x3_1_4_0, x3_1_4_6, x3_1_6_12): New tests.
  (test_list): Add x3_1_4_0, x3_1_4_6 and x3_1_6_12.

* subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.4.0.tar.bz2
* subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.4.6.tar.bz2
* subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.6.12.tar.bz2
  Add three test repositories created by performing identical
  commands on three separate working copies.

Added:
    
subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.4.0.tar.bz2
   (with props)
    
subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.4.6.tar.bz2
   (with props)
    
subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.6.12.tar.bz2
   (with props)
Modified:
    subversion/trunk/subversion/tests/cmdline/upgrade_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/upgrade_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/upgrade_tests.py?rev=959804&r1=959803&r2=959804&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/upgrade_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/upgrade_tests.py Thu Jul  1 
22:50:24 2010
@@ -52,12 +52,16 @@ def get_current_format():
   return int(re.search("\n#define SVN_WC__VERSION (\d+)\n", 
format_file).group(1))
 
 
-def replace_sbox_with_tarfile(sbox, tar_filename):
+def replace_sbox_with_tarfile(sbox, tar_filename,
+                              dir=None):
   try:
     svntest.main.safe_rmtree(sbox.wc_dir)
   except OSError, e:
     pass
 
+  if not dir:
+    dir = tar_filename.split('.')[0]
+
   tarpath = os.path.join(os.path.dirname(sys.argv[0]), 'upgrade_tests_data',
                          tar_filename)
   t = tarfile.open(tarpath, 'r:bz2')
@@ -65,8 +69,7 @@ def replace_sbox_with_tarfile(sbox, tar_
   for member in t.getmembers():
     t.extract(member, extract_dir)
 
-  shutil.move(os.path.join(extract_dir, tar_filename.split('.')[0]),
-              sbox.wc_dir)
+  shutil.move(os.path.join(extract_dir, dir), sbox.wc_dir)
 
 
 def check_format(sbox, expected_format):
@@ -341,6 +344,88 @@ def basic_upgrade_1_0(sbox):
   svntest.actions.run_and_verify_info(expected_infos,
                                       os.path.join(sbox.wc_dir, 'DELETED'))
 
+# Helper function for the x3 tests.
+def do_x3_upgrade(sbox):
+  # Attempt to use the working copy, this should give an error
+  expected_stderr = wc_is_too_old_regex
+  svntest.actions.run_and_verify_svn(None, None, expected_stderr,
+                                     'info', sbox.wc_dir)
+
+
+  # Now upgrade the working copy
+  svntest.actions.run_and_verify_svn(None, None, [],
+                                     'upgrade', sbox.wc_dir)
+
+  # Actually check the format number of the upgraded working copy
+  check_format(sbox, get_current_format())
+
+  # Now check the contents of the working copy
+  expected_status = svntest.wc.State(sbox.wc_dir,
+    {
+      ''                  : Item(status='  ', wc_rev='2'),
+      'A'                 : Item(status='  ', wc_rev='2'),
+      'A/D'               : Item(status='  ', wc_rev='2'),
+      'A/D/H'             : Item(status='  ', wc_rev='2'),
+      'A/D/H/omega'       : Item(status='  ', wc_rev='2'),
+      'A/D/H/psi'         : Item(status='D ', wc_rev='2'),
+      'A/D/H/new'         : Item(status='A ', copied='+', wc_rev='-'),
+      'A/D/H/chi'         : Item(status='R ', copied='+', wc_rev='-'),
+      'A/D/gamma'         : Item(status='D ', wc_rev='2'),
+      'A/D/G'             : Item(status='  ', wc_rev='2'),
+      'A/B_new'           : Item(status='A ', copied='+', wc_rev='-'),
+      'A/B_new/B'         : Item(status='A ', copied='+', wc_rev='-'),
+      'A/B_new/B/E'       : Item(status='  ', copied='+', wc_rev='-'),
+      'A/B_new/B/E/alpha' : Item(status='  ', copied='+', wc_rev='-'),
+      'A/B_new/B/E/beta'  : Item(status='R ', copied='+', wc_rev='-'),
+      'A/B_new/B/new'     : Item(status='A ', copied='+', wc_rev='-'),
+      'A/B_new/B/lambda'  : Item(status='R ', copied='+', wc_rev='-'),
+      'A/B_new/B/F'       : Item(status='  ', copied='+', wc_rev='-'),
+      'A/B_new/E'         : Item(status='  ', copied='+', wc_rev='-'),
+      'A/B_new/E/alpha'   : Item(status='  ', copied='+', wc_rev='-'),
+      'A/B_new/E/beta'    : Item(status='R ', copied='+', wc_rev='-'),
+      'A/B_new/lambda'    : Item(status='R ', copied='+', wc_rev='-'),
+      'A/B_new/new'       : Item(status='A ', copied='+', wc_rev='-'),
+      'A/B_new/F'         : Item(status='  ', copied='+', wc_rev='-'),
+      'A/B'               : Item(status='  ', wc_rev='2'),
+      'A/B/E'             : Item(status='  ', wc_rev='2'),
+      'A/B/E/beta'        : Item(status='R ', copied='+', wc_rev='-'),
+      'A/B/E/alpha'       : Item(status='  ', wc_rev='2'),
+      'A/B/F'             : Item(status='  ', wc_rev='2'),
+      'A/B/lambda'        : Item(status='R ', copied='+', wc_rev='-'),
+      'A/B/new'           : Item(status='A ', copied='+', wc_rev='-'),
+      'A/G_new'           : Item(status='A ', copied='+', wc_rev='-'),
+      'A/G_new/rho'       : Item(status='R ', copied='+', wc_rev='-'),
+      'iota'              : Item(status='  ', wc_rev='2'),
+      'A_new'             : Item(status='A ', wc_rev='0'),
+      'A_new/alpha'       : Item(status='A ', copied='+', wc_rev='-'),
+    })
+  run_and_verify_status_no_server(sbox.wc_dir, expected_status)
+
+def x3_1_4_0(sbox):
+  "3x same wc upgrade 1.4.0 test"
+
+  sbox.build(create_wc = False)
+  replace_sbox_with_tarfile(sbox, 'wc-3x-1.4.0.tar.bz2', dir='wc-1.4.0')
+
+  do_x3_upgrade(sbox)
+
+def x3_1_4_6(sbox):
+  "3x same wc upgrade 1.4.6 test"
+
+  sbox.build(create_wc = False)
+  replace_sbox_with_tarfile(sbox, 'wc-3x-1.4.6.tar.bz2', dir='wc-1.4.6')
+
+  do_x3_upgrade(sbox)
+
+def x3_1_6_12(sbox):
+  "3x same wc upgrade 1.6.12 test"
+
+  sbox.build(create_wc = False)
+  replace_sbox_with_tarfile(sbox, 'wc-3x-1.6.12.tar.bz2', dir='wc-1.6.12')
+
+  do_x3_upgrade(sbox)
+
+
 ########################################################################
 # Run the tests
 
@@ -352,7 +437,10 @@ test_list = [ None,
               update_1_5,
               logs_left_1_5,
               upgrade_wcprops,
-              basic_upgrade_1_0
+              basic_upgrade_1_0,
+              x3_1_4_0,
+              x3_1_4_6,
+              x3_1_6_12,
              ]
 
 

Added: 
subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.4.0.tar.bz2
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.4.0.tar.bz2?rev=959804&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.4.0.tar.bz2
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.4.6.tar.bz2
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.4.6.tar.bz2?rev=959804&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.4.6.tar.bz2
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.6.12.tar.bz2
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.6.12.tar.bz2?rev=959804&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-3x-1.6.12.tar.bz2
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream


Reply via email to