confman

This is an incomplete list of the things that should be tested before rolling a release. When the actual testing occurs, it would be nice to capture the commands and eventually turn that into a self-test suite.

setup

  • When working copy does not exist
  • When working copy does exist
    • If you say no to removing it first, does it exit without removing things?
    • If you say yes, do you get a fresh working copy?
  • When repository does not exist
    • Is error sane?

create

  • confman create core
    • Are directories core, checkpoints/core created and checked in?

recipe

  • confman recipe create test
    • try:
      # this module exists
      core
      # but this one doesn't
      test
      
    • it should error out
  • confman create test
  • confman recipe create test
    • try:
      # comments are ignored
      core
      # this exists now
      test
      
  • file meta/recipes/test should be created and checked in
  • confman recipe print test
    • you should see the contents of test
  • confman recipe create doomed
    • put only core in here
  • confman recipe list
    • you should see doomed and test
  • confman recipe set doomed
  • confman recipe get
    • you should see doomed
  • confman recipe edit doomed
    • add test to the recipe
    • this should be committed to svn
  • confman recipe print doomed
    • make sure it reflects the addition of test
  • confman recipe set test
  • confman recipe get
    • you should see test
  • confman recipe remove doomed
    • file meta/recipes/doomed should be deleted and the change should be committed to svn
  • confman recipe set doomed
    • error should be sane for non-existent recipe

update

All of these should update your whole working copy:

  • When in working copy root
  • When in a working copy subdirectory
  • When not in working copy

commit

  • With no recipe defined
    • Is error sane?
  • With modules in recipe that don't exist
    • Is error sane?
  • With one module
  • With two modules
  • With two modules and overlapping files
  • With three modules
  • With three modules and overlapping files
  • With uncommitted changes to one module in the working copy
  • With uncommitted changes to two modules in the working copy
  • With a different (alternate user, homedir, host, etc.) working copy that is now out-of-date
  • With a different (alternate user, homedir, host, etc.) working copy that now has conflicts

confadmin

help

  • confadmin -h
  • confadmin help
  • confadmin -h setup
  • confadmin help setup

setup

  • Point confman.conf to a blank repository
  • confadmin setup
    • Should commit a revision
    • Can you confman setup to check it out?
  • confadmin setup
    • Should error out, because repository already exists
  • Point confman.conf to a blank repository
    • emulate a confman 1.5 repository: svn mkdir --parents trunk/checkpoints
    • should error out, because the repository already exists (this case requires manual migration right now -- wiki to provide types and script examples)