esp-rs / esp-idf-template

A "Hello, world!" template of a Rust binary crate for the ESP-IDF framework.
404 stars 49 forks source link

Testing #11

Closed lkoba closed 2 years ago

lkoba commented 2 years ago

cargo test fails both on cmake and cargo projects:

Compiling rust-probando-tests v0.1.0 (/workdir/rust-probando-tests)
error: linking with `ldproxy` failed: exit status: 1
  |
  = note: "ldproxy" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/rust_probando_tests-b7454db5234f6fbd.2kxikby9yetkb74i.rcgu.o" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/rust_probando_tests-b7454db5234f6fbd.3avceqw8aeykl72w.rcgu.o" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/rust_probando_tests-b7454db5234f6fbd.4scxl40zqo84lyn1.rcgu.o" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/rust_probando_tests-b7454db5234f6fbd.5gmgjumh5nex0nfb.rcgu.o" "-Wl,--as-needed" "-L" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps" "-L" "/workdir/rust-probando-tests/target/debug/deps" "-L" "/opt/rustup/toolchains/esp/lib/rustlib/xtensa-esp32-espidf/lib" "-Wl,-Bstatic" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libtest-1240a78d4c2af68d.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libgetopts-e933c34a0d206322.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libunicode_width-a41b277777faa969.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/librustc_std_workspace_std-ed5dfb3c9b12ee67.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libesp_idf_sys-d6b64b34fcb65cdf.rlib" "-Wl,--start-group" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libstd-43840f1f8cbba82e.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libpanic_abort-18987952604e34e8.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libstd_detect-f2dc5c1bd62eb738.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/librustc_demangle-0b6f33d837cead7a.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libhashbrown-23e693654a4f6df1.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/librustc_std_workspace_alloc-c0d9aaa11f51d8d8.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libunwind-4b9acc803481db28.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libcfg_if-5e8ae41a05611c02.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/liblibc-856729009bd346d0.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/liballoc-b0b73273780e9c1e.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/librustc_std_workspace_core-7dd968a8c02328cc.rlib" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libcore-2fc8e6c2716970dd.rlib" "-Wl,--end-group" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libcompiler_builtins-807d6fa2e73b1452.rlib" "-Wl,-Bdynamic" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/opt/rustup/toolchains/esp/lib/rustlib/xtensa-esp32-espidf/lib" "-o" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/rust_probando_tests-b7454db5234f6fbd" "-Wl,--gc-sections" "-no-pie" "-nodefaultlibs" "--ldproxy-linker" "/workdir/rust-probando-tests/.embuild/platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-gcc" "--ldproxy-dedup-libs" "-L/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf" "-L/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug" "-L/workdir/rust-probando-tests/.embuild/platformio/packages/framework-espidf/components/esp_wifi/lib/esp32" "-L/workdir/rust-probando-tests/.embuild/platformio/packages/framework-espidf/components/esp_rom/esp32/ld" "-L/workdir/rust-probando-tests/.embuild/platformio/packages/framework-espidf/components/xtensa/esp32" "-L/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp32" "-L/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp32/ld" "-L/workdir/rust-probando-tests/.embuild/platformio/packages/framework-espidf/components/esp32/ld" "-Wl,--start-group" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_pm/libesp_pm.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/asio/libasio.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/cbor/libcbor.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/unity/libunity.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/cmock/libcmock.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/coap/libcoap.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/console/libconsole.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_adc_cal/libesp_adc_cal.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_hid/libesp_hid.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/protobuf-c/libprotobuf-c.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/protocomm/libprotocomm.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/mdns/libmdns.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_local_ctrl/libesp_local_ctrl.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_websocket_client/libesp_websocket_client.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/expat/libexpat.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/wear_levelling/libwear_levelling.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/fatfs/libfatfs.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/freemodbus/libfreemodbus.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/jsmn/libjsmn.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/json/libjson.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/libsodium/liblibsodium.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/mqtt/libmqtt.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/openssl/libopenssl.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/spiffs/libspiffs.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/wifi_provisioning/libwifi_provisioning.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/app_trace/libapp_trace.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/app_update/libapp_update.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/bootloader_support/libbootloader_support.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/cxx/libcxx.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/driver/libdriver.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/efuse/libefuse.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp-tls/libesp-tls.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp32/libesp32.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_common/libesp_common.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_eth/libesp_eth.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_event/libesp_event.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_gdbstub/libesp_gdbstub.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_http_client/libesp_http_client.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_http_server/libesp_http_server.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_https_ota/libesp_https_ota.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_hw_support/libesp_hw_support.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_ipc/libesp_ipc.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_netif/libesp_netif.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_ringbuf/libesp_ringbuf.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_rom/libesp_rom.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_serial_slave_link/libesp_serial_slave_link.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_system/libesp_system.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_timer/libesp_timer.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/esp_wifi/libesp_wifi.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/espcoredump/libespcoredump.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/freertos/libfreertos.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/hal/libhal.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/heap/libheap.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/log/liblog.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/lwip/liblwip.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/mbedtls/libmbedtls.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/newlib/libnewlib.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/nghttp/libnghttp.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/nvs_flash/libnvs_flash.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/perfmon/libperfmon.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/pthread/libpthread.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/sdmmc/libsdmmc.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/soc/libsoc.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/spi_flash/libspi_flash.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/tcp_transport/libtcp_transport.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/tcpip_adapter/libtcpip_adapter.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/ulp/libulp.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/vfs/libvfs.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/wpa_supplicant/libwpa_supplicant.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/xtensa/libxtensa.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/mbedtls/mbedtls/library/libmbedtls.a" "/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf/mbedtls/mbedtls/library/libmbedx509.a" "-lcoexist" "-lcore" "-lespnow" "-lmesh" "-lnet80211" "-lpp" "-lsmartconfig" "-lwapi" "-lphy" "-lrtc" "-lxt_hal" "-lc" "-lm" "-lstdc++" "-lgcc" "-Wl,--end-group" "-T" "esp32_out.ld" "-u" "esp_app_desc" "-u" "pthread_include_pthread_impl" "-u" "pthread_include_pthread_cond_impl" "-u" "pthread_include_pthread_local_storage_impl" "-u" "ld_include_panic_highint_hdl" "-u" "start_app" "-u" "start_app_other_cores" "-T" "esp32.rom.ld" "-T" "esp32.rom.api.ld" "-T" "esp32.rom.libgcc.ld" "-T" "esp32.rom.newlib-data.ld" "-T" "esp32.rom.syscalls.ld" "-T" "esp32.rom.newlib-funcs.ld" "-T" "esp32.rom.newlib-time.ld" "-u" "vfs_include_syscalls_impl" "-T" "esp32.project.ld" "-T" "esp32.peripherals.ld" "-u" "call_user_start_cpu0" "-u" "app_main" "-u" "newlib_include_heap_impl" "-u" "newlib_include_syscalls_impl" "-u" "newlib_include_pthread_impl" "-u" "newlib_include_assert_impl" "-u" "__cxa_guard_dummy" "-u" "__cxx_fatal_exception" "-Wl,--Map=/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-8cb26051dc7d79af/out/esp-idf/.pio/build/debug/esp-idf.map" "-Wl,--cref" "-Wl,--gc-sections" "-Wl,--undefined=uxTopUsedPriority" "-Wl,--wrap=_Unwind_Backtrace" "-Wl,--wrap=_Unwind_DeleteException" "-Wl,--wrap=_Unwind_FindEnclosingFunction" "-Wl,--wrap=_Unwind_Find_FDE" "-Wl,--wrap=_Unwind_ForcedUnwind" "-Wl,--wrap=_Unwind_GetCFA" "-Wl,--wrap=_Unwind_GetDataRelBase" "-Wl,--wrap=_Unwind_GetGR" "-Wl,--wrap=_Unwind_GetIP" "-Wl,--wrap=_Unwind_GetIPInfo" "-Wl,--wrap=_Unwind_GetLanguageSpecificData" "-Wl,--wrap=_Unwind_GetRegionStart" "-Wl,--wrap=_Unwind_GetTextRelBase" "-Wl,--wrap=_Unwind_RaiseException" "-Wl,--wrap=_Unwind_Resume" "-Wl,--wrap=_Unwind_Resume_or_Rethrow" "-Wl,--wrap=_Unwind_SetEnableExceptionFdeSorting" "-Wl,--wrap=_Unwind_SetGR" "-Wl,--wrap=_Unwind_SetIP" "-Wl,--wrap=__cxa_call_unexpected" "-Wl,--wrap=__deregister_frame_info" "-Wl,--wrap=__deregister_frame_info_bases" "-Wl,--wrap=__gxx_personality_v0" "-Wl,--wrap=__register_frame" "-Wl,--wrap=__register_frame_info" "-Wl,--wrap=__register_frame_info_bases" "-Wl,--wrap=__register_frame_info_table" "-Wl,--wrap=__register_frame_info_table_bases" "-Wl,--wrap=__register_frame_table" "-Wl,--wrap=longjmp" "-Wl,--wrap=mbedtls_mpi_exp_mod" "-Wno-frame-address" "-fno-lto" "-fno-rtti" "-mlongcalls" "-Og" "-g2" "-ggdb2"
  = note: Running ldproxy
          Error: Linker /workdir/rust-probando-tests/.embuild/platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-gcc failed: exit status: 1
          STDERR OUTPUT:
          /workdir/rust-probando-tests/.embuild/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libstd-43840f1f8cbba82e.rlib(std-43840f1f8cbba82e.std.6bc7c8ea-cgu.3.rcgu.o):(.literal._ZN3std10sys_common6rwlock12StaticRWLock4read17hecf2db04ef3f5c21E.llvm.9098131044882985929+0x0): undefined reference to `pthread_rwlock_rdlock'
          /workdir/rust-probando-tests/.embuild/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/libstd-43840f1f8cbba82e.rlib(std-43840f1f8cbba82e.std.6bc7c8ea-cgu.3.rcgu.o):(.literal._ZN3std3sys4unix6rwlock6RWLock10raw_unlock17h15cdd1c05966faa9E.llvm.9098131044882985929+0x0): undefined reference to `pthread_rwlock_unlock'
          collect2: error: ld returned 1 exit status

  = help: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)

error: could not compile `rust-probando-tests` due to previous error

Is this a local issue on my installation? Which is the recommended way to test an app developed with this template?

Right now I'm moving all the code that doesn't interact with ESP-IDF functions to a different crate and run tests there.

MabezDev commented 2 years ago

That shouldn't happen, as we have a patch for pthread rwlocks for esp-idf 4.3. If you enable the native feature of esp-idf-sys, and use esp-idf 4.4 by putting the following in .cargo/config.toml:

ESP_IDF_VERSION = { value = "branch:release/v4.4" }

That should fix this, but I'm not sure how it happens in the first place. Any ideas @ivmarkov?

ivmarkov commented 2 years ago

@lkoba Is esp_idf_sys::link_patches() being called from your tests?

lkoba commented 2 years ago

No. After adding it there was some progress, I'm getting a different error now.

main.rs

use esp_idf_sys as _;

fn main() {
    esp_idf_sys::link_patches();
    println!("Hello, world!");
}

#[cfg(test)]
mod tests {
    #[test]
    fn one() {
        esp_idf_sys::link_patches();
        assert_eq!(2 + 2, 4);
    }
}

Running cargo test now outputs:

   Compiling rust-probando-tests v0.1.0 (/workdir/rust-probando-tests)
    Finished test [optimized + debuginfo] target(s) in 1.81s
     Running unittests (target/xtensa-esp32-espidf/debug/deps/rust_probando_tests-b7454db5234f6fbd)
/workdir/rust-probando-tests/target/xtensa-esp32-espidf/debug/deps/rust_probando_tests-b7454db5234f6fbd: 1: Syntax error: "(" unexpected
error: test failed, to rerun pass '--bin rust-probando-tests'
ivmarkov commented 2 years ago

I'm taking a step back and trying to understand what you are trying to achieve here with the tests. The key here is that you are cross-compiling. In other words, the binary (your main function) is not complied and cannot run on the host platform:

  1. If your tests do contain ESP-specific code (references to esp-idf-sys, esp-idf-svc, etcetera) then by definition you cannot "run" these tests on the host platform either, as the host platform is not an ESP. So you need a way to "plug" an emulator or a real board into the cargo test capabilities and somehow instruct cargo to (a) compile these tests for ESP and (b) run them inside the emulator. I don't think any of these capabilities are available today with stock cargo test.
  2. If your tests do not contain ESP-specific code - i.e. they are platform-agnostic - you have to push them - together with the platform-agnostic code you are testing into a separate crate that you can compile for the host platform in the first place.

So to summarize, I don't think you can do (1) with cargo test. You can do (2) with cargo test, but only for your platform-independent code, and you need to isolate it in another crate. This link might shed some light here - and - it also seems to contain info how you can do on-target testing using probe-run and stuff: https://ferrous-systems.com/blog/test-embedded-app/

lkoba commented 2 years ago

The link you sent is exactly what I was looking for. Thanks!