1. 19 4月, 2017 1 次提交
    • D
      annotate all mocked functions with noinline · 728cacc8
      Daniel P. Berrange 提交于
      CLang's optimizer is more aggressive at inlining functions than
      gcc and so will often inline functions that our tests want to
      mock-override. This causes the test to fail in bizarre ways.
      
      We don't want to disable inlining completely, but we must at
      least prevent inlining of mocked functions. Fortunately there
      is a 'noinline' attribute that lets us control this per function.
      
      A syntax check rule is added that parses tests/*mock.c to extract
      the list of functions that are mocked (restricted to names starting
      with 'vir' prefix). It then checks that src/*.h header file to
      ensure it has a 'ATTRIBUTE_NOINLINE' annotation. This should prevent
      use from bit-rotting in future.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      728cacc8
  2. 12 4月, 2017 2 次提交
  3. 06 4月, 2017 1 次提交
  4. 27 3月, 2017 3 次提交
  5. 06 3月, 2017 1 次提交
    • M
      qemu: Enforce qemuSecurity wrappers · 4da534c0
      Michal Privoznik 提交于
      Now that we have some qemuSecurity wrappers over
      virSecurityManager APIs, lets make sure everybody sticks with
      them. We have them for a reason and calling virSecurityManager
      API directly instead of wrapper may lead into accidentally
      labelling a file on the host instead of namespace.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      4da534c0
  6. 20 2月, 2017 1 次提交
    • P
      Disallow inclusion of files from src/conf into src/utils · b4c73106
      Peter Krempa 提交于
      The utils code should stay separated from other code (except for very
      well justified cases). Unfortunately commit 272769be
      made it trivial to break the separation (and not get slapped by the
      syntax-check rule) by adding -I src/conf to the CFLAGS for utils.
      
      Remove this shortcut and except the two offenders from the syntax check
      so that the codebase can be kept separated.
      b4c73106
  7. 06 12月, 2016 1 次提交
    • M
      nssmock: Prefer free() over VIR_FREE() · 1ef3ac82
      Michal Privoznik 提交于
      Problem with VIR_FREE() is that we are not linking
      libvirt-utils.so to our mock libs therefore there will be an
      unresolved symbol. Fortunately, nsstest that eventually links
      with the nssmock links also with libvirt-utils.so and thus the
      symbol is resolved after all. However, if one wants to run the
      test binary under valgrind it is impossible to do so. Because of
      the unresolved symbol.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      1ef3ac82
  8. 11 11月, 2016 3 次提交
  9. 01 11月, 2016 1 次提交
  10. 13 10月, 2016 1 次提交
    • M
      src: Treat PID as signed · b7d2d4af
      Michal Privoznik 提交于
      This initially started as a fix of some debug printing in
      virCgroupDetect. However it turned out that other places suffer
      from the similar problem. While dealing with pids, esp. in cases
      where we cannot use pid_t for ABI stability reasons, we often
      chose an unsigned integer type. This makes no sense as pid_t is
      signed.
      Also, new syntax-check rule is introduced so we won't repeat this
      mistake.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      b7d2d4af
  11. 12 10月, 2016 1 次提交
  12. 18 8月, 2016 3 次提交
  13. 26 6月, 2016 1 次提交
    • E
      examples: admin: Add some examples for the new admin APIs · fbb8205d
      Erik Skultety 提交于
      Some of the examples make use of asprintf and strtol functions (to keep
      things simple) which are prohibited to use within our code (enforced by
      syntax-check). Therefore besides adding some examples, this patch also updates
      cfg.mk to exclude examples directory from asprintf and strtol rules, as well as
      updates .gitignore to exclude all the new admin binaries created in the
      'examples' dir.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      fbb8205d
  14. 24 6月, 2016 2 次提交
  15. 23 6月, 2016 1 次提交
  16. 22 6月, 2016 1 次提交
    • J
      test-wrap-argv: add --check parameter · c9c03ea2
      Ján Tomko 提交于
      This script can already operate on a list of files.
      Add a --check parameter to check if multiple files are wrapped
      correctly with a single invocation of the script.
      c9c03ea2
  17. 16 6月, 2016 1 次提交
    • J
      syntax-check: drop prohibit_undesirable_word_seq · 3a9d1f37
      Ján Tomko 提交于
      This checks forbids using "can not" and checks the placement
      of some texinfo tags.
      
      Drop it since we do not use texinfo and the check takes almost
      twice as much as the rest of the checks.
      3a9d1f37
  18. 15 6月, 2016 2 次提交
    • J
      Rename bracket-spacing.pl to check-spacing.pl · 4e1a7dbb
      Ján Tomko 提交于
      We test whitespace with lots of other characters now.
      4e1a7dbb
    • J
      cfg.mk: use a single regex for all non-reentrant functions · e26098a1
      Ján Tomko 提交于
      The prohibit_nonreentrant syntax-check rule spawns a new shell
      for every non-reentrant function we know, to make it easier
      to mention the function name in the error message, with the _r
      appended.
      
      Since the line with the offending function is already printed
      and some of the functions on our list do not have a _r counterpart,
      compile them into one big regex and use a more generic error message
      to save time.
      e26098a1
  19. 10 6月, 2016 1 次提交
  20. 24 5月, 2016 1 次提交
    • P
      maint: fix syntax-check sc_prohibit_int_ijk exclude rule · a94efa50
      Pavel Hrdina 提交于
      Fix the regex for excluding files for this syntax-rule.  The rule "include/"
      will not work, because we are matching the whole line like this
      "^(...|include/|...)$ so we need to use "include/libvirt/libvirt.+".  The second
      issue is that we are using only one '$' but there should be two of those at the
      end.  The last small adjustment is to escape dots '.' so it match only dot.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      a94efa50
  21. 20 5月, 2016 1 次提交
    • M
      virtestmock: Mock stat() properly · 49c1a078
      Michal Privoznik 提交于
      There is a lot to explain, but I try to make it as short as
      possible. I'd start by pasting some parts of sys/stat.h:
      
      extern int stat (const char *__restrict __file,
      		 struct stat *__restrict __buf) __THROW __nonnull ((1, 2));
      
      extern int __REDIRECT_NTH (stat, (const char *__restrict __file,
      				  struct stat *__restrict __buf), stat64)
           __nonnull ((1, 2));
      
      __extern_inline int
      __NTH (stat (const char *__path, struct stat *__statbuf))
      {
        return __xstat (_STAT_VER, __path, __statbuf);
      }
      
      Only one of these is effective at once, due to some usage of
      the mess we are dealing with in here. So, basically, while
      compiling or linking stat() in our code can be transformed into
      some other func. Or a dragon.
      Now, if you read stat(2) manpage, esp. "C library/kernel
      differences" section, you'll learn that glibc uses some tricks
      for older applications to work. I haven't gotten around actual
      code that does this, but based on my observations, if 'stat'
      symbol is found, glibc assumes it's dealing with ancient
      application. Unfortunately, it can be just ours stat coming from
      our mock. Therefore, calling stat() from a test will end up in
      our mock. But since glibc is not exposing the symbol anymore, our
      call of real_stat() will SIGSEGV immediately as the pointer to
      function is NULL. Therefore, we should expose only those symbols
      we know glibc has.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      49c1a078
  22. 14 5月, 2016 1 次提交
  23. 25 4月, 2016 1 次提交
    • A
      syntax-check: Enforce <code> inside <dt> elements · 1f29f3da
      Andrea Bolognani 提交于
      Commit 61b070cf cleaned up a number of cases where the <dt>
      element was used to document symbols, but the symbol itself was
      not inside a <code> element.
      
      To make sure we don't end up having to clean up again a few
      months from now, introduce a syntax-check rule that can spot
      such mistakes.
      
      All existing exceptions are marked as such, with either file
      or line granularity depending on the case.
      1f29f3da
  24. 22 4月, 2016 2 次提交
    • C
      tests: rename test_conf -> virconftest · 4839822f
      Cole Robinson 提交于
      And confdata to virconfdata, since 'conf' can mean a few different
      things in libvirt
      4839822f
    • C
      virconf: Handle conf file without ending newline · 3cc2a9e0
      Cole Robinson 提交于
      $ echo -n 'log_level=1' > ~/.config/libvirt/libvirtd.conf
      $ libvirtd --timeout=10
      2014-10-10 10:30:56.394+0000: 6626: info : libvirt version: 1.1.3.6, package: 1.fc20 (Fedora Project, 2014-09-08-17:50:42, buildvm-05.phx2.fedoraproject.org)
      2014-10-10 10:30:56.394+0000: 6626: error : main:1261 : Can't load config file: configuration file syntax error: /home/rjones/.config/libvirt/libvirtd.conf:1: expecting a value: /home/rjones/.config/libvirt/libvirtd.conf
      
      Rather than try to fix this in the depths of the parser, just catch
      the case when a config file doesn't end in a newline, and manually
      append a newline to the content before parsing
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1151409
      3cc2a9e0
  25. 18 4月, 2016 1 次提交
  26. 15 4月, 2016 2 次提交
  27. 12 4月, 2016 2 次提交
  28. 29 3月, 2016 1 次提交