<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <div class="moz-cite-prefix">On 2014年04月16日 11:02, Liu Yuan wrote:<br>
    </div>
    <blockquote cite="mid:20140416030244.GA10953@ubuntu-precise"
      type="cite">
      <pre wrap="">On Tue, Apr 15, 2014 at 03:45:30PM +0800, Ruoyu wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">
On 2014年04月15日 14:46, Liu Yuan wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="">On Tue, Apr 15, 2014 at 11:37:27AM +0800, Ruoyu wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="">This patch only let 'make check' workable, does not add any cases.

Signed-off-by: Ruoyu <a class="moz-txt-link-rfc2396E" href="mailto:liangry@ucweb.com"><liangry@ucweb.com></a>
---
 tests/unit/sheep/test_hash.c | 94 +++++++++++++++++++++++++++++++++++++++++++-
</pre>
          </blockquote>
          <pre wrap="">Why we need to hard-wire some codes from md.c instead of simply #include "md." as
before?
</pre>
        </blockquote>
        <pre wrap="">I think it is better to expose these interfaces: create_vdisks,
remove_vdisks and vdisk_cmp. The patch is ugly, but at least it is
runnable.
</pre>
      </blockquote>
      <pre wrap="">
create_vdisks and remove_vdisks and so on are internal functions that is subject
to changes. If we modify some of them in md.c, we have to modify test_hash.c,
we should avoid it. This is why we should simply include md.c.</pre>
    </blockquote>
    Please try on current master branch: ./configure --enable-unittest
    && make && make check<br>
    <br>
    Error message is as below. I think including md.c is not a good
    idea. How to avoid it?<br>
    <br>
    test_vdi.c: In function ‘test_vdi’:<br>
    test_vdi.c:20:2: error: too few arguments to function
    ‘add_vdi_state’<br>
      add_vdi_state(1, 1, true);<br>
      ^<br>
    In file included from test_vdi.c:16:0:<br>
    ../../../sheep/sheep_priv.h:303:5: note: declared here<br>
     int add_vdi_state(uint32_t vid, int nr_copies, bool snapshot,
    uint8_t);<br>
         ^<br>
    test_vdi.c:21:2: error: too few arguments to function
    ‘add_vdi_state’<br>
      add_vdi_state(2, 1, true);<br>
      ^<br>
    In file included from test_vdi.c:16:0:<br>
    ../../../sheep/sheep_priv.h:303:5: note: declared here<br>
     int add_vdi_state(uint32_t vid, int nr_copies, bool snapshot,
    uint8_t);<br>
         ^<br>
    test_vdi.c:22:2: error: too few arguments to function
    ‘add_vdi_state’<br>
      add_vdi_state(3, 2, false);<br>
      ^<br>
    In file included from test_vdi.c:16:0:<br>
    ../../../sheep/sheep_priv.h:303:5: note: declared here<br>
     int add_vdi_state(uint32_t vid, int nr_copies, bool snapshot,
    uint8_t);<br>
         ^<br>
    <br>
    test_hash.o: In function `get_total_object_size':<br>
    sheep/md.c:156: undefined reference to `get_store_objsize'<br>
    test_hash.o: In function `get_old_new_path':<br>
    sheep/md.c:557: undefined reference to `is_erasure_oid'<br>
    sheep/md.c:568: undefined reference to `is_erasure_oid'<br>
    test_hash.o: In function `md_move_object':<br>
    sheep/md.c:596: undefined reference to `get_store_objsize'<br>
    test_hash.o: In function `md_exist':<br>
    sheep/md.c:670: undefined reference to `get_store_path'<br>
    test_hash.o: In function `md_get_stale_path':<br>
    sheep/md.c:690: undefined reference to `is_erasure_oid'<br>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <blockquote cite="mid:20140416030244.GA10953@ubuntu-precise"
      type="cite">
      <pre wrap="">

Thanks
Yuan
</pre>
    </blockquote>
    <br>
  </body>
</html>