Commit Graph

66 Commits

Author SHA1 Message Date
Frantisek Hrbata
b20cd8ccfa feat: use esp-idf-sbom pre-commit plugin
Currently sbom manifest is checked only in .gitmodules and
this check is done in pre-commit and also in CI. Meaning it's running
three times(pre-commit before push if user has it enabled, in CI
as there is the pre-commit run again and again with test in CI). Since
esp-idf-sbom contains a full manifest validation support and pre-commit
plugin for it, let's use it. This removes all the current sbom testing
and replaces it with a signle pre-commit plugin which validates all
manifests files(sbom.yml, idf_component.yml, .gitmodules and also
referenced manifests) in repository. Note that this checks all
manifests, not only ones which were modified. The check is reasonably
fast though, so it should not cause any problem. The reason for
validating all manifest files is that we want to make sure that the sbom
information in .gitmodules is updated too and that the hash
recorded in .gitmodules is up-to-date. Meaning submodule update
would not trigger this plugin, because no manifest was changed.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-12-19 12:55:35 +01:00
Frantisek Hrbata
b947cab073 tools: add sbom information for submodules
This adds SBOM information for submodules, which are not managed
by Espressif. Meaning there is no fork for them in the espressif
namespace. Other submodules should add sbom.yml manifest file to
the root of their git repository.

The SBOM information for submodules is stored in the .gitmodules file.
Each SBOM related variable has the "sbom-" prefix and the following
variables may be used:

sbom-version:
   submodule version

sbom-cpe:
   CPE record if available in NVD. This will be used by the SBOM
   tool to check for possible submodule vulnerabilities. The
   version in the CPE can be replaced with the "{}" placeholder,
   which will be replaced by the "sbom-version" value from above.

sbom-supplier:
   Person or organization who is providing the submodule.
   It has to start with "Person:" or "Organization:" prefix
   as required by the SPDX-2.2 standard.

sbom-url:
   URL to the project if exists, e.g. github.

sbom-description:
   Project description.

sbom-hash:
   Submodule SHA as recorded in the git-tree. This field is used by
   CI to check that the submodule checkout hash and info in .gitmodules
   are in sync. IOW if submodule is updated and it has SBOM info in
   .gitmodules, the .gitmodules has to be updated too. The test is
   part of this commit. The checkout has of the submodule can be found
   by using "git submodule status".

Example for micro-ecc submodule
---8<---
[submodule "components/bootloader/subproject/components/micro-ecc/micro-ecc"]
	path = components/bootloader/subproject/components/micro-ecc/micro-ecc
	url = ../../kmackay/micro-ecc.git
	sbom-version = 1.0
	sbom-cpe = cpe:2.3🅰️micro-ecc_project:micro-ecc:{}:*:*:*:*:*:*:*
	sbom-supplier = Person: Ken MacKay
	sbom-url = https://github.com/kmackay/micro-ecc
	sbom-description = A small and fast ECDH and ECDSA implementation for 8-bit, 32-bit, and 64-bit processors
	sbom-hash = d037ec89546fad14b5c4d5456c2e23a71e554966
---8<---

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-06-27 10:05:29 +02:00
Alexey Lapshin
e092b58696 coredump: remove tests (moved to esp-coredump repo) 2023-05-16 12:49:13 +08:00
Zim Kalinowski
20db248fb2 cxx: removed cxx experimental components 2023-03-05 10:23:28 +01:00
Martin Vychodil
af81bd1b0a Storage: Partition APIs moved to the new component 'esp_partition'
All the partition handling API functions and data-types were moved from the 'spi_flash' component to the new one named 'esp_partition'. See Storage 5.x migration guide for more details
2022-11-02 21:49:08 +01:00
Mahavir Jain
6db611ceb6
ci: update coredump elf repository tag 2022-10-04 10:24:45 +05:30
Alexey Lapshin
ca313c8d28 ci: fix test_idf_tools dependencies 2022-08-29 15:41:14 +04:00
Fu Hanxi
b88c6f0951 ci: test_idf_tools use system python 2022-08-23 10:45:28 +08:00
Fu Hanxi
da5a5b52c8 ci: simplify the python env to idf venv only 2022-08-23 10:45:28 +08:00
Fu Hanxi
9653af8d04 Merge branch 'ci/cache_submodules' into 'master'
CI: cache submodules

Closes IDFCI-1158

See merge request espressif/esp-idf!19009
2022-07-14 20:34:34 +08:00
Fu Hanxi
62ca8e2fb4 ci: cache submodules 2022-07-14 14:08:16 +08:00
Fu Hanxi
05d2357062 feat: use standalone project idf-build-apps for find/build apps utils 2022-07-14 08:26:31 +08:00
Fu Hanxi
46bac6427a ci: default python version 3.7.10 2022-07-14 08:26:01 +08:00
gabsuren
d413a71f61 mdns: Remove internal component, examples, test and docs 2022-06-29 17:30:34 +04:00
David Čermák
a6980a6b6a Merge branch 'bugfix/mqtt_host_test' into 'master'
MQTT: Fix compilation of networking host tests

Closes IDF-4286

See merge request espressif/esp-idf!18099
2022-06-13 13:13:00 +08:00
David Cermak
1ad3e2db17 mqtt: Fix and add mqtt host test to CI 2022-06-11 14:23:30 +02:00
Fu Hanxi
f20a747a26 ci: upload cache only when requirements txt changed 2022-06-08 08:19:35 +08:00
Fu Hanxi
4746a71028 ci: add qemu example 2022-05-21 00:11:59 +08:00
Martin Gaňo
005af75da3 Added FATFS partition parser 2022-05-16 14:32:17 +02:00
Aleksei Apaseev
528cdc1546 core_dump: split corefile and coredump script from idf into a separate package 2022-03-24 13:57:48 +08:00
David Cermak
5b236679b8 ci/mdns: Add new mdns fuzzer job for no-service test 2022-02-24 11:01:26 +01:00
Tomas Sebestik
fb12d03dc3 Drop Python 3.6 2022-02-10 07:20:52 +01:00
Roland Dobai
b28d7e6850 Tools: Improve the Python package system
Introduce features into the Python package management system & manage
package versions outside of ESP-IDF repo.
2022-01-17 16:54:36 +01:00
Fu Hanxi
73c5644044 ci: update dockerfile to 5.0 2022-01-07 16:18:32 +08:00
Fu Hanxi
172854a850 refactor: rewrite ldgen fragment file parser
closes https://github.com/espressif/esp-idf/issues/7940
2022-01-07 16:18:32 +08:00
Ivan Grokhotkov
09e50b27ed cmake: handling of space-separated EXTRA_COMPONENT_DIRS
COMPONENT_DIRS and EXTRA_COMPONENT_DIRS should be defined as CMake
lists, using 'set' or 'list' commands. Some applications written
for earlier versions of ESP-IDF used to define these variables as
space separated strings.

For example, the following is correct:

  set(EXTRA_COMPONENT_DIRS path/to/components path/to/more/components)

The following is not correct:

  set(EXTRA_COMPONENT_DIRS "${EXTRA_COMPONENT_DIRS} component1")
  set(EXTRA_COMPONENT_DIRS "${EXTRA_COMPONENT_DIRS} component2")

The string "component1 component2" may indicate a single directory
name with a space, or two directory names separated by space.

However due to the fact that such way of defining EXTRA_COMPONENT_DIRS
was supported in IDF 4.3 and earlier, we need to provide backward
compatibility for it.

This commit introduces a new script, split_paths_by_spaces.py, which
is invoked if EXTRA_COMPONENT_DIRS or COMPONENT_DIRS variable contains
spaces. The script tries to determine if each space should be
interpreted as a separator or as part of the directory name.

When this cannot be done unambiguously, the script reports an error.

In all cases when space separators are detected, the script reports
a warning, and prints instructions for fixing the CMakeLists.txt.

Breaking change in this commit: specifying non-existent directories
in COMPONENT_DIRS or EXTRA_COMPONENT_DIRS is no longer allowed.
2021-12-14 19:17:53 +01:00
Marius Vikhammer
c6d60615c6 build-system: include soc_caps defines into kconfig
Adds gen_soc_caps_kconfig.py which parses the soc caps (soc_caps.h) into
a format that can be included in kconfig.
2021-12-06 12:37:07 +08:00
Martin Gano
7460deeae8 support for wear levelling in fatfs partition generator
Closes https://github.com/espressif/esp-idf/issues/5785
2021-11-29 16:57:47 +01:00
Ivan Grokhotkov
0b376251df Merge branch 'feature/kconfig_for_reproducible_build' into 'master'
Feature: kconfig for reproducible build

See merge request espressif/esp-idf!15100
2021-11-04 22:07:29 +00:00
Martin Gano
3c4034d36e support for generating FATFS on a host 2021-11-03 13:06:11 +01:00
Jakob Hasse
1eb96cfc79 feat (driver)!: Added mocking for i2c.h
BREAKING CHANGE: removed ringbuf.h from public i2c.h
2021-11-02 14:16:31 +08:00
Fu Hanxi
9919b75ec1 build: add CONFIG_APP_REPRODUCIBLE_BUILD menuconfig option to produce reproducible binaries 2021-10-26 10:43:15 +08:00
Jakob Hasse
7efb01846f [cxx]: simple spi master class
* spi cxx unit test (CATCH-based, on host)
* added portmacro.h to driver mocking
* added simple testing app to write/read SPI,
  using an MPU9250
2021-10-25 14:56:59 +08:00
Anton Maklakov
1d3a47e10a coredump: update test data for toolchain 2021r2 2021-10-20 22:00:39 +07:00
Fu Hanxi
811ed96042 example: auto restart int the linux hello world example 2021-10-18 11:50:50 +08:00
Marek Fiala
ff18a96f7d tools: replace _ with - in idf.py
Closes https://github.com/espressif/esp-idf/issues/5126
2021-10-13 17:30:38 +08:00
Jakob Hasse
418303d38a [examples]: fixed linux host example 2021-09-15 13:52:35 +08:00
dmitry
5d859f1404 Add Esp32s3 to the coredump component.
Add changed expected_output for esp32, esp32s2 and esp32c3. coredump tag update.
2021-09-13 05:20:34 -04:00
Fu Hanxi
220590d599 Merge branch 'ci/coredump_elf_workflow' into 'master'
ci: improve test_coredump workflow

See merge request espressif/esp-idf!15138
2021-09-10 07:11:47 +00:00
Fu Hanxi
54b8df81c8 ci: fix host-test.yml 2021-09-10 10:02:08 +08:00
Fu Hanxi
9af984f8e7 ci: improve test_coredump workflow
use commit sha to let it pass in MRs' CI pipelines
2021-09-09 18:37:48 +08:00
Zim Kalinowski
f65c8249af Merge branch 'feature/esp_docs' into 'master'
docs: update to use esp-docs

Closes IDF-3105

See merge request espressif/esp-idf!13333
2021-08-24 00:56:57 +00:00
Marius Vikhammer
7411321603 docs: update to use esp-docs 2021-08-24 08:56:48 +08:00
Jakob Hasse
46e59e7194 [mocks]: moved already added spi_flash mocks
[nvs]: page test works with new overriden mock

[spi_flash]: Removed mocking code from CMake

* Renamed nvs test to be consistent with other
  host test
2021-08-18 11:05:51 +08:00
Jakob Hasse
ca12c92877 [esp_timer]: created mock override component 2021-08-13 15:00:39 +08:00
Jakob Hasse
c9984faaef [mocks]: freertos mock
[esp_event]: added preliminary host-based tests
2021-08-06 17:08:21 +08:00
Jakob Hasse
06956d46c1 [cxx]: GPIO CXX wrappers, experiemental CI rule
* Wrapper class for simple GPIO interaction
  like read/write without ISRs.
* Added rule to provoke builds after changes in
  the experimental C++ component.
2021-08-03 19:51:21 +08:00
Jakob Hasse
4dd88329c1 [esp_rom]: Partially buildable for linux
The following files have been ported:
* esp_rom_crc.h
* esp_rom_sys.h
* esp_rom_efuse.h (mostly no-ops)
* esp_rom_md5.h

Integrated Linux-based rom implementation into log
and NVS component.

Added brief host tests for ROM to ensure basic
consistency on Linux.

Added ROM printf host unit tests.

Temporarily added reset reason for Linux in ROM.
2021-08-03 12:03:24 +08:00
Konstantin Kondrashov
76a4340bf7 Merge branch 'bugfix/efuse_table_for_c3' into 'master'
efuse: Fix len of SOFT_DIS_JTAG for esp32c3 and esp32h2

Closes IDF-3577

See merge request espressif/esp-idf!14389
2021-07-22 08:47:34 +00:00
Fu Hanxi
12f0b55ca9 test(coredump): refactor coredump test and add esp32s2/esp32c3 tests 2021-07-22 10:17:59 +08:00