Files
esp-idf/examples/get-started/blink/example_test.py
T
David Cermak 74d768fe6d ci: updated mqtt weekend test for qemu support
Added default sdkconfig for qemu build for the mqtt publish example,
Added environment configuration for running the same test on target
or in qemu
Updated missing example tests per latest ttfw refactoring
2019-12-17 14:06:40 +01:00

46 lines
1.4 KiB
Python

#!/usr/bin/env python
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import re
import os
import hashlib
from tiny_test_fw import Utility
import ttfw_idf
def verify_elf_sha256_embedding(dut):
elf_file = os.path.join(dut.app.binary_path, "blink.elf")
sha256 = hashlib.sha256()
with open(elf_file, "rb") as f:
sha256.update(f.read())
sha256_expected = sha256.hexdigest()
dut.reset()
sha256_reported = dut.expect(re.compile(r'ELF file SHA256:\s+([a-f0-9]+)'), timeout=5)[0]
Utility.console_log('ELF file SHA256: %s' % sha256_expected)
Utility.console_log('ELF file SHA256 (reported by the app): %s' % sha256_reported)
# the app reports only the first several hex characters of the SHA256, check that they match
if not sha256_expected.startswith(sha256_reported):
raise ValueError('ELF file SHA256 mismatch')
@ttfw_idf.idf_example_test(env_tag="Example_WIFI")
def test_examples_blink(env, extra_data):
dut = env.get_dut("blink", "examples/get-started/blink", dut_class=ttfw_idf.ESP32DUT)
binary_file = os.path.join(dut.app.binary_path, "blink.bin")
bin_size = os.path.getsize(binary_file)
ttfw_idf.log_performance("blink_bin_size", "{}KB".format(bin_size // 1024))
ttfw_idf.check_performance("blink_bin_size", bin_size // 1024)
dut.start_app()
verify_elf_sha256_embedding(dut)
if __name__ == '__main__':
test_examples_blink()