From ddda3e74ab61689a0558963c029fc2a554164dec Mon Sep 17 00:00:00 2001 From: Jan Grosser Date: Wed, 18 Aug 2021 14:19:24 +0000 Subject: [PATCH 01/15] Exit if selected user for installation already exist. (issue #88) --- setup.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index c8173db..2a5d753 100755 --- a/setup.sh +++ b/setup.sh @@ -17,12 +17,14 @@ if [[ "${1}" != "" ]]; then username=${1} fi -# If calliope user doesn't exist, create it +# If calliope user doesn't exist, create it. If the user already exists, +# exit setup.sh (see Github issue #88) if ! id -u ${username} > /dev/null 2>&1; then echo "Creating user ${username}." useradd -m ${username} else - echo "User ${username} already exists." + echo "Error: User ${username} already exists. Exiting." + exit 1 fi # Add user to groups in ${groups}. If user is already in the groups the From 7a10f48ee7ed1f261d91153f76b0f118d66ec452 Mon Sep 17 00:00:00 2001 From: Jan Grosser Date: Wed, 18 Aug 2021 14:28:30 +0000 Subject: [PATCH 02/15] Removed wheel for argparse because it is already installed on AstroPi-IR (issue #87) --- modules/argparse-1.4.0-py2.py3-none-any.whl | Bin 23000 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modules/argparse-1.4.0-py2.py3-none-any.whl diff --git a/modules/argparse-1.4.0-py2.py3-none-any.whl b/modules/argparse-1.4.0-py2.py3-none-any.whl deleted file mode 100644 index dfef51d4483025c5a535e553266234d372480439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23000 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 LX8T3!ufP8R(i0Iz From 8bb99eeb920666bf8bb072f8f032b9463a9b4c34 Mon Sep 17 00:00:00 2001 From: Jan Grosser Date: Wed, 18 Aug 2021 14:51:16 +0000 Subject: [PATCH 03/15] Exit setup.sh if login shell is provided on serial port (issue #86) --- setup.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/setup.sh b/setup.sh index 2a5d753..73b4113 100755 --- a/setup.sh +++ b/setup.sh @@ -17,6 +17,16 @@ if [[ "${1}" != "" ]]; then username=${1} fi +# CalliopEO.py will not work, if the a login shell is provided on the serial +# port. In case, login shell is configured over the serial port, exit +# setup.sh with a message. +if grep -E 'console=serial[[:digit:]]{1},[[:digit:]]+ ' /boot/cmdline.txt > /dev/null 2>&1; then + echo "Error: Login shell provided on serial port." + echo "Disable login shell over serial port, reboot and re-run setup.sh." + echo "Exiting." + exit 1 +fi + # If calliope user doesn't exist, create it. If the user already exists, # exit setup.sh (see Github issue #88) if ! id -u ${username} > /dev/null 2>&1; then From 221e9284dc675332884af604ced40ca9206025c7 Mon Sep 17 00:00:00 2001 From: Jan Grosser Date: Wed, 24 Feb 2021 09:48:49 +0000 Subject: [PATCH 04/15] Kicked-out (nearly) all references to installing the software on anything other than Astro Pi running AstroPi-IR OS --- README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 67bcc75..1b3cd27 100644 --- a/README.md +++ b/README.md @@ -4,16 +4,16 @@ # Readme ## Description -CalliopEO is a Python script to facilitate interaction between a Raspberry Pi microcomputer and a [Calliope Mini microcontroller board](https://calliope.cc/). If executed, the script detects, if a Calliope Mini is attached to a USB board of the Raspbery Pi and determins the serial port to communicate with the Calliope Mini. +CalliopEO is a Python script to facilitate interaction between the [Astro Pi microcomputer](https://astro-pi.org/) and the [CalliopEO Mini microcontroller board](https://calliope.cc/en/calliopeo). If executed, the script detects, if a CalliopEO Mini is attached to a USB board of the Astro Pi and determins the serial port to communicate with the CalliopEO. -The directory, in which the `CalliopEO.py` script is located is called the main directory. Place any program(s) to be executed by the Calliope Mini as zipped HEX file(s) in this main directory. If executed the script will search for all zip archives, unpack the Calliope Mini program (HEX file) from the archive and flash the Calliope Mini with this program. After flashing, the Calliope Mini will reboot automatically and execute the program. +The directory, in which the `CalliopEO.py` script is located is called the main directory. Place any program(s) to be executed by the CalliopEO as zipped HEX file(s) in this main directory. If executed the script will search for all zip archives, unpack the CalliopEO program (HEX file) from the archive and flash the CalliopEO with this program. After flashing, the CalliopEO will reboot automatically and execute the program. -In the main directory a sub-folder named `run_YYYYMMDD-HHMMSS` will be created. The HEX files flashed and executed on the Calliope Mini will be copied to this folder along with any data sent back by the program (files will end with `.data`). The initial zip archive in the main folder is renamed (additional suffix `.done`) to exclude this file from being processed again. +In the main directory a sub-folder named `run_YYYYMMDD-HHMMSS` will be created. The HEX files flashed and executed on the CalliopEO will be copied to this folder along with any data sent back by the program (files will end with `.data`). The initial zip archive in the main folder is renamed (additional suffix `.done`) to exclude this file from being processed again. -The `CalliopEO.py` script can collect data sent by the program on the Calliope Mini via the USB serial port. Therefore, prepare the Calliope Mini program to wait for the string `@START@`. Then, the Calliope Mini program should respond by sending `@START@` back to the `CalliopEO.py` script and only after this sending the data. After sending the data the Calliope Mini program should send the +The `CalliopEO.py` script can collect data sent by the program on the CalliopEO via the USB serial port. Therefore, prepare the CalliopEO program to wait for the string `@START@`. Then, the CalliopEO program should respond by sending `@START@` back to the `CalliopEO.py` script and only after this sending the data. After sending the data the CalliopEO program should send the message `@END@`. -Each line in the `.data` files will have a leading time stamp of the format `YYYY/MM/DD-HH/MM/SS.ssssss`. A boilerplate for the Calliope Mini programs is described below. +Each line in the `.data` files will have a leading time stamp of the format `YYYY/MM/DD-HH/MM/SS.ssssss`. A boilerplate for the CalliopEO programs is described below. ## Execute ### Important considerations when using on Astro Pi onboard the ISS @@ -21,7 +21,7 @@ Due to the movement of the ISS around the Earth a loss of signal (LOS) between a To establish a terminal session via `screen` that can be resumed after a LOS follow the following steps: ``` -# Establish a SSH connection to Astro Pi with the hostname or IP address using a SSH-enabled user account on Astro Pi (assuming root: +# Establish a SSH connection to Astro Pi with the hostname or IP address `` using a SSH-enabled user account on Astro Pi ``. Replace both `` and `` with the correct values: ssh @ # Change to the user calliope and cd in it's home directory su calliope @@ -52,16 +52,16 @@ The syntax of the script `CalliopEO.py` is: ``` $ ./CalliopEO.py [--max-data-size=bytes] [--max-script-execution-time=seconds] [--fake-timestamp] ``` -* `--max-data-size` is the maximum number of characters to be read from the Calliope Mini. -* With `--max-script-execution-time` you can specify a maximum time to accept input from the Calliope Mini program before terminating the connection. +* `--max-data-size` is the maximum number of characters to be read from the CalliopEO. +* With `--max-script-execution-time` you can specify a maximum time to accept input from the CalliopEO program before terminating the connection. * `--fake-timestamp` adds to the beginning of each line a constant time stamp `2000/01/01-00:00:00.000000` instead of the current time stamp. This feature is primarily meant for testing purposes. ## Hardware Setup -The Calliope Mini should be connected via USB to the Raspberry Pi. +The CalliopEO should be connected via USB to the Astro Pi. ``` +--------------+ | | USB o---o---o - | Raspberry Pi |===============| Call. | + | Astro Pi |===============| Call. | | | o---o---o +--------------+ ``` @@ -83,33 +83,33 @@ Sample testresults can be found in [./testresults](testresults). ## HEX Boilerplate -For a sample implementation of the Boilerplate code for the Calliope mini please have a look at the [JS File](https://github.com/calliope-edu/CalliopEO_AstroPi/blob/06a4867b96a7cef7bf293340d21f18b37555aabc/testcases/testfiles/30sec-iss-sensors.js), the [Compiled HEX ](https://github.com/calliope-edu/CalliopEO_AstroPi/blob/06a4867b96a7cef7bf293340d21f18b37555aabc/testcases/testfiles/30sec-iss-sensors.hex) or edit it on [makecode.calliope.cc](https://makecode.calliope.cc/_KJT7WkEcwaDi). The .data file on the Raspberry Pi should look like this [this](https://github.com/calliope-edu/CalliopEO_AstroPi/blob/06a4867b96a7cef7bf293340d21f18b37555aabc/testcases/testfiles/30sec-iss-sensors.hex.data) +For a sample implementation of the Boilerplate code for the CalliopEO please have a look at the [JS File](https://github.com/calliope-edu/CalliopEO_AstroPi/blob/06a4867b96a7cef7bf293340d21f18b37555aabc/testcases/testfiles/30sec-iss-sensors.js), the [Compiled HEX ](https://github.com/calliope-edu/CalliopEO_AstroPi/blob/06a4867b96a7cef7bf293340d21f18b37555aabc/testcases/testfiles/30sec-iss-sensors.hex) or edit it on [makecode.calliope.cc](https://makecode.calliope.cc/_KJT7WkEcwaDi). The .data file on the Astro Pi should look like this [this](https://github.com/calliope-edu/CalliopEO_AstroPi/blob/06a4867b96a7cef7bf293340d21f18b37555aabc/testcases/testfiles/30sec-iss-sensors.hex.data) ## Software Installation ### Operating system -The project is intended to be used with the ESA [Astro Pi IR](https://astro-pi.org/) onboard the International Space Station ISS. The Astro Pi SBCs are running a dedicated flavour of Raspberry Pi OS not available for the public. But this software can also be installed on the publicly available [Raspberry Pi OS](https://www.raspberrypi.org/software/) running on any Raspberry Pi. For CalliopEO, the "OS Lite" version without desktop is sufficient. Follow the standard installation procedure. +The project is intended to be used with the ESA [Astro Pi IR](https://astro-pi.org/) onboard the International Space Station ISS. The Astro Pi SBCs are running a dedicated flavour of Raspberry Pi OS not available for the public. But this software can also be installed on the publicly available [Raspberry Pi OS](https://www.raspberrypi.org/software/) running on any Raspberry Pi, but the installation and operation is not covered by this document. ### Installation using the setup.sh script To set up the environment for the `CalliopEO.py` script a setup script `setup.sh` was established. It automatically performs all necesaary steps to provide a fully functional environment. -Before executing the setup script, connect the Calliope Mini to the Astro Pi/Raspberry Pi. Execute the setup script with the following command: +Before executing the setup script, connect the CalliopEO to the Astro Pi. Execute the setup script with the following command: ``` $ sudo setup.sh [username] ``` `username` is the name of the user to be created (enter without any brackets!). If this optional parameter is not given, the default `calliope` is used. The setup script performs the following actions: -* Create a dedicated user (default: `calliope`) -* Add user to group `dialout` to be able to perform communication with the Calliope Mini over the serial port +* Create a dedicated user (default: `calliope`). If the selected user already exists, `setup.sh` will exit. +* Add user to group `dialout` to be able to perform communication with the CalliopEO over the serial port * Set password for the new user -* Determine UUIDs for Calliope Mini's block devices and creating mount point in `/etc/fstab`. Later, this is used to mount the block devices for flashing the Calliope Mini. The mount point is defined in `/etc/fstab` in order to allow unprivileged users like `calliope` to mount/unmount the block device. +* Determine UUIDs for CalliopEO's block devices and creating mount point in `/etc/fstab`. Later, this is used to mount the block devices for flashing the CalliopEO. The mount point is defined in `/etc/fstab` in order to allow unprivileged users like `calliope` to mount/unmount the block device. * Create the main directory below the user's home directory `~/calliopEO` and copy all necessary files to this directory, in particular the Python script `CalliopEO.py`. * Installing necessary Python modules from local wheel files. This is necessary due to security requirements set by ESA. ## De-Installation The system can be cleaned up from the files necessary and the system settings done exclusively for CalliopEO using the procedure described as below. For this procedure it is assumed, that the username for the CalliopEO user is `calliope`. Replace `calliope` by the appropriate username if an alternative username was selected during the setup process (see above). -1. Login to the Raspberry Pi using a user different from `calliope`. +1. Login to the Astro Pi using a SSH-enabled user different from `calliope`. 2. Remove the user `calliope` with the command ``` $ sudo userdel -r calliope @@ -121,7 +121,7 @@ $ sudo cp /etc/fstab /etc/fstab.backup ``` 5. Open the file `/etc/fstab` in a text editor. Remove (or uncomment) mount point definitions in `/etc/fstab` for CalliopEO. The line(s) with the moint point definitions should look like the following: ``` -# Mount points for Calliope Mini +# Mount points for CalliopEO /dev/disk/by-uuid/0123-4567 /home/calliope/mnt/mini vfat noauto,users 0 0 ``` 6. Restart the operating system. The de-installation is complete. From 29ea5ec6ae5c36490f290ecdbeac068988ab3eec Mon Sep 17 00:00:00 2001 From: JW Date: Wed, 11 Aug 2021 23:21:17 +0200 Subject: [PATCH 05/15] update changelog --- CHANGELOG.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 969ff31..dcf6667 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,25 +15,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [1.1.0]() **Updates** -- Closed issue #78: Testing.sh exits with notification if there are no testcase files -- Closed issue #76: Inserted "5 second sleep phase" between testcases with unconnected and connected CalliopEO in testing.sh to avoid that the program accesses CalliopEO too early which can result in errors +- Closed issue #78: Testing.sh exits with notification if there are no test case files +- Closed issue #76: Inserted "5 second sleep phase" between test cases with unconnected and connected CalliopEO in testing.sh to avoid that the program accesses CalliopEO too early which can result in errors - Closed issue #74: Reduced data rate for burst.hex to avoid having corrupted .data files resulting in incorrect MD5 checksums - Closed issue #48: Handle "unstructured" data from CalliopEO without newlines -- Add testcase for data without newline -- Update Testresults +- Add test case for data without newline +- Update Test results - Add error message output for `Max file size achieved` and `Max script time achieved` -- Add MIT Licence -- Do not add FLASH device in `/etc/fstab` in stup process anymore -- Updaters in `Readme` and `ProgramDescription` +- Add MIT License +- Do not add FLASH device in `/etc/fstab` in setup process anymore +- Updates in `Readme` and `ProgramDescription` - Update to initial Hex file `30s-iss-sensors.hex` -- Replaced md5sum by custom-made `comp()` function in testcases 07a and 07b +- Replaced md5sum by custom-made `comp()` function in test cases 07a and 07b - Removed unneeded declaration of `tc_folder` - Added Cancel button to GUI - Max number of retries to flash can now be configured via `MAX_RETRY_FLASHING` -- Max serial line lenght read can now be configured via `MAX_LINE_LENGTH` +- Max serial line length read can now be configured via `MAX_LINE_LENGTH` - Cleaned up function `waitSerialStart()`, see issue #56 - Properly encode SERIAL_START before sending to serial port -- Added notes on propper usage of `SERIAL_TIMEOUT` and `MAX_SERIAL_WAIT_REPLY` +- Added notes on proper usage of `SERIAL_TIMEOUT` and `MAX_SERIAL_WAIT_REPLY` ## [1.0.1](https://github.com/Amerlander/svelte-typeahead-multiselect/releases/tag/v1.0.0) - 2021-02-25 From 16a3c0de9673eb12badb924797ce50064c675349 Mon Sep 17 00:00:00 2001 From: JW Date: Wed, 11 Aug 2021 23:24:14 +0200 Subject: [PATCH 06/15] add link to release in changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dcf6667..66fae98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 *none yet* -## [1.1.0]() +## [1.1.0](https://github.com/calliope-edu/CalliopEO_AstroPi/releases/tag/v1.1.0) **Updates** - Closed issue #78: Testing.sh exits with notification if there are no test case files From ac537819231945aaaf3b2c9f2e8c157dbf00e928 Mon Sep 17 00:00:00 2001 From: Amerlander Date: Thu, 12 Aug 2021 12:31:08 +0200 Subject: [PATCH 07/15] Fix broken links A2 & A3 in ProgramDescription --- ProgramDescription.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ProgramDescription.md b/ProgramDescription.md index a20f7c0..d7c769d 100644 --- a/ProgramDescription.md +++ b/ProgramDescription.md @@ -169,6 +169,6 @@ The student experiments will be uploaded in the same way. Once programs that col ## A. Appendices - A.1 [Dokumentation of CalliopeEO Phyton Script](README.md) -- A.2 [Example JavaScript code of the preinstalled file on the Calliope mini](testcaes/testfiles/30sec-iss-sensors.js) -- A.3 [Example of saved Data file](testcaes/testfiles/30sec-iss-sensors.hex.data) +- A.2 [Example JavaScript code of the preinstalled file on the Calliope mini](testcases/testfiles/30sec-iss-sensors.js) +- A.3 [Example of saved Data file](testcases/testfiles/30sec-iss-sensors.hex.data) - A.4 [Minimum requirements](requirements.txt) From 805d2017806f74bda44f69eafe25c67b80e0609f Mon Sep 17 00:00:00 2001 From: Amerlander Date: Thu, 12 Aug 2021 12:32:29 +0200 Subject: [PATCH 08/15] Update CHANGELOG.md --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66fae98..e9c38d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 *none yet* +## [1.1.1]() + +**Fixes** +- Fix broken links A2 & A3 in ProgramDescription + ## [1.1.0](https://github.com/calliope-edu/CalliopEO_AstroPi/releases/tag/v1.1.0) **Updates** From c9370ab60d0b126c87b93d3072377802ea26a4ba Mon Sep 17 00:00:00 2001 From: Amerlander Date: Thu, 12 Aug 2021 12:37:47 +0200 Subject: [PATCH 09/15] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9c38d5..8287c0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 *none yet* -## [1.1.1]() +## [1.1.1](https://github.com/calliope-edu/CalliopEO_AstroPi/releases/tag/v1.1.1) **Fixes** - Fix broken links A2 & A3 in ProgramDescription From 90faf9b3468469d7bc18fb5a8d46581432ce6df7 Mon Sep 17 00:00:00 2001 From: Amerlander Date: Tue, 17 Aug 2021 14:16:23 +0200 Subject: [PATCH 10/15] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9cdc483..8ce651f 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Due to the movement of the ISS around the Earth a loss of signal (LOS) between a To establish a terminal session via `screen` that can be resumed after a LOS follow the following steps: ``` # Establish a SSH connection to Astro Pi with the hostname or IP address using a SSH-enabled user account on Astro Pi (assuming root: -ssh root@ +ssh @ # Change to the user calliope and cd in it's home directory su calliope cd From ebd8b92becda4aca46e276aa74df0bea61a813f0 Mon Sep 17 00:00:00 2001 From: Amerlander Date: Tue, 17 Aug 2021 14:59:45 +0200 Subject: [PATCH 11/15] Correct syntax, remove python3 https://github.com/calliope-edu/CalliopEO_AstroPi/issues/94 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ce651f..67bcc75 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ At any time a running session can be detached using the keyboard sequence `CTRL+ ### Command Syntax of CalliopEO.py The syntax of the script `CalliopEO.py` is: ``` -$ python3 CalliopEO.py [--max-data-size=bytes] [--max-script-execution-time=seconds] [--fake-timestamp] +$ ./CalliopEO.py [--max-data-size=bytes] [--max-script-execution-time=seconds] [--fake-timestamp] ``` * `--max-data-size` is the maximum number of characters to be read from the Calliope Mini. * With `--max-script-execution-time` you can specify a maximum time to accept input from the Calliope Mini program before terminating the connection. From 594d5768c5424972c7415b5da99dbc9cadd86782 Mon Sep 17 00:00:00 2001 From: Jan Grosser Date: Wed, 18 Aug 2021 15:42:31 +0000 Subject: [PATCH 12/15] Check for needed programs (issue #91) --- setup.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/setup.sh b/setup.sh index 73b4113..7af1572 100755 --- a/setup.sh +++ b/setup.sh @@ -5,6 +5,7 @@ echo # Define variables username="calliope" # name for user groups="dialout" # group(s) the user has to be added +needed_progs="lsblk md5sum cmp pip3" if [ "${EUID}" -ne 0 ]; then echo "Please run as root. Exiting." @@ -27,6 +28,16 @@ if grep -E 'console=serial[[:digit:]]{1},[[:digit:]]+ ' /boot/cmdline.txt > /dev exit 1 fi +# The CalliopEO software relies on some programs that have to be available on +# the system. Check and exit if one of the programs does not exist +# (see Github issue #91) +for prog in ${needed_progs}; do + command -v ${prog} >/dev/null 2>&1 || { + echo >&2 "Error: ${prog} required but it's not installed. Exiting." + exit 1 + } +done + # If calliope user doesn't exist, create it. If the user already exists, # exit setup.sh (see Github issue #88) if ! id -u ${username} > /dev/null 2>&1; then From 07679734a93fdb3c87855de0cd2a0211c9520313 Mon Sep 17 00:00:00 2001 From: Jan Grosser Date: Wed, 18 Aug 2021 15:54:10 +0000 Subject: [PATCH 13/15] Added testing for dependencies in testcase 1 (see issue #92) --- testcases/01_collect-sysinfo.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/testcases/01_collect-sysinfo.sh b/testcases/01_collect-sysinfo.sh index bca9e56..3f6250a 100755 --- a/testcases/01_collect-sysinfo.sh +++ b/testcases/01_collect-sysinfo.sh @@ -29,7 +29,22 @@ if [[ -f "${os_release}" ]]; then done < ${os_release} echo "" fi + +echo " Check for dependencies:" +needed_progs="lsblk md5sum cmp pip3" +for prog in ${needed_progs}; do + echo -n " ${prog}: " + command -v ${prog} >/dev/null 2>&1 + if [ $? -eq 0 ]; then + echo -e "${G}present${NC}" + else + echo -e "${R}not present${NC}" + ERRORS=$((ERRORS+1)) + fi +done + echo " Python3 version: $(python3 --version)" + pip3 list > ~/python3_modules.list.tmp echo " Installed Python3 modules" while read line; do From 7f6364e9d54d64af03c860118c2445ddc11c0dbb Mon Sep 17 00:00:00 2001 From: Jan Grosser Date: Wed, 18 Aug 2021 16:19:16 +0000 Subject: [PATCH 14/15] Test log updated --- testresults/all_tests.txt | 693 +++++++++++++++++++------------------- 1 file changed, 344 insertions(+), 349 deletions(-) diff --git a/testresults/all_tests.txt b/testresults/all_tests.txt index 6abc1e7..d4d55f8 100644 --- a/testresults/all_tests.txt +++ b/testresults/all_tests.txt @@ -1,9 +1,8 @@ -calliope@astropiir:~/calliopEO $ ./testing.sh ################## TESTING CALLIOPEO.PY ################## -Test started: Wed 24 Feb 22:12:05 UTC 2021 +Test started: Wed 18 Aug 16:03:52 UTC 2021 Selected Tests: "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" -Start #1 ./testcases/01_collect-sysinfo.sh +Start #1 ./testcases/01_collect-sysinfo.sh --------------------------------- Hostname: astropiir User: calliope @@ -66,144 +65,142 @@ Start #1 ./testcases/01_collect-sysinfo.sh statusserver 2.0.0 stealthmode 1.1.0 ws4py 0.5.1 -Testcase passed. +Testcase passed. --------------------------------- -Finished #1 ./testcases/01_collect-sysinfo.sh +Finished #1 ./testcases/01_collect-sysinfo.sh -Start #2 ./testcases/02_no-calliope.sh +Start #2 ./testcases/02_no-calliope.sh --------------------------------- Test: No Calliope attached --------------------------------------- -Confirm, Calliope Mini is NOT attached to USB [y] y -=# CalliopEO #=- mini not found -Check 1/1: Return code of script is 10 or 11 ... PASSED -Testcase passed. +Check 1/1: Return code of script is 10 or 11 ... PASSED +Testcase passed. --------------------------------- -Finished #2 ./testcases/02_no-calliope.sh +Finished #2 ./testcases/02_no-calliope.sh -Start #3 ./testcases/03_no-zip.sh +Start #3 ./testcases/03_no-zip.sh --------------------------------- Test: No ZIP artchive provided --------------------------------------- -Confirm, Calliope Mini is attached to USB [y] y -=# CalliopEO #=- no archives found in this directory make sure you have at least one archive in this directory -Check 1/1: Return code of script is 12 ... PASSED -Testcase passed. +Check 1/1: Return code of script is 12 ... PASSED +Testcase passed. --------------------------------- -Finished #3 ./testcases/03_no-zip.sh +Finished #3 ./testcases/03_no-zip.sh -Start #4 ./testcases/04_transmission-5s.sh +Start #4 ./testcases/04_transmission-5s.sh --------------------------------- Test: Single, nominal ZIP archive provided ------------------------------------------- -=# CalliopEO #=- Unpacked /home/calliope/calliopEO/01.zip + - -programming: /home/calliope/calliopEO/run_20210224-221240/01.hex +programming: /home/calliope/calliopEO/run_20210818-160435/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:12:56; Will stop @ 2021/02/25-01:17:56 - + +Start @ 2021/08/18-16:04:52; Will stop @ 2021/08/18-19:09:52 + Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -Check 1/4: Return code of script is 0 ... PASSED -Check 2/4: ZIP archive renamed to .done ... PASSED -Check 3/4: Folder run_* created ... PASSED -Check 4/4: MD5 checksum in folder ./run_20210224-221240 ... PASSED -Testcase passed. +Check 1/4: Return code of script is 0 ... PASSED +Check 2/4: ZIP archive renamed to .done ... PASSED +Check 3/4: Folder run_* created ... PASSED +Check 4/4: MD5 checksum in folder ./run_20210818-160435 ... PASSED +Testcase passed. --------------------------------- -Finished #4 ./testcases/04_transmission-5s.sh +Finished #4 ./testcases/04_transmission-5s.sh -Start #5 ./testcases/05_corrupted_hex.sh +Start #5 ./testcases/05_corrupted_hex.sh --------------------------------- Test: Provide two ZIP archive, the last one corrupted ----------------------------------------------------- -=# CalliopEO #=- Unpacked /home/calliope/calliopEO/01.zip + - -programming: /home/calliope/calliopEO/run_20210224-221305/01.hex +programming: /home/calliope/calliopEO/run_20210818-160500/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:13:21; Will stop @ 2021/02/25-01:18:21 - + +Start @ 2021/08/18-16:05:16; Will stop @ 2021/08/18-19:10:16 + Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -programming: /home/calliope/calliopEO/run_20210224-221305/02.hex +programming: /home/calliope/calliopEO/run_20210818-160500/02.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:13:37; Will stop @ 2021/02/25-01:18:37 - + +Start @ 2021/08/18-16:05:32; Will stop @ 2021/08/18-19:10:32 + Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -Check 1/6: Return code of script is 0 ... PASSED -Check 2/6: ZIP archive renamed to .done ... PASSED -Check 3/6: Folder run_* created ... PASSED -Check 4/6: Created two .data files ... PASSED -Check 5/6: The two .data files have same content ... PASSED -Check 6/6: MD5 checksum in folder ./run_20210224-221305 ... PASSED -Testcase passed. +Check 1/6: Return code of script is 0 ... PASSED +Check 2/6: ZIP archive renamed to .done ... PASSED +Check 3/6: Folder run_* created ... PASSED +Check 4/6: Created two .data files ... PASSED +Check 5/6: The two .data files have same content ... PASSED +Check 6/6: MD5 checksum in folder ./run_20210818-160500 ... PASSED +Testcase passed. --------------------------------- -Finished #5 ./testcases/05_corrupted_hex.sh +Finished #5 ./testcases/05_corrupted_hex.sh -Start #6 ./testcases/06a_corrupted-zip.sh +Start #6 ./testcases/06a_corrupted-zip.sh --------------------------------- Test: Provide three ZIP archive, the 2nd corrupted -------------------------------------------------- -=# CalliopEO #=- Error while unpacking /home/calliope/calliopEO/not.a.zip: /home/calliope/calliopEO/not.a.zip is not a zip file + - -Check 1/3: Return code is 0 ... PASSED -Check 2/3: ZIP archive renamed to .failed ... PASSED -Check 3/3: Empty folder run_* created ... PASSED -Testcase passed. +Check 1/3: Return code is 0 ... PASSED +Check 2/3: ZIP archive renamed to .failed ... PASSED +Check 3/3: Empty folder run_* created ... PASSED +Testcase passed. --------------------------------- -Finished #6 ./testcases/06a_corrupted-zip.sh +Finished #6 ./testcases/06a_corrupted-zip.sh -Start #7 ./testcases/06b_corrupted-zip.sh +Start #7 ./testcases/06b_corrupted-zip.sh --------------------------------- Test: Provide three ZIP archive, the 2nd corrupted -------------------------------------------------- @@ -212,467 +209,464 @@ Test: Provide three ZIP archive, the 2nd corrupted Unpacked /home/calliope/calliopEO/01.zip Error while unpacking /home/calliope/calliopEO/02.zip: /home/calliope/calliopEO/02.zip is not a zip file Unpacked /home/calliope/calliopEO/03.zip + - -programming: /home/calliope/calliopEO/run_20210224-221349/01.hex +programming: /home/calliope/calliopEO/run_20210818-160544/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:14:07; Will stop @ 2021/02/25-01:19:07 - + +Start @ 2021/08/18-16:06:01; Will stop @ 2021/08/18-19:11:01 + Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -programming: /home/calliope/calliopEO/run_20210224-221349/02.hex +programming: /home/calliope/calliopEO/run_20210818-160544/02.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:14:28; Will stop @ 2021/02/25-01:19:28 - + +Start @ 2021/08/18-16:06:23; Will stop @ 2021/08/18-19:11:23 + Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -Check 1/5: Return code is 0 ... PASSED -Check 2/5: ZIP archive renamed to .failed ... PASSED -Check 3/5: Folder run_* created ... PASSED -Check 4/5: Created two .data files ... PASSED -Check 5/5: MD5 checksum in folder ./run_20210224-221349 ... PASSED -Testcase passed. +Check 1/5: Return code is 0 ... PASSED +Check 2/5: ZIP archive renamed to .failed ... PASSED +Check 3/5: Folder run_* created ... PASSED +Check 4/5: Created two .data files ... PASSED +Check 5/5: MD5 checksum in folder ./run_20210818-160544 ... PASSED +Testcase passed. --------------------------------- -Finished #7 ./testcases/06b_corrupted-zip.sh +Finished #7 ./testcases/06b_corrupted-zip.sh -Start #8 ./testcases/07a_transm-timeout.sh +Start #8 ./testcases/07a_transm-timeout.sh --------------------------------- Test: Handle transmission timeout --------------------------------- -=# CalliopEO #=- Unpacked /home/calliope/calliopEO/01.zip + - -programming: /home/calliope/calliopEO/run_20210224-221437/01.hex +programming: /home/calliope/calliopEO/run_20210818-160631/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:14:53; Will stop @ 2021/02/24-22:15:28 - + +Start @ 2021/08/18-16:06:47; Will stop @ 2021/08/18-16:07:22 + Sending @START@ - + Received @START@ -********************************** +********************************** Max script time achieved - + done -############################################################################################################ +############################################################################################################ -Check 1/6: Return code is 0 ... PASSED -Check 2/6: ZIP archive renamed to .done ... PASSED -Check 3/6: Folder run_* created ... PASSED -Check 4/6: Created two .data files ... PASSED -Check 5/6: Check .data file in ./run_20210224-221437 ... PASSED -Check 6/6: Transmission terminated in time ... PASSED -Testcase passed. +Check 1/6: Return code is 0 ... PASSED +Check 2/6: ZIP archive renamed to .done ... PASSED +Check 3/6: Folder run_* created ... PASSED +Check 4/6: Created two .data files ... PASSED +Check 5/6: Check .data file in ./run_20210818-160631 ... PASSED +Check 6/6: Transmission terminated in time ... PASSED +Testcase passed. --------------------------------- -Finished #8 ./testcases/07a_transm-timeout.sh +Finished #8 ./testcases/07a_transm-timeout.sh -Start #9 ./testcases/07b_transm-timeout.sh +Start #9 ./testcases/07b_transm-timeout.sh --------------------------------- Test: Continue with next hex after timeout ------------------------------------------ -=# CalliopEO #=- Unpacked /home/calliope/calliopEO/01.zip + - -programming: /home/calliope/calliopEO/run_20210224-221532/01.hex +programming: /home/calliope/calliopEO/run_20210818-160725/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:15:48; Will stop @ 2021/02/24-22:16:23 -Start @ 2021/02/24-22:15:48; Will stop @ 2021/02/24-22:16:23 - + +Start @ 2021/08/18-16:07:41; Will stop @ 2021/08/18-16:08:16 + Sending @START@ - + Received @START@ -********************************** +********************************** Max script time achieved - + done -############################################################################################################ +############################################################################################################ -programming: /home/calliope/calliopEO/run_20210224-221532/02.hex +programming: /home/calliope/calliopEO/run_20210818-160725/02.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:16:39; Will stop @ 2021/02/24-22:17:14 - + +Start @ 2021/08/18-16:08:33; Will stop @ 2021/08/18-16:09:08 + Sending @START@ - -Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -Check 1/5: Return code is 0 ... PASSED -Check 2/5: ZIP archive renamed to .done ... PASSED -Check 3/5: Folder run_* created ... PASSED -Check 4/5: Created two .data files ... PASSED -Check 5/5: Check .data file in ./run_20210224-221532 ... PASSED -Testcase passed. +Check 1/5: Return code is 0 ... PASSED +Check 2/5: ZIP archive renamed to .done ... PASSED +Check 3/5: Folder run_* created ... PASSED +Check 4/5: Created two .data files ... PASSED +Check 5/5: Check .data file in ./run_20210818-160725 ... PASSED +Testcase passed. --------------------------------- -Finished #9 ./testcases/07b_transm-timeout.sh +Finished #9 ./testcases/07b_transm-timeout.sh -Start #10 ./testcases/08a_data-limit.sh +Start #10 ./testcases/08a_data-limit.sh --------------------------------- Test: Handle data limit threshold --------------------------------- -=# CalliopEO #=- Unpacked /home/calliope/calliopEO/01.zip + - -programming: /home/calliope/calliopEO/run_20210224-221649/01.hex +programming: /home/calliope/calliopEO/run_20210818-160841/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:17:06; Will stop @ 2021/02/25-01:22:06 - + +Start @ 2021/08/18-16:08:57; Will stop @ 2021/08/18-19:13:57 + Sending @START@ - + Received @START@ -******************************************************************************************************************************************************************************************************************* +******************************************************************************************************************************************************************************************************************* Max file size achieved - + done -############################################################################################################ +############################################################################################################ -Check 1/6: Return code is 0 ... PASSED -Check 2/6: ZIP archive renamed to .done ... PASSED -Check 3/6: Folder run_* created ... PASSED -Check 4/6: Created two .data files ... PASSED -Check 5/6: MD5 checksum in folder ./run_20210224-221649 ... PASSED -Check 6/6: First .data meets the size threshold (8000 bytes) ... PASSED -Testcase passed. +Check 1/6: Return code is 0 ... PASSED +Check 2/6: ZIP archive renamed to .done ... PASSED +Check 3/6: Folder run_* created ... PASSED +Check 4/6: Created two .data files ... PASSED +Check 5/6: MD5 checksum in folder ./run_20210818-160841 ... PASSED +Check 6/6: First .data meets the size threshold (8000 bytes) ... PASSED +Testcase passed. --------------------------------- -Finished #10 ./testcases/08a_data-limit.sh +Finished #10 ./testcases/08a_data-limit.sh -Start #11 ./testcases/08b_data-limit.sh +Start #11 ./testcases/08b_data-limit.sh --------------------------------- Test: Handle data limit treshold -------------------------------- -=# CalliopEO #=- Unpacked /home/calliope/calliopEO/01.zip + - -programming: /home/calliope/calliopEO/run_20210224-221729/01.hex +programming: /home/calliope/calliopEO/run_20210818-160920/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:17:45; Will stop @ 2021/02/25-01:22:45 - + +Start @ 2021/08/18-16:09:37; Will stop @ 2021/08/18-19:14:37 + Sending @START@ - + Received @START@ -******************************************************************************************************************************************************************************************************************* +******************************************************************************************************************************************************************************************************************* Max file size achieved - + done -############################################################################################################ +############################################################################################################ -programming: /home/calliope/calliopEO/run_20210224-221729/02.hex +programming: /home/calliope/calliopEO/run_20210818-160920/02.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:18:22; Will stop @ 2021/02/25-01:23:22 - + +Start @ 2021/08/18-16:10:13; Will stop @ 2021/08/18-19:15:13 + Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -Check 1/6: Return code is 0 ... PASSED -Check 2/6: ZIP archive renamed to .done ... PASSED -Check 3/6: Folder run_* created ... PASSED -Check 4/6: Created two .data files ... PASSED -Check 5/6: MD5 checksum in folder ./run_20210224-221729 ... PASSED -Check 6/6: First .data meets the size threshold (8000 bytes) ... PASSED -Testcase passed. +Check 1/6: Return code is 0 ... PASSED +Check 2/6: ZIP archive renamed to .done ... PASSED +Check 3/6: Folder run_* created ... PASSED +Check 4/6: Created two .data files ... PASSED +Check 5/6: MD5 checksum in folder ./run_20210818-160920 ... PASSED +Check 6/6: First .data meets the size threshold (8000 bytes) ... PASSED +Testcase passed. --------------------------------- -Finished #11 ./testcases/08b_data-limit.sh +Finished #11 ./testcases/08b_data-limit.sh -Start #12 ./testcases/09a_transmission-no-start.sh +Start #12 ./testcases/09a_transmission-no-start.sh --------------------------------- Test: Hex File without sending @START@, but send other data. ------------------------------------------- -=# CalliopEO #=- Unpacked /home/calliope/calliopEO/01.zip + - -programming: /home/calliope/calliopEO/run_20210224-221830/01.hex +programming: /home/calliope/calliopEO/run_20210818-161021/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:18:47; Will stop @ 2021/02/25-01:23:47 - + +Start @ 2021/08/18-16:10:37; Will stop @ 2021/08/18-19:15:37 + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Something went wrong. Retrying flashing (2/3) -programming: /home/calliope/calliopEO/run_20210224-221830/01.hex +programming: /home/calliope/calliopEO/run_20210818-161021/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:19:13; Will stop @ 2021/02/25-01:24:13 - + +Start @ 2021/08/18-16:11:04; Will stop @ 2021/08/18-19:16:04 + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Something went wrong. Retrying flashing (3/3) -programming: /home/calliope/calliopEO/run_20210224-221830/01.hex +programming: /home/calliope/calliopEO/run_20210818-161021/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:19:39; Will stop @ 2021/02/25-01:24:39 - + +Start @ 2021/08/18-16:11:30; Will stop @ 2021/08/18-19:16:30 + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ -Check 1/5: Return code of script is 0 ... PASSED -Check 2/5: ZIP archive renamed to .done ... PASSED -Check 3/5: Folder run_* created ... PASSED -Check 4/5: MD5 checksum in folder ./run_20210224-221830 ... PASSED -Check 5/5: Created no .data files ... PASSED -Testcase passed. +Check 1/5: Return code of script is 0 ... PASSED +Check 2/5: ZIP archive renamed to .done ... PASSED +Check 3/5: Folder run_* created ... PASSED +Check 4/5: MD5 checksum in folder ./run_20210818-161021 ... PASSED +Check 5/5: Created no .data files ... PASSED +Testcase passed. --------------------------------- -Finished #12 ./testcases/09a_transmission-no-start.sh +Finished #12 ./testcases/09a_transmission-no-start.sh -Start #13 ./testcases/09b_transmission-no-start.sh +Start #13 ./testcases/09b_transmission-no-start.sh --------------------------------- Test: Hex File without sending @START@, but send other data. ------------------------------------------- -=# CalliopEO #=- Unpacked /home/calliope/calliopEO/01.zip + - -programming: /home/calliope/calliopEO/run_20210224-221952/01.hex +programming: /home/calliope/calliopEO/run_20210818-161143/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:20:08; Will stop @ 2021/02/25-01:25:08 - + +Start @ 2021/08/18-16:11:59; Will stop @ 2021/08/18-19:16:59 + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Something went wrong. Retrying flashing (2/3) -programming: /home/calliope/calliopEO/run_20210224-221952/01.hex +programming: /home/calliope/calliopEO/run_20210818-161143/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:20:35; Will stop @ 2021/02/25-01:25:35 - + +Start @ 2021/08/18-16:12:25; Will stop @ 2021/08/18-19:17:25 + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Something went wrong. Retrying flashing (3/3) -programming: /home/calliope/calliopEO/run_20210224-221952/01.hex +programming: /home/calliope/calliopEO/run_20210818-161143/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:21:01; Will stop @ 2021/02/25-01:26:01 - + +Start @ 2021/08/18-16:12:51; Will stop @ 2021/08/18-19:17:51 + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ - + Sending @START@ -programming: /home/calliope/calliopEO/run_20210224-221952/02.hex +programming: /home/calliope/calliopEO/run_20210818-161143/02.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:21:27; Will stop @ 2021/02/25-01:26:27 - + +Start @ 2021/08/18-16:13:17; Will stop @ 2021/08/18-19:18:17 + Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -Check 1/5: Return code of script is 0 ... PASSED -Check 2/5: ZIP archive renamed to .done ... PASSED -Check 3/5: Folder run_* created ... PASSED -Check 4/5: MD5 checksum in folder ./run_20210224-221952 ... PASSED -Check 5/5: Created one .data files ... PASSED -Testcase passed. +Check 1/5: Return code of script is 0 ... PASSED +Check 2/5: ZIP archive renamed to .done ... PASSED +Check 3/5: Folder run_* created ... PASSED +Check 4/5: MD5 checksum in folder ./run_20210818-161143 ... PASSED +Check 5/5: Created one .data files ... PASSED +Testcase passed. --------------------------------- -Finished #13 ./testcases/09b_transmission-no-start.sh +Finished #13 ./testcases/09b_transmission-no-start.sh -Start #14 ./testcases/10_multi.sh +Start #14 ./testcases/10_multi.sh --------------------------------- Test: Multi, provice two Zip containing three Hex ------------------------------------------- @@ -680,105 +674,106 @@ Test: Multi, provice two Zip containing three Hex -=# CalliopEO #=- Unpacked /home/calliope/calliopEO/01.zip Unpacked /home/calliope/calliopEO/02.zip + - -programming: /home/calliope/calliopEO/run_20210224-222136/01.hex +programming: /home/calliope/calliopEO/run_20210818-161326/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:21:52; Will stop @ 2021/02/25-01:26:52 - + +Start @ 2021/08/18-16:13:42; Will stop @ 2021/08/18-19:18:42 + Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -programming: /home/calliope/calliopEO/run_20210224-222136/02.hex +programming: /home/calliope/calliopEO/run_20210818-161326/02.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:22:14; Will stop @ 2021/02/25-01:27:14 - + +Start @ 2021/08/18-16:14:04; Will stop @ 2021/08/18-19:19:04 + Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -programming: /home/calliope/calliopEO/run_20210224-222136/03.hex +programming: /home/calliope/calliopEO/run_20210818-161326/03.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:22:36; Will stop @ 2021/02/25-01:27:36 - + +Start @ 2021/08/18-16:14:26; Will stop @ 2021/08/18-19:19:26 + Sending @START@ - + Received @START@ -****** +****** done -############################################################################################################ +############################################################################################################ -Check 1/5: Return code of script is 0 ... PASSED -Check 2/5: ZIP archive renamed to .done ... PASSED -Check 3/5: Folder run_* created ... PASSED -Check 4/5: Created three .data files ... PASSED -Check 5/5: MD5 checksum in folder ./run_20210224-222136 ... PASSED -Testcase passed. +Check 1/5: Return code of script is 0 ... PASSED +Check 2/5: ZIP archive renamed to .done ... PASSED +Check 3/5: Folder run_* created ... PASSED +Check 4/5: Created three .data files ... PASSED +Check 5/5: MD5 checksum in folder ./run_20210818-161326 ... PASSED +Testcase passed. --------------------------------- -Finished #14 ./testcases/10_multi.sh +Finished #14 ./testcases/10_multi.sh -Start #15 ./testcases/11_no-crlf.sh +Start #15 ./testcases/11_no-crlf.sh --------------------------------- Test: Handle data without newline --------------------------------- -=# CalliopEO #=- Unpacked /home/calliope/calliopEO/01.zip + - -programming: /home/calliope/calliopEO/run_20210224-222243/01.hex +programming: /home/calliope/calliopEO/run_20210818-161433/01.hex done open serial port -Calliope Mini found on /dev/ttyACM0 .......... +Calliope Mini found on /dev/ttyACM0 .......... done reading data - -Start @ 2021/02/24-22:22:59; Will stop @ 2021/02/25-01:27:59 - + +Start @ 2021/08/18-16:14:49; Will stop @ 2021/08/18-19:19:49 + Sending @START@ - + Received @START@ -********************* +********************* done -############################################################################################################ +############################################################################################################ -Check 1/6: Return code is 0 ... PASSED -Check 2/6: ZIP archive renamed to .done ... PASSED -Check 3/6: Folder run_* created ... PASSED -Check 4/6: Created .data files ... PASSED -Check 5/6: MD5 checksum in folder ./run_20210224-222243 ... PASSED -Testcase passed. +Check 1/6: Return code is 0 ... PASSED +Check 2/6: ZIP archive renamed to .done ... PASSED +Check 3/6: Folder run_* created ... PASSED +Check 4/6: Created .data files ... PASSED +Check 5/6: MD5 checksum in folder ./run_20210818-161433 ... PASSED +Testcase passed. --------------------------------- -Finished #15 ./testcases/11_no-crlf.sh - +Finished #15 ./testcases/11_no-crlf.sh + - Test ended: Wed 24 Feb 22:23:12 UTC 2021 + Test ended: Wed 18 Aug 16:15:01 UTC 2021 15 FINISHED 15 PASSED 0 NOT PASSED + From 55e6b8c789a3b660979d4dd0d268bd1e08646be4 Mon Sep 17 00:00:00 2001 From: Amerlander Date: Wed, 18 Aug 2021 23:30:17 +0200 Subject: [PATCH 15/15] Update Changelog for 1.2.0 --- CHANGELOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8287c0b..6160ad9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Tracking changes in master *none yet* +## 1.2.0 + +**New** +- Checking now for necessary programs `lsblk`, `md5sum`, `sum` and `pip3` at installation +- add check for programs `lsblk`, `md5sum`, `sum` and `pip3` to `testcase 01` +- Exit setup.sh if login shell is provided on serial port (issue #86) + +**Updates** + +- Update testresults + +**Fixes** +- replaced `Raspberry Pi` references by `Astro Pi` +- replaced `CalliopEO` by `Calliope mini` in readme +- Removed wheel for argparse because it is already installed on AstroPi-IR (issue #87) +- Correct syntax for running `./CalliopEO.py` +- removed root user refference in Readme ## [1.1.1](https://github.com/calliope-edu/CalliopEO_AstroPi/releases/tag/v1.1.1)