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`