| #!/bin/bash | |
| set -e | |
| cat >tmppt.json << EOL | |
| { | |
| "version": [1, 0], | |
| "unpartitioned": { | |
| "families": ["absolute"], | |
| "permissions": { | |
| "secure": "rw", | |
| "nonsecure": "rw", | |
| "bootloader": "rw" | |
| } | |
| }, | |
| "partitions": [ | |
| { | |
| "name": "Filesystem", | |
| "id": "0x626C6F636B646576", | |
| "size": "100K", | |
| "families": [], | |
| "permissions": { | |
| "secure": "rw", | |
| "nonsecure": "rw", | |
| "bootloader": "rw" | |
| } | |
| } | |
| ] | |
| } | |
| EOL | |
| picotool erase || true | |
| picotool reboot | |
| while ! picotool info; do sleep 1; done | |
| picotool partition create tmppt.json tmppt.bin | |
| picotool load -x tmppt.bin | |
| while ! picotool info; do sleep 1; done | |
| declare -a filesystems=("littlefs" "fatfs") | |
| for filesystem in "${filesystems[@]}" | |
| do | |
| picotool bdev format --filesystem $filesystem | |
| echo "this is file 1" > tmpfile1.txt | |
| echo "this is file 2" > tmpfile2.txt | |
| picotool bdev cp tmpfile1.txt :/ | |
| picotool bdev cp tmpfile2.txt :/ | |
| picotool bdev ls | grep "tmpfile2.txt" | |
| picotool bdev rm tmpfile2.txt | |
| if picotool bdev ls | grep "tmpfile2.txt"; then | |
| echo "Error: tmpfile2.txt was not deleted" | |
| exit 1 | |
| fi | |
| picotool bdev cat tmpfile1.txt | |
| picotool bdev cat tmpfile1.txt > tmpfile1.txt.device | |
| if ! cmp -s tmpfile1.txt tmpfile1.txt.device; then | |
| echo "Error: tmpfile1.txt content has changed" | |
| exit 1 | |
| fi | |
| echo "this is new file 2" > tmpfile2.txt | |
| picotool bdev cp tmpfile2.txt :/ | |
| picotool bdev cat tmpfile2.txt | |
| picotool bdev cat tmpfile2.txt > tmpfile2.txt.device | |
| if ! cmp -s tmpfile2.txt tmpfile2.txt.device; then | |
| echo "Error: tmpfile2.txt content has changed" | |
| exit 1 | |
| fi | |
| done | |
| rm tmpfile1.txt | |
| rm tmpfile1.txt.device | |
| rm tmpfile2.txt | |
| rm tmpfile2.txt.device | |
| rm tmppt.json | |
| rm tmppt.bin |