# Release Test Plan 018 This test plan is based on Pantavisor supported devices and features. It presents different levels of testing based on the presence of devices and features in the [Pantavisor documentation](https://docs.pantahub.com/). The objective is to determine what to test and to what extent. After this document is validated, a [test plan spreadsheet](https://docs.google.com/spreadsheets/d/154yJA3t8VHCUaG6zk90m67OHyfHho9grUgLbqixG8zU/edit?usp=sharing) will be generated to organize the testing process. ## Devices This classification divides the [supported devices](https://docs.pantahub.com/initial-devices/) based on documentation level. A device belonging to a tier does not mean that we want that in there, as the classification is based only on the current status of documentation. Dropping a board might be a possibility if we do not want to test it as thoroughly, the same way promoting it means we need to keep the documentation standard of its new tier before we test it. ### Tier 1 Full-featured devices (HDMI, TTY, OEM partition, etc). Used in the [get started guide](https://docs.pantahub.com/get-started/) for new Pantavisor users: * **RPi4** * **RPi3 b+** ### Tier 2 Boards with lighter documentation than tier 1 but still with content on [how-to bring up](https://docs.pantahub.com/choose-image/) Pantavisor: * **Nvidia Tegra 4.9** * **Rock64** * **BPi-R64** * **RPi0w** * **Toradex Colibri iMX6dl** * **Toradex Colibri iMX6ull** * **x64-uefi (default)** * **x64-uefi (installer)** * **QEMU x64-uefi** * **QEMU malta** * **App Engine x64** * **App Engine aarch64** ### Tier 3 Rest of [supported devices](https://docs.pantahub.com/initial-devices/) that does not have any documentation: * **BPi-R2** * **BeagleV** * **Odroid C2** * **RPi2** * **Rpi3** * **App Engine mips** * **App Engine arm** ## Features This classification divides Pantavisor features based on its documentation level. As with the device tiers, a feature belonging to a category does not mean that is its final place and could be changed if documentation is improved. ### Basic Management Documentation in [how-to manage your device](https://docs.pantahub.com/choose-way/) should suffice to perform basic management. * **Pantacor Hub:** auto-claim (pvr claim if not possible), get device metadata and logs, set user metadata, redeploy. * **Pantabox:** ssh pvr-sdk, add marketplace app, add docker app, add \_config, deploy, claim. * **pvtx**: ssh, open local, access pvtx, get device logs, deploy new transaction. * **Local pvr:** ssh, open local, clone, add app, add \_config, deploy. * **Remote pvr:** claim, clone, add app, add \_config, get logs. ### Advanced Features Documentation is more general and can be found both in [tech overview](https://docs.pantahub.com/pantavisor-architecture/) and [reference pages](https://docs.pantahub.com/build-options/). * **Checksum:** post new revision with debug console open, mess with object from new revision, exit console. * **Logs/Config override:** disable log push during runtime, disable log capture from initrd after update, check rotation (log.maxsize), log outputs, log to different dir (log.dir) and log to dmesg (log.stdout). * **Persistence storage:** check persistence of a container works with permanent, revision and boot settings. * **Rollback:** deploy empty update, remove awconnect and deploy. * **Garbage Collector:** deploy empty update, ssh pvr-sdk and paralelly make changes in pv-avahi and deploy, pvcontrol commands run-gc, check objects, revs and logs. ### Undocumented Features These features need some documentation before testing. * **Logs singlefile, filetree** (Felipe:DONE) * **pvnet** (sergio: TODO) * **Drivers** (asac:DONE) * **Cryptdisks** (asac: DONE) * **dm-verity** (asac: TODO) ### Unused Features Features not used in the latest devices. * **initrd config** (anibal: DONE) * **Signatures** (used for bsp; needs documentation) * **Drivers** (at least in rpi64-5.10.y, only bsp for now) * **Cryptodisks** (at leaste in rpi64-5.10.y) * **dm-verity** * **Groups** (anibal: DONE) * **Restart policy** (anibal: DONE) * **Status goal** (anibal: DONE) * **Roles** (anibal: DONE)