[sheepdog] [PATCH v3] tests: add a DynamoRIO client for testing the jounaling mechanism

MORITA Kazutaka morita.kazutaka at gmail.com
Wed Jul 3 05:53:36 CEST 2013


At Wed, 03 Jul 2013 10:36:15 +0900,
Hitoshi Mitake wrote:
> 
> > 
> > This must be as same as the one in sheep/journal.c and I think it's
> > likely to be broken when we update the definition.  I think we should
> > define journal_descriptor in include/internal_proto.h and this file
> > should include the header file.
> 
> Moving the definition of the struct would break the intention of the
> journaling implementation. So I thought it shouldn't be done for
> testing purpose.

I don't think so.  From the point of view of maintainability, we
shouldn't have the same struct definitions at different places.  I
think moving journal_descriptor from sheep/journaling.c to
include/internal_proto.h is okay.  The header file contains sheep
specific proto types but can be accessed by another program.

> 
> There might be some effective ways for obtaining these kind of
> information from the code of sheep.
> 
> 1. parsing DWARF information and extracting definitions of data types
> 2. employing static analysis techniques which work on source code

Those look really unacceptable to me.  Too hacky.

> > No plan to use DynamoRIO for other sheepdog features than journaling?
> > I guess some functions in this file should be defined in a more common
> > place like common.c.
> 
> Of course I'll use DR for testing other parts of sheepdog
> (e.g. shepherd). But I believe extracting common functions as APIs
> should be done when we add 2nd one for better desgin. How do you
> think?

If you have a plan to add other tests, I think it's better to place
the common functions into, e.g, common.c from the first
implementation.

Thanks,

Kazutaka



More information about the sheepdog mailing list