This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
roh gerrit-no-reply at lists.osmocom.orgroh has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/25967 )
Change subject: add initial testing scripts for a hw-driven ci - flash every image and test
......................................................................
add initial testing scripts for a hw-driven ci - flash every image and test
Change-Id: I88bc32334f23e6fd702e0cbcb1b1510029909b20
---
A tests/README
A tests/run-tests
A tests/simtrace2/01_check_rig.out
A tests/simtrace2/01_check_rig.sh
A tests/simtrace2/02_erase_board.out
A tests/simtrace2/02_erase_board.sh
A tests/simtrace2/03_flash_bl_bossac.out
A tests/simtrace2/03_flash_bl_bossac.sh
A tests/simtrace2/04_flash_dfu.out
A tests/simtrace2/04_flash_dfu.sh
A tests/simtrace2/05_check_lsusb.out
A tests/simtrace2/05_check_lsusb.sh
A tests/simtrace2/06_check_dfu_lsusb.out
A tests/simtrace2/06_check_dfu_lsusb.sh
A tests/simtrace2/07_flash_dfu_from_app.out
A tests/simtrace2/07_flash_dfu_from_app.sh
A tests/simtrace2/08_test_simtrace.out
A tests/simtrace2/08_test_simtrace.sh
A tests/simtrace2/README
A tests/simtrace2/TODO
A tests/simtrace2/ctl_erase_target.sh
A tests/simtrace2/ctl_get_relay_sn.sh
A tests/simtrace2/ctl_reset_target.sh
A tests/simtrace2/ctl_reset_to_dfu.sh
A tests/simtrace2/fetch_image.sh
A tests/simtrace2/flash_simtrace_bossac.sh
A tests/simtrace2/flash_simtrace_dfu.sh
A tests/simtrace2/get_installed_version.sh
A tests/simtrace2/notes_relay_board.txt
A tests/simtrace2/notes_wiring.txt
A tests/simtrace2/prepare
A tests/simtrace2/regen
A tests/simtrace2/run-tests
A tests/simtrace2/test-data
34 files changed, 879 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/67/25967/1
diff --git a/tests/README b/tests/README
new file mode 100644
index 0000000..3c10c7f
--- /dev/null
+++ b/tests/README
@@ -0,0 +1,9 @@
+simtrace2-firmware
+==================
+
+this testbed is the hardware-CI interface to make sure the firmware built is also working when flashed onto hardware.
+
+to run it you will need a usb controlled relay board and a simtrace board, a simcard and a pcsc compatible cardreader. a hub is recommended to only need one instead of 3 upstream ports.
+
+the simtrace is modified to allow for switchable vcc, remote buttons and jumpers - vcc, bootloader, reset, erase-jumper which are wired to 4 relays.
+
diff --git a/tests/run-tests b/tests/run-tests
new file mode 100755
index 0000000..6bb5f63
--- /dev/null
+++ b/tests/run-tests
@@ -0,0 +1,14 @@
+#!/bin/sh -e
+echo "=========================================================="
+echo " EXECUTING TESTS FOR SIMTRACE-FIRMWARE"
+echo "=========================================================="
+echo ""
+cd ./simtrace2
+echo "Location $PWD"
+echo ""
+sh ./run-tests
+cd ..
+echo ""
+echo ""
+echo ""
+echo ""
diff --git a/tests/simtrace2/01_check_rig.out b/tests/simtrace2/01_check_rig.out
new file mode 100644
index 0000000..4a6e0f1
--- /dev/null
+++ b/tests/simtrace2/01_check_rig.out
@@ -0,0 +1,240 @@
+relay box
+
+ID 04d8:ffee Microchip Technology, Inc. Devantech USB-ISS
+Device Descriptor:
+ bLength 18
+ bDescriptorType 1
+ bcdUSB 2.00
+ bDeviceClass 2 Communications
+ bDeviceSubClass 0
+ bDeviceProtocol 0
+ bMaxPacketSize0 8
+ idVendor 0x04d8 Microchip Technology, Inc.
+ idProduct 0xffee Devantech USB-ISS
+ bcdDevice 1.00
+ iManufacturer 1
+ iProduct 2
+ iSerial 3
+ bNumConfigurations 1
+ Configuration Descriptor:
+ bLength 9
+ bDescriptorType 2
+ wTotalLength 67
+ bNumInterfaces 2
+ bConfigurationValue 1
+ iConfiguration 0
+ bmAttributes 0xc0
+ Self Powered
+ MaxPower 100mA
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 0
+ bAlternateSetting 0
+ bNumEndpoints 1
+ bInterfaceClass 2 Communications
+ bInterfaceSubClass 2 Abstract (modem)
+ bInterfaceProtocol 1 AT-commands (v.25ter)
+ iInterface 0
+ CDC Header:
+ bcdCDC 1.10
+ CDC ACM:
+ bmCapabilities 0x02
+ line coding and serial state
+ CDC Union:
+ bMasterInterface 0
+ bSlaveInterface 1
+ CDC Call Management:
+ bmCapabilities 0x00
+ bDataInterface 1
+ Endpoint Descriptor:
+ bLength 7
+ bDescriptorType 5
+ bEndpointAddress 0x81 EP 1 IN
+ bmAttributes 3
+ Transfer Type Interrupt
+ Synch Type None
+ Usage Type Data
+ wMaxPacketSize 0x0008 1x 8 bytes
+ bInterval 2
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 1
+ bAlternateSetting 0
+ bNumEndpoints 2
+ bInterfaceClass 10 CDC Data
+ bInterfaceSubClass 0 Unused
+ bInterfaceProtocol 0
+ iInterface 0
+ Endpoint Descriptor:
+ bLength 7
+ bDescriptorType 5
+ bEndpointAddress 0x02 EP 2 OUT
+ bmAttributes 2
+ Transfer Type Bulk
+ Synch Type None
+ Usage Type Data
+ wMaxPacketSize 0x0040 1x 64 bytes
+ bInterval 0
+ Endpoint Descriptor:
+ bLength 7
+ bDescriptorType 5
+ bEndpointAddress 0x82 EP 2 IN
+ bmAttributes 2
+ Transfer Type Bulk
+ Synch Type None
+ Usage Type Data
+ wMaxPacketSize 0x0040 1x 64 bytes
+ bInterval 0
+
+ccid reader
+
+ID 076b:6632 OmniKey AG
+Device Descriptor:
+ bLength 18
+ bDescriptorType 1
+ bcdUSB 2.00
+ bDeviceClass 0 (Defined at Interface level)
+ bDeviceSubClass 0
+ bDeviceProtocol 0
+ bMaxPacketSize0 8
+ idVendor 0x076b OmniKey AG
+ idProduct 0x6632
+ bcdDevice 1.03
+ iManufacturer 1
+ iProduct 2
+ iSerial 0
+ bNumConfigurations 1
+ Configuration Descriptor:
+ bLength 9
+ bDescriptorType 2
+ wTotalLength 93
+ bNumInterfaces 1
+ bConfigurationValue 1
+ iConfiguration 0
+ bmAttributes 0xa0
+ (Bus Powered)
+ Remote Wakeup
+ MaxPower 100mA
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 0
+ bAlternateSetting 0
+ bNumEndpoints 3
+ bInterfaceClass 11 Chip/SmartCard
+ bInterfaceSubClass 0
+ bInterfaceProtocol 0
+ iInterface 2
+ ChipCard Interface Descriptor:
+ bLength 54
+ bDescriptorType 33
+ bcdCCID 1.10 (Warning: Only accurate for version 1.0)
+ nMaxSlotIndex 0
+ bVoltageSupport 7 5.0V 3.0V 1.8V
+ dwProtocols 3 T=0 T=1
+ dwDefaultClock 4800
+ dwMaxiumumClock 8000
+ bNumClockSupported 4
+ dwDataRate 10752 bps
+ dwMaxDataRate 412903 bps
+ bNumDataRatesSupp. 96
+ dwMaxIFSD 254
+ dwSyncProtocols 00000007 2-wire 3-wire I2C
+ dwMechanical 00000000
+ dwFeatures 000407B8
+ Auto voltage selection
+ Auto clock change
+ Auto baud rate change
+ Auto PPS made by CCID
+ CCID can set ICC in clock stop mode
+ NAD value other than 0x00 accepted
+ Auto IFSD exchange
+ Short and extended APDU level exchange
+ dwMaxCCIDMsgLen 271
+ bClassGetResponse echo
+ bClassEnvelope echo
+ wlcdLayout none
+ bPINSupport 3 verification modification
+ bMaxCCIDBusySlots 1
+ Endpoint Descriptor:
+ bLength 7
+ bDescriptorType 5
+ bEndpointAddress 0x02 EP 2 OUT
+ bmAttributes 2
+ Transfer Type Bulk
+ Synch Type None
+ Usage Type Data
+ wMaxPacketSize 0x0040 1x 64 bytes
+ bInterval 0
+ Endpoint Descriptor:
+ bLength 7
+ bDescriptorType 5
+ bEndpointAddress 0x83 EP 3 IN
+ bmAttributes 2
+ Transfer Type Bulk
+ Synch Type None
+ Usage Type Data
+ wMaxPacketSize 0x0040 1x 64 bytes
+ bInterval 0
+ Endpoint Descriptor:
+ bLength 7
+ bDescriptorType 5
+ bEndpointAddress 0x84 EP 4 IN
+ bmAttributes 3
+ Transfer Type Interrupt
+ Synch Type None
+ Usage Type Data
+ wMaxPacketSize 0x0008 1x 8 bytes
+ bInterval 24
+
+usb hub
+
+ID 05e3:0608 Genesys Logic, Inc. Hub
+Device Descriptor:
+ bLength 18
+ bDescriptorType 1
+ bcdUSB 2.00
+ bDeviceClass 9 Hub
+ bDeviceSubClass 0 Unused
+ bDeviceProtocol 1 Single TT
+ bMaxPacketSize0 64
+ idVendor 0x05e3 Genesys Logic, Inc.
+ idProduct 0x0608 Hub
+ bcdDevice 7.02
+ iManufacturer 0
+ iProduct 1
+ iSerial 0
+ bNumConfigurations 1
+ Configuration Descriptor:
+ bLength 9
+ bDescriptorType 2
+ wTotalLength 25
+ bNumInterfaces 1
+ bConfigurationValue 1
+ iConfiguration 0
+ bmAttributes 0xe0
+ Self Powered
+ Remote Wakeup
+ MaxPower 100mA
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 0
+ bAlternateSetting 0
+ bNumEndpoints 1
+ bInterfaceClass 9 Hub
+ bInterfaceSubClass 0 Unused
+ bInterfaceProtocol 0 Full speed (or root) hub
+ iInterface 0
+ Endpoint Descriptor:
+ bLength 7
+ bDescriptorType 5
+ bEndpointAddress 0x81 EP 1 IN
+ bmAttributes 3
+ Transfer Type Interrupt
+ Synch Type None
+ Usage Type Data
+ wMaxPacketSize 0x0001 1x 1 bytes
+ bInterval 12
diff --git a/tests/simtrace2/01_check_rig.sh b/tests/simtrace2/01_check_rig.sh
new file mode 100755
index 0000000..7592a77
--- /dev/null
+++ b/tests/simtrace2/01_check_rig.sh
@@ -0,0 +1,12 @@
+#!/bin/sh -e
+. ./test-data
+
+echo relay box
+lsusb -d $USBD_RELAY -v 2>/dev/null | sed -e "s/$Bus.*Device.*:\ ID/ID/g"
+echo
+echo ccid reader
+lsusb -d $USBD_CCID -v 2>/dev/null | sed -e "s/$Bus.*Device.*:\ ID/ID/g"
+echo
+echo usb hub
+lsusb -d $USBD_HUB -v 2>/dev/null | sed -e "s/$Bus.*Device.*:\ ID/ID/g"
+
diff --git a/tests/simtrace2/02_erase_board.out b/tests/simtrace2/02_erase_board.out
new file mode 100644
index 0000000..1d258ce
--- /dev/null
+++ b/tests/simtrace2/02_erase_board.out
@@ -0,0 +1,2 @@
+erasing target
+done
diff --git a/tests/simtrace2/02_erase_board.sh b/tests/simtrace2/02_erase_board.sh
new file mode 100755
index 0000000..9da0356
--- /dev/null
+++ b/tests/simtrace2/02_erase_board.sh
@@ -0,0 +1,4 @@
+#!/bin/sh -e
+. ./test-data
+
+./ctl_erase_target.sh
diff --git a/tests/simtrace2/03_flash_bl_bossac.out b/tests/simtrace2/03_flash_bl_bossac.out
new file mode 100644
index 0000000..e446885
--- /dev/null
+++ b/tests/simtrace2/03_flash_bl_bossac.out
@@ -0,0 +1,11 @@
+Erase flash
+
+Done in 0.009 seconds
+Write 13488 bytes to flash (53 pages)
+
[ ] 0% (0/53 pages)
[= ] 3% (2/53 pages)
[= ] 5% (3/53 pages)
[== ] 7% (4/53 pages)
[== ] 9% (5/53 pages)
[=== ] 11% (6/53 pages)
[=== ] 13% (7/53 pages)
[==== ] 15% (8/53 pages)
[===== ] 16% (9/53 pages)
[===== ] 18% (10/53 pages)
[====== ] 20% (11/53 pages)
[====== ] 22% (12/53 pages)
[======= ] 24% (13/53 pages)
[======= ] 26% (14/53 pages)
[======== ] 28% (15/53 pages)
[========= ] 30% (16/53 pages)
[========= ] 32% (17/53 pages)
[========== ] 33% (18/53 pages)
[========== ] 35% (19/53 pages)
[=========== ] 37% (20/53 pages)
[=========== ] 39% (21/53 pages)
[============ ] 41% (22/53 pages)
[============= ] 43% (23/53 pages)
[============= ] 45% (24/53 pages)
[============== ] 47% (25/53 pages)
[============== ] 49% (26/53 pages)
[=============== ] 50% (27/53 pages)
[=============== ] 52% (28/53 pages)
[================ ] 54% (29/53 pages)
[================ ] 56% (30/53 pages)
[================= ] 58% (31/53 pages)
[================== ] 60% (32/53 pages)
[================== ] 62% (33/53 pages)
[=================== ] 64% (34/53 pages)
[=================== ] 66% (35/53 pages)
[==================== ] 67% (36/53 pages)
[==================== ] 69% (37/53 pages)
[===================== ] 71% (38/53 pages)
[====================== ] 73% (39/53 pages)
[====================== ] 75% (40/53 pages)
[======================= ] 77% (41/53 pages)
[======================= ] 79% (42/53 pages)
[======================== ] 81% (43/53 pages)
[======================== ] 83% (44/53 pages)
[========================= ] 84% (45/53 pages)
[========================== ] 86% (46/53 pages)
[========================== ] 88% (47/53 pages)
[=========================== ] 90% (48/53 pages)
[=========================== ] 92% (49/53 pages)
[============================ ] 94% (50/53 pages)
[============================ ] 96% (51/53 pages)
[============================= ] 98% (52/53 pages)
[==============================] 100% (53/53 pages)
+Done in 0.378 seconds
+Verify 13488 bytes of flash
+
[= ] 3% (2/53 pages)
[= ] 5% (3/53 pages)
[== ] 7% (4/53 pages)
[== ] 9% (5/53 pages)
[=== ] 11% (6/53 pages)
[=== ] 13% (7/53 pages)
[==== ] 15% (8/53 pages)
[===== ] 16% (9/53 pages)
[===== ] 18% (10/53 pages)
[====== ] 20% (11/53 pages)
[====== ] 22% (12/53 pages)
[======= ] 24% (13/53 pages)
[======= ] 26% (14/53 pages)
[======== ] 28% (15/53 pages)
[========= ] 30% (16/53 pages)
[========= ] 32% (17/53 pages)
[========== ] 33% (18/53 pages)
[========== ] 35% (19/53 pages)
[=========== ] 37% (20/53 pages)
[=========== ] 39% (21/53 pages)
[============ ] 41% (22/53 pages)
[============= ] 43% (23/53 pages)
[============= ] 45% (24/53 pages)
[============== ] 47% (25/53 pages)
[============== ] 49% (26/53 pages)
[=============== ] 50% (27/53 pages)
[=============== ] 52% (28/53 pages)
[================ ] 54% (29/53 pages)
[================ ] 56% (30/53 pages)
[================= ] 58% (31/53 pages)
[================== ] 60% (32/53 pages)
[================== ] 62% (33/53 pages)
[=================== ] 64% (34/53 pages)
[=================== ] 66% (35/53 pages)
[==================== ] 67% (36/53 pages)
[==================== ] 69% (37/53 pages)
[===================== ] 71% (38/53 pages)
[====================== ] 73% (39/53 pages)
[====================== ] 75% (40/53 pages)
[======================= ] 77% (41/53 pages)
[======================= ] 79% (42/53 pages)
[======================== ] 81% (43/53 pages)
[======================== ] 83% (44/53 pages)
[========================= ] 84% (45/53 pages)
[========================== ] 86% (46/53 pages)
[========================== ] 88% (47/53 pages)
[=========================== ] 90% (48/53 pages)
[=========================== ] 92% (49/53 pages)
[============================ ] 94% (50/53 pages)
[============================ ] 96% (51/53 pages)
[============================= ] 98% (52/53 pages)
[==============================] 100% (53/53 pages)
+Verify successful
+Done in 0.297 seconds
+Set boot flash true
diff --git a/tests/simtrace2/03_flash_bl_bossac.sh b/tests/simtrace2/03_flash_bl_bossac.sh
new file mode 100755
index 0000000..1a53763
--- /dev/null
+++ b/tests/simtrace2/03_flash_bl_bossac.sh
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+. ./test-data
+
+./flash_simtrace_bossac.sh
+sleep 1
diff --git a/tests/simtrace2/04_flash_dfu.out b/tests/simtrace2/04_flash_dfu.out
new file mode 100644
index 0000000..2f7712d
--- /dev/null
+++ b/tests/simtrace2/04_flash_dfu.out
@@ -0,0 +1,25 @@
+installed fw version: resetting target to dfu
+done
+dfu-util 0.9
+
+Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
+Copyright 2010-2016 Tormod Volden and Stefan Schmidt
+This program is Free Software and has ABSOLUTELY NO WARRANTY
+Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
+
+Opening DFU capable USB device...
+ID 1d50:60e3
+Run-time device DFU version 0100
+Claiming USB DFU Interface...
+Setting Alternate Setting #1 ...
+Determining device status: state = dfuIDLE, status = 0
+dfuIDLE, continuing
+DFU mode device DFU version 0100
+Device returned transfer size 512
+Copying data from PC to DFU device
+Download done.
+state(7) = dfuMANIFEST, status(0) = No error condition is present
+state(2) = dfuIDLE, status(0) = No error condition is present
+Done!
+Resetting USB to switch back to runtime mode
+installed fw version: 0.7.0.158-020ed
diff --git a/tests/simtrace2/04_flash_dfu.sh b/tests/simtrace2/04_flash_dfu.sh
new file mode 100755
index 0000000..f9d6f3a
--- /dev/null
+++ b/tests/simtrace2/04_flash_dfu.sh
@@ -0,0 +1,8 @@
+#!/bin/sh -e
+. ./test-data
+
+./get_installed_version.sh
+./ctl_reset_to_dfu.sh
+./flash_simtrace_dfu.sh
+sleep 1
+./get_installed_version.sh
diff --git a/tests/simtrace2/05_check_lsusb.out b/tests/simtrace2/05_check_lsusb.out
new file mode 100644
index 0000000..a59be4b
--- /dev/null
+++ b/tests/simtrace2/05_check_lsusb.out
@@ -0,0 +1,110 @@
+
+ID 1d50:60e3 OpenMoko, Inc. Osmocom SIMtrace 2
+Device Descriptor:
+ bLength 18
+ bDescriptorType 1
+ bcdUSB 2.00
+ bDeviceClass 0 (Defined at Interface level)
+ bDeviceSubClass 0
+ bDeviceProtocol 0
+ bMaxPacketSize0 64
+ idVendor 0x1d50 OpenMoko, Inc.
+ idProduct 0x60e3 Osmocom SIMtrace 2
+ bcdDevice 0.02
+ iManufacturer 1 sysmocom - s.f.m.c. GmbH
+ iProduct 2 SIMtrace 2
+ iSerial 11 51203220574a4a523030362030323037
+ bNumConfigurations 2
+ Configuration Descriptor:
+ bLength 9
+ bDescriptorType 2
+ wTotalLength 57
+ bNumInterfaces 2
+ bConfigurationValue 1
+ iConfiguration 3 SIMtrace Sniffer
+ bmAttributes 0x80
+ (Bus Powered)
+ MaxPower 100mA
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 0
+ bAlternateSetting 0
+ bNumEndpoints 3
+ bInterfaceClass 255 Vendor Specific Class
+ bInterfaceSubClass 1
+ bInterfaceProtocol 0
+ iInterface 3 SIMtrace Sniffer
+ Endpoint Descriptor:
+ bLength 7
+ bDescriptorType 5
+ bEndpointAddress 0x01 EP 1 OUT
+ bmAttributes 2
+ Transfer Type Bulk
+ Synch Type None
+ Usage Type Data
+ wMaxPacketSize 0x0040 1x 64 bytes
+ bInterval 0
+ Endpoint Descriptor:
+ bLength 7
+ bDescriptorType 5
+ bEndpointAddress 0x82 EP 2 IN
+ bmAttributes 2
+ Transfer Type Bulk
+ Synch Type None
+ Usage Type Data
+ wMaxPacketSize 0x0040 1x 64 bytes
+ bInterval 0
+ Endpoint Descriptor:
+ bLength 7
+ bDescriptorType 5
+ bEndpointAddress 0x83 EP 3 IN
+ bmAttributes 3
+ Transfer Type Interrupt
+ Synch Type None
+ Usage Type Data
+ wMaxPacketSize 0x0040 1x 64 bytes
+ bInterval 16
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 1
+ bAlternateSetting 0
+ bNumEndpoints 0
+ bInterfaceClass 254 Application Specific Interface
+ bInterfaceSubClass 1 Device Firmware Update
+ bInterfaceProtocol 1
+ iInterface 0
+ Device Firmware Upgrade Interface Descriptor:
+ bLength 9
+ bDescriptorType 33
+ bmAttributes 11
+ Will Detach
+ Manifestation Intolerant
+ Upload Supported
+ Download Supported
+ wDetachTimeout 0 milliseconds
+ wTransferSize 512 bytes
+ bcdDFUVersion 1.00
+ Configuration Descriptor:
+ bLength 9
+ bDescriptorType 2
+ wTotalLength 18
+ bNumInterfaces 1
+ bConfigurationValue 2
+ iConfiguration 12 firmware version
+ bmAttributes 0x80
+ (Bus Powered)
+ MaxPower 100mA
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 0
+ bAlternateSetting 0
+ bNumEndpoints 0
+ bInterfaceClass 255 Vendor Specific Class
+ bInterfaceSubClass 255 Vendor Specific Subclass
+ bInterfaceProtocol 0
+ iInterface 13 0.7.0.158-020ed
+Device Status: 0x0000
+ (Bus Powered)
diff --git a/tests/simtrace2/05_check_lsusb.sh b/tests/simtrace2/05_check_lsusb.sh
new file mode 100755
index 0000000..3facf79
--- /dev/null
+++ b/tests/simtrace2/05_check_lsusb.sh
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+. ./test-data
+
+lsusb -d $USBD_TARGET -v 2>/dev/null | sed -e "s/$Bus.*Device.*:\ ID/ID/g"
+#|sed -e "s/^.*iProduct.*2.*sysmoOCTSIM.*$/ iProduct 2 sysmoOCTSIM/g"
diff --git a/tests/simtrace2/06_check_dfu_lsusb.out b/tests/simtrace2/06_check_dfu_lsusb.out
new file mode 100644
index 0000000..755cad7
--- /dev/null
+++ b/tests/simtrace2/06_check_dfu_lsusb.out
@@ -0,0 +1,94 @@
+resetting target to dfu
+done
+
+ID 1d50:60e3 OpenMoko, Inc. Osmocom SIMtrace 2
+Device Descriptor:
+ bLength 18
+ bDescriptorType 1
+ bcdUSB 2.00
+ bDeviceClass 0 (Defined at Interface level)
+ bDeviceSubClass 0
+ bDeviceProtocol 0
+ bMaxPacketSize0 64
+ idVendor 0x1d50 OpenMoko, Inc.
+ idProduct 0x60e3 Osmocom SIMtrace 2
+ bcdDevice 0.00
+ iManufacturer 1 sysmocom - s.f.m.c. GmbH
+ iProduct 2 SIMtrace 2
+ iSerial 7 51203220574a4a523030362030323037
+ bNumConfigurations 2
+ Configuration Descriptor:
+ bLength 9
+ bDescriptorType 2
+ wTotalLength 45
+ bNumInterfaces 1
+ bConfigurationValue 1
+ iConfiguration 3 DFU (Device Firmware Upgrade)
+ bmAttributes 0x80
+ (Bus Powered)
+ MaxPower 200mA
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 0
+ bAlternateSetting 0
+ bNumEndpoints 0
+ bInterfaceClass 254 Application Specific Interface
+ bInterfaceSubClass 1 Device Firmware Update
+ bInterfaceProtocol 2
+ iInterface 4 RAM
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 0
+ bAlternateSetting 1
+ bNumEndpoints 0
+ bInterfaceClass 254 Application Specific Interface
+ bInterfaceSubClass 1 Device Firmware Update
+ bInterfaceProtocol 2
+ iInterface 5 Flash (Application Partition)
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 0
+ bAlternateSetting 2
+ bNumEndpoints 0
+ bInterfaceClass 254 Application Specific Interface
+ bInterfaceSubClass 1 Device Firmware Update
+ bInterfaceProtocol 2
+ iInterface 6 not available
+ Device Firmware Upgrade Interface Descriptor:
+ bLength 9
+ bDescriptorType 33
+ bmAttributes 11
+ Will Detach
+ Manifestation Intolerant
+ Upload Supported
+ Download Supported
+ wDetachTimeout 0 milliseconds
+ wTransferSize 512 bytes
+ bcdDFUVersion 1.00
+ Configuration Descriptor:
+ bLength 9
+ bDescriptorType 2
+ wTotalLength 18
+ bNumInterfaces 1
+ bConfigurationValue 2
+ iConfiguration 8 firmware version
+ bmAttributes 0x80
+ (Bus Powered)
+ MaxPower 100mA
+ Interface Descriptor:
+ bLength 9
+ bDescriptorType 4
+ bInterfaceNumber 0
+ bAlternateSetting 0
+ bNumEndpoints 0
+ bInterfaceClass 255 Vendor Specific Class
+ bInterfaceSubClass 255 Vendor Specific Subclass
+ bInterfaceProtocol 0
+ iInterface 9 0.7.0.158-020ed
+Device Status: 0x0000
+ (Bus Powered)
+resetting target
+done
diff --git a/tests/simtrace2/06_check_dfu_lsusb.sh b/tests/simtrace2/06_check_dfu_lsusb.sh
new file mode 100755
index 0000000..fda72c4
--- /dev/null
+++ b/tests/simtrace2/06_check_dfu_lsusb.sh
@@ -0,0 +1,6 @@
+#!/bin/sh -e
+. ./test-data
+
+./ctl_reset_to_dfu.sh
+lsusb -d $USBD_TARGET -v 2>/dev/null | sed -e "s/$Bus.*Device.*:\ ID/ID/g"
+./ctl_reset_target.sh
diff --git a/tests/simtrace2/07_flash_dfu_from_app.out b/tests/simtrace2/07_flash_dfu_from_app.out
new file mode 100644
index 0000000..82a156f
--- /dev/null
+++ b/tests/simtrace2/07_flash_dfu_from_app.out
@@ -0,0 +1,31 @@
+installed fw version: 0.7.0.158-020ed
+resetting target
+done
+dfu-util 0.9
+
+Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
+Copyright 2010-2016 Tormod Volden and Stefan Schmidt
+This program is Free Software and has ABSOLUTELY NO WARRANTY
+Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
+
+Opening DFU capable USB device...
+ID 1d50:60e3
+Run-time device DFU version 0100
+Claiming USB DFU Runtime Interface...
+Determining device status: state = appIDLE, status = 0
+Device really in Runtime Mode, send DFU detach request...
+Device will detach and reattach...
+Opening DFU USB Device...
+Claiming USB DFU Interface...
+Setting Alternate Setting #1 ...
+Determining device status: state = dfuIDLE, status = 0
+dfuIDLE, continuing
+DFU mode device DFU version 0100
+Device returned transfer size 512
+Copying data from PC to DFU device
+Download done.
+state(7) = dfuMANIFEST, status(0) = No error condition is present
+state(2) = dfuIDLE, status(0) = No error condition is present
+Done!
+Resetting USB to switch back to runtime mode
+installed fw version: 0.7.0.158-020ed
diff --git a/tests/simtrace2/07_flash_dfu_from_app.sh b/tests/simtrace2/07_flash_dfu_from_app.sh
new file mode 100755
index 0000000..3f9d770
--- /dev/null
+++ b/tests/simtrace2/07_flash_dfu_from_app.sh
@@ -0,0 +1,8 @@
+#!/bin/sh -e
+. ./test-data
+
+./get_installed_version.sh
+./ctl_reset_target.sh
+./flash_simtrace_dfu.sh
+sleep 1
+./get_installed_version.sh
diff --git a/tests/simtrace2/08_test_simtrace.out b/tests/simtrace2/08_test_simtrace.out
new file mode 100644
index 0000000..5ef2c84
--- /dev/null
+++ b/tests/simtrace2/08_test_simtrace.out
@@ -0,0 +1,35 @@
+resetting target
+done
+installed fw version: 0.7.0.158-020ed
+
+simtrace2-list
+USB matches: 2
+ 1d50:60e3 Addr=125, Path=2-1.2.3, Cfg=1, Intf=0, Alt=0: 255/1/0 (SIMtrace Sniffer)
+ 1d50:60e3 Addr=125, Path=2-1.2.3, Cfg=2, Intf=0, Alt=0: 255/255/0 (0.7.0.158-020ed)
+
+start simtrace2-sniff
+
+start pcsc_scan -n
+stop pcsc_scan
+PCSC PC/SC device scanner
+PCSC V 1.4.27 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau at free.fr>
+PCSC Compiled with PC/SC lite version: 1.8.17
+PCSC Using reader plug'n play mechanism
+PCSC Scanning present readers...
+PCSC 0: HID Global OMNIKEY 6121 Smart Card Reader [OMNIKEY 6121 Smart Card Reader] 00 00
+PCSC
+PCSC Tue Oct 26 20:30:03 2021
+PCSC Reader 0: HID Global OMNIKEY 6121 Smart Card Reader [OMNIKEY 6121 Smart Card Reader] 00 00
+PCSC Card state: Card inserted,
+PCSC ATR: 3B 9F 96 80 1F C7 80 31 A0 73 BE 21 13 67 43 20 07 18 00 00 01 A5
+PCSC SCardGetStatusChange: RPC transport error.
+stop simtrace2-sniff
+ST2 simtrace2-sniff - Phone-SIM card communication sniffer
+ST2 (C) 2010-2017 by Harald Welte <laforge at gnumonks.org>
+ST2 (C) 2018 by Kevin Redon <kredon at sysmocom.de>
+ST2
+ST2 Using USB device 1d50:60e3 Addr=125, Path=2-1.2.3, Cfg=1, Intf=0, Alt=0: 255/1/0 (SIMtrace Sniffer)
+ST2 Entering main loop
+ST2 Card state change: reset de-asserted
+ST2 ATR: 3b 9f 96 80 1f c7 80 31 a0 73 be 21 13 67 43 20 07 18 00 00 01 a5
+ST2 Card state change: reset asserted
diff --git a/tests/simtrace2/08_test_simtrace.sh b/tests/simtrace2/08_test_simtrace.sh
new file mode 100755
index 0000000..f430d7a
--- /dev/null
+++ b/tests/simtrace2/08_test_simtrace.sh
@@ -0,0 +1,22 @@
+#!/bin/sh -e
+. ./test-data
+./ctl_reset_target.sh
+sleep 1
+./get_installed_version.sh
+echo
+echo simtrace2-list
+$SIMTRACE2_HOST_PATH/simtrace2-list
+echo
+echo start simtrace2-sniff
+$SIMTRACE2_HOST_PATH/simtrace2-sniff 2>&1 |sed -e 's/^/ST2\ /;' &
+sleep 1
+echo
+echo start pcsc_scan -n
+pcsc_scan -n 2>&1 |sed -e 's/^/PCSC\ /;' &
+sleep 2
+echo stop pcsc_scan
+killall -SIGINT pcsc_scan
+sudo killall pcscd
+echo stop simtrace2-sniff
+killall -SIGINT simtrace2-sniff
+
diff --git a/tests/simtrace2/README b/tests/simtrace2/README
new file mode 100644
index 0000000..6d442da
--- /dev/null
+++ b/tests/simtrace2/README
@@ -0,0 +1,9 @@
+This testsuite assumes you have installed the following utilities:
+- lsusb
+- dfu-util
+- wget
+- bossac
+- simtrace2-list
+- simtrace2-sniff
+- pcsc_scan/pcscd
+- killall
diff --git a/tests/simtrace2/TODO b/tests/simtrace2/TODO
new file mode 100644
index 0000000..33e0891
--- /dev/null
+++ b/tests/simtrace2/TODO
@@ -0,0 +1,4 @@
+
+maybe:
+- send '8' to usbrelay box to get serial - how to read it back? expect?
+- require serial for prepare to return 0
diff --git a/tests/simtrace2/ctl_erase_target.sh b/tests/simtrace2/ctl_erase_target.sh
new file mode 100755
index 0000000..3b29d17
--- /dev/null
+++ b/tests/simtrace2/ctl_erase_target.sh
@@ -0,0 +1,27 @@
+#!/bin/sh -e
+. ./test-data
+
+#usb_rly08
+# all off-on n-d
+# relay1 = usbpower o-e
+# relay2 = dfu-btn p-f
+# relay3 = reset-btn q-g
+# relay4 = erase jumper r-h
+
+echo "erasing target"
+#all off
+echo -n "n" > $USB_RELAY
+sleep 1
+# 4 on
+echo -n "h" > $USB_RELAY
+sleep 1
+# 1 on
+echo -n "e" > $USB_RELAY
+sleep 1
+# all off
+echo -n "n" > $USB_RELAY
+sleep 1
+# 1 on
+echo -n "e" > $USB_RELAY
+sleep 1
+echo "done"
diff --git a/tests/simtrace2/ctl_get_relay_sn.sh b/tests/simtrace2/ctl_get_relay_sn.sh
new file mode 100755
index 0000000..ecfb39a
--- /dev/null
+++ b/tests/simtrace2/ctl_get_relay_sn.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+. ./test-data
+
+#usb_rly08
+# all off-on n-d
+# relay1 = usbpower o-e
+# relay2 = dfu-btn p-f
+# relay3 = reset-btn q-g
+# relay4 = erase jumper r-h
+
+echo "getting relay SN"
+echo -n "8" > $USB_RELAY
diff --git a/tests/simtrace2/ctl_reset_target.sh b/tests/simtrace2/ctl_reset_target.sh
new file mode 100755
index 0000000..1d8427f
--- /dev/null
+++ b/tests/simtrace2/ctl_reset_target.sh
@@ -0,0 +1,18 @@
+#!/bin/sh -e
+. ./test-data
+
+#usb_rly08
+# all off-on n-d
+# relay1 = usbpower o-e
+# relay2 = dfu-btn p-f
+# relay3 = reset-btn q-g
+# relay4 = erase jumper r-h
+
+#all off
+echo "resetting target"
+echo -n "n" > $USB_RELAY
+sleep 1
+# 1 on
+echo -n "e" > $USB_RELAY
+sleep 1
+echo "done"
diff --git a/tests/simtrace2/ctl_reset_to_dfu.sh b/tests/simtrace2/ctl_reset_to_dfu.sh
new file mode 100755
index 0000000..9c05340
--- /dev/null
+++ b/tests/simtrace2/ctl_reset_to_dfu.sh
@@ -0,0 +1,24 @@
+#!/bin/sh -e
+. ./test-data
+
+#usb_rly08
+# all off-on n-d
+# relay1 = usbpower o-e
+# relay2 = dfu-btn p-f
+# relay3 = reset-btn q-g
+# relay4 = erase jumper r-h
+
+echo "resetting target to dfu"
+#all off
+echo -n "n" > $USB_RELAY
+sleep 1
+# 2 on
+echo -n "f" > $USB_RELAY
+sleep 1
+# 1 on
+echo -n "e" > $USB_RELAY
+sleep 1
+# 2 off
+echo -n "p" > $USB_RELAY
+sleep 1
+echo "done"
diff --git a/tests/simtrace2/fetch_image.sh b/tests/simtrace2/fetch_image.sh
new file mode 100755
index 0000000..5ce3591
--- /dev/null
+++ b/tests/simtrace2/fetch_image.sh
@@ -0,0 +1,7 @@
+#!/bin/sh -e
+. ./test-data
+
+echo "fetch images"
+wget -O $BL_IMAGE $BL_URL -nv
+wget -O $APP_IMAGE $APP_URL -nv
+echo "done"
diff --git a/tests/simtrace2/flash_simtrace_bossac.sh b/tests/simtrace2/flash_simtrace_bossac.sh
new file mode 100755
index 0000000..0065925
--- /dev/null
+++ b/tests/simtrace2/flash_simtrace_bossac.sh
@@ -0,0 +1,6 @@
+#!/bin/sh -e
+. ./test-data
+
+sudo bossac --port $USB_TARGET --erase --write $BL_IMAGE --verify --boot=1
+
+sleep 1
diff --git a/tests/simtrace2/flash_simtrace_dfu.sh b/tests/simtrace2/flash_simtrace_dfu.sh
new file mode 100755
index 0000000..1bb175a
--- /dev/null
+++ b/tests/simtrace2/flash_simtrace_dfu.sh
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+. ./test-data
+
+dfu-util --device $USBD_TARGET --cfg 1 --alt 1 --reset --download $APP_IMAGE 2>/dev/null |grep -v "Download\t"|grep -v "\["
+sleep 1
diff --git a/tests/simtrace2/get_installed_version.sh b/tests/simtrace2/get_installed_version.sh
new file mode 100755
index 0000000..1b3f2b9
--- /dev/null
+++ b/tests/simtrace2/get_installed_version.sh
@@ -0,0 +1,6 @@
+#!/bin/sh -e
+. ./test-data
+
+echo -n "installed fw version: "
+lsusb -d $USBD_TARGET -v 2>/dev/null | grep iInterface -B 2|tr -d '\n' | sed 's/--/\n/g'|grep "bInterfaceSubClass 255"| rev | cut -d ' ' -f 1|rev
+
diff --git a/tests/simtrace2/notes_relay_board.txt b/tests/simtrace2/notes_relay_board.txt
new file mode 100644
index 0000000..5669e92
--- /dev/null
+++ b/tests/simtrace2/notes_relay_board.txt
@@ -0,0 +1,28 @@
+usb_rly08 board http://www.robot-electronics.co.uk/htm/usb_rly08btech.htm
+
+Command
+
+Action
+dec hex ascii
+ 56 38 8 Get serial number - returns 8 bytes of ASCII that form the unique serial number for module, I.E "00001543"
+ 90 5A Z Get software version - returns 2 bytes, the first being the Module ID which is 8, followed by the software version
+ 91 5B [ Get relay states - sends a single byte back to the controller, bit high meaning the corresponding relay is powered
+ 92 5C \ Set relay states - the next single byte will set all relays states, All on = 255 (11111111) All off = 0
+100 64 d All relays on
+101 65 e Turn relay 1 on
+102 66 f Turn relay 2 on
+103 67 g Turn relay 3 on
+104 68 h Turn relay 4 on
+105 69 i Turn relay 5 on
+106 6A j Turn relay 6 on
+107 6B k Turn relay 7 on
+108 6C l Turn relay 8 on
+110 6E n All relays off
+111 6F o Turn relay 1 off
+112 70 p Turn relay 2 off
+113 71 q Turn relay 3 off
+114 72 r Turn relay 4 off
+115 73 s Turn relay 5 off
+116 74 t Turn relay 6 off
+117 75 u Turn relay 7 off
+118 76 v Turn relay 8 off
diff --git a/tests/simtrace2/notes_wiring.txt b/tests/simtrace2/notes_wiring.txt
new file mode 100644
index 0000000..6b8c1d9
--- /dev/null
+++ b/tests/simtrace2/notes_wiring.txt
@@ -0,0 +1,5 @@
+
+relay1 - usb power target
+relay2 - dfu-button (bootloader) target
+relay3 - reset-button target - currently not used
+relay4 - erase jumper target
diff --git a/tests/simtrace2/prepare b/tests/simtrace2/prepare
new file mode 100755
index 0000000..63ff09c
--- /dev/null
+++ b/tests/simtrace2/prepare
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+. ./test-data
+
+echo "================ PREPARING TEST RIG ================"
+./ctl_reset_target.sh
+echo "================ TEST RIG PREPARED ================="
+echo ""
+
+./fetch_image.sh
diff --git a/tests/simtrace2/regen b/tests/simtrace2/regen
new file mode 100755
index 0000000..2978a0a
--- /dev/null
+++ b/tests/simtrace2/regen
@@ -0,0 +1,19 @@
+#!/bin/sh -e
+. ./test-data
+
+echo "Regenerating test output..."
+./prepare
+for T in $TESTS; do
+ echo "==> Executing Testcase $T"
+ EXPOUT=${T%%.sh}.out
+ ./$T > $EXPOUT
+ if [ $? -eq 0 ]; then
+ echo "Test $T passed"
+ else
+ echo "Test $T FAILED!"
+ fi
+done
+
+echo "Reference output regenerated!"
+echo ""
+
diff --git a/tests/simtrace2/run-tests b/tests/simtrace2/run-tests
new file mode 100755
index 0000000..04b4591
--- /dev/null
+++ b/tests/simtrace2/run-tests
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+# default: execute all tests
+
+. ./test-data
+
+# if command line specifies some specific tests, execute only those
+if [ $# -ge 1 ]; then
+ TESTS=$*
+fi
+
+TMP=`tempfile`
+NUM_FAIL=0
+
+# prepare test card
+./prepare
+if [ $? -eq 0 ]; then
+ echo "Prepare done"
+else
+ echo "Prepare Test FAILED!"
+ exit 2
+fi
+
+for T in $TESTS; do
+ echo "==> Executing Testcase $T"
+ EXPOUT=${T%%.sh}.out
+ rm $TMP
+ ./$T > $TMP
+ diff -u $EXPOUT $TMP
+ if [ $? -eq 0 ]; then
+ echo "Test $T passed"
+ else
+ echo "Test $T FAILED!"
+ NUM_FAIL=$((NUM_FAIL+1))
+ fi
+done
+
+echo
+echo
+echo "Summary: $NUM_FAIL Tests failed"
+
+if [ $NUM_FAIL -gt 0 ]; then
+ exit 1
+else
+ exit 0
+fi
diff --git a/tests/simtrace2/test-data b/tests/simtrace2/test-data
new file mode 100644
index 0000000..05d6c95
--- /dev/null
+++ b/tests/simtrace2/test-data
@@ -0,0 +1,12 @@
+USBD_RELAY="04d8:ffee"
+USB_RELAY="/dev/ttyACM0"
+USBD_TARGET="1d50:60e3"
+USB_TARGET="/dev/ttyACM1"
+USBD_CCID="076b:6632"
+USBD_HUB="05e3:0608"
+BL_URL="https://downloads.osmocom.org/binaries/simtrace2/firmware/latest/simtrace-dfu-flash-latest.bin"
+APP_URL="https://downloads.osmocom.org/binaries/simtrace2/firmware/latest/simtrace-trace-dfu-latest.bin"
+BL_IMAGE="dl/simtrace-dfu-flash.bin"
+APP_IMAGE="dl/simtrace-trace-dfu.bin"
+SIMTRACE2_HOST_PATH="/home/roh/kunde/sysmocom/git.admin.sysmocom.de/simtrace2/host/src"
+TESTS="01_check_rig.sh 02_erase_board.sh 03_flash_bl_bossac.sh 04_flash_dfu.sh 05_check_lsusb.sh 06_check_dfu_lsusb.sh 07_flash_dfu_from_app.sh 08_test_simtrace.sh"
--
To view, visit https://gerrit.osmocom.org/c/simtrace2/+/25967
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-Change-Id: I88bc32334f23e6fd702e0cbcb1b1510029909b20
Gerrit-Change-Number: 25967
Gerrit-PatchSet: 1
Gerrit-Owner: roh <jsteiger at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20211026/8572b9ec/attachment.htm>