mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-17 21:23:58 +00:00
ci: run smoke tests in parallel
This speeds up the smoke tests by over 5x on my laptop, but keeps two features that I find very important: 1. A stable output, which is used by tools like sizediff. 2. An easy to change text file with all the smoke tests. This means that parsing is a little bit harder, but with the help of packages like shlex and flag this is actually not very difficult.
This commit is contained in:
committed by
Ron Evans
parent
8ddfa6ac8f
commit
53404b3f4b
@@ -7,254 +7,10 @@ FMT_PATHS = ./
|
|||||||
fmt-check:
|
fmt-check:
|
||||||
@unformatted=$$(gofmt -l $(FMT_PATHS)); [ -z "$$unformatted" ] && exit 0; echo "Unformatted:"; for fn in $$unformatted; do echo " $$fn"; done; exit 1
|
@unformatted=$$(gofmt -l $(FMT_PATHS)); [ -z "$$unformatted" ] && exit 0; echo "Unformatted:"; for fn in $$unformatted; do echo " $$fn"; done; exit 1
|
||||||
|
|
||||||
|
XTENSA ?= 1
|
||||||
smoke-test:
|
smoke-test:
|
||||||
@mkdir -p build
|
@mkdir -p build
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/adt7410/main.go
|
@go run ./smoketest.go -xtensa=$(XTENSA) smoketest.sh
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/adxl345/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/amg88xx
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/apa102/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/apds9960/proximity/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/apa102/itsybitsy-m0/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/at24cx/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bh1750/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/blinkm/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmi160/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmp180/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmp280/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/bmp388/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=bluepill ./examples/ds1307/sram/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=bluepill ./examples/ds1307/time/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/ds3231/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/easystepper/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/espat/espconsole/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/espat/esphub/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/espat/espstation/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/flash/console/spi
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/flash/console/qspi
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/gc9a01/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/gps/i2c/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/gps/uart/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/hcsr04/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hd44780/customchar/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hd44780/text/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/hd44780i2c/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/hts221/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hub75/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/basic
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/ili9341/basic
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/pyportal_boing
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/scroll
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/ili9341/scroll
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/slideshow
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/lis3dh/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/lps22hb/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/lsm303agr/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/lsm6ds3/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mag3110/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp23017/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp23017-multiple/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp3008/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp2515/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/microbitmatrix/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit-v2 ./examples/microbitmatrix/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mma8653/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mpu6050/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=p1am-100 ./examples/p1am/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pico ./examples/pca9685/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/pcd8544/setbuffer/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/pcd8544/setpixel/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino ./examples/servo
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/shifter/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/sht3x/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/shtc3/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ssd1306/i2c_128x32/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ssd1306/spi_128x64/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ssd1331/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/st7735/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/st7789/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/thermistor/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=circuitplay-bluefruit ./examples/tone
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/tm1637/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/touch/resistive/fourwire/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/touch/resistive/pyportal_touchpaint/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/vl53l1x/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/vl6180x/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd2in13/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd2in13x/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd4in2/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/wifinina/ntpclient/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/wifinina/udpstation/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/wifinina/tcpclient/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/wifinina/webclient/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/ws2812
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.bin -target=m5stamp-c3 ./examples/ws2812
|
|
||||||
@md5sum ./build/test.bin
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=feather-nrf52840 ./examples/is31fl3731/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino ./examples/ws2812
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=digispark ./examples/ws2812
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/bme280/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/microphone/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/buzzer/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/veml6070/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l293x/simple/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l293x/speed/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l9110x/simple/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l9110x/speed/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=nucleo-f103rb ./examples/shiftregister/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=hifive1b ./examples/ssd1351/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/lis2mdl/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/max72xx/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/dht/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
# tinygo build -size short -o ./build/test.hex -target=arduino ./examples/keypad4x4/main.go
|
|
||||||
# @md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/alarm/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/clkout/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/time/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/timer/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pico ./examples/qmi8658c/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/ina260/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=nucleo-l432kc ./examples/aht20/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/sdcard/console/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/sdcard/tinyfs/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=wioterminal ./examples/rtl8720dn/webclient/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=wioterminal ./examples/rtl8720dn/webserver/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=wioterminal ./examples/rtl8720dn/mqttsub/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/i2csoft/adt7410/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.elf -target=wioterminal ./examples/axp192/m5stack-core2-blinky/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/xpt2046/main.go
|
|
||||||
@md5sum ./build/test.uf2
|
|
||||||
ifneq ($(XTENSA), 0)
|
|
||||||
tinygo build -size short -o ./build/test.elf -target=m5stack-core2 ./examples/ft6336/basic/
|
|
||||||
@md5sum ./build/test.elf
|
|
||||||
tinygo build -size short -o ./build/test.elf -target=m5stack-core2 ./examples/ft6336/touchpaint/
|
|
||||||
@md5sum ./build/test.elf
|
|
||||||
endif
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=nucleo-wl55jc ./examples/sx126x/lora_rxtx/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/ssd1289/main.go
|
|
||||||
@md5sum ./build/test.uf2
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=pico ./examples/irremote/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=badger2040 ./examples/uc8151/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/scd4x/main.go
|
|
||||||
@md5sum ./build/test.uf2
|
|
||||||
tinygo build -size short -o ./build/test.uf2 -target=circuitplay-express ./examples/makeybutton/main.go
|
|
||||||
@md5sum ./build/test.uf2
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ds18b20/main.go
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.hex -target=nucleo-wl55jc ./examples/lora/lorawan/atcmd/
|
|
||||||
@md5sum ./build/test.hex
|
|
||||||
tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/as560x/main.go
|
|
||||||
@md5sum ./build/test.uf2
|
|
||||||
|
|
||||||
|
|
||||||
# rwildcard is a recursive version of $(wildcard)
|
# rwildcard is a recursive version of $(wildcard)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ go 1.15
|
|||||||
require (
|
require (
|
||||||
github.com/eclipse/paho.mqtt.golang v1.2.0
|
github.com/eclipse/paho.mqtt.golang v1.2.0
|
||||||
github.com/frankban/quicktest v1.10.2
|
github.com/frankban/quicktest v1.10.2
|
||||||
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
|
||||||
golang.org/x/net v0.0.0-20210614182718-04defd469f4e
|
golang.org/x/net v0.0.0-20210614182718-04defd469f4e
|
||||||
tinygo.org/x/tinyfont v0.3.0
|
tinygo.org/x/tinyfont v0.3.0
|
||||||
tinygo.org/x/tinyfs v0.2.0
|
tinygo.org/x/tinyfs v0.2.0
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ github.com/frankban/quicktest v1.10.2 h1:19ARM85nVi4xH7xPXuc5eM/udya5ieh7b/Sv+d8
|
|||||||
github.com/frankban/quicktest v1.10.2/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s=
|
github.com/frankban/quicktest v1.10.2/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s=
|
||||||
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
|
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
|
||||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
||||||
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
||||||
github.com/hajimehoshi/go-jisx0208 v1.0.0/go.mod h1:yYxEStHL7lt9uL+AbdWgW9gBumwieDoZCiB1f/0X0as=
|
github.com/hajimehoshi/go-jisx0208 v1.0.0/go.mod h1:yYxEStHL7lt9uL+AbdWgW9gBumwieDoZCiB1f/0X0as=
|
||||||
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
|
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
|
|||||||
+168
@@ -0,0 +1,168 @@
|
|||||||
|
//go:build none
|
||||||
|
|
||||||
|
// Run all commands in smoketest.sh in parallel, for improved performance.
|
||||||
|
// This requires changing the -o flag to avoid a race condition between writing
|
||||||
|
// the output and reading it back to get the md5sum of the output.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"crypto/md5"
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
"path"
|
||||||
|
"path/filepath"
|
||||||
|
"runtime"
|
||||||
|
|
||||||
|
"github.com/google/shlex"
|
||||||
|
)
|
||||||
|
|
||||||
|
var flagXtensa = flag.Bool("xtensa", true, "Enable Xtensa tests")
|
||||||
|
|
||||||
|
func usage() {
|
||||||
|
fmt.Fprintln(os.Stderr, "usage: go run ./smoketest.go smoketest.txt")
|
||||||
|
flag.PrintDefaults()
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
flag.Parse()
|
||||||
|
if flag.NArg() != 1 {
|
||||||
|
usage()
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
err := runSmokeTest(flag.Arg(0))
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintln(os.Stderr, err)
|
||||||
|
usage()
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func runSmokeTest(filename string) error {
|
||||||
|
// Read all the lines in the file.
|
||||||
|
data, err := os.ReadFile(filename)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
lines := bytes.Split(data, []byte("\n"))
|
||||||
|
|
||||||
|
// Start a number of goroutine workers.
|
||||||
|
jobChan := make(chan *Job, len(lines))
|
||||||
|
for i := 0; i < runtime.NumCPU(); i++ {
|
||||||
|
go worker(jobChan)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a temporary directory for the outputs of these tests.
|
||||||
|
tmpdir, err := os.MkdirTemp("", "drivers-smoketest-*")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send work to the workers.
|
||||||
|
var jobs []*Job
|
||||||
|
for _, lineBytes := range lines {
|
||||||
|
// Parse the line into command line parameters.
|
||||||
|
line := string(lineBytes)
|
||||||
|
fields, err := shlex.Split(line)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if len(fields) == 0 {
|
||||||
|
continue // empty line
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace the "output" flag, but store the original value.
|
||||||
|
var outpath, origOutpath string
|
||||||
|
for i := range fields {
|
||||||
|
if fields[i] == "-o" {
|
||||||
|
origOutpath = fields[i+1]
|
||||||
|
ext := path.Ext(origOutpath)
|
||||||
|
outpath = filepath.Join(tmpdir, fmt.Sprintf("output-%d%s", len(jobs), ext))
|
||||||
|
fields[i+1] = outpath
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if outpath == "" {
|
||||||
|
return fmt.Errorf("could not find -o flag in command: %v", fields)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse the command line parameters to get the -target flag.
|
||||||
|
if fields[1] != "build" {
|
||||||
|
return fmt.Errorf("unexpected subcommand: %#v", fields[1])
|
||||||
|
}
|
||||||
|
flagSet := flag.NewFlagSet(fields[0], flag.ContinueOnError)
|
||||||
|
_ = flagSet.String("size", "", "")
|
||||||
|
_ = flagSet.String("o", "", "")
|
||||||
|
targetFlag := flagSet.String("target", "", "")
|
||||||
|
err = flagSet.Parse(fields[2:])
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to parse command from %s: %w", filename, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Skip Xtensa tests if set in the flag.
|
||||||
|
if !*flagXtensa && *targetFlag == "m5stack-core2" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create TinyGo command (to build the driver example).
|
||||||
|
output := &bytes.Buffer{}
|
||||||
|
output.Write(lineBytes)
|
||||||
|
output.Write([]byte("\n"))
|
||||||
|
cmd := exec.Command(fields[0], fields[1:]...)
|
||||||
|
cmd.Stdout = output
|
||||||
|
cmd.Stderr = output
|
||||||
|
|
||||||
|
// Submit this command for execution.
|
||||||
|
job := &Job{
|
||||||
|
output: output,
|
||||||
|
tinygoCmd: cmd,
|
||||||
|
outpath: outpath,
|
||||||
|
origOutpath: origOutpath,
|
||||||
|
resultChan: make(chan error),
|
||||||
|
}
|
||||||
|
jobChan <- job
|
||||||
|
jobs = append(jobs, job)
|
||||||
|
}
|
||||||
|
close(jobChan) // stops the workers (probably not necessary)
|
||||||
|
|
||||||
|
// Read the output from all these jobs, in order.
|
||||||
|
for _, job := range jobs {
|
||||||
|
result := <-job.resultChan
|
||||||
|
os.Stdout.Write(job.output.Bytes())
|
||||||
|
if result != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func worker(jobChan chan *Job) {
|
||||||
|
for job := range jobChan {
|
||||||
|
// Run the tinygo command.
|
||||||
|
err := job.tinygoCmd.Run()
|
||||||
|
if err != nil {
|
||||||
|
job.resultChan <- err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a md5sum, with output similar to the "md5sum" command line
|
||||||
|
// utility.
|
||||||
|
data, err := os.ReadFile(job.outpath)
|
||||||
|
if err != nil {
|
||||||
|
job.resultChan <- err
|
||||||
|
}
|
||||||
|
fmt.Fprintf(job.output, "%x %s\n", md5.Sum(data), job.origOutpath)
|
||||||
|
job.resultChan <- nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Job struct {
|
||||||
|
output *bytes.Buffer
|
||||||
|
tinygoCmd *exec.Cmd
|
||||||
|
outpath string
|
||||||
|
origOutpath string
|
||||||
|
resultChan chan error
|
||||||
|
}
|
||||||
Executable
+128
@@ -0,0 +1,128 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# These commands are run when running `make smoke-test`.
|
||||||
|
# They are all run in parallel with the -o flag changed to something unique (to
|
||||||
|
# avoid a race condition between writing the output and reading the result to
|
||||||
|
# get an md5sum).
|
||||||
|
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/adt7410/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/adxl345/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/amg88xx
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/apa102/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/apds9960/proximity/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/apa102/itsybitsy-m0/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/at24cx/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bh1750/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/blinkm/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmi160/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmp180/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmp280/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/bmp388/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=bluepill ./examples/ds1307/sram/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=bluepill ./examples/ds1307/time/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/ds3231/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/easystepper/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/espat/espconsole/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/espat/esphub/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/espat/espstation/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/flash/console/spi
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/flash/console/qspi
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/gc9a01/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/gps/i2c/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/gps/uart/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/hcsr04/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hd44780/customchar/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hd44780/text/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/hd44780i2c/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/hts221/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hub75/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/basic
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/ili9341/basic
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/pyportal_boing
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/scroll
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/ili9341/scroll
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/slideshow
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/lis3dh/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/lps22hb/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/lsm303agr/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/lsm6ds3/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mag3110/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp23017/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp23017-multiple/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp3008/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp2515/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/microbitmatrix/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit-v2 ./examples/microbitmatrix/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mma8653/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mpu6050/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=p1am-100 ./examples/p1am/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pico ./examples/pca9685/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/pcd8544/setbuffer/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/pcd8544/setpixel/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino ./examples/servo
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/shifter/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/sht3x/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/shtc3/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ssd1306/i2c_128x32/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ssd1306/spi_128x64/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ssd1331/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/st7735/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/st7789/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/thermistor/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=circuitplay-bluefruit ./examples/tone
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/tm1637/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/touch/resistive/fourwire/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/touch/resistive/pyportal_touchpaint/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/vl53l1x/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/vl6180x/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd2in13/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd2in13x/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd4in2/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/wifinina/ntpclient/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/wifinina/udpstation/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/wifinina/tcpclient/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/wifinina/webclient/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/ws2812
|
||||||
|
tinygo build -size short -o ./build/test.bin -target=m5stamp-c3 ./examples/ws2812
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=feather-nrf52840 ./examples/is31fl3731/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino ./examples/ws2812
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=digispark ./examples/ws2812
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/bme280/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/microphone/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/buzzer/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/veml6070/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l293x/simple/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l293x/speed/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l9110x/simple/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l9110x/speed/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=nucleo-f103rb ./examples/shiftregister/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=hifive1b ./examples/ssd1351/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/lis2mdl/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/max72xx/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/dht/main.go
|
||||||
|
# tinygo build -size short -o ./build/test.hex -target=arduino ./examples/keypad4x4/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/alarm/
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/clkout/
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/time/
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/timer/
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pico ./examples/qmi8658c/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/ina260/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=nucleo-l432kc ./examples/aht20/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/sdcard/console/
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/sdcard/tinyfs/
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=wioterminal ./examples/rtl8720dn/webclient/
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=wioterminal ./examples/rtl8720dn/webserver/
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=wioterminal ./examples/rtl8720dn/mqttsub/
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/i2csoft/adt7410/
|
||||||
|
tinygo build -size short -o ./build/test.elf -target=wioterminal ./examples/axp192/m5stack-core2-blinky/
|
||||||
|
tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/xpt2046/main.go
|
||||||
|
tinygo build -size short -o ./build/test.elf -target=m5stack-core2 ./examples/ft6336/basic/
|
||||||
|
tinygo build -size short -o ./build/test.elf -target=m5stack-core2 ./examples/ft6336/touchpaint/
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=nucleo-wl55jc ./examples/sx126x/lora_rxtx/
|
||||||
|
tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/ssd1289/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=pico ./examples/irremote/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=badger2040 ./examples/uc8151/main.go
|
||||||
|
tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/scd4x/main.go
|
||||||
|
tinygo build -size short -o ./build/test.uf2 -target=circuitplay-express ./examples/makeybutton/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ds18b20/main.go
|
||||||
|
tinygo build -size short -o ./build/test.hex -target=nucleo-wl55jc ./examples/lora/lorawan/atcmd/
|
||||||
|
tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/as560x/main.go
|
||||||
Reference in New Issue
Block a user