You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by vm...@apache.org on 2012/05/29 03:39:49 UTC
svn commit: r1343447 [25/27] - in /subversion/branches/javahl-ra: ./ build/
build/ac-macros/ build/generator/ build/generator/templates/ build/win32/
contrib/client-side/emacs/ contrib/server-side/ notes/
notes/api-errata/1.8/ notes/merge-tracking/ sub...
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/patch_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/patch_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/patch_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/patch_tests.py Tue May 29 01:39:41 2012
@@ -64,7 +64,7 @@ def patch(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
mu_contents = [
"Dear internet user,\n",
@@ -194,11 +194,11 @@ def patch(sbox):
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
- 'U %s\n' % os.path.join(wc_dir, 'iota'),
- 'A %s\n' % os.path.join(wc_dir, 'new'),
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'B', 'E', 'beta'),
+ 'U %s\n' % sbox.ospath('A/D/gamma'),
+ 'U %s\n' % sbox.ospath('iota'),
+ 'A %s\n' % sbox.ospath('new'),
+ 'U %s\n' % sbox.ospath('A/mu'),
+ 'D %s\n' % sbox.ospath('A/B/E/beta'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -297,8 +297,8 @@ def patch_offset(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
- iota_path = os.path.join(wc_dir, 'iota')
+ mu_path = sbox.ospath('A/mu')
+ iota_path = sbox.ospath('iota')
mu_contents = [
"Dear internet user,\n",
@@ -510,7 +510,7 @@ def patch_chopped_leading_spaces(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
mu_contents = [
"Dear internet user,\n",
@@ -640,11 +640,11 @@ def patch_chopped_leading_spaces(sbox):
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
- 'U %s\n' % os.path.join(wc_dir, 'iota'),
- 'A %s\n' % os.path.join(wc_dir, 'new'),
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'B', 'E', 'beta'),
+ 'U %s\n' % sbox.ospath('A/D/gamma'),
+ 'U %s\n' % sbox.ospath('iota'),
+ 'A %s\n' % sbox.ospath('new'),
+ 'U %s\n' % sbox.ospath('A/mu'),
+ 'D %s\n' % sbox.ospath('A/B/E/beta'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -680,7 +680,7 @@ def patch_strip1(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
mu_contents = [
"Dear internet user,\n",
@@ -810,11 +810,11 @@ def patch_strip1(sbox):
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
- 'U %s\n' % os.path.join(wc_dir, 'iota'),
- 'A %s\n' % os.path.join(wc_dir, 'new'),
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'B', 'E', 'beta'),
+ 'U %s\n' % sbox.ospath('A/D/gamma'),
+ 'U %s\n' % sbox.ospath('iota'),
+ 'A %s\n' % sbox.ospath('new'),
+ 'U %s\n' % sbox.ospath('A/mu'),
+ 'D %s\n' % sbox.ospath('A/B/E/beta'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -850,8 +850,8 @@ def patch_no_index_line(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- gamma_path = os.path.join(wc_dir, 'A', 'D', 'gamma')
- iota_path = os.path.join(wc_dir, 'iota')
+ gamma_path = sbox.ospath('A/D/gamma')
+ iota_path = sbox.ospath('iota')
gamma_contents = [
"\n",
@@ -906,8 +906,8 @@ def patch_no_index_line(sbox):
"Some more bytes\n",
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
- 'U %s\n' % os.path.join(wc_dir, 'iota'),
+ 'U %s\n' % sbox.ospath('A/D/gamma'),
+ 'U %s\n' % sbox.ospath('iota'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -969,21 +969,21 @@ def patch_add_new_dir(sbox):
"+new\n",
]
- C_path = os.path.join(wc_dir, 'A', 'C')
- E_path = os.path.join(wc_dir, 'A', 'B', 'E')
+ C_path = sbox.ospath('A/C')
+ E_path = sbox.ospath('A/B/E')
svntest.actions.run_and_verify_svn("Deleting C failed", None, [],
'rm', C_path)
svntest.actions.run_and_verify_svn("Deleting E failed", None, [],
'rm', E_path)
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
- A_B_E_Y_new_path = os.path.join(wc_dir, 'A', 'B', 'E', 'Y', 'new')
- A_C_new_path = os.path.join(wc_dir, 'A', 'C', 'new')
- A_Z_new_path = os.path.join(wc_dir, 'A', 'Z', 'new')
- expected_output = [
- 'A %s\n' % os.path.join(wc_dir, 'X'),
- 'A %s\n' % os.path.join(wc_dir, 'X', 'Y'),
- 'A %s\n' % os.path.join(wc_dir, 'X', 'Y', 'new'),
+ A_B_E_Y_new_path = sbox.ospath('A/B/E/Y/new')
+ A_C_new_path = sbox.ospath('A/C/new')
+ A_Z_new_path = sbox.ospath('A/Z/new')
+ expected_output = [
+ 'A %s\n' % sbox.ospath('X'),
+ 'A %s\n' % sbox.ospath('X/Y'),
+ 'A %s\n' % sbox.ospath('X/Y/new'),
'Skipped missing target: \'%s\'\n' % A_B_E_Y_new_path,
'Skipped missing target: \'%s\'\n' % A_C_new_path,
'Skipped missing target: \'%s\'\n' % A_Z_new_path,
@@ -1084,22 +1084,22 @@ def patch_remove_empty_dirs(sbox):
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
- F_path = os.path.join(wc_dir, 'A', 'B', 'F')
+ F_path = sbox.ospath('A/B/F')
svntest.actions.run_and_verify_svn("Deleting F failed", None, [],
'rm', F_path)
svntest.actions.run_and_verify_svn("Update failed", None, [],
'up', wc_dir)
# We should be able to handle one path beeing missing.
- os.remove(os.path.join(wc_dir, 'A', 'D', 'H', 'chi'))
+ os.remove(sbox.ospath('A/D/H/chi'))
expected_output = [
- 'D %s\n' % os.path.join(wc_dir, 'A', 'D', 'H', 'psi'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'D', 'H', 'omega'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'B', 'lambda'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'B', 'E', 'alpha'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'B', 'E', 'beta'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'B'),
+ 'D %s\n' % sbox.ospath('A/D/H/psi'),
+ 'D %s\n' % sbox.ospath('A/D/H/omega'),
+ 'D %s\n' % sbox.ospath('A/B/lambda'),
+ 'D %s\n' % sbox.ospath('A/B/E/alpha'),
+ 'D %s\n' % sbox.ospath('A/B/E/beta'),
+ 'D %s\n' % sbox.ospath('A/B'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -1146,7 +1146,7 @@ def patch_reject(sbox):
# Set gamma contents
gamma_contents = "Hello there! I'm the file 'gamma'.\n"
- gamma_path = os.path.join(wc_dir, 'A', 'D', 'gamma')
+ gamma_path = sbox.ospath('A/D/gamma')
svntest.main.file_write(gamma_path, gamma_contents)
expected_output = svntest.wc.State(wc_dir, {
'A/D/gamma' : Item(verb='Sending'),
@@ -1173,7 +1173,7 @@ def patch_reject(sbox):
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
expected_output = [
- 'C %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
+ 'C %s\n' % sbox.ospath('A/D/gamma'),
'> rejected hunk @@ -1,1 +1,1 @@\n',
'Summary of conflicts:\n',
' Text conflicts: 1\n',
@@ -1216,11 +1216,11 @@ def patch_keywords(sbox):
# Set gamma contents
gamma_contents = "$Rev$\nHello there! I'm the file 'gamma'.\n"
- gamma_path = os.path.join(wc_dir, 'A', 'D', 'gamma')
+ gamma_path = sbox.ospath('A/D/gamma')
svntest.main.file_write(gamma_path, gamma_contents)
# Expand the keyword
svntest.main.run_svn(None, 'propset', 'svn:keywords', 'Rev',
- os.path.join(wc_dir, 'A', 'D', 'gamma'))
+ sbox.ospath('A/D/gamma'))
expected_output = svntest.wc.State(wc_dir, {
'A/D/gamma' : Item(verb='Sending'),
})
@@ -1247,7 +1247,7 @@ def patch_keywords(sbox):
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
+ 'U %s\n' % sbox.ospath('A/D/gamma'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -1276,7 +1276,7 @@ def patch_with_fuzz(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
# We have replaced a couple of lines to cause fuzz. Those lines contains
# the word fuzz
@@ -1386,7 +1386,7 @@ def patch_with_fuzz(sbox):
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
+ 'U %s\n' % sbox.ospath('A/mu'),
'> applied hunk @@ -1,6 +1,7 @@ with fuzz 1\n',
'> applied hunk @@ -7,7 +8,9 @@ with fuzz 2\n',
'> applied hunk @@ -19,6 +20,7 @@ with offset 1 and fuzz 2\n',
@@ -1415,7 +1415,7 @@ def patch_reverse(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
mu_contents = [
"Dear internet user,\n",
@@ -1545,11 +1545,11 @@ def patch_reverse(sbox):
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
- 'U %s\n' % os.path.join(wc_dir, 'iota'),
- 'A %s\n' % os.path.join(wc_dir, 'new'),
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'B', 'E', 'beta'),
+ 'U %s\n' % sbox.ospath('A/D/gamma'),
+ 'U %s\n' % sbox.ospath('iota'),
+ 'A %s\n' % sbox.ospath('new'),
+ 'U %s\n' % sbox.ospath('A/mu'),
+ 'D %s\n' % sbox.ospath('A/B/E/beta'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -1585,7 +1585,7 @@ def patch_no_svn_eol_style(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
if os.name == 'nt':
crlf = '\n'
@@ -1658,7 +1658,7 @@ def patch_no_svn_eol_style(sbox):
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
expected_output = [
- 'G %s\n' % os.path.join(wc_dir, 'A', 'mu'),
+ 'G %s\n' % sbox.ospath('A/mu'),
]
expected_disk = svntest.main.greek_state.copy()
expected_disk.tweak('A/mu', contents=''.join(mu_contents))
@@ -1688,7 +1688,7 @@ def patch_with_svn_eol_style(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
if os.name == 'nt':
@@ -1770,7 +1770,7 @@ def patch_with_svn_eol_style(sbox):
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
+ 'U %s\n' % sbox.ospath('A/mu'),
]
expected_disk = svntest.main.greek_state.copy()
expected_disk.tweak('A/mu', contents=''.join(mu_contents),
@@ -1802,7 +1802,7 @@ def patch_with_svn_eol_style_uncommitted
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
if os.name == 'nt':
@@ -1879,7 +1879,7 @@ def patch_with_svn_eol_style_uncommitted
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
expected_output = [
- 'G %s\n' % os.path.join(wc_dir, 'A', 'mu'),
+ 'G %s\n' % sbox.ospath('A/mu'),
]
expected_disk = svntest.main.greek_state.copy()
expected_disk.tweak('A/mu', contents=''.join(mu_contents),
@@ -1910,7 +1910,7 @@ def patch_with_ignore_whitespace(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
mu_contents = [
"Dear internet user,\n",
@@ -2016,7 +2016,7 @@ def patch_with_ignore_whitespace(sbox):
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
+ 'U %s\n' % sbox.ospath('A/mu'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -2044,7 +2044,7 @@ def patch_replace_locally_deleted_file(s
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
mu_contents = [
"Dear internet user,\n",
@@ -2128,7 +2128,7 @@ def patch_no_eol_at_eof(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- iota_path = os.path.join(wc_dir, 'iota')
+ iota_path = sbox.ospath('iota')
iota_contents = [
"One line\n",
@@ -2174,7 +2174,7 @@ def patch_no_eol_at_eof(sbox):
"The last line with missing eol\n",
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'iota'),
+ 'U %s\n' % sbox.ospath('iota'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -2201,7 +2201,7 @@ def patch_with_properties(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- iota_path = os.path.join(wc_dir, 'iota')
+ iota_path = sbox.ospath('iota')
modified_prop_contents = "This is the property 'modified'.\n"
deleted_prop_contents = "This is the property 'deleted'.\n"
@@ -2245,7 +2245,7 @@ def patch_with_properties(sbox):
added_prop_contents = "This is the property 'added'.\n"
expected_output = [
- ' U %s\n' % os.path.join(wc_dir, 'iota'),
+ ' U %s\n' % sbox.ospath('iota'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -2272,8 +2272,8 @@ def patch_same_twice(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
- beta_path = os.path.join(wc_dir, 'A', 'B', 'E', 'beta')
+ mu_path = sbox.ospath('A/mu')
+ beta_path = sbox.ospath('A/B/E/beta')
mu_contents = [
"Dear internet user,\n",
@@ -2403,10 +2403,10 @@ def patch_same_twice(sbox):
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
- 'U %s\n' % os.path.join(wc_dir, 'iota'),
- 'A %s\n' % os.path.join(wc_dir, 'new'),
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
+ 'U %s\n' % sbox.ospath('A/D/gamma'),
+ 'U %s\n' % sbox.ospath('iota'),
+ 'A %s\n' % sbox.ospath('new'),
+ 'U %s\n' % sbox.ospath('A/mu'),
'D %s\n' % beta_path,
]
@@ -2436,9 +2436,9 @@ def patch_same_twice(sbox):
1) # dry-run
# apply the patch again
expected_output = [
- 'G %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
+ 'G %s\n' % sbox.ospath('A/D/gamma'),
'> hunk @@ -1,1 +1,1 @@ already applied\n',
- 'G %s\n' % os.path.join(wc_dir, 'iota'),
+ 'G %s\n' % sbox.ospath('iota'),
# The iota patch inserts a line after the first line in the file,
# with no trailing context. Currently, Subversion applies this patch
# multiple times, which matches the behaviour of Larry Wall's patch
@@ -2447,9 +2447,9 @@ def patch_same_twice(sbox):
# the duplicate application. Should Subversion be taught to detect it,
# we need this line here:
# '> hunk @@ -1,1 +1,2 @@ already applied\n',
- 'G %s\n' % os.path.join(wc_dir, 'new'),
+ 'G %s\n' % sbox.ospath('new'),
'> hunk @@ -0,0 +1,1 @@ already applied\n',
- 'G %s\n' % os.path.join(wc_dir, 'A', 'mu'),
+ 'G %s\n' % sbox.ospath('A/mu'),
'> hunk @@ -6,6 +6,9 @@ already applied\n',
'> hunk @@ -14,11 +17,8 @@ already applied\n',
'Skipped \'%s\'\n' % beta_path,
@@ -2479,7 +2479,7 @@ def patch_dir_properties(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- B_path = os.path.join(wc_dir, 'A', 'B')
+ B_path = sbox.ospath('A/B')
modified_prop_contents = "This is the property 'modified'.\n"
deleted_prop_contents = "This is the property 'deleted'.\n"
@@ -2539,7 +2539,7 @@ def patch_dir_properties(sbox):
expected_output = [
' U %s\n' % wc_dir,
- ' C %s\n' % os.path.join(wc_dir, 'A', 'B'),
+ ' C %s\n' % sbox.ospath('A/B'),
'Summary of conflicts:\n',
' Property conflicts: 1\n',
]
@@ -2575,7 +2575,7 @@ def patch_add_path_with_props(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- iota_path = os.path.join(wc_dir, 'iota')
+ iota_path = sbox.ospath('iota')
# Apply patch that adds two files, one of which is empty.
# Both files have properties.
@@ -2610,8 +2610,8 @@ def patch_add_path_with_props(sbox):
added_prop_contents = "This is the property 'added'.\n"
expected_output = [
- 'A %s\n' % os.path.join(wc_dir, 'new'),
- 'A %s\n' % os.path.join(wc_dir, 'X'),
+ 'A %s\n' % sbox.ospath('new'),
+ 'A %s\n' % sbox.ospath('X'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -2641,7 +2641,7 @@ def patch_prop_offset(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- iota_path = os.path.join(wc_dir, 'iota')
+ iota_path = sbox.ospath('iota')
prop1_content = ''.join([
"Dear internet user,\n",
@@ -2855,7 +2855,7 @@ def patch_prop_with_fuzz(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
# We have replaced a couple of lines to cause fuzz. Those lines contains
# the word fuzz
@@ -2969,7 +2969,7 @@ def patch_prop_with_fuzz(sbox):
])
expected_output = [
- ' U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
+ ' U %s\n' % sbox.ospath('A/mu'),
'> applied hunk ## -1,6 +1,7 ## with fuzz 1 (prop)\n',
'> applied hunk ## -7,7 +8,9 ## with fuzz 2 (prop)\n',
'> applied hunk ## -19,6 +20,7 ## with offset 1 and fuzz 2 (prop)\n',
@@ -2998,7 +2998,7 @@ def patch_git_empty_files(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- new_path = os.path.join(wc_dir, 'new')
+ new_path = sbox.ospath('new')
unidiff_patch = [
"Index: new\n",
@@ -3014,8 +3014,8 @@ def patch_git_empty_files(sbox):
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
expected_output = [
- 'A %s\n' % os.path.join(wc_dir, 'new'),
- 'D %s\n' % os.path.join(wc_dir, 'iota'),
+ 'A %s\n' % sbox.ospath('new'),
+ 'D %s\n' % sbox.ospath('iota'),
]
expected_disk = svntest.main.greek_state.copy()
expected_disk.add({'new' : Item(contents="")})
@@ -3043,7 +3043,7 @@ def patch_old_target_names(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
mu_contents = [
"Dear internet user,\n",
@@ -3142,7 +3142,7 @@ def patch_old_target_names(sbox):
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
+ 'U %s\n' % sbox.ospath('A/mu'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -3169,7 +3169,7 @@ def patch_reverse_revert(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
mu_contents_pre_patch = [
"Dear internet user,\n",
@@ -3299,11 +3299,11 @@ def patch_reverse_revert(sbox):
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
- 'U %s\n' % os.path.join(wc_dir, 'iota'),
- 'A %s\n' % os.path.join(wc_dir, 'new'),
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'B', 'E', 'beta'),
+ 'U %s\n' % sbox.ospath('A/D/gamma'),
+ 'U %s\n' % sbox.ospath('iota'),
+ 'A %s\n' % sbox.ospath('new'),
+ 'U %s\n' % sbox.ospath('A/mu'),
+ 'D %s\n' % sbox.ospath('A/B/E/beta'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -3333,11 +3333,11 @@ def patch_reverse_revert(sbox):
# Applying the same patch in reverse should undo local mods
expected_output = [
- 'G %s\n' % os.path.join(wc_dir, 'A', 'D', 'gamma'),
- 'G %s\n' % os.path.join(wc_dir, 'iota'),
- 'D %s\n' % os.path.join(wc_dir, 'new'),
- 'G %s\n' % os.path.join(wc_dir, 'A', 'mu'),
- 'A %s\n' % os.path.join(wc_dir, 'A', 'B', 'E', 'beta'),
+ 'G %s\n' % sbox.ospath('A/D/gamma'),
+ 'G %s\n' % sbox.ospath('iota'),
+ 'D %s\n' % sbox.ospath('new'),
+ 'G %s\n' % sbox.ospath('A/mu'),
+ 'A %s\n' % sbox.ospath('A/B/E/beta'),
]
expected_disk = svntest.main.greek_state.copy()
expected_disk.tweak('A/mu', contents=''.join(mu_contents_pre_patch))
@@ -3368,7 +3368,7 @@ def patch_one_property(sbox, trailing_eo
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
# Apply patch
@@ -3464,7 +3464,7 @@ def patch_add_symlink(sbox):
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
expected_output = [
- 'A %s\n' % os.path.join(wc_dir, 'iota_symlink'),
+ 'A %s\n' % sbox.ospath('iota_symlink'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -3491,7 +3491,7 @@ def patch_moved_away(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ mu_path = sbox.ospath('A/mu')
mu_contents = [
"Dear internet user,\n",
@@ -3592,7 +3592,7 @@ def patch_moved_away(sbox):
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'A', 'mu2'),
+ 'U %s\n' % sbox.ospath('A/mu2'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -3623,8 +3623,8 @@ def patch_lacking_trailing_eol(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- iota_path = os.path.join(wc_dir, 'iota')
- mu_path = os.path.join(wc_dir, 'A', 'mu')
+ iota_path = sbox.ospath('iota')
+ mu_path = sbox.ospath('A/mu')
# Prepare
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
@@ -3648,7 +3648,7 @@ def patch_lacking_trailing_eol(sbox):
new_contents = "new\n"
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'iota'),
+ 'U %s\n' % sbox.ospath('iota'),
]
# Expect a newline to be appended
@@ -3677,7 +3677,7 @@ def patch_deletes_prop(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- iota_path = os.path.join(wc_dir, 'iota')
+ iota_path = sbox.ospath('iota')
svntest.main.run_svn(None, 'propset', 'propname', 'propvalue',
iota_path)
@@ -3712,7 +3712,7 @@ def patch_deletes_prop(sbox):
expected_status.tweak('iota', wc_rev=2)
expected_skip = wc.State('', { })
expected_output = [
- ' U %s\n' % os.path.join(wc_dir, 'iota'),
+ ' U %s\n' % sbox.ospath('iota'),
]
svntest.actions.run_and_verify_patch(wc_dir, os.path.abspath(patch_file_path),
expected_output,
@@ -3761,7 +3761,7 @@ def patch_reversed_add_with_props(sbox):
patch_file_path = make_patch_path(sbox)
# Add a new file which also has props set on it.
- newfile_path = os.path.join(wc_dir, 'newfile')
+ newfile_path = sbox.ospath('newfile')
newfile_contents = ["This is the file 'newfile'.\n"]
svntest.main.file_write(newfile_path, ''.join(newfile_contents))
svntest.main.run_svn(None, 'add', newfile_path)
@@ -3810,7 +3810,7 @@ def patch_reversed_add_with_props2(sbox)
patch_file_path = make_patch_path(sbox)
# Add a new file which also has props set on it.
- newfile_path = os.path.join(wc_dir, 'newfile')
+ newfile_path = sbox.ospath('newfile')
newfile_contents = ["This is the file 'newfile'.\n"]
svntest.main.file_write(newfile_path, ''.join(newfile_contents))
svntest.main.run_svn(None, 'add', newfile_path)
@@ -3888,8 +3888,8 @@ def patch_dev_null(sbox):
new_contents = "new\n"
expected_output = [
- 'A %s\n' % os.path.join(wc_dir, 'new'),
- 'D %s\n' % os.path.join(wc_dir, 'A', 'B', 'E', 'beta'),
+ 'A %s\n' % sbox.ospath('new'),
+ 'D %s\n' % sbox.ospath('A/B/E/beta'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -3996,7 +3996,7 @@ def patch_target_no_eol_at_eof(sbox):
wc_dir = sbox.wc_dir
patch_file_path = make_patch_path(sbox)
- iota_path = os.path.join(wc_dir, 'iota')
+ iota_path = sbox.ospath('iota')
iota_contents = [
"This is the file iota."
@@ -4026,7 +4026,7 @@ def patch_target_no_eol_at_eof(sbox):
"It is really the file 'iota'."
]
expected_output = [
- 'U %s\n' % os.path.join(wc_dir, 'iota'),
+ 'U %s\n' % sbox.ospath('iota'),
]
expected_disk = svntest.main.greek_state.copy()
@@ -4071,10 +4071,10 @@ def patch_add_and_delete(sbox):
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
expected_output = [
- 'A %s\n' % os.path.join(wc_dir, 'P'),
- 'A %s\n' % os.path.join(wc_dir, 'P', 'Q'),
- 'A %s\n' % os.path.join(wc_dir, 'P', 'Q', 'foo'),
- 'D %s\n' % os.path.join(wc_dir, 'iota'),
+ 'A %s\n' % sbox.ospath('P'),
+ 'A %s\n' % sbox.ospath('P/Q'),
+ 'A %s\n' % sbox.ospath('P/Q/foo'),
+ 'D %s\n' % sbox.ospath('iota'),
]
expected_disk = svntest.main.greek_state.copy()
expected_disk.remove('iota')
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/prop_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/prop_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/prop_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/prop_tests.py Tue May 29 01:39:41 2012
@@ -25,7 +25,9 @@
######################################################################
# General modules
-import sys, re, os, stat, subprocess
+import sys, re, os, stat, subprocess, logging
+
+logger = logging.getLogger()
# Our testing module
import svntest
@@ -365,7 +367,7 @@ def update_conflict_props(sbox):
None, None, 1)
if len(extra_files) != 0:
- print("didn't get expected conflict files")
+ logger.warn("didn't get expected conflict files")
raise svntest.verify.SVNUnexpectedOutput
# Resolve the conflicts
@@ -776,9 +778,9 @@ def copy_inherits_special_props(sbox):
expected_stdout = [orig_mime_type + '\n']
if actual_stdout != expected_stdout:
- print("svn pg svn:mime-type output does not match expected.")
- print("Expected standard output: %s\n" % expected_stdout)
- print("Actual standard output: %s\n" % actual_stdout)
+ logger.warn("svn pg svn:mime-type output does not match expected.")
+ logger.warn("Expected standard output: %s\n", expected_stdout)
+ logger.warn("Actual standard output: %s\n", actual_stdout)
raise svntest.verify.SVNUnexpectedOutput
# Check the svn:executable value.
@@ -789,9 +791,9 @@ def copy_inherits_special_props(sbox):
expected_stdout = ['*\n']
if actual_stdout != expected_stdout:
- print("svn pg svn:executable output does not match expected.")
- print("Expected standard output: %s\n" % expected_stdout)
- print("Actual standard output: %s\n" % actual_stdout)
+ logger.warn("svn pg svn:executable output does not match expected.")
+ logger.warn("Expected standard output: %s\n", expected_stdout)
+ logger.warn("Actual standard output: %s\n", actual_stdout)
raise svntest.verify.SVNUnexpectedOutput
#----------------------------------------------------------------------
@@ -1038,8 +1040,8 @@ def binary_props(sbox):
# expected_out, and that errput is empty.
def verify_output(expected_out, output, errput):
if errput != []:
- print('Error: stderr:')
- print(errput)
+ logger.warn('Error: stderr:')
+ logger.warn(errput)
raise svntest.Failure
output.sort()
ln = 0
@@ -1048,8 +1050,8 @@ def verify_output(expected_out, output,
continue
if ((line.find(expected_out[ln]) == -1) or
(line != '' and expected_out[ln] == '')):
- print('Error: expected keywords: %s' % expected_out)
- print(' actual full output: %s' % output)
+ logger.warn('Error: expected keywords: %s', expected_out)
+ logger.warn(' actual full output: %s', output)
raise svntest.Failure
ln = ln + 1
if ln != len(expected_out):
@@ -1738,11 +1740,9 @@ def post_revprop_change_hook(sbox):
svntest.actions.create_failing_hook(repo_dir, 'post-revprop-change',
error_msg)
- # serf/neon/mod_dav_svn splits the "svn: hook failed" line
- expected_error = svntest.verify.RegexOutput([
- '(svn: E165001: |)post-revprop-change hook failed',
- error_msg + "\n",
- ], match_all = False)
+ # serf/neon/mod_dav_svn give SVN_ERR_RA_DAV_REQUEST_FAILED
+ # file/svn give SVN_ERR_REPOS_HOOK_FAILURE
+ expected_error = 'svn: (E175002|E165001).*post-revprop-change hook failed'
svntest.actions.run_and_verify_svn(None, [], expected_error,
'ps', '--revprop', '-r0', 'p', 'v',
@@ -1984,7 +1984,7 @@ def prop_reject_grind(sbox):
if match:
# The last line in the list is always an empty string.
if msg_lines[i + 1] == "":
- #print("found message %i in file at line %i" % (n, j))
+ #logger.info("found message %i in file at line %i" % (n, j))
break
i += 1
else:
@@ -2466,7 +2466,7 @@ def file_matching_dir_prop_reject(sbox):
extra_files,
None, None, True, '-r', '2', wc_dir)
if len(extra_files) != 0:
- print("didn't get expected conflict files")
+ logger.warn("didn't get expected conflict files")
raise svntest.verify.SVNUnexpectedOutput
# Revert and update to check that conflict files are removed
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/revert_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/revert_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/revert_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/revert_tests.py Tue May 29 01:39:41 2012
@@ -1600,6 +1600,12 @@ def revert_with_unversioned_targets(sbox
actual_disk = svntest.tree.build_tree_from_wc(wc_dir, 1)
svntest.tree.compare_trees("disk", actual_disk, expected_disk.old_tree())
+def revert_nonexistent(sbox):
+ 'svn revert -R nonexistent'
+ sbox.build(read_only=True)
+ svntest.actions.run_and_verify_svn(None, 'Skipped.*nonexistent', [],
+ 'revert', '-R', sbox.ospath('nonexistent'))
+
########################################################################
# Run the tests
@@ -1638,6 +1644,7 @@ test_list = [ None,
revert_no_text_change_conflict,
revert_no_text_change_conflict_recursive,
revert_with_unversioned_targets,
+ revert_nonexistent,
]
if __name__ == '__main__':
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/schedule_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/schedule_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/schedule_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/schedule_tests.py Tue May 29 01:39:41 2012
@@ -26,7 +26,9 @@
######################################################################
# General modules
-import os
+import os, logging
+
+logger = logging.getLogger()
# Our testing module
import svntest
@@ -256,8 +258,8 @@ def check_reversion(files, output):
output.sort()
expected_output.sort()
if output != expected_output:
- print("Expected output: %s" % expected_output)
- print("Actual output: %s" % output)
+ logger.warn("Expected output: %s", expected_output)
+ logger.warn("Actual output: %s", output)
raise svntest.Failure
#----------------------------------------------------------------------
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/special_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/special_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/special_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/special_tests.py Tue May 29 01:39:41 2012
@@ -608,10 +608,8 @@ def replace_symlink_with_dir(sbox):
expected_output = svntest.wc.State(wc_dir, {
})
- if svntest.main.is_posix_os():
- error_re_string = '.*E145001: Entry.*has unexpectedly changed special.*'
- else:
- error_re_string = None
+ error_re_string = 'E145001: (Entry|Node).*has.*changed (special|kind)'
+
svntest.actions.run_and_verify_commit(wc_dir, expected_output,
None, error_re_string, wc_dir)
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/stat_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/stat_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/stat_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/stat_tests.py Tue May 29 01:39:41 2012
@@ -83,8 +83,8 @@ def status_update_with_nested_adds(sbox)
svntest.actions.duplicate_dir(wc_dir, wc_backup)
# Create newdir and newfile
- newdir_path = os.path.join(wc_dir, 'newdir')
- newfile_path = os.path.join(wc_dir, 'newdir', 'newfile')
+ newdir_path = sbox.ospath('newdir')
+ newfile_path = sbox.ospath('newdir/newfile')
os.makedirs(newdir_path)
svntest.main.file_append(newfile_path, 'new text')
@@ -707,8 +707,8 @@ def timestamp_behaviour(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- A_path = os.path.join(wc_dir, 'A')
- iota_path = os.path.join(wc_dir, 'iota')
+ A_path = sbox.ospath('A')
+ iota_path = sbox.ospath('iota')
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
svntest.actions.run_and_verify_status(wc_dir, expected_status)
@@ -814,12 +814,9 @@ def status_on_unversioned_dotdot(sbox):
os.mkdir(new_subsub)
os.chdir(new_subsub)
- exit_code, out, err = svntest.main.run_svn(1, 'st', '..')
- for line in err:
- if line.find('svn: warning: W155007: \'..\' is not a working copy') != -1:
- break
- else:
- raise svntest.Failure
+ svntest.actions.run_and_verify_svn2(None, None,
+ "svn: warning: W155(010|007):.*'.*'.*not",
+ 0, 'st', '..')
#----------------------------------------------------------------------
@@ -863,7 +860,7 @@ def status_on_partially_nonrecursive_wc(
D_url = top_url + '/A/D'
G_url = top_url + '/A/D/G'
H_url = top_url + '/A/D/H'
- rho = os.path.join(wc_dir, 'A', 'D', 'G', 'rho')
+ rho = sbox.ospath('A/D/G/rho')
# Commit a change to A/D/G/rho. This will be our equivalent of
# whatever change it was that happened between r213 and HEAD in the
@@ -890,7 +887,7 @@ def missing_dir_in_anchor(sbox):
sbox.build(read_only = True)
wc_dir = sbox.wc_dir
- foo_path = os.path.join(wc_dir, 'foo')
+ foo_path = sbox.ospath('foo')
svntest.actions.run_and_verify_svn(None, None, [], 'mkdir', foo_path)
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
expected_status.add({
@@ -949,13 +946,29 @@ def status_in_xml(sbox):
svntest.actions.run_and_verify_status_xml(expected_entries, file_path, '-u')
+ svntest.actions.run_and_verify_svn(None, None, [],
+ 'rm', '-m', 'repo delete',
+ sbox.repo_url + '/A/B/E/alpha')
+
+ expected_entries = {sbox.ospath('A/B/E/alpha')
+ : {'wcprops' : 'none',
+ 'wcitem' : 'normal',
+ 'wcrev' : '1',
+ 'crev' : '1',
+ 'author' : svntest.main.wc_author,
+ 'rprops' : 'none',
+ 'ritem' : 'deleted'}}
+
+ svntest.actions.run_and_verify_status_xml(expected_entries,
+ sbox.ospath('A/B/E/alpha'), '-u')
+
#----------------------------------------------------------------------
def status_ignored_dir(sbox):
"status on ignored directory"
sbox.build()
wc_dir = sbox.wc_dir
- new_dir = os.path.join(wc_dir, "dir.o")
+ new_dir = sbox.ospath('dir.o')
new_dir_url = sbox.repo_url + "/dir.o"
svntest.actions.run_and_verify_svn("Create dir", "\n|Committed revision 2.", [],
@@ -976,8 +989,10 @@ def status_ignored_dir(sbox):
@Issue(2030)
def status_unversioned_dir(sbox):
"status on unversioned dir"
- sbox.build(read_only = True)
- dir = sbox.repo_dir
+ sbox.build(read_only = True, create_wc = False)
+ dir = sbox.wc_dir
+ svntest.main.safe_rmtree(sbox.wc_dir)
+ os.mkdir(dir)
expected_err = "svn: warning: W155007: '.*(/|\\\\)" + os.path.basename(dir) + \
"' is not a working copy"
svntest.actions.run_and_verify_svn2(None, [], expected_err, 0,
@@ -989,7 +1004,7 @@ def status_missing_dir(sbox):
"status with a versioned directory missing"
sbox.build(read_only = True)
wc_dir = sbox.wc_dir
- a_d_g = os.path.join(wc_dir, "A", "D", "G")
+ a_d_g = sbox.ospath('A/D/G')
# ok, blow away the A/D/G directory
svntest.main.safe_rmtree(a_d_g)
@@ -1022,7 +1037,7 @@ def status_missing_dir(sbox):
" * " + os.path.join(a_d_g, "rho") + "\n",
" * " + os.path.join(a_d_g, "tau") + "\n",
"! * ? " + a_d_g + "\n",
- " * 1 " + os.path.join(wc_dir, "A", "D") + "\n",
+ " * 1 " + sbox.ospath('A/D') + "\n",
"Status against revision: 1\n" ]
# now run status -u, we should be able to do this without crashing
@@ -1061,7 +1076,7 @@ def status_add_plus_conflict(sbox):
svntest.actions.run_and_verify_svn(None, None, [],
'update', wc_dir)
- branch_file = os.path.join(wc_dir, 'branch', 'file')
+ branch_file = sbox.ospath('branch/file')
svntest.main.file_write(branch_file, "line 1\nline2\nline3\n", 'wb+')
@@ -1083,7 +1098,7 @@ def status_add_plus_conflict(sbox):
'commit',
branch_file, '-m', 'rev 5')
- trunk_dir = os.path.join(wc_dir, 'trunk')
+ trunk_dir = sbox.ospath('trunk')
svntest.actions.run_and_verify_svn(None, None, [],
'merge',
@@ -1094,15 +1109,15 @@ def status_add_plus_conflict(sbox):
branch_url, '-r', '4:5', trunk_dir)
lines = [
- "? " + os.path.join(wc_dir, "trunk", "file.merge-left.r4") + "\n",
- "? " + os.path.join(wc_dir, "trunk", "file.merge-right.r5") + "\n",
- "? " + os.path.join(wc_dir, "trunk", "file.working") + "\n",
- "C + " + os.path.join(wc_dir, "trunk", "file") + "\n",
+ "? " + sbox.ospath('trunk/file.merge-left.r4') + "\n",
+ "? " + sbox.ospath('trunk/file.merge-right.r5') + "\n",
+ "? " + sbox.ospath('trunk/file.working') + "\n",
+ "C + " + sbox.ospath('trunk/file') + "\n",
"Summary of conflicts:\n",
" Text conflicts: 1\n",
]
if svntest.main.server_has_mergeinfo():
- lines.append(" M " + os.path.join(wc_dir, "trunk") + "\n")
+ lines.append(" M " + sbox.ospath('trunk') + "\n")
expected_output = svntest.verify.UnorderedOutput(lines)
@@ -1116,7 +1131,7 @@ def inconsistent_eol(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- iota_path = os.path.join(wc_dir, "iota")
+ iota_path = sbox.ospath('iota')
svntest.main.file_write(iota_path, "line 1\nline 2\n", "wb")
@@ -1124,7 +1139,7 @@ def inconsistent_eol(sbox):
"property 'svn:eol-style' set on.*iota",
[],
'propset', 'svn:eol-style', 'native',
- os.path.join(wc_dir, 'iota'))
+ sbox.ospath('iota'))
expected_output = svntest.wc.State(wc_dir, {
'iota' : Item(verb='Sending'),
@@ -1148,7 +1163,7 @@ def status_update_with_incoming_props(sb
sbox.build()
wc_dir = sbox.wc_dir
- A_path = os.path.join(wc_dir, 'A')
+ A_path = sbox.ospath('A')
# Add a property to the root folder and a subdir
svntest.main.run_svn(None, 'propset', 'red', 'rojo', wc_dir)
@@ -1201,7 +1216,7 @@ def status_update_with_incoming_props(sb
expected = svntest.verify.UnorderedOutput(
[" 1 1 jrandom " +
- os.path.join(wc_dir, "iota") + "\n",
+ sbox.ospath('iota') + "\n",
" * 1 1 jrandom " + A_path + "\n",
" * 1 1 jrandom " + wc_dir + "\n",
"Status against revision: 2\n" ])
@@ -1247,7 +1262,7 @@ def status_update_verbose_with_incoming_
sbox.build()
wc_dir = sbox.wc_dir
- A_path = os.path.join(wc_dir, 'A')
+ A_path = sbox.ospath('A')
D_path = os.path.join(A_path, 'D')
B_path = os.path.join(A_path, 'B')
E_path = os.path.join(A_path, 'B', 'E')
@@ -1315,7 +1330,7 @@ def status_update_verbose_with_incoming_
" " + common + os.path.join(A_path, 'mu') + "\n",
" " + common + os.path.join(A_path, 'C') + "\n",
" " + common + A_path + "\n",
- " " + common + os.path.join(wc_dir, 'iota') + "\n",
+ " " + common + sbox.ospath('iota') + "\n",
" *" + common + wc_dir + "\n",
"Status against revision: 2\n" ])
@@ -1332,7 +1347,7 @@ def status_nonrecursive_update(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- A_path = os.path.join(wc_dir, 'A')
+ A_path = sbox.ospath('A')
D_path = os.path.join(A_path, 'D')
mu_path = os.path.join(A_path, 'mu')
gamma_path = os.path.join(D_path, 'gamma')
@@ -1371,7 +1386,7 @@ def status_nonrecursive_update(sbox):
'-r', '1', wc_dir)
# Check the remote status of folder A (non-recursively)
- xout = [" * 1 " + os.path.join(wc_dir, "A", "mu") + "\n",
+ xout = [" * 1 " + sbox.ospath('A/mu') + "\n",
"Status against revision: 2\n" ]
svntest.actions.run_and_verify_svn(None,
@@ -1416,7 +1431,7 @@ def status_depth_local(sbox):
sbox.build(read_only = True)
wc_dir = sbox.wc_dir
- A_path = os.path.join(wc_dir, 'A')
+ A_path = sbox.ospath('A')
D_path = os.path.join(A_path, 'D')
mu_path = os.path.join(A_path, 'mu')
@@ -1475,7 +1490,7 @@ def status_depth_update(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- A_path = os.path.join(wc_dir, 'A')
+ A_path = sbox.ospath('A')
D_path = os.path.join(A_path, 'D')
mu_path = os.path.join(A_path, 'mu')
@@ -1551,7 +1566,7 @@ def status_dash_u_deleted_directories(sb
sbox.build()
wc_dir = sbox.wc_dir
- A_path = os.path.join(wc_dir, 'A')
+ A_path = sbox.ospath('A')
B_path = os.path.join(A_path, 'B')
# delete the B directory
@@ -1687,7 +1702,7 @@ def status_with_tree_conflicts(sbox):
svntest.actions.build_greek_tree_conflicts(sbox)
wc_dir = sbox.wc_dir
- G = os.path.join(wc_dir, 'A', 'D', 'G')
+ G = sbox.ospath('A/D/G')
pi = os.path.join(G, 'pi')
rho = os.path.join(G, 'rho')
tau = os.path.join(G, 'tau')
@@ -1777,9 +1792,9 @@ def status_nested_wc_old_format(sbox):
sbox.build(read_only = True)
wc_dir = sbox.wc_dir
- os.mkdir(os.path.join(wc_dir, 'subdir'))
- os.mkdir(os.path.join(wc_dir, 'subdir', '.svn'))
- svntest.main.file_append(os.path.join(wc_dir, 'subdir', '.svn', 'format'),
+ os.mkdir(sbox.ospath('subdir'))
+ os.mkdir(sbox.ospath('subdir/.svn'))
+ svntest.main.file_append(sbox.ospath('subdir/.svn/format'),
'10\n') # format 10 was the Subversion 1.6 format
os.chdir(wc_dir)
svntest.actions.run_and_verify_svn(None, [ "? subdir\n" ], [], 'st')
@@ -1800,7 +1815,7 @@ def status_locked_deleted(sbox):
"status with locked deleted file"
sbox.build()
- iota_path = os.path.join(sbox.wc_dir, 'iota')
+ iota_path = sbox.ospath('iota')
sbox.simple_rm('iota')
simple_lock(sbox, 'iota')
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/svnadmin_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/svnadmin_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/svnadmin_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/svnadmin_tests.py Tue May 29 01:39:41 2012
@@ -103,6 +103,16 @@ def check_hotcopy_fsfs(src, dst):
% (row, rows1[i]))
continue
+ # Special case for revprop-generation: It will always be zero in
+ # the hotcopy destination (i.e. a fresh cache generation)
+ if src_file == 'revprop-generation':
+ f2 = open(dst_path, 'r')
+ revprop_gen = int(f2.read().strip())
+ if revprop_gen != 0:
+ raise svntest.Failure("Hotcopy destination has non-zero " +
+ "revprop generation")
+ continue
+
f1 = open(src_path, 'r')
f2 = open(dst_path, 'r')
while True:
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/svnmucc_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/svnmucc_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/svnmucc_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/svnmucc_tests.py Tue May 29 01:39:41 2012
@@ -39,7 +39,7 @@ def reject_bogus_mergeinfo(sbox):
sbox.build(create_wc=False)
- expected_error = ".*(E200020.*Invalid revision|E175008.*property change)"
+ expected_error = ".*(E200020.*Invalid revision|E175002.*PROPPATCH)"
# At present this tests the server, but if we ever make svnmucc
# validate the mergeinfo up front then it will only test the client
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/err.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/err.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/err.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/err.py Tue May 29 01:39:41 2012
@@ -22,6 +22,7 @@ AUTHZ_PARTIALLY_READABLE = 220002
AUTHZ_ROOT_UNREADABLE = 220000
AUTHZ_UNREADABLE = 220001
AUTHZ_UNWRITABLE = 220004
+BAD_ATOMIC = 125015
BAD_CHANGELIST_NAME = 125014
BAD_CHECKSUM_KIND = 125011
BAD_CHECKSUM_PARSE = 125012
@@ -40,21 +41,24 @@ BAD_UUID = 125008
BAD_VERSION_FILE_FORMAT = 125006
BASE = 200000
CANCELLED = 200015
-CATEGORY_SIZE = 5000
CEASE_INVOCATION = 200021
CHECKSUM_MISMATCH = 200014
CLIENT_BAD_REVISION = 195002
CLIENT_CYCLE_DETECTED = 195019
CLIENT_DUPLICATE_COMMIT_URL = 195003
CLIENT_FILE_EXTERNAL_OVERWRITE_VERSIONED = 195017
+CLIENT_FORBIDDEN_BY_SERVER = 195023
CLIENT_INVALID_EXTERNALS_DESCRIPTION = 195005
+CLIENT_INVALID_MERGEINFO_NO_MERGETRACKING = 195021
CLIENT_INVALID_RELOCATION = 195009
CLIENT_IS_BINARY_FILE = 195004
CLIENT_IS_DIRECTORY = 195007
+CLIENT_MERGE_UPDATE_REQUIRED = 195020
CLIENT_MISSING_LOCK_TOKEN = 195013
CLIENT_MODIFIED = 195006
CLIENT_MULTIPLE_SOURCES_DISALLOWED = 195014
CLIENT_NOT_READY_TO_MERGE = 195016
+CLIENT_NO_LOCK_TOKEN = 195022
CLIENT_NO_VERSIONED_PARENT = 195015
CLIENT_PATCH_BAD_STRIP_COUNT = 195018
CLIENT_PROPERTY_NAME = 195011
@@ -95,6 +99,7 @@ FS_CONFLICT = 160024
FS_CORRUPT = 160004
FS_GENERAL = 160000
FS_ID_NOT_FOUND = 160014
+FS_INCORRECT_EDITOR_COMPLETION = 160050
FS_LOCK_EXPIRED = 160041
FS_LOCK_OWNER_MISMATCH = 160039
FS_MALFORMED_SKEL = 160027
@@ -143,11 +148,11 @@ IO_CORRUPT_EOL = 135002
IO_INCONSISTENT_EOL = 135000
IO_PIPE_FRAME_ERROR = 135004
IO_PIPE_READ_ERROR = 135005
+IO_PIPE_WRITE_ERROR = 135007
IO_UNIQUE_NAMES_EXHAUSTED = 135003
IO_UNKNOWN_EOL = 135001
IO_WRITE_ERROR = 135006
ITER_BREAK = 200023
-LAST = 235002
MALFORMED_FILE = 200002
MERGEINFO_PARSE_ERROR = 200020
NODE_UNEXPECTED_KIND = 145001
@@ -211,6 +216,7 @@ REPOS_UNSUPPORTED_VERSION = 165005
RESERVED_FILENAME_SPECIFIED = 200025
REVNUM_PARSE_FAILURE = 200022
SQLITE_BUSY = 200033
+SQLITE_CONSTRAINT = 200035
SQLITE_ERROR = 200030
SQLITE_READONLY = 200031
SQLITE_RESETTING_FOR_ROLLBACK = 200034
@@ -263,6 +269,7 @@ WC_NOT_SYMLINK = 155034
WC_NOT_UP_TO_DATE = 155011
WC_NOT_WORKING_COPY = 155007
WC_OBSTRUCTED_UPDATE = 155000
+WC_PATH_ACCESS_DENIED = 155039
WC_PATH_FOUND = 155014
WC_PATH_NOT_FOUND = 155010
WC_PATH_UNEXPECTED_STATUS = 155035
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/main.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/main.py Tue May 29 01:39:41 2012
@@ -78,20 +78,8 @@ SVN_VER_MINOR = 8
default_num_threads = 5
-# This enables both a time stamp prefix on all log lines and a
-# '<TIME = 0.042552>' line after running every external command.
-log_with_timestamps = True
-
-# Set up logging
-logger = logging.getLogger()
-handler = logging.StreamHandler(sys.stdout)
-if log_with_timestamps:
- formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s',
- '%Y-%m-%d %H:%M:%S')
-else:
- formatter = logging.Formatter('[%(levelname)s] %(message)s')
-handler.setFormatter(formatter)
-logger.addHandler(handler)
+# Don't try to use this before calling execute_tests()
+logger = None
class SVNProcessTerminatedBySignal(Failure):
@@ -160,13 +148,12 @@ svnsync_binary = os.path.abspath('../../
svnversion_binary = os.path.abspath('../../svnversion/svnversion' + _exe)
svndumpfilter_binary = os.path.abspath('../../svndumpfilter/svndumpfilter' + \
_exe)
+svnmucc_binary=os.path.abspath('../../svnmucc/svnmucc' + _exe)
entriesdump_binary = os.path.abspath('entries-dump' + _exe)
atomic_ra_revprop_change_binary = os.path.abspath('atomic-ra-revprop-change' + \
_exe)
wc_lock_tester_binary = os.path.abspath('../libsvn_wc/wc-lock-tester' + _exe)
wc_incomplete_tester_binary = os.path.abspath('../libsvn_wc/wc-incomplete-tester' + _exe)
-svnmucc_binary=os.path.abspath('../../../tools/client-side/svnmucc/svnmucc' + \
- _exe)
# Location to the pristine repository, will be calculated from test_area_url
# when we know what the user specified for --url.
@@ -234,7 +221,7 @@ greek_state = svntest.wc.State('', {
######################################################################
# Utilities shared by the tests
-def wrap_ex(func):
+def wrap_ex(func, output):
"Wrap a function, catch, print and ignore exceptions"
def w(*args, **kwds):
try:
@@ -243,9 +230,9 @@ def wrap_ex(func):
if ex.__class__ != Failure or ex.args:
ex_args = str(ex)
if ex_args:
- print('EXCEPTION: %s: %s' % (ex.__class__.__name__, ex_args))
+ logger.warn('EXCEPTION: %s: %s', ex.__class__.__name__, ex_args)
else:
- print('EXCEPTION: %s' % ex.__class__.__name__)
+ logger.warn('EXCEPTION: %s', ex.__class__.__name__)
return w
def setup_development_mode():
@@ -511,9 +498,26 @@ def run_command_stdin(command, error_exp
stdin_lines,
*varargs)
- if log_with_timestamps:
- stop = time.time()
- logger.info('<TIME = %.6f>' % (stop - start))
+ def _line_contains_repos_diskpath(line):
+ # ### Note: this assumes that either svn-test-work isn't a symlink,
+ # ### or the diskpath isn't realpath()'d somewhere on the way from
+ # ### the server's configuration and the client's stderr. We could
+ # ### check for both the symlinked path and the realpath.
+ return \
+ os.path.join('cmdline', 'svn-test-work', 'repositories') in line \
+ or os.path.join('cmdline', 'svn-test-work', 'local_tmp', 'repos') in line
+
+ for lines, name in [[stdout_lines, "stdout"], [stderr_lines, "stderr"]]:
+ if is_ra_type_file() or 'svnadmin' in command or 'svnlook' in command:
+ break
+ # Does the server leak the repository on-disk path?
+ # (prop_tests-12 installs a hook script that does that intentionally)
+ if any(map(_line_contains_repos_diskpath, lines)) \
+ and not any(map(lambda arg: 'prop_tests-12' in arg, varargs)):
+ raise Failure("Repository diskpath in %s: %r" % (name, lines))
+
+ stop = time.time()
+ logger.info('<TIME = %.6f>' % (stop - start))
for x in stdout_lines:
logger.info(x.rstrip())
for x in stderr_lines:
@@ -885,9 +889,8 @@ def copy_repos(src_path, dst_path, head_
load_out.close()
load_err.close()
- if log_with_timestamps:
- stop = time.time()
- logger.info('<TIME = %.6f>' % (stop - start))
+ stop = time.time()
+ logger.info('<TIME = %.6f>' % (stop - start))
if saved_quiet is None:
del os.environ['SVN_DBG_QUIET']
@@ -899,11 +902,11 @@ def copy_repos(src_path, dst_path, head_
for dump_line in dump_stderr:
match = dump_re.match(dump_line)
if not match or match.group(1) != str(expect_revision):
- print('ERROR: dump failed: %s' % dump_line.strip())
+ logger.warn('ERROR: dump failed: %s', dump_line.strip())
raise SVNRepositoryCopyFailure
expect_revision += 1
if expect_revision != head_revision + 1:
- print('ERROR: dump failed; did not see revision %s' % head_revision)
+ logger.warn('ERROR: dump failed; did not see revision %s', head_revision)
raise SVNRepositoryCopyFailure
load_re = re.compile(r'^------- Committed revision (\d+) >>>\r?$')
@@ -912,11 +915,11 @@ def copy_repos(src_path, dst_path, head_
match = load_re.match(load_line)
if match:
if match.group(1) != str(expect_revision):
- print('ERROR: load failed: %s' % load_line.strip())
+ logger.warn('ERROR: load failed: %s', load_line.strip())
raise SVNRepositoryCopyFailure
expect_revision += 1
if expect_revision != head_revision + 1:
- print('ERROR: load failed; did not see revision %s' % head_revision)
+ logger.warn('ERROR: load failed; did not see revision %s', head_revision)
raise SVNRepositoryCopyFailure
@@ -1538,7 +1541,11 @@ def _create_parser():
help="Configuration file for tests.")
parser.add_option('--set-log-level', action='callback', type='str',
callback=set_log_level,
- help="Set log level (numerically or symbolically)")
+ help="Set log level (numerically or symbolically). " +
+ "Symbolic levels are: CRITICAL, ERROR, WARNING, " +
+ "INFO, DEBUG")
+ parser.add_option('--log-with-timestamps', action='store_true',
+ help="Show timestamps in test log.")
parser.add_option('--keep-local-tmp', action='store_true',
help="Don't remove svn-test-work/local_tmp after test " +
"run is complete. Useful for debugging failures.")
@@ -1639,6 +1646,28 @@ def get_target_milestones_for_issues(iss
return issue_dict
+
+class AbbreviatedFormatter(logging.Formatter):
+ """A formatter with abbreviated loglevel indicators in the output.
+
+ Use %(levelshort)s in the format string to get a single character
+ representing the loglevel..
+ """
+
+ _level_short = {
+ logging.CRITICAL : 'C',
+ logging.ERROR : 'E',
+ logging.WARNING : 'W',
+ logging.INFO : 'I',
+ logging.DEBUG : 'D',
+ logging.NOTSET : '-',
+ }
+
+ def format(self, record):
+ record.levelshort = self._level_short[record.levelno]
+ return logging.Formatter.format(self, record)
+
+
# Main func. This is the "entry point" that all the test scripts call
# to run their list of tests.
#
@@ -1649,6 +1678,7 @@ def execute_tests(test_list, serial_only
exiting the process. This function can be used when a caller doesn't
want the process to die."""
+ global logger
global pristine_url
global pristine_greek_repos_url
global svn_binary
@@ -1665,6 +1695,19 @@ def execute_tests(test_list, serial_only
testnums = []
+ # Initialize the LOGGER global variable so the option parsing can set
+ # its loglevel, as appropriate.
+ logger = logging.getLogger()
+
+ # Did some chucklehead log something before we configured it? If they
+ # did, then a default handler/formatter would get installed. We want
+ # to be the one to install the first (and only) handler.
+ for handler in logger.handlers:
+ if not isinstance(handler.formatter, AbbreviatedFormatter):
+ raise Exception('Logging occurred before configuration. Some code'
+ ' path needs to be fixed. Examine the log output'
+ ' to find what/where logged something.')
+
if not options:
# Override which tests to run from the commandline
(parser, args) = _parse_options()
@@ -1672,6 +1715,22 @@ def execute_tests(test_list, serial_only
else:
parser = _create_parser()
+ # If there are no handlers registered yet, then install our own with
+ # our custom formatter. (anything currently installed *is* our handler
+ # as tested above)
+ if not logger.handlers:
+ # Now that we have some options, let's get the logger configured before
+ # doing anything more
+ if options.log_with_timestamps:
+ formatter = AbbreviatedFormatter('%(levelshort)s:'
+ ' [%(asctime)s] %(message)s',
+ datefmt='%Y-%m-%d %H:%M:%S')
+ else:
+ formatter = AbbreviatedFormatter('%(levelshort)s: %(message)s')
+ handler = logging.StreamHandler(sys.stdout)
+ handler.setFormatter(formatter)
+ logger.addHandler(handler)
+
# parse the positional arguments (test nums, names)
for arg in test_selection:
appended = False
@@ -1734,7 +1793,7 @@ def execute_tests(test_list, serial_only
'jsvndumpfilter' + _bat)
svnversion_binary = os.path.join(options.svn_bin,
'jsvnversion' + _bat)
- svnversion_binary = os.path.join(options.svn_bin, 'jsvnmucc' + _bat)
+ svnmucc_binary = os.path.join(options.svn_bin, 'jsvnmucc' + _bat)
else:
if options.svn_bin:
svn_binary = os.path.join(options.svn_bin, 'svn' + _exe)
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/sandbox.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/sandbox.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/sandbox.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/sandbox.py Tue May 29 01:39:41 2012
@@ -276,6 +276,37 @@ class Sandbox:
targets = self.ospaths(targets)
svntest.main.run_svn(False, 'propdel', name, *targets)
+ def simple_propget(self, name, target):
+ """Return the value of the property NAME on TARGET.
+ TARGET is a relpath relative to the WC."""
+ target = self.ospath(target)
+ exit, out, err = svntest.main.run_svn(False, 'propget',
+ '--strict', name, target)
+ return ''.join(out)
+
+ def simple_proplist(self, target):
+ """Return a dictionary mapping property name to property value, of the
+ properties on TARGET.
+ TARGET is a relpath relative to the WC."""
+ target = self.ospath(target)
+ exit, out, err = svntest.main.run_svn(False, 'proplist',
+ '--verbose', '--quiet', target)
+ props = {}
+ for line in out:
+ line = line.rstrip('\r\n')
+ if line[2] != ' ': # property name
+ name = line[2:]
+ val = None
+ elif line.startswith(' '): # property value
+ if val is None:
+ val = line[4:]
+ else:
+ val += '\n' + line[4:]
+ props[name] = val
+ else:
+ raise Exception("Unexpected line '" + line + "' in proplist output" + str(out))
+ return props
+
def simple_copy(self, source, dest):
"""Copy SOURCE to DEST in the WC.
SOURCE and DEST are relpaths relative to the WC."""
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/wc.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/wc.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/wc.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/wc.py Tue May 29 01:39:41 2012
@@ -98,7 +98,7 @@ _re_parse_skipped = re.compile("^Skipped
_re_parse_summarize = re.compile("^([MAD ][M ]) (.+)\n")
-_re_parse_checkout = re.compile('^([RMAGCUDE_ ][MAGCUDE_ ])'
+_re_parse_checkout = re.compile('^([RMAGCUDE_ B][MAGCUDE_ ])'
'([B ])'
'([CAUD ])\s+'
'(.+)')
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/switch_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/switch_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/switch_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/switch_tests.py Tue May 29 01:39:41 2012
@@ -284,14 +284,14 @@ def full_update(sbox):
commit_routine_switching(wc_backup, 0)
# Some convenient path variables
- iota_path = os.path.join(wc_dir, 'iota')
- gamma_path = os.path.join(wc_dir, 'A', 'D', 'gamma')
- Bpi_path = os.path.join(wc_dir, 'A', 'B', 'pi')
- BZ_path = os.path.join(wc_dir, 'A', 'B', 'Z')
- Bzeta_path = os.path.join(wc_dir, 'A', 'B', 'Z', 'zeta')
- Gpi_path = os.path.join(wc_dir, 'A', 'D', 'G', 'pi')
- GZ_path = os.path.join(wc_dir, 'A', 'D', 'G', 'Z')
- Gzeta_path = os.path.join(wc_dir, 'A', 'D', 'G', 'Z', 'zeta')
+ iota_path = sbox.ospath('iota')
+ gamma_path = sbox.ospath('A/D/gamma')
+ Bpi_path = sbox.ospath('A/B/pi')
+ BZ_path = sbox.ospath('A/B/Z')
+ Bzeta_path = sbox.ospath('A/B/Z/zeta')
+ Gpi_path = sbox.ospath('A/D/G/pi')
+ GZ_path = sbox.ospath('A/D/G/Z')
+ Gzeta_path = sbox.ospath('A/D/G/Z/zeta')
# Create expected output tree for an update of wc_backup.
expected_output = svntest.wc.State(wc_dir, {
@@ -352,12 +352,12 @@ def full_rev_update(sbox):
svntest.main.run_svn(None, 'up', wc_dir)
# Some convenient path variables
- iota_path = os.path.join(wc_dir, 'iota')
- gamma_path = os.path.join(wc_dir, 'A', 'D', 'gamma')
- Bpi_path = os.path.join(wc_dir, 'A', 'B', 'pi')
- BZ_path = os.path.join(wc_dir, 'A', 'B', 'Z')
- Gpi_path = os.path.join(wc_dir, 'A', 'D', 'G', 'pi')
- GZ_path = os.path.join(wc_dir, 'A', 'D', 'G', 'Z')
+ iota_path = sbox.ospath('iota')
+ gamma_path = sbox.ospath('A/D/gamma')
+ Bpi_path = sbox.ospath('A/B/pi')
+ BZ_path = sbox.ospath('A/B/Z')
+ Gpi_path = sbox.ospath('A/D/G/pi')
+ GZ_path = sbox.ospath('A/D/G/Z')
# Now, reverse update, back to the pre-commit state.
expected_output = svntest.wc.State(wc_dir, {
@@ -403,8 +403,8 @@ def update_switched_things(sbox):
commit_routine_switching(wc_backup, 0)
# Some convenient path variables
- iota_path = os.path.join(wc_dir, 'iota')
- B_path = os.path.join(wc_dir, 'A', 'B')
+ iota_path = sbox.ospath('iota')
+ B_path = sbox.ospath('A/B')
# Create expected output tree for an update of wc_backup.
expected_output = svntest.wc.State(wc_dir, {
@@ -459,8 +459,8 @@ def rev_update_switched_things(sbox):
commit_routine_switching(wc_dir, 0)
# Some convenient path variables
- iota_path = os.path.join(wc_dir, 'iota')
- B_path = os.path.join(wc_dir, 'A', 'B')
+ iota_path = sbox.ospath('iota')
+ B_path = sbox.ospath('A/B')
# Update to HEAD (tested elsewhere)
svntest.main.run_svn(None, 'up', wc_dir)
@@ -515,7 +515,7 @@ def log_switched_file(sbox):
do_routine_switching(wc_dir, sbox.repo_url, 0)
# edit and commit switched file 'iota'
- iota_path = os.path.join(wc_dir, 'iota')
+ iota_path = sbox.ospath('iota')
svntest.main.run_svn(None, 'ps', 'x', 'x', iota_path)
svntest.main.run_svn(None,
'ci', '-m',
@@ -537,7 +537,7 @@ def delete_subdir(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- A_path = os.path.join(wc_dir, 'A')
+ A_path = sbox.ospath('A')
A_url = sbox.repo_url + '/A'
A2_url = sbox.repo_url + '/A2'
A2_B_F_url = sbox.repo_url + '/A2/B/F'
@@ -577,7 +577,7 @@ def file_dir_file(sbox):
sbox.build(read_only = True)
wc_dir = sbox.wc_dir
- file_path = os.path.join(wc_dir, 'iota')
+ file_path = sbox.ospath('iota')
file_url = sbox.repo_url + '/iota'
dir_url = sbox.repo_url + '/A/C'
@@ -672,7 +672,7 @@ def failed_anchor_is_target(sbox):
'mkdir', '-m', 'log msg', G_psi_url)
# Modify the file 'H/psi' locally.
- H_path = os.path.join(wc_dir, 'A', 'D', 'H')
+ H_path = sbox.ospath('A/D/H')
psi_path = os.path.join(H_path, 'psi')
svntest.main.file_append(psi_path, "more text")
@@ -718,8 +718,8 @@ def bad_intermediate_urls(sbox):
wc_dir = sbox.wc_dir
url = sbox.repo_url
- A = os.path.join(wc_dir, 'A')
- A_Z = os.path.join(wc_dir, 'A', 'Z')
+ A = sbox.ospath('A')
+ A_Z = sbox.ospath('A/Z')
url_A_C = url + '/A/C'
url_A_C_A = url + '/A/C/A'
url_A_C_A_Z = url + '/A/C/A/Z'
@@ -822,8 +822,8 @@ def obstructed_switch(sbox):
wc_dir = sbox.wc_dir
url = sbox.repo_url
- A_B_E = os.path.join(wc_dir, 'A', 'B', 'E')
- A_B_E_alpha = os.path.join(wc_dir, 'A', 'B', 'E', 'alpha')
+ A_B_E = sbox.ospath('A/B/E')
+ A_B_E_alpha = sbox.ospath('A/B/E/alpha')
url_A_B_E = url + '/A/B/E'
url_A_B_Esave = url + '/A/B/Esave'
@@ -899,7 +899,7 @@ def commit_mods_below_switch(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- C_path = os.path.join(wc_dir, 'A', 'C')
+ C_path = sbox.ospath('A/C')
B_url = sbox.repo_url + '/A/B'
expected_output = svntest.wc.State(wc_dir, {
'A/C/E' : Item(status='A '),
@@ -932,7 +932,7 @@ def commit_mods_below_switch(sbox):
None, None, None, None, None,
False, '--ignore-ancestry')
- D_path = os.path.join(wc_dir, 'A', 'D')
+ D_path = sbox.ospath('A/D')
svntest.actions.run_and_verify_svn(None, None, [],
'propset', 'x', 'x', C_path, D_path)
@@ -974,7 +974,7 @@ def refresh_read_only_attribute(sbox):
url, branch_url)
# Set the svn:needs-lock property on a file from the "trunk".
- A_path = os.path.join(wc_dir, 'A')
+ A_path = sbox.ospath('A')
mu_path = os.path.join(A_path, 'mu')
svntest.actions.run_and_verify_svn(None, None, [],
'ps', 'svn:needs-lock', '1', mu_path)
@@ -1033,7 +1033,7 @@ def switch_change_repos_root(sbox):
other_repo_url = other_repo_url + "_bogus"
other_A_url = other_repo_url + "/A"
- A_wc_dir = os.path.join(wc_dir, "A")
+ A_wc_dir = sbox.ospath('A')
# Test 1: A switch that changes to a non-existing repo shouldn't work.
expected_err = ".*Unable to open repository.*|.*Could not open.*|"\
@@ -1064,22 +1064,22 @@ def forced_switch(sbox):
sbox.build(read_only = True)
# Dir obstruction
- G_path = os.path.join(sbox.wc_dir, 'A', 'B', 'F', 'G')
+ G_path = sbox.ospath('A/B/F/G')
os.mkdir(G_path)
# Faux file obstructions
- shutil.copyfile(os.path.join(sbox.wc_dir, 'A', 'D', 'gamma'),
- os.path.join(sbox.wc_dir, 'A', 'B', 'F', 'gamma'))
- shutil.copyfile(os.path.join(sbox.wc_dir, 'A', 'D', 'G', 'tau'),
- os.path.join(sbox.wc_dir, 'A', 'B', 'F', 'G', 'tau'))
+ shutil.copyfile(sbox.ospath('A/D/gamma'),
+ sbox.ospath('A/B/F/gamma'))
+ shutil.copyfile(sbox.ospath('A/D/G/tau'),
+ sbox.ospath('A/B/F/G/tau'))
# Real file obstruction
- pi_path = os.path.join(sbox.wc_dir, 'A', 'B', 'F', 'G', 'pi')
+ pi_path = sbox.ospath('A/B/F/G/pi')
svntest.main.file_write(pi_path,
"This is the OBSTRUCTING file 'pi'.\n")
# Non-obstructing dir and file
- I_path = os.path.join(sbox.wc_dir, 'A', 'B', 'F', 'I')
+ I_path = sbox.ospath('A/B/F/I')
os.mkdir(I_path)
upsilon_path = os.path.join(G_path, 'upsilon')
svntest.main.file_write(upsilon_path,
@@ -1126,7 +1126,7 @@ def forced_switch(sbox):
})
# Do the switch and check the results in three ways.
- F_path = os.path.join(sbox.wc_dir, 'A', 'B', 'F')
+ F_path = sbox.ospath('A/B/F')
AD_url = sbox.repo_url + '/A/D'
svntest.actions.run_and_verify_switch(sbox.wc_dir, F_path, AD_url,
expected_output,
@@ -1186,12 +1186,12 @@ def forced_switch_failures(sbox):
wc_dir = sbox.wc_dir
url = sbox.repo_url
- A_B_F = os.path.join(wc_dir, 'A', 'B', 'F')
- A_B_F_pi = os.path.join(wc_dir, 'A', 'B', 'F', 'pi')
- A_C = os.path.join(wc_dir, 'A', 'C')
- A_C_H = os.path.join(wc_dir, 'A', 'C', 'H')
- A_D_G = os.path.join(wc_dir, 'A', 'D', 'G')
- A_D_G_I = os.path.join(wc_dir, 'A', 'D', 'G', 'I')
+ A_B_F = sbox.ospath('A/B/F')
+ A_B_F_pi = sbox.ospath('A/B/F/pi')
+ A_C = sbox.ospath('A/C')
+ A_C_H = sbox.ospath('A/C/H')
+ A_D_G = sbox.ospath('A/D/G')
+ A_D_G_I = sbox.ospath('A/D/G/I')
url_A_D = url + '/A/D'
url_A_D_G = url + '/A/D/G'
url_A_D_H = url + '/A/D/H'
@@ -1387,7 +1387,7 @@ def forced_switch_failures(sbox):
expected_status.tweak('A/B/F/pi', 'A/C/H', treeconflict=None)
expected_status.tweak('A/D/G', switched='S')
- svntest.main.run_svn(None, 'revert', '-R', os.path.join(wc_dir, 'A/C/H'))
+ svntest.main.run_svn(None, 'revert', '-R', sbox.ospath('A/C/H'))
actions.run_and_verify_update(wc_dir, expected_output, expected_disk,
expected_status, None, None, None, None, None, False, wc_dir)
@@ -1398,25 +1398,25 @@ def switch_with_obstructing_local_adds(s
sbox.build(read_only = True)
# Dir obstruction scheduled for addition without history.
- G_path = os.path.join(sbox.wc_dir, 'A', 'B', 'F', 'G')
+ G_path = sbox.ospath('A/B/F/G')
os.mkdir(G_path)
# File obstructions scheduled for addition without history.
# Contents identical to additions from switch.
- gamma_copy_path = os.path.join(sbox.wc_dir, 'A', 'B', 'F', 'gamma')
- shutil.copyfile(os.path.join(sbox.wc_dir, 'A', 'D', 'gamma'),
+ gamma_copy_path = sbox.ospath('A/B/F/gamma')
+ shutil.copyfile(sbox.ospath('A/D/gamma'),
gamma_copy_path)
- shutil.copyfile(os.path.join(sbox.wc_dir, 'A', 'D', 'G', 'tau'),
- os.path.join(sbox.wc_dir, 'A', 'B', 'F', 'G', 'tau'))
+ shutil.copyfile(sbox.ospath('A/D/G/tau'),
+ sbox.ospath('A/B/F/G/tau'))
# File obstruction scheduled for addition without history.
# Contents conflict with addition from switch.
- pi_path = os.path.join(sbox.wc_dir, 'A', 'B', 'F', 'G', 'pi')
+ pi_path = sbox.ospath('A/B/F/G/pi')
svntest.main.file_write(pi_path,
"This is the OBSTRUCTING file 'pi'.\n")
# Non-obstructing dir and file scheduled for addition without history.
- I_path = os.path.join(sbox.wc_dir, 'A', 'B', 'F', 'I')
+ I_path = sbox.ospath('A/B/F/I')
os.mkdir(I_path)
upsilon_path = os.path.join(G_path, 'upsilon')
svntest.main.file_write(upsilon_path,
@@ -1473,7 +1473,7 @@ def switch_with_obstructing_local_adds(s
extra_files = ['pi\.r0', 'pi\.r1', 'pi\.mine']
# Do the switch and check the results in three ways.
- F_path = os.path.join(sbox.wc_dir, 'A', 'B', 'F')
+ F_path = sbox.ospath('A/B/F')
D_url = sbox.repo_url + '/A/D'
svntest.actions.run_and_verify_switch(sbox.wc_dir, F_path, D_url,
@@ -1492,9 +1492,9 @@ def switch_scheduled_add(sbox):
sbox.build(read_only = True)
wc_dir = sbox.wc_dir
- file_path = os.path.join(wc_dir, 'stub_file')
+ file_path = sbox.ospath('stub_file')
switch_url = sbox.repo_url + '/iota'
- nodo_path = os.path.join(wc_dir, 'nodo')
+ nodo_path = sbox.ospath('nodo')
svntest.main.file_append(file_path, "")
svntest.actions.run_and_verify_svn(None, None, [],
@@ -1524,20 +1524,20 @@ def mergeinfo_switch_elision(sbox):
wc_dir = sbox.wc_dir
# Some paths we'll care about
- lambda_path = os.path.join(wc_dir, "A", "B_COPY_1", "lambda")
- B_COPY_1_path = os.path.join(wc_dir, "A", "B_COPY_1")
- B_COPY_2_path = os.path.join(wc_dir, "A", "B_COPY_2")
- E_COPY_2_path = os.path.join(wc_dir, "A", "B_COPY_2", "E")
- alpha_path = os.path.join(wc_dir, "A", "B", "E", "alpha")
- beta_path = os.path.join(wc_dir, "A", "B", "E", "beta")
+ lambda_path = sbox.ospath('A/B_COPY_1/lambda')
+ B_COPY_1_path = sbox.ospath('A/B_COPY_1')
+ B_COPY_2_path = sbox.ospath('A/B_COPY_2')
+ E_COPY_2_path = sbox.ospath('A/B_COPY_2/E')
+ alpha_path = sbox.ospath('A/B/E/alpha')
+ beta_path = sbox.ospath('A/B/E/beta')
# Make branches A/B_COPY_1 and A/B_COPY_2
expected_stdout = verify.UnorderedOutput([
- "A " + os.path.join(wc_dir, "A", "B_COPY_1", "lambda") + "\n",
- "A " + os.path.join(wc_dir, "A", "B_COPY_1", "E") + "\n",
- "A " + os.path.join(wc_dir, "A", "B_COPY_1", "E", "alpha") + "\n",
- "A " + os.path.join(wc_dir, "A", "B_COPY_1", "E", "beta") + "\n",
- "A " + os.path.join(wc_dir, "A", "B_COPY_1", "F") + "\n",
+ "A " + sbox.ospath('A/B_COPY_1/lambda') + "\n",
+ "A " + sbox.ospath('A/B_COPY_1/E') + "\n",
+ "A " + sbox.ospath('A/B_COPY_1/E/alpha') + "\n",
+ "A " + sbox.ospath('A/B_COPY_1/E/beta') + "\n",
+ "A " + sbox.ospath('A/B_COPY_1/F') + "\n",
"Checked out revision 1.\n",
"A " + B_COPY_1_path + "\n",
])
@@ -1545,11 +1545,11 @@ def mergeinfo_switch_elision(sbox):
sbox.repo_url + "/A/B", B_COPY_1_path)
expected_stdout = verify.UnorderedOutput([
- "A " + os.path.join(wc_dir, "A", "B_COPY_2", "lambda") + "\n",
- "A " + os.path.join(wc_dir, "A", "B_COPY_2", "E") + "\n",
- "A " + os.path.join(wc_dir, "A", "B_COPY_2", "E", "alpha") + "\n",
- "A " + os.path.join(wc_dir, "A", "B_COPY_2", "E", "beta") + "\n",
- "A " + os.path.join(wc_dir, "A", "B_COPY_2", "F") + "\n",
+ "A " + sbox.ospath('A/B_COPY_2/lambda') + "\n",
+ "A " + sbox.ospath('A/B_COPY_2/E') + "\n",
+ "A " + sbox.ospath('A/B_COPY_2/E/alpha') + "\n",
+ "A " + sbox.ospath('A/B_COPY_2/E/beta') + "\n",
+ "A " + sbox.ospath('A/B_COPY_2/F') + "\n",
"Checked out revision 1.\n",
"A " + B_COPY_2_path + "\n",
])
@@ -1795,7 +1795,7 @@ def switch_with_depth(sbox):
repo_url = sbox.repo_url
AD_url = repo_url + '/A/D'
AB_url = repo_url + '/A/B'
- AB_path = os.path.join(wc_dir, 'A', 'B')
+ AB_path = sbox.ospath('A/B')
# Set up expected results of 'switch --depth=empty'
expected_output = svntest.wc.State(wc_dir, {})
@@ -1968,15 +1968,15 @@ def switch_to_dir_with_peg_rev(sbox):
repo_url = sbox.repo_url
# prepare two dirs X and Y in rev. 2
- X_path = os.path.join(wc_dir, 'X')
- Y_path = os.path.join(wc_dir, 'Y')
+ X_path = sbox.ospath('X')
+ Y_path = sbox.ospath('Y')
svntest.main.run_svn(None, 'mkdir', X_path, Y_path)
svntest.main.run_svn(None, 'ci',
'-m', 'log message',
wc_dir)
# change tau in rev. 3
- ADG_path = os.path.join(wc_dir, 'A', 'D', 'G')
+ ADG_path = sbox.ospath('A/D/G')
tau_path = os.path.join(ADG_path, 'tau')
svntest.main.file_append(tau_path, "new line\n")
svntest.main.run_svn(None, 'ci',
@@ -2032,12 +2032,12 @@ def switch_urls_with_spaces(sbox):
repo_url = sbox.repo_url
# add file and directory with spaces in their names.
- XYZ_path = os.path.join(wc_dir, 'X Y Z')
- ABC_path = os.path.join(wc_dir, 'A B C')
+ XYZ_path = sbox.ospath('X Y Z')
+ ABC_path = sbox.ospath('A B C')
svntest.main.run_svn(None, 'mkdir', XYZ_path, ABC_path)
- tpm_path = os.path.join(wc_dir, 'tau pau mau')
- bbb_path = os.path.join(wc_dir, 'bar baz bal')
+ tpm_path = sbox.ospath('tau pau mau')
+ bbb_path = sbox.ospath('bar baz bal')
svntest.main.file_write(tpm_path, "This is the file 'tau pau mau'.\n")
svntest.main.file_write(bbb_path, "This is the file 'bar baz bal'.\n")
svntest.main.run_svn(None, 'add', tpm_path, bbb_path)
@@ -2105,21 +2105,21 @@ def switch_to_dir_with_peg_rev2(sbox):
repo_url = sbox.repo_url
# prepare dir X in rev. 2
- X_path = os.path.join(wc_dir, 'X')
+ X_path = sbox.ospath('X')
svntest.main.run_svn(None, 'mkdir', X_path)
svntest.main.run_svn(None, 'ci',
'-m', 'log message',
wc_dir)
# make a change in ADG in rev. 3
- tau_path = os.path.join(wc_dir, 'A', 'D', 'G', 'tau')
+ tau_path = sbox.ospath('A/D/G/tau')
svntest.main.file_append(tau_path, "extra line\n")
svntest.main.run_svn(None, 'ci', '-m', 'log message', wc_dir)
# Rename ADG to ADY in rev 4
svntest.main.run_svn(None, 'up', wc_dir)
- ADG_path = os.path.join(wc_dir, 'A', 'D', 'G')
- ADY_path = os.path.join(wc_dir, 'A', 'D', 'Y')
+ ADG_path = sbox.ospath('A/D/G')
+ ADY_path = sbox.ospath('A/D/Y')
svntest.main.run_svn(None, 'mv', ADG_path, ADY_path)
svntest.main.run_svn(None, 'ci',
'-m', 'log message',
@@ -2172,7 +2172,7 @@ def switch_to_root(sbox):
wc_dir = sbox.wc_dir
repo_url = sbox.repo_url
- ADG_path = os.path.join(wc_dir, 'A', 'D', 'G')
+ ADG_path = sbox.ospath('A/D/G')
# Test switch /A/D/G to /
AD_url = sbox.repo_url + '/A/D'
@@ -2227,7 +2227,7 @@ def tolerate_local_mods(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- A_path = os.path.join(wc_dir, 'A')
+ A_path = sbox.ospath('A')
L_path = os.path.join(A_path, 'L')
LM_path = os.path.join(L_path, 'local_mod')
A_url = sbox.repo_url + '/A'
@@ -2763,11 +2763,11 @@ 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')
+ D = sbox.ospath('A/D')
G = os.path.join(D, 'G')
E_url = sbox.repo_url + '/A/B/E'
- R = os.path.join(wc_dir, 'R')
+ R = sbox.ospath('R')
state = svntest.actions.get_virginal_state(wc_dir, 1)
@@ -2807,7 +2807,7 @@ def copy_with_switched_subdir(sbox):
# Additional test, it should commit to R/G/alpha.
svntest.main.run_svn(None, 'up', wc_dir)
- svntest.main.file_append(os.path.join(wc_dir, 'R/G/alpha'), "apple")
+ svntest.main.file_append(sbox.ospath('R/G/alpha'), "apple")
svntest.main.run_svn(None, 'ci', '-m', 'Commit changed file', wc_dir)
# Checkout working copy to verify result
@@ -2836,8 +2836,8 @@ def up_to_old_rev_with_subtree_switched_
wc_dir = sbox.wc_dir
# Some paths we'll care about.
- A_path = os.path.join(wc_dir, 'A')
- branch_path = os.path.join(wc_dir, 'branch')
+ A_path = sbox.ospath('A')
+ branch_path = sbox.ospath('branch')
# Starting with a vanilla greek tree, create a branch of A, switch
# that branch to the root of the repository, then update the WC to
Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/tree_conflict_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/tree_conflict_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/tree_conflict_tests.py Tue May 29 01:39:41 2012
@@ -1343,6 +1343,18 @@ def actual_only_node_behaviour(sbox):
svntest.main.run_svn(None, "merge", '-c', '4', A_copy_url,
os.path.join(wc_dir, 'A'))
+ # revert
+ expected_stdout = "Reverted.*foo.*"
+ expected_stderr = []
+ run_and_verify_svn(None, expected_stdout, expected_stderr,
+ "revert", "-R", foo_path)
+
+ # revert the entire working copy and repeat the merge so we can test
+ # more commands
+ svntest.main.run_svn(None, "revert", "-R", wc_dir)
+ svntest.main.run_svn(None, "merge", '-c', '4', A_copy_url,
+ os.path.join(wc_dir, 'A'))
+
# status (stat, st)
expected_status = wc.State(foo_path, {
'' : Item(status='! ', treeconflict='C'),