We want a way to make sure the Backup Server does its job in an automated way. One way that I can think of is having a "hardware in the loop" test that basically does the following
a set of testfiles on the nas that is accessible over rsync daemon (size, folder structure and stuff has to be decided on)
a test backup server that is connected to an external drive (preferably a USB 3 hard drive to be most realistic)
a python script that runs on a computer
listens to the serial debug terminal of the PCU to verify it undergoes the correct steps
listens to the bcu (over ssh?) and verifies it undergoes the correct steps
compares the data on the nas and the base and does a verification
generates some kind of report (Can be dirty but shall contain the necessary info to track what has actually been tested, like commit ids, steps)
(optional, but cool) put it all on another raspberry pi or some other computer, so this can all run on the side
(optional, but very cool) implement a github action that runs this test automatically every push or so
What happens if we don't do it (aka Why is it important)?
We wouldn't have an automated test that can verify that our product works as intended. The consequences are the necessity to verify stuff manually or take the risk of having more bugs than necessary.
Definition of Ready
[x] #19
[x] #15
[x] #8
Key Tasks
[x] print necessary messages on serial debug console of the PCU
[x] create a udev file so the serial-usb adapter can be recognized reliably
[x] find a way to get current logs from the "BaSe Under Test". ssh might be an option, but maybe not the best.
[x] decide on the testfiles on the nas (or decide to start with "something" and refine this if we see problems with certain kinds of files or structures in real life)
[x] build a test backup server (or just use the only one we currently have)
[ ] find a way to verify the files on the backup hdd and the testfiles on the nas
[ ] find functional format for the report
[ ] generate report
Acceptance Criteria
[ ] we have a setup that can tell us whether our backup server works as intended (more details tbd)
Description
We want a way to make sure the Backup Server does its job in an automated way. One way that I can think of is having a "hardware in the loop" test that basically does the following
What happens if we don't do it (aka Why is it important)?
We wouldn't have an automated test that can verify that our product works as intended. The consequences are the necessity to verify stuff manually or take the risk of having more bugs than necessary.
Definition of Ready
Key Tasks
Acceptance Criteria