Index: subversion/libsvn_wc/status.c =================================================================== --- subversion/libsvn_wc/status.c (revision 21691) +++ subversion/libsvn_wc/status.c (working copy) @@ -1570,12 +1570,15 @@ if (db->added) { repos_text_status = svn_wc_status_added; - repos_prop_status = db->prop_changed ? svn_wc_status_added : 0; + repos_prop_status = db->prop_changed ? svn_wc_status_added + : svn_wc_status_none; } else { - repos_text_status = db->text_changed ? svn_wc_status_modified : 0; - repos_prop_status = db->prop_changed ? svn_wc_status_modified : 0; + repos_text_status = db->text_changed ? svn_wc_status_modified + : svn_wc_status_none; + repos_prop_status = db->prop_changed ? svn_wc_status_modified + : svn_wc_status_none; } /* Maybe add this directory to its parent's status hash. Note Index: subversion/tests/cmdline/stat_tests.py =================================================================== --- subversion/tests/cmdline/stat_tests.py (revision 21691) +++ subversion/tests/cmdline/stat_tests.py (working copy) @@ -21,6 +21,7 @@ # Our testing module import svntest +from svntest import wc # (abbreviation) @@ -1058,22 +1059,69 @@ " * 1 " + wc_dir + "\n", "Status against revision: 2\n" ] - svntest.actions.run_and_verify_svn(None, - xout, - [], - "status", "-u", wc_dir) + output, errput = svntest.actions.run_and_verify_svn(None, + None, + [], + "status", "-u", + wc_dir) + svntest.main.compare_unordered_output(xout, output) + xout = [" 1 1 jrandom " + os.path.join(wc_dir, "iota") + "\n", " 1 1 jrandom " + A_path + "\n", " * 1 1 jrandom " + wc_dir + "\n", "Status against revision: 2\n" ] - svntest.actions.run_and_verify_svn(None, - xout, - [], - "status", "-uvN", wc_dir) + output, errput = svntest.actions.run_and_verify_svn(None, None, [], + "status", "-uvN", + wc_dir) + svntest.main.compare_unordered_output(xout, output) + + # Retrieve last changed date from svn log + output, error = svntest.actions.run_and_verify_svn(None, None, [], + 'log', wc_dir, + '--xml', '-r1') + + info_msg = "" + for line in output: + if line.find(info_msg) >= 0: + time_str = line[:len(line)] + break + else: + raise svntest.Failure + + xout = ["\n", + "\n", + "\n" % (wc_dir), + "\n" % (wc_dir), + "\n", + "\n", + "%s\n" % svntest.main.wc_author, + time_str, + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n",] + + output, error = svntest.actions.run_and_verify_svn (None, xout, [], + 'status', wc_dir, + '--xml', '-uN') + #---------------------------------------------------------------------- # Test for issue #2468 def status_nonrecursive_update(sbox): Index: subversion/tests/cmdline/svntest/main.py =================================================================== --- subversion/tests/cmdline/svntest/main.py (revision 21691) +++ subversion/tests/cmdline/svntest/main.py (working copy) @@ -570,6 +570,19 @@ file_append (hook_path, "#!%s\n%s" % (sys.executable, hook_script_code)) os.chmod (hook_path, 0755) + +def compare_unordered_output(expected, actual): + """Compare lists of output lines for equality disregarding the + order of the lines""" + if len(actual) is not len(expected): + raise Failure("Length of expected output not equal to actual length") + for aline in actual: + try: + i = expected.index(aline) + expected.pop(i) + except ValueError: + raise Failure("Expected output does not match actual output") + ###################################################################### # Functions which check the test configuration # (useful for conditional XFails)