You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Peter N. Lundblad" <pe...@famlundblad.se> on 2006/02/07 08:27:31 UTC

Recent binding test failures (was: Re: swig-rb trunk r18363: FAIL (x86_64-unknown-linux-gnu shared))

Hi, bindings people,

Just wanted to draw the attention to the fact that we currently have
failure reports for all bindings tests on trunk from Jani.  The Ruby tests
seem to fail in some move_force test, which makes me suspicious about a
recent commit of mine.  But I know too little about the bindings to start
digging and the other failure mails seem more serious.

I hope some binding experts will take a look.

Thanks,
//Peter

On Tue, 7 Feb 2006 svntest@jaa.iki.fi wrote:

> swig-rb: trunk r18363 on x86_64-unknown-linux-gnu shared
> TIME: 2006-02-07 00:54:45 -0700
>
> PASS: swig-rb::check build type
>
> /srv/svntest/svntest/config.shared:
> #!/bin/sh
> # /srv/svntest/svntest/config.shared
> #
>     "/srv/svntest/svntest/svn/svn_trunk/configure" \
>         "--prefix=/srv/svntest/svntest/inst/svn_trunk" \
>         "--with-apr=/srv/svntest/svntest/inst/apr-0.9.x/bin/apr-config" \
>         "--with-apr-util=/srv/svntest/svntest/inst/apu-0.9.x-db43/bin/apu-config" \
>         "--with-apxs=/srv/svntest/svntest/inst/httpd-2.0.x/bin/apxs" \
>         "--with-pic" \
>         "--with-swig" \
>         "--enable-javahl" \
>         "--with-junit=/opt/junit/3.8.1/junit.jar" \
>         "$@"
>
> PASS: swig-rb::build
>
> Last 100 lines of the log file follow:
> cd /srv/svntest/svntest/obj-sh/subversion/bindings/swig/ruby; \
>   /usr/bin/ruby -I /srv/svntest/svntest/svn/svn_trunk/subversion/bindings/swig/ruby \
>     /srv/svntest/svntest/svn/svn_trunk/subversion/bindings/swig/ruby/test/run-test.rb \
>     --verbose=normal
> Loaded suite test
> Started
> ...........................F...........................................................................................
> Finished in 301.389318 seconds.
>
>   1) Failure:
> test_move_force(SvnClientTest) [/srv/svntest/svntest/svn/svn_trunk/subversion/bindings/swig/ruby/test/test_client.rb:969]:
> <["test/wc-tmp/wc/sample1.txt", "test/wc-tmp/wc/sample2.txt"]> expected but was
> <["/svntest/obj-sh/subversion/bindings/swig/ruby/test/wc-tmp/wc/sample2.txt",
>  "test/wc-tmp/wc/sample1.txt",
>  "test/wc-tmp/wc/sample2.txt"]>.
>
> 119 tests, 615 assertions, 1 failures, 0 errors
> make: *** [check-swig-rb] Error 1
> Complete log saved in /srv/svntest/svntest/logs/svn_trunk/LOG_swig-rb_check.failed
> FAIL: swig-rb::check

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

postfix_txdelta notification using absolute path (was: Recent binding test failures)

Posted by "Peter N. Lundblad" <pe...@famlundblad.se>.
On Mon, 20 Feb 2006, Kouhei Sutou wrote:

> It's OK that the last 'svn ci' success. This is same
> behavior in Ruby bindings test suites.
>
> This problem is that notified informations from
> svn_client_commit() have a garbage. In svn-breakage,
> "/svntest/obj-sh/subversion/bindings/swig/ruby/test/wc-tmp/wc/sample2.txt"
> is the garbage.
>
>
> >    1) Failure:
> >  test_move_force(SvnClientTest) [/srv/svntest/svntest/svn/svn_trunk/subversion/bindings/swig/ruby/test/test_client.rb:969]:
> >  <["test/wc-tmp/wc/sample1.txt", "test/wc-tmp/wc/sample2.txt"]> expected but was
> >  <["/svntest/obj-sh/subversion/bindings/swig/ruby/test/wc-tmp/wc/sample2.txt",
> >   "test/wc-tmp/wc/sample1.txt",
> >   "test/wc-tmp/wc/sample2.txt"]>.
>
>
>

Ah, running the commit in gdb, whatching for calls to notify() shed some
light...

The absolute path comes from the commit_post_txdelta notification, i.e.
when the client is sending the delta between unmodified f1 and modified f1
(to modify f2 after the move).  The reason r18320 broke this test is that
before, no text delta was sent.

It's strange that that particular notification uses an absolute path, but
I tried a "normal commit" (one with only modifications) and that exhibits
the same behaviour.  So, I guess the Ruby test suite has to deal with this
in other places, no?

Actually, looking at the commit code in libsvn_client, the problem seems
to be a simple omission of getting rid of the common path prefix for the
commit when notifying about postfix_txdelta.  Anyone objects to me just
fixing this inconsistency?

Kouhei, I'll take care of this, so you don't need to do anything to the
test suite.

Thanks,
//Peter

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

Re: Recent binding test failures

Posted by Kouhei Sutou <ko...@cozmixng.org>.
Hi,

In <Pi...@localhost.localdomain>
  "Re: Recent binding test failures" on Mon, 20 Feb 2006 09:30:39 +0100 (CET),
  "Peter N. Lundblad" <pe...@famlundblad.se> wrote:

> On Fri, 10 Feb 2006, Kouhei Sutou wrote:
> 
> > In <Pi...@localhost.localdomain>
> >   "Re: Recent binding test failures" on Wed, 8 Feb 2006 22:51:16 +0100 (CET),
> >   "Peter N. Lundblad" <pe...@famlundblad.se> wrote:
> >
> > > >   ctx->notify_func = collect_notify_path_function;
> > > >   svn_client_commit(ctx);
> > > >
> > > >   assert(collected_notify_paths == [path1, path2]);
> > > >   # but
> > > >   #   collected_notify_paths == [path1, path2, full_path_of_path2]
> > > >
> > > >
> > > > Is this helps you?
> > > >
> > > No:-(  Is that collected_notify_paths what the notification callback gets?
> > > I don't understand. When I move a file in a test repo, the notifier only
> >
> > collect_notify_paths just only collect notified paths by
> > using passed svn_wc_notify_t * object. And it assigns
> > collected notified paths to collected_notify_paths.
> >
> > Is this explain help you?
> >
> >
> > >                     When I move a file in a test repo, the notifier only
> > > gives two paths.
> >
> > Could you show us your test code?
> 
> I try to reproduce this using the cmdline client. Maybe this can only be
> triggered using the API? :-(  Below is my script.  The output looks
> correct to me.
> 
> echo s1 > f1
> svn add f1
> svn ci -m m
> echo s2 > f1
> echo "Below should fail!"
> svn mv f1 f2
> svn cleanup
> echo "MOve --force:"
> svn mv --force f1 f2
> svn ci -m m

It's OK that the last 'svn ci' success. This is same
behavior in Ruby bindings test suites.

This problem is that notified informations from
svn_client_commit() have a garbage. In svn-breakage,
"/svntest/obj-sh/subversion/bindings/swig/ruby/test/wc-tmp/wc/sample2.txt"
is the garbage.


>    1) Failure:
>  test_move_force(SvnClientTest) [/srv/svntest/svntest/svn/svn_trunk/subversion/bindings/swig/ruby/test/test_client.rb:969]:
>  <["test/wc-tmp/wc/sample1.txt", "test/wc-tmp/wc/sample2.txt"]> expected but was
>  <["/svntest/obj-sh/subversion/bindings/swig/ruby/test/wc-tmp/wc/sample2.txt",
>   "test/wc-tmp/wc/sample1.txt",
>   "test/wc-tmp/wc/sample2.txt"]>.



Thanks,
--
kou

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

Re: Recent binding test failures

Posted by "Peter N. Lundblad" <pe...@famlundblad.se>.
On Fri, 10 Feb 2006, Kouhei Sutou wrote:

> In <Pi...@localhost.localdomain>
>   "Re: Recent binding test failures" on Wed, 8 Feb 2006 22:51:16 +0100 (CET),
>   "Peter N. Lundblad" <pe...@famlundblad.se> wrote:
>
> > >   ctx->notify_func = collect_notify_path_function;
> > >   svn_client_commit(ctx);
> > >
> > >   assert(collected_notify_paths == [path1, path2]);
> > >   # but
> > >   #   collected_notify_paths == [path1, path2, full_path_of_path2]
> > >
> > >
> > > Is this helps you?
> > >
> > No:-(  Is that collected_notify_paths what the notification callback gets?
> > I don't understand. When I move a file in a test repo, the notifier only
>
> collect_notify_paths just only collect notified paths by
> using passed svn_wc_notify_t * object. And it assigns
> collected notified paths to collected_notify_paths.
>
> Is this explain help you?
>
>
> >                     When I move a file in a test repo, the notifier only
> > gives two paths.
>
> Could you show us your test code?

I try to reproduce this using the cmdline client. Maybe this can only be
triggered using the API? :-(  Below is my script.  The output looks
correct to me.

echo s1 > f1
svn add f1
svn ci -m m
echo s2 > f1
echo "Below should fail!"
svn mv f1 f2
svn cleanup
echo "MOve --force:"
svn mv --force f1 f2
svn ci -m m

Thanks,
//Peter

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

Re: Recent binding test failures

Posted by Kouhei Sutou <ko...@cozmixng.org>.
Hi,

In <Pi...@localhost.localdomain>
  "Re: Recent binding test failures" on Wed, 8 Feb 2006 22:51:16 +0100 (CET),
  "Peter N. Lundblad" <pe...@famlundblad.se> wrote:

> >   ctx->notify_func = collect_notify_path_function;
> >   svn_client_commit(ctx);
> >
> >   assert(collected_notify_paths == [path1, path2]);
> >   # but
> >   #   collected_notify_paths == [path1, path2, full_path_of_path2]
> >
> >
> > Is this helps you?
> >
> No:-(  Is that collected_notify_paths what the notification callback gets?
> I don't understand. When I move a file in a test repo, the notifier only

collect_notify_paths just only collect notified paths by
using passed svn_wc_notify_t * object. And it assigns
collected notified paths to collected_notify_paths.

Is this explain help you?


>                     When I move a file in a test repo, the notifier only
> gives two paths.

Could you show us your test code?


Regards,
--
kou

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

Re: Recent binding test failures

Posted by "Peter N. Lundblad" <pe...@famlundblad.se>.
On Thu, 9 Feb 2006, Kouhei Sutou wrote:

> In <Pi...@localhost.localdomain>
>   "Recent binding test failures (was: Re: swig-rb trunk r18363: FAIL (x86_64-unknown-linux-gnu shared))" on Tue, 7 Feb 2006 09:27:31 +0100 (CET),
>   "Peter N. Lundblad" <pe...@famlundblad.se> wrote:
>
> > failure reports for all bindings tests on trunk from Jani.  The Ruby tests
> > seem to fail in some move_force test, which makes me suspicious about a
> > recent commit of mine.  But I know too little about the bindings to start
> > digging and the other failure mails seem more serious.
>
> The revision is r18320, isn't it?
>
> I don't know the problem, but I can explain what the test
> do with pseudo code:
>
>   path1 = "sample1.txt";
>   path2 = "sample2.txt";
>
>   ctx = svn_client_create_context();
>   file1 = open(path1);
>   write(file1, "source1\n");
>   svn_client_add(ctx, path1);
>   svn_client_commit(ctx);
>
>   file1 = open(path1);
>   write(file1, "source2\n");
>
>   assert(svn_client_move(ctx, path1, path2) == SVN_ERR_CLIENT_MODIFIED);
>   svn_client_cleanup(ctx);
>
>   assert(svn_client_move_force(ctx, path1, path2) == 0);
>   ctx->notify_func = collect_notify_path_function;
>   svn_client_commit(ctx);
>
>   assert(collected_notify_paths == [path1, path2]);
>   # but
>   #   collected_notify_paths == [path1, path2, full_path_of_path2]
>
>
> Is this helps you?
>
>
No:-(  Is that collected_notify_paths what the notification callback gets?
I don't understand. When I move a file in a test repo, the notifier only
gives two paths.

Regards,
//Peter

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

Re: Recent binding test failures

Posted by Kouhei Sutou <ko...@cozmixng.org>.
Hi Peter,

In <Pi...@localhost.localdomain>
  "Recent binding test failures (was: Re: swig-rb trunk r18363: FAIL (x86_64-unknown-linux-gnu shared))" on Tue, 7 Feb 2006 09:27:31 +0100 (CET),
  "Peter N. Lundblad" <pe...@famlundblad.se> wrote:

> failure reports for all bindings tests on trunk from Jani.  The Ruby tests
> seem to fail in some move_force test, which makes me suspicious about a
> recent commit of mine.  But I know too little about the bindings to start
> digging and the other failure mails seem more serious.

The revision is r18320, isn't it?

I don't know the problem, but I can explain what the test
do with pseudo code:

  path1 = "sample1.txt";
  path2 = "sample2.txt";

  ctx = svn_client_create_context();
  file1 = open(path1);
  write(file1, "source1\n");
  svn_client_add(ctx, path1);
  svn_client_commit(ctx);

  file1 = open(path1);
  write(file1, "source2\n");

  assert(svn_client_move(ctx, path1, path2) == SVN_ERR_CLIENT_MODIFIED);
  svn_client_cleanup(ctx);

  assert(svn_client_move_force(ctx, path1, path2) == 0);
  ctx->notify_func = collect_notify_path_function;
  svn_client_commit(ctx);

  assert(collected_notify_paths == [path1, path2]);
  # but
  #   collected_notify_paths == [path1, path2, full_path_of_path2]


Is this helps you?


Thanks,
--
kou

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