Image of errors im getting
Hi! I'm trying to make sure the hello world example program works before I start making my own projects for university. I followed the instructions on this site: .html#get-started-get-esp-idf. I also configured ESP IDF on vscode with the extension. But, when I loaded up the hello world program, it gave me the two errors about the importing. This is the pytest_hello_world.py file, where I'm getting the errors:
# SPDX-License-Identifier: CC0-1.0
import hashlib
import logging
from typing import Callable
import pytest
from pytest_embedded_idf.dut import IdfDut
from pytest_embedded_qemu.app import QemuApp
from pytest_embedded_qemu.dut import QemuDut
@pytest.mark.supported_targets
@pytest.mark.preview_targets
@pytest.mark.generic
def test_hello_world(
dut: IdfDut, log_minimum_free_heap_size: Callable[..., None]
) -> None:
dut.expect('Hello world!')
log_minimum_free_heap_size()
def verify_elf_sha256_embedding(app: QemuApp, sha256_reported: str) -> None:
sha256 = hashlib.sha256()
with open(app.elf_file, 'rb') as f:
sha256.update(f.read())
sha256_expected = sha256.hexdigest()
logging.info(f'ELF file SHA256: {sha256_expected}')
logging.info(f'ELF file SHA256 (reported by the app): {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')
@pytest.mark.esp32 # we only support qemu on esp32 for now
@pytest.mark.host_test
@pytest.mark.qemu
def test_hello_world_host(app: QemuApp, dut: QemuDut) -> None:
sha256_reported = (
dut.expect(r'ELF file SHA256:\s+([a-f0-9]+)').group(1).decode('utf-8')
)
verify_elf_sha256_embedding(app, sha256_reported)
dut.expect('Hello world!')
Did I not install a specific prereq, or did I mess up the installation in anyway? Btw, I'm on mac os ventura. I'm sorry if this is a stupid question but I've just spent a lot of time redoing the installations but this error keeps popping up. Thank you so much!
Image of errors im getting
Hi! I'm trying to make sure the hello world example program works before I start making my own projects for university. I followed the instructions on this site: https://docs.espressif/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html#get-started-get-esp-idf. I also configured ESP IDF on vscode with the extension. But, when I loaded up the hello world program, it gave me the two errors about the importing. This is the pytest_hello_world.py file, where I'm getting the errors:
# SPDX-License-Identifier: CC0-1.0
import hashlib
import logging
from typing import Callable
import pytest
from pytest_embedded_idf.dut import IdfDut
from pytest_embedded_qemu.app import QemuApp
from pytest_embedded_qemu.dut import QemuDut
@pytest.mark.supported_targets
@pytest.mark.preview_targets
@pytest.mark.generic
def test_hello_world(
dut: IdfDut, log_minimum_free_heap_size: Callable[..., None]
) -> None:
dut.expect('Hello world!')
log_minimum_free_heap_size()
def verify_elf_sha256_embedding(app: QemuApp, sha256_reported: str) -> None:
sha256 = hashlib.sha256()
with open(app.elf_file, 'rb') as f:
sha256.update(f.read())
sha256_expected = sha256.hexdigest()
logging.info(f'ELF file SHA256: {sha256_expected}')
logging.info(f'ELF file SHA256 (reported by the app): {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')
@pytest.mark.esp32 # we only support qemu on esp32 for now
@pytest.mark.host_test
@pytest.mark.qemu
def test_hello_world_host(app: QemuApp, dut: QemuDut) -> None:
sha256_reported = (
dut.expect(r'ELF file SHA256:\s+([a-f0-9]+)').group(1).decode('utf-8')
)
verify_elf_sha256_embedding(app, sha256_reported)
dut.expect('Hello world!')
Did I not install a specific prereq, or did I mess up the installation in anyway? Btw, I'm on mac os ventura. I'm sorry if this is a stupid question but I've just spent a lot of time redoing the installations but this error keeps popping up. Thank you so much!
Share Improve this question asked Feb 1 at 23:58 ShrishShrish 52 bronze badges 01 Answer
Reset to default 0The python file you are showing is the unit test project, it doesn't work or do anything useful on its own. The ESP-IDF is a C++ framework, you thus need to use C++ to write your program. Check the examples
folder of your hello-world project (read again the "Start a project" section of the linked instructions).