#
# Things to do for testing
#

* ensure user is root? -- easy to do

* have tests create their own target using targetcli and
  a file? -- this would be much better, but would pull
  in a requirement for targetcli-fb and friends, plus we
  would still need a place for a decent-sized (1G?) file.

* when we do discovery we should keep track of the node(s)
  added, and remove them when we exit?

* Have tests figure out the device path, so it doesn't have
  to be passed in. Passing it in requires the called to
  login to the remote iscsi target and look at the path
  in /dev/disk/by-id (for example). If we created the
  disk, we might have a better chance of guessing its name?

* Augment tests
  Right now, the test is a long-ass regression test. Very
  repetitive and time-consuming. But we also have need of
  regular unit tests, e.g. for functionality, where a new
  test could be added each time we find a bug? New tests
  could include things like:
    - multipathing
    - using interface files or not
    - discovery, with and without authentication
    - session creation, w/ & w/o auth

* Gather actual regression data!
  - Since we are testing all of these combinations, why not
    keep historical data to see if there are any negative
    trends (i.e. regressions)? Need to understand fio and bonnie++
    output better to find a way to gather one or two datapoints
    (max) per test, out of all the info dumped by these
    programs.

* Add in test cases for Discovery and/or Connection validation,
  which would require either a separate target set up for that,
  or control of our own target

* Only allow /dev/disk/by-* paths, as /dev/sd? paths are
  inherently problematic, since they can change names.

* Add back in the "big warning" from regression.sh?

* Find a faster way to zero the disc than using sgdisk and
  dd. Running both of these on a 10G disc can take minutes.

* Come up with some common subsets of tests that can be run
  when needed, since running all the tests takes forever. Maybe
  a "short", "medium", and "long" option, so the caller doesn't
  have to remember the arcane command-line options?

* keep track of our session id (when we have one), so that
  we can log out of just our session more easily

* do a better job of tracking time spent exec-ing other
  programs -- maybe have the run_cmd() function do it
  automatically, using a dict, based on the argv[0]
  command being run?
