github.com/AbhinandanKurakure/podman/v3@v3.4.10/test/system/TODO.md (about)

     1  ![PODMAN logo](../../logo/podman-logo-source.svg)
     2  
     3  # Overview
     4  
     5  System tests exercise Podman in the context of a complete, composed environment from
     6  distribution packages.  It should match as closely as possible to how an end-user
     7  would experience a fresh-install.  Dependencies on external configuration and resources
     8  must be kept minimal, and the tests must be generic and vendor-neutral.
     9  
    10  The system-tests must execute cleanly on all tested platforms.  They may optionally
    11  be executed during continuous-integration testing of code-changes, after all other
    12  testing completes successfully.  For a list of tested platforms, please see [the
    13  CI configuration file.](../../.cirrus.yml)
    14  
    15  
    16  # Execution
    17  
    18  When working from a clone of [the libpod repository](https://github.com/containers/podman),
    19  the main entry-point for humans and automation is `make localsystem`.  When operating
    20  from a packaged version of the system-tests, the entry-point may vary as appropriate.
    21  Running the packaged system-tests assumes the version of Podman matches the test
    22  version, and all standard dependencies are installed.
    23  
    24  
    25  # Test Design and overview
    26  
    27  System-tests should be high-level and user work-flow oriented.  For example, consider
    28  how multiple Podman invocations would be used together by an end-user.  The set of
    29  related commands should be considered a single test.  If one or more intermediate
    30  commands fail, the test could still pass if the end-result is still achieved.
    31  
    32  
    33  # *TODO*: List of needed System-tests
    34  
    35  ***Note***: Common operations (like `rm` and `rmi` for cleanup/reset)
    36  have been omitted as they are verified by repeated implied use.
    37  
    38  - [ ] pull, build, run, attach, commit, diff, inspect
    39  
    40    - Pull existing image from registry
    41    - Build new image FROM explicitly pulled image
    42    - Run built container in detached mode
    43    - Attach to running container, execute command to modify storage.
    44    - Commit running container to new image w/ changed ENV VAR
    45    - Verify attach + commit using diff
    46    - verify changed ENV VAR with inspect
    47  
    48  - [ ] Implied pull, create, start, exec, log, stop, wait, rm
    49  
    50    - Create non-existing local image
    51    - start stopped container
    52    - exec simple command in running container
    53    - verify exec result with log
    54    - wait on running container
    55    - stop running container with 2 second timeout
    56    - verify wait in 4 seconds or less
    57    - verify stopped by rm **without** --force
    58  
    59  - [ ] Implied pull, build, export, modify, import, tag, run, kill
    60  
    61    - Build from Dockerfile FROM non-existing local image
    62    - Export built container as tarball
    63    - Modify tarball contents
    64    - Import tarball
    65    - Tag imported image
    66    - Run imported image to confirm tarball modification, block on non-special signal
    67    - Kill can send non-TERM/KILL signal to container to exit
    68    - Confirm exit within timeout
    69  
    70  - [ ] Container runlabel, exists, checkpoint, exists, restore, stop, prune
    71  
    72    - Using pre-existing remote image, start it with 'podman container runlabel --pull'
    73    - Run a named container that exits immediately
    74    - Confirm 'container exists' zero exit (both containers)
    75    - Checkpoint the running container
    76    - Confirm 'container exists' non-zero exit (runlabel container)
    77    - Confirm 'container exists' zero exit (named container)
    78    - Run 'container restore'
    79    - Confirm 'container exists' zero exit (both containers)
    80    - Stop container
    81    - Run 'container prune'
    82    - Confirm `podman ps -a` lists no containers
    83  
    84  
    85  # TODO: List of commands to be combined into additional workflows above.
    86  
    87  - podman-remote (workflow TBD)
    88  - history
    89  - image
    90  - load
    91  - mount
    92  - pause
    93  - pod
    94  - port
    95  - login, push, & logout (difficult, save for last)
    96  - restart
    97  - save
    98  - search
    99  - stats
   100  - top
   101  - umount, unmount
   102  - unpause
   103  - volume
   104  - `--namespace`
   105  - `--storage-driver`