+==============================+
| rpminspect and librpminspect |
+==============================+

The tests below are the categories handled by rpmdiff-checker, which
is the ancestor to rpminspect.  Red Hat associates may recognize these
as the grid categories on the rpmdiff webui.  Each test category may
perform a couple of tests.  As tests are documented and implemented,
the specifics will be noted during the work in progress.

* indicates the logic for the tests has moved to librpminspect
! means the work is in-progress


Unranked tests categories to migrate (might also decide to skip them):
----------------------------------------------------------------------
 TEST_REQUIRES
 TEST_SCRIPT
 TEST_STRIP
 TEST_TRIGGERS


Other:
    - Check for presence of required external program in abidiff,
      kmidiff, and other functions that fork and exec another program.

    - Add a 'rebase' inspection that just fails if packages are being
      rebased but not on the rebaseable list.  This should be off by
      default but then enabled in a maintenance profile.  Maybe???


Test categories that have been migrated:
----------------------------------------
*TEST_CHANGED (changedfiles)
*TEST_DESKTOP (desktop)
*TEST_EMPTYRPM (emptyrpm)
*TEST_FILELIST (addedfiles and removedfiles)
*TEST_JAVABYTECODE (javabytecode)
*TEST_MANPAGE (manpage)
*TEST_OWNERSHIP (ownership)
*TEST_SHELLSYNTAX (shellsyntax)
*TEST_XML (xml)
*TEST_IPV6 (part of elf inspection in rpminspect)
*TEST_EXECSHIELD (elf)
*TEST_NEEDED (DT_NEEDED)
*TEST_UPSTREAM (upstream; the BZ 'Rebase' keyword check against the
                Errata Tool bug list was not migrated, see below)
*TEST_PERMS (permissions and capabilities)
*TEST_MODPARM (kmod)
*TEST_MODPCIID (kmod)
*TEST_RPMCHANGE (arch and subpackages)
*TEST_CHANGELOG (changelog)
*TEST_PATHNAMES (pathmigration; the forbidden init paths are added
                 to forbidden_path_prefixes in the config file and
                 those are caught by 'addedfiles')
*TEST_SIZE (filesize)
*TEST_SYMLINK (symlinks)
*TEST_SPECFILE (disttag, license, and files)
*TEST_TYPES (types)
*TEST_FILEMOVE (movedfiles)
*TEST_ABI (abidiff and kmidiff)
*TEST_CONFIG (config and doc)
*TEST_PATCHES (patches)
*TEST_VIRUS (virus)
*TEST_POLITICS (politics)
*TEST_RPATH (runpath)
*TEST_METADATA (only checks for bad words, valid license, valid vendor,
                and valid buildhost)


Test categories excluded (see MISSING):
---------------------------------------
 TEST_BUILDLOG
 TEST_RPMLINT
 TEST_UPSTREAM (only the rebase keyword check)
 TEST_ELFLINT
 TEST_MULTILIB
 TEST_SPECFILE (only the 32-bit x86 $RPM_OPT_FLAGS check)
 TEST_METADATA (the 'fedora without red hat' string check)


+============+
| test suite |
+============+

Integration tests to write for rpminspect
-----------------------------------------

The test suite needs more integration tests written.  The following
inspections lack integration tests:

    modularity
    javabytecode
    changedfiles (compare only)
    removedfiles (compare only)
    addedfiles (compare only)
    annocheck
    DT_NEEDED
    capabilities
    arch
    subpackages
    pathmigration
    abidiff
    kmidiff

Need unit tests for run_cmd() verifying NULL as the last parameter.


+=======+
| Other |
+=======+

General functionality
---------------------

* In the [inspections] section in config files, all for "ALL = on"
  and "ALL = off" to toggle everything.  Similar to the command
  line option.

* Create a single-line reporting mode as suggested by mhroncok that
  will report changes (see issue #26).

* Add verbose runtime reporting.  This is currently only available
  for downloading packages.  Need to figure out how to separate it
  from the test results.

* Text mode reporting formatting.  Allow a user-specified column width
  and align output on columns.


Documentation
-------------

Developer guide
Testing guide
User guide
    Use Doxygen for the C source but tie that in with Sphinx so
    publishing can be done on readthedocs.io

Also rpminspect.yaml.5 documenting the configuration file and the
profile configuration files.
