Author: rinrab
Date: Fri Sep  4 12:20:12 2026
New Revision: 1937860

Log:
On the 'reparentless' branch: New test to check new RA methods for potential
side-effects.

* subversion/tests/libsvn_ra/ra-test.c
  (test_reparent): New test.
  (test_funcs): Run the test.

Modified:
   subversion/branches/reparentless/subversion/tests/libsvn_ra/ra-test.c

Modified: subversion/branches/reparentless/subversion/tests/libsvn_ra/ra-test.c
==============================================================================
--- subversion/branches/reparentless/subversion/tests/libsvn_ra/ra-test.c       
Fri Sep  4 12:10:04 2026        (r1937859)
+++ subversion/branches/reparentless/subversion/tests/libsvn_ra/ra-test.c       
Fri Sep  4 12:20:12 2026        (r1937860)
@@ -1914,6 +1914,70 @@ test_get_deleted_rev_errors(const svn_te
   return SVN_NO_ERROR;
 }
 
+static svn_error_t *
+test_reparent(const svn_test_opts_t *opts,
+              apr_pool_t *pool)
+{
+  svn_ra_session_t *ra_session;
+  const char *repos_url;
+  const char *session_url;
+  svn_node_kind_t kind;
+  svn_ra_callbacks2_t *cbtable;
+
+  SVN_ERR(make_and_open_repos(&ra_session,
+                              "test-repo-reparent", opts, pool));
+  SVN_ERR(svn_ra_get_session_url(ra_session, &repos_url, pool));
+  SVN_ERR(svn_ra_get_session_url(ra_session, &session_url, pool));
+  SVN_TEST_STRING_ASSERT(session_url, repos_url);
+
+  SVN_ERR(commit_tree(ra_session, pool));
+  SVN_ERR(svn_ra_get_session_url(ra_session, &session_url, pool));
+  SVN_TEST_STRING_ASSERT(session_url, repos_url);
+
+  SVN_ERR(svn_ra_check_path2(ra_session, "", SVN_INVALID_REVNUM,
+                             &kind, pool));
+  SVN_TEST_STRING_ASSERT(svn_node_kind_to_word(kind), "dir");
+  SVN_ERR(svn_ra_get_session_url(ra_session, &session_url, pool));
+  SVN_TEST_STRING_ASSERT(session_url, repos_url);
+
+  SVN_ERR(svn_ra_check_path2(ra_session, "A/B/f",
+                             SVN_INVALID_REVNUM, &kind, pool));
+  SVN_TEST_STRING_ASSERT(svn_node_kind_to_word(kind), "file");
+  SVN_ERR(svn_ra_get_session_url(ra_session, &session_url, pool));
+  SVN_TEST_STRING_ASSERT(session_url, repos_url);
+
+  SVN_ERR(svn_ra_create_callbacks(&cbtable, pool));
+  SVN_ERR(svn_test__init_auth_baton(&cbtable->auth_baton, pool));
+
+  SVN_ERR(svn_ra_open5(&ra_session, NULL, NULL,
+                       svn_path_url_add_component2(repos_url, "A/B", pool),
+                       NULL, cbtable, NULL, NULL, pool));
+
+  SVN_ERR(svn_ra_check_path2(ra_session, "A/B",
+                             SVN_INVALID_REVNUM, &kind, pool));
+  SVN_TEST_STRING_ASSERT(svn_node_kind_to_word(kind), "dir");
+  SVN_ERR(svn_ra_get_session_url(ra_session, &session_url, pool));
+  SVN_TEST_STRING_ASSERT(session_url,
+                         svn_path_url_add_component2(repos_url, "A/B", pool));
+
+  SVN_ERR(svn_ra_check_path2(ra_session, "A/B/f",
+                             SVN_INVALID_REVNUM, &kind, pool));
+  SVN_TEST_STRING_ASSERT(svn_node_kind_to_word(kind), "file");
+  SVN_ERR(svn_ra_get_session_url(ra_session, &session_url, pool));
+  SVN_TEST_STRING_ASSERT(session_url,
+                         svn_path_url_add_component2(repos_url, "A/B", pool));
+
+  /* Ask /A (out of session URL) */
+  SVN_ERR(svn_ra_check_path2(ra_session, "A",
+                             SVN_INVALID_REVNUM, &kind, pool));
+  SVN_TEST_STRING_ASSERT(svn_node_kind_to_word(kind), "dir");
+  SVN_ERR(svn_ra_get_session_url(ra_session, &session_url, pool));
+  SVN_TEST_STRING_ASSERT(session_url,
+                         svn_path_url_add_component2(repos_url, "A/B", pool));
+
+  return SVN_NO_ERROR;
+}
+
 
 /* The test table.  */
 
@@ -1954,6 +2018,8 @@ static struct svn_test_descriptor_t test
                        "test get-deleted-rev no delete"),
     SVN_TEST_OPTS_PASS(test_get_deleted_rev_errors,
                        "test get-deleted-rev errors"),
+    SVN_TEST_OPTS_PASS(test_reparent,
+                       "test session reparent"),
     SVN_TEST_NULL
   };
 

Reply via email to