C++ / Python / Execução registrada

Smart Irrigation

Irrigation control with filtering, hysteresis, a minimum interval, a maximum pump runtime, a reservoir sensor, and fault lockout.

O que foi verificado

Os comandos abaixo executam o código do repositório e conferem os cenários registrados. A evidência cobre esses cenários na versão indicada; não comprova todas as entradas possíveis nem uso em produção. As entradas de laboratório e os testes do software não comprovam conexão ou operação em equipamentos físicos.

Versão executada
491aba4ef3c7c6c48adc41b15a571636a03804e5
Registro
2026-10-10T05:28:38.237876+00:00
Repositório
brunnojob/arduino-smart-irrigation
Licença
MIT

A evidência abaixo pertence à versão registrada. A consulta usa a API pública do GitHub e pode atingir o limite de requisições.

Comandos e resultados reais

Resultados extraídos dos logs do Actions. Saídas extensas podem estar resumidas; a execução original e o artefato contêm o registro completo.

Baixar relatório JSON
PASS python -m pip install platformio==6.1.19

Saída: 0 · esperada: 0 · 2.656 s

$ bash -e -o pipefail -c python -m pip install platformio==6.1.19

Collecting platformio==6.1.19
  Downloading platformio-6.1.19-py3-none-any.whl.metadata (7.2 kB)
Collecting bottle==0.13.* (from platformio==6.1.19)
  Downloading bottle-0.13.4-py2.py3-none-any.whl.metadata (1.6 kB)
Collecting click<8.4,>=8.0.4 (from platformio==6.1.19)
  Downloading click-8.3.3-py3-none-any.whl.metadata (2.6 kB)
Collecting colorama (from platformio==6.1.19)
  Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)
Collecting marshmallow==3.* (from platformio==6.1.19)
  Downloading marshmallow-3.26.2-py3-none-any.whl.metadata (7.3 kB)
Collecting pyelftools<1,>=0.27 (from platformio==6.1.19)
  Downloading pyelftools-0.33-py3-none-any.whl.metadata (1.0 kB)
Collecting pyserial==3.5.* (from platformio==6.1.19)
  Downloading pyserial-3.5-py2.py3-none-any.whl.metadata (1.6 kB)
Collecting requests==2.* (from platformio==6.1.19)
  Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)
Collecting semantic_version==2.10.* (from platformio==6.1.19)
  Downloading semantic_version-2.10.0-py2.py3-none-any.whl.metadata (9.7 kB)
Collecting tabulate==0.* (from platformio==6.1.19)
  Downloading tabulate-0.10.0-py3-none-any.whl.metadata (40 kB)
Collecting ajsonrpc==1.2.* (from platformio==6.1.19)
  Downloading ajsonrpc-1.2.0-py3-none-any.whl.metadata (6.9 kB)
Collecting starlette<0.53,>=0.19 (from platformio==6.1.19)
  Downloading starlette-0.52.1-py3-none-any.whl.metadata (6.3 kB)
Collecting uvicorn<0.41,>=0.16 (from platformio==6.1.19)
  Downloading uvicorn-0.40.0-py3-none-any.whl.metadata (6.7 kB)
Collecting wsproto==1.* (from platformio==6.1.19)
  Downloading wsproto-1.3.2-py3-none-any.whl.metadata (5.2 kB)
Collecting packaging>=17.0 (from marshmallow==3.*->platformio==6.1.19)
  Downloading packaging-26.3-py3-none-any.whl.metadata (3.5 kB)
Collecting charset_normalizer<4,>=2 (from requests==2.*->platformio==6.1.19)
  Downloading charset_normalizer-3.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (46 kB)
Collecting idna<4,>=2.5 (from requests==2.*->platformio==6.1.19)
  Downloading idna-3.20-py3-none-any.whl.metadata (7.2 kB)
Collecting urllib3<3,>=1.26 (from requests==2.*->platformio==6.1.19)
  Downloading urllib3-2.8.0-py3-none-any.whl.metadata (7.4 kB)
Collecting certifi>=2023.5.7 (from requests==2.*->platformio==6.1.19)
  Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB)
Collecting anyio<5,>=3.6.2 (from starlette<0.53,>=0.19->platformio==6.1.19)
  Downloading anyio-4.15.1-py3-none-any.whl.metadata (4.7 kB)
Collecting typing-extensions>=4.10.0 (from starlette<0.53,>=0.19->platformio==6.1.19)
  Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB)
Collecting h11>=0.8 (from uvicorn<0.41,>=0.16->platformio==6.1.19)
  Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB)
Downloading platformio-6.1.19-py3-none-any.whl (421 kB)
Downloading ajsonrpc-1.2.0-py3-none-any.whl (22 kB)
Downloading bottle-0.13.4-py2.py3-none-any.whl (103 kB)
Downloading click-8.3.3-py3-none-any.whl (110 kB)
Downloading marshmallow-3.26.2-py3-none-any.whl (50 kB)
Downloading pyelftools-0.33-py3-none-any.whl (201 kB)
Downloading pyserial-3.5-py2.py3-none-any.whl (90 kB)
Downloading requests-2.34.2-py3-none-any.whl (73 kB)
Downloading charset_normalizer-3.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (257 kB)
Downloading idna-3.20-py3-none-any.whl (69 kB)
Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)
Downloadi
Full transcript in the execution-proof artifact.
PASS pio run -e esp32dev

Saída: 0 · esperada: 0 · 35.135 s

$ bash -e -o pipefail -c pio run -e esp32dev

********************************************************************************
If you like PlatformIO, please:
- star it on GitHub > https://github.com/platformio/platformio-core
- follow us on LinkedIn to stay up-to-date on the latest project news > https://www.linkedin.com/company/platformio/
- try PlatformIO IDE for embedded development > https://platformio.org/platformio-ide
********************************************************************************

Processing esp32dev (platform: espressif32@6.12.0; board: esp32dev; framework: arduino)
--------------------------------------------------------------------------------
Platform Manager: Installing espressif32 @ 6.12.0
Downloading 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Unpacking 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Platform Manager: espressif32@6.12.0 has been installed!
Tool Manager: Installing espressif/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Downloading 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Unpacking 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Tool Manager: toolchain-xtensa-esp32@8.4.0+2021r2-patch5 has been installed!
Tool Manager: Installing platformio/framework-arduinoespressif32 @ ~3.20017.0
Downloading 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Unpacking 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Tool Manager: framework-arduinoespressif32@3.20017.241212+sha.dcc1105b has been installed!
Tool Manager: Installing platformio/tool-esptoolpy @ ~2.40900.0
Downloading 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Unpacking 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Collecting cryptography~=45.0.3
  Downloading cryptography-45.0.7-cp311-abi3-manylinux_2_34_x86_64.whl.metadata (5.7 kB)
Collecting ecdsa~=0.19.1
  Downloading ecdsa-0.19.2-py2.py3-none-any.whl.metadata (29 kB)
Collecting bitstring~=4.3.1
  Downloading bitstring-4.3.1-py3-none-any.whl.metadata (5.3 kB)
Collecting reedsolo~=1.7.0
  Downloading reedsolo-1.7.0-py3-none-any.whl.metadata (23 kB)
Collecting intelhex~=2.3.0
  Downloading intelhex-2.3.0-py2.py3-none-any.whl.metadata (2.7 kB)
Collecting cffi>=1.14 (from cryptography~=45.0.3)
  Downloading cffi-2.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.5 kB)
Collecting six>=1.9.0 (from ecdsa~=0.19.1)
  Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Collecting bitarray<4.0,>=3.0.0 (from bitstring~=4.3.1)
  Downloading bitarray-3.12.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (41 kB)
Collecting pycparser (from cffi>=1.14->cryptography~=45.0.3)
  Downloading pycparser-3.11-py3-none-any.whl.metadata (8.2 kB)
Downloading cryptography-45.0.7-cp311-abi3-manylinux_2_34_x86_64.whl (4.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 48.7 MB/s  0:00:00
Downloading ecdsa-0.19.2-py2.py3-none-any.whl (150 kB)
Downloading bitstring-4.3.1-py3-none-any.whl (71 kB)
Downloading reedsolo-1.7.0-py3-none-any.whl (32 kB)
Downloading intelhex-2.3.0-py2.py3-none-any.whl (50 kB)
Downloading bitarray-3.12.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (398 kB)
Downloading cffi-2.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (221 kB)
Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Downloading pycparser-3.11-py3-none-any.whl (51 kB)
Installing collected packages: reedsolo, intelhex, six, pycparser, bitarray, ecdsa, cffi, bitstring, cryptography

Successfully installed bitarray-3.12.0 bitstring-4.3.1 cffi-2.1.1 cryptogra
Full transcript in the execution-proof artifact.
PASS python -m unittest discover -v -s cloud

Saída: 0 · esperada: 0 · 0.201 s

$ bash -e -o pipefail -c python -m unittest discover -v -s cloud

test_confirmed_receipt_marks_the_report_sent (test_receipts.ReceiptTests.test_confirmed_receipt_marks_the_report_sent) ... ok
test_events_reject_empty_values_of_the_wrong_type (test_receipts.ReceiptTests.test_events_reject_empty_values_of_the_wrong_type) ... ok
test_invalid_receipts_keep_the_report_pending (test_receipts.ReceiptTests.test_invalid_receipts_keep_the_report_pending) ... ok
test_omitted_events_and_empty_list_have_the_same_key (test_receipts.ReceiptTests.test_omitted_events_and_empty_list_have_the_same_key) ... ok
test_conflicting_key_cannot_overwrite_a_report (test_sync.OutboxTests.test_conflicting_key_cannot_overwrite_a_report) ... ok
test_retries_keep_reports_until_confirmed (test_sync.OutboxTests.test_retries_keep_reports_until_confirmed) ... ok

----------------------------------------------------------------------
Ran 6 tests in 0.050s

OK
PASS Compile firmware-core failure demonstration

Saída: 0 · esperada: 0 · 0.302 s

$ g++ -std=c++17 -Wall -Wextra -Werror -Iinclude .proof/demo.cpp -o /tmp/firmware-proof

PASS Demonstrate actual firmware logic on native inputs

Saída: 0 · esperada: 0 · 0.051 s

$ /tmp/firmware-proof

missed sensor deadline stops pump; controlled recovery enters cooldown
Baixar transcrição

Reproduzir a execução

Os pré-requisitos e as entradas são públicos no repositório. Faça checkout da versão exata antes de executar os cenários.

git clone https://github.com/brunnojob/arduino-smart-irrigation.git
cd arduino-smart-irrigation
git checkout 491aba4ef3c7c6c48adc41b15a571636a03804e5
python .proof/record.py