[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Status report for Ruby bindings on Windows

From: Joe Swatosh <joe.swatosh_at_gmail.com>
Date: 2007-01-30 08:01:59 CET

Hi kou,

On 1/21/07, Kouhei Sutou <kou@cozmixng.org> wrote:
> Hi,
>
> In <ae6cb1100701171513j6ce33164oc39b8c561fa7ea69@mail.gmail.com>
> "Status report for Ruby bindings on Windows" on Wed, 17 Jan 2007 15:13:14 -0800,
> "Joe Swatosh" <joe.swatosh@gmail.com> wrote:
>
> > repository they create (which is the source of at least one interaction, since
> > subsequent tests can't create a test repository). My guess is that there is
> > still a pool somewhere holding it open.
>
> I committed a solution to solve this problem in r23147. (I
> implemented block style open/create and close method.) Could
> you try again?
>
>

I owe you several answers that I'm going to try to wrap up here
instead of spread out:

* I didn't try your run-test.rb patch for windows. I've been toying
with going a different way with that and I will include a patch to
show what I'm thinking.

* Normalizing the line breaks. Upon reflection, I've decided that I
started us down the wrong path when I modified the tests for the line
ending issues. As I've thought about it more, I now believe that the
bindings should do the conversions. My thinking is since Ruby treats
line endings as "'\n" instead of "\r\n" the bindings should provide
any multiline values Ruby expects. (This is where the 'b' comes from
when calling File::open. Without the 'b' on windows there is a \r\n
to \n conversion. With the 'b', no conversion. Maybe we should check
out what the Perl and Python bindings do about this issue on
windows?). (I've made zero effort to figure out what this will take).

* (Saving the best for last) I updated against trunk last night and
re-ran the tests and the test_client is no longer causing errors.

<test_results>

D:\SVN\src-trunk\subversion\bindings\swig\ruby>ruby test\run-test.rb -v
Loaded suite test
Started
test_add_force(SvnClientTest): .
test_add_no_ignore(SvnClientTest): .
test_add_not_recurse(SvnClientTest): .
test_add_providers(SvnClientTest): .
test_add_recurse(SvnClientTest): .
test_authentication(SvnClientTest): F
test_blame(SvnClientTest): .
test_cat(SvnClientTest): F
test_checkout(SvnClientTest): .
test_cleanup(SvnClientTest): .
test_commit(SvnClientTest): .
test_copy(SvnClientTest): .
test_delete(SvnClientTest): .
test_delete_alias(SvnClientTest): .
test_diff(SvnClientTest): .
test_diff_peg(SvnClientTest): .
test_diff_summarize(SvnClientTest): .
test_diff_summarize_peg(SvnClientTest): .
test_export(SvnClientTest): .
test_import(SvnClientTest): .
test_info(SvnClientTest): .
test_list(SvnClientTest): .
test_lock(SvnClientTest): .
test_log(SvnClientTest): .
test_log_message(SvnClientTest): .
test_log_msg_func_cancel(SvnClientTest): .
test_ls(SvnClientTest): .
test_merge(SvnClientTest): F
test_merge_peg(SvnClientTest): F
test_mkdir(SvnClientTest): .
test_mkdir_multiple(SvnClientTest): .
test_mkdir_multiple2(SvnClientTest): .
test_move(SvnClientTest): .
test_move_force(SvnClientTest): .
test_not_new(SvnClientTest): .
test_open_ra_session(SvnClientTest): .
test_prop(SvnClientTest): .
test_prop_list(SvnClientTest): .
test_relocate(SvnClientTest): .
test_resolved(SvnClientTest): .
test_revert(SvnClientTest): .
test_revprop(SvnClientTest): .
test_set_config(SvnClientTest): .
test_simple_provider(SvnClientTest): F
test_status(SvnClientTest): .
test_switch(SvnClientTest): F
test_unlock(SvnClientTest): .
test_update(SvnClientTest): .
test_url_from_path(SvnClientTest): .
test_username_provider(SvnClientTest): .
test_uuid(SvnClientTest): .
test_version(SvnClientTest): .
test_windows_simple_provider(SvnClientTest): .
test_auth_parameter(SvnCoreTest): .
test_binary_mime_type?(SvnCoreTest): .
test_config(SvnCoreTest): .
test_config_auth_data(SvnCoreTest): .
test_config_bool(SvnCoreTest): .
test_config_each(SvnCoreTest): .
test_config_find_group(SvnCoreTest): .
test_config_get_server_setting(SvnCoreTest): .
test_config_to_hash(SvnCoreTest): .
test_config_to_s(SvnCoreTest): .
test_create_commit_info(SvnCoreTest): .
test_diff_file_options(SvnCoreTest): .
test_diff_merge(SvnCoreTest): .
test_diff_unified(SvnCoreTest): .
test_diff_version(SvnCoreTest): .
test_not_new_auth_provider_object(SvnCoreTest): .
test_pool_GC(SvnCoreTest): .
test_time(SvnCoreTest): .
test_version_compatible?(SvnCoreTest): .
test_version_equal(SvnCoreTest): .
test_version_to_x(SvnCoreTest): .
test_version_valid?(SvnCoreTest): .
test_apply(SvnDeltaTest): .
test_change_prop(SvnDeltaTest): .
test_changed(SvnDeltaTest): .
test_deep_copy(SvnDeltaTest): .
test_path_driver(SvnDeltaTest): .
test_push_target(SvnDeltaTest): .
test_svndiff(SvnDeltaTest): .
test_txdelta_apply_instructions(SvnDeltaTest): .
test_txdelta_window(SvnDeltaTest): .
test_txdelta_window_compose(SvnDeltaTest): .
test_version(SvnDeltaTest): .
test_error_name(SvnErrorTest): .
test_create(SvnFsTest): .
test_delta(SvnFsTest): F
test_hotcopy(SvnFsTest): .
test_operation(SvnFsTest): .
test_prop(SvnFsTest): .
test_root(SvnFsTest): .
test_transaction(SvnFsTest): .
test_version(SvnFsTest): .
test_changed(SvnInfoTest): .
test_diff(SvnInfoTest): F
test_diff_path(SvnInfoTest): .
test_dirs_changed(SvnInfoTest): .
test_info(SvnInfoTest): .
test_sha256(SvnInfoTest): .
test_callback(SvnRaTest): .
test_commit_editor(SvnRaTest): .
test_commit_editor2(SvnRaTest): .
test_diff(SvnRaTest): .
test_prop(SvnRaTest): .
test_reparent(SvnRaTest): .
test_session(SvnRaTest): .
test_version(SvnRaTest): .
test_authz(SvnReposTest): .
test_commit_editor(SvnReposTest): .
test_create(SvnReposTest): .
test_dump(SvnReposTest): .
test_hotcopy(SvnReposTest): .
test_load(SvnReposTest): .
test_lock(SvnReposTest): .
test_logs(SvnReposTest): .
test_node_editor(SvnReposTest): .
test_path(SvnReposTest): .
test_prop(SvnReposTest): .
test_report(SvnReposTest): .
test_trace_node_locations(SvnReposTest): .
test_transaction(SvnReposTest): .
test_version(SvnReposTest): .
test_to_ruby_class_name(SvnUtilTest): .
test_to_ruby_const_name(SvnUtilTest): .
test_adm_access(SvnWcTest): .
test_ancestry(SvnWcTest): .
test_entry(SvnWcTest): .
test_externals(SvnWcTest): .
test_locked(SvnWcTest): .
test_merge(SvnWcTest): .
test_notify(SvnWcTest): .
test_revision_status(SvnWcTest): .
test_status(SvnWcTest): .
test_translated_file(SvnWcTest): F
test_traversal_info(SvnWcTest): .
test_version(SvnWcTest): .
test_wc(SvnWcTest): .

Finished in 428.997 seconds.

  1) Failure:
test_authentication(SvnClientTest)
[D:/SVN/src-trunk/subversion/bindings/swig/ruby/test/test_client.rb:1657]:
<"source\r\n"> expected but was
<"source\r\r\n">.

  2) Failure:
test_cat(SvnClientTest)
[D:/SVN/src-trunk/subversion/bindings/swig/ruby/test/test_client.rb:1288]:
<"source1\r\n"> expected but was
<"source1\r\r\n">.

  3) Failure:
test_merge(SvnClientTest)
[D:/SVN/src-trunk/subversion/bindings/swig/ruby/test/test_client.rb:843]:
<"sample\r\n"> expected but was
<"sample\r\r\n">.

  4) Failure:
test_merge_peg(SvnClientTest)
[D:/SVN/src-trunk/subversion/bindings/swig/ruby/test/test_client.rb:890]:
<"sample\r\n"> expected but was
<"sample\r\r\n">.

  5) Failure:
test_simple_provider(SvnClientTest)
[D:/SVN/src-trunk/subversion/bindings/swig/ruby/test/test_client.rb:1689]:
<"source\r\n"> expected but was
<"source\r\r\n">.

  6) Failure:
test_switch(SvnClientTest)
[D:/SVN/src-trunk/subversion/bindings/swig/ruby/test/test_client.rb:1584]:
<"trunk source\r\n"> expected but was
<"trunk source\r\r\n">.

  7) Failure:
test_delta(SvnFsTest)
[D:/SVN/src-trunk/subversion/bindings/swig/ruby/test/test_fs.rb:317]:
<"A\n\n\n\nE\n"> expected but was
<"<<<<<<< .mine\nA\nb\nc\nd\nE\n=======\na\n\n\n\ne\n>>>>>>> .r2\n">.

  8) Failure:
test_diff(SvnInfoTest)
[D:/SVN/src-trunk/subversion/bindings/swig/ruby/test/test_info.rb:202]:
<2> expected but was
<1>.

  9) Failure:
test_translated_file(SvnWcTest)
    [D:/SVN/src-trunk/subversion/bindings/swig/ruby/test/test_wc.rb:417:in
`test_translated_file'
     D:/SVN/src-trunk/subversion/bindings/swig/ruby/svn/wc.rb:94:in `_open'
     D:/SVN/src-trunk/subversion/bindings/swig/ruby/svn/wc.rb:73:in `open'
     D:/SVN/src-trunk/subversion/bindings/swig/ruby/test/test_wc.rb:409:in
`test_translated_file']:
<"a\r\n"> expected but was
<"a\n">.

139 tests, 872 assertions, 9 failures, 0 errors

</test_results>

Notice that failures 1-6 and 9 are all line ending issues. We are not
at a green bar, but we are darned close. The latest changes you made
to implement the Fs.close and Repos.close look like they're working
well.

--
Joe




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Received on Tue Jan 30 08:02:17 2007

This is an archived mail posted to the Subversion Dev mailing list.