static svn_error_t * make_and_open_local_repos(svn_ra_session_t **session, const char *repos_name, svn_test_opts_t *opts, apr_pool_t *pool) { svn_repos_t *repos; const char *url; svn_ra_callbacks2_t *cbtable; SVN_ERR(svn_ra_create_callbacks(&cbtable, pool)); SVN_ERR(svn_test__create_repos(&repos, repos_name, opts, pool)); SVN_ERR(svn_ra_initialize(pool)); SVN_ERR(current_directory_url(&url, repos_name, pool)); SVN_ERR(svn_ra_open3(session, url, NULL, cbtable, NULL, NULL, pool)); return SVN_NO_ERROR; }
static svn_error_t * change_rev_prop(const char *url, svn_revnum_t revision, const char *propname, const svn_string_t *propval, const svn_string_t *old_value, const char *http_library, svn_boolean_t want_error, apr_pool_t *pool) { svn_ra_callbacks2_t *callbacks; svn_ra_session_t *sess; apr_hash_t *config; svn_boolean_t capable; svn_error_t *err; SVN_ERR(svn_ra_create_callbacks(&callbacks, pool)); SVN_ERR(construct_auth_baton(&callbacks->auth_baton, pool)); SVN_ERR(construct_config(&config, http_library, pool)); SVN_ERR(svn_ra_open4(&sess, NULL, url, NULL, callbacks, NULL /* baton */, config, pool)); SVN_ERR(svn_ra_has_capability(sess, &capable, SVN_RA_CAPABILITY_ATOMIC_REVPROPS, pool)); if (capable) { err = svn_ra_change_rev_prop2(sess, revision, propname, &old_value, propval, pool); if (want_error && err && svn_error_find_cause(err, SVN_ERR_FS_PROP_BASEVALUE_MISMATCH)) { /* Expectation was matched. Get out. */ svn_error_clear(err); return SVN_NO_ERROR; } else if (! want_error && ! err) /* Expectation was matched. Get out. */ return SVN_NO_ERROR; else if (want_error && ! err) return svn_error_create(SVN_ERR_TEST_FAILED, NULL, "An error was expected but not seen"); else /* A real (non-SVN_ERR_FS_PROP_BASEVALUE_MISMATCH) error. */ return svn_error_trace(err); } else /* Running under --server-minor-version? */ return svn_error_create(SVN_ERR_TEST_FAILED, NULL, "Server doesn't advertise " "SVN_RA_CAPABILITY_ATOMIC_REVPROPS"); }
static svn_error_t * create_ra_callbacks(svn_ra_callbacks2_t **callbacks, const char *username, const char *password, svn_boolean_t non_interactive, apr_pool_t *pool) { SVN_ERR(svn_ra_create_callbacks(callbacks, pool)); SVN_ERR(svn_cmdline_create_auth_baton(&(*callbacks)->auth_baton, non_interactive, username, password, NULL, FALSE, FALSE, NULL, NULL, NULL, pool)); (*callbacks)->open_tmp_file = open_tmp_file; return SVN_NO_ERROR; }
static svn_error_t * make_and_open_repos(svn_ra_session_t **session, const char *repos_name, const svn_test_opts_t *opts, apr_pool_t *pool) { const char *url; svn_ra_callbacks2_t *cbtable; SVN_ERR(svn_ra_create_callbacks(&cbtable, pool)); SVN_ERR(svn_test__init_auth_baton(&cbtable->auth_baton, pool)); SVN_ERR(svn_test__create_repos2(NULL, &url, NULL, repos_name, opts, pool, pool)); SVN_ERR(svn_ra_initialize(pool)); SVN_ERR(svn_ra_open4(session, NULL, url, NULL, cbtable, NULL, NULL, pool)); return SVN_NO_ERROR; }