1. 04 Sep, 2012 3 commits
    • Iustin Pop's avatar
      Remove QC.hs and replace it with an auto-generated file · b88fcdd0
      Iustin Pop authored
      
      
      In order to have correct code coverage results, we must somehow import
      all production modules into the test runner. Until now, this was done
      manually (when we didn't forget) in QC.hs.
      
      To improve the situation, we remove QC.hs and replace it with an
      auto-generated file which imports all modules. This reduces the
      maintenance burden and ensures we'll always have correct coverage.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      b88fcdd0
    • Iustin Pop's avatar
      Move generated htools test stubs to htest/ · 189b51fa
      Iustin Pop authored
      
      
      This moves the last (I think) htools-related bits out of test/ under
      htest/.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
      189b51fa
    • Iustin Pop's avatar
      Move haskell test code to htest/ · f0f3a6df
      Iustin Pop authored
      
      
      This is the first commit of a series that will attempt to cleanup the
      test code organisation, which evolved somewhat organically from the
      initial pure htools functionality.
      
      The proposed organisation of the tree will be as follows:
      
      - htools (or maybe renamed to haskell or hs): only production code
      - htest: top-level test directory, containing test.hs, static helper
        scripts, etc.
      - htest/Ganeti/*.hs: modules implementing the actual test properties
        and test cases for the correspondingly-named production code modules
      - htest/data: containing test data files for the test cases
      
      This particular patch moves all the test code (test.hs, hpc-htools.hs
      symlink) and helper scripts (offline-test.sh, etc.) from htools/ to
      htest/, while updating the files themselves (if they had paths
      mentioning htools/), .gitignore and the Makefile.
      
      The only special mention is that in Makefile, we used to have a BINARY
      shell variable in binary build rule; that was computed via stripping
      `htools/' prefix; I've cleaned that and replaced with $(notdir $@);
      even though it's duplicated a few times, it leads to more readable
      make output (and easier to copy-paste).
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarAgata Murawska <agatamurawska@google.com>
      f0f3a6df
  2. 23 Jul, 2012 1 commit
    • Iustin Pop's avatar
      Partial undo of "Makefile: Streamline directory creation" · 3735787e
      Iustin Pop authored
      Commit c964d962
      
       changed the way we create directories, by two things:
      
      - unifying all dependencies and ad-hoc directory creation into a
        single target (all_dirfiles)
      - changing how directories are created from a stamp file to .dir files
        in each directory
      
      The first item is a very good one, but the second item is debatable:
      there's no per-se advantage of .dir files versus a single one,
      top-level, since both the .dir file and stamp-directories creation are
      depending on Makefile, which is the only one which can introduce new
      directories.
      
      On the other hand, moving back from .dir files to stamp-directories
      has an advantage: "make -d | wc -l" does from ~8.7K lines to ~5.3K
      lines, because we eliminate the many .dir files and their multiple
      implicit and explicit dependencies (the %/.dir files fall under
      multiple patterns).
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      3735787e
  3. 04 Jul, 2012 1 commit
  4. 19 Mar, 2012 1 commit
  5. 13 Mar, 2012 2 commits
  6. 22 Dec, 2011 2 commits
  7. 26 Oct, 2011 1 commit
  8. 26 Jul, 2011 1 commit
    • Iustin Pop's avatar
      Fix recompilation of htools on regen-vcs-version · 13aeae6a
      Iustin Pop authored
      
      
      Currently, most htools code depends on Constants.hs which is generated
      from constants.py and also depends on _autoconf.py. Also, _autoconf.py
      depends on vcs-version, which all together means that when 'make
      regen-vcs-version' is run, for example by ./devel/upload, most of the
      Haskell code needs recompilation.
      
      Since htools already has its 'optimised' vcs-version (and doesn't use
      the _autoconf.VCS_VERSION constants), we can optimise this as follows:
      
      - _autoconf.py doesn't contain the VCS_VERSION anymore, and that is
        instead moved to _vcsversion.py
      - constants.py depends on and imports this new module
      - _autoconf.py doesn't get regenerated at vcs-version changes, but
        only at re-running configure/changing Makefile time
      
      The end result is that only htools/Ganeti/HTools/Version.hs is
      recompiled now, which is a significant speedup (usually < 1 second
      versus 10 seconds previously).
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      13aeae6a
  9. 19 Jul, 2011 5 commits
  10. 24 May, 2011 1 commit
    • Iustin Pop's avatar
      Implement conversion of Python constants to Haskell · d99d1e36
      Iustin Pop authored
      
      
      With the merge of the repositories, we can now auto-generate the code
      for Haskell constants from the Python code.
      
      Currently this only handles the basic types (strings and
      integers). Handling containers such as lists and dictionaries is only
      possible if we would use a parser such that we recognise the element
      names. We could extend the convert-constants script if that becomes
      necessary, right now I'm looking at just the simple constants such as
      Iallocator modes, instance states, etc.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      d99d1e36
  11. 24 Mar, 2011 2 commits
  12. 23 Mar, 2011 1 commit
  13. 22 Mar, 2011 4 commits
  14. 24 Feb, 2011 1 commit
  15. 18 Jan, 2011 2 commits
  16. 06 Jan, 2011 1 commit
  17. 13 Dec, 2010 1 commit
  18. 01 Dec, 2010 2 commits
  19. 15 Nov, 2010 1 commit
  20. 29 Oct, 2010 6 commits
  21. 27 Oct, 2010 1 commit