223 Commits

Author SHA1 Message Date
Jeroen Domburg
a88e719e33 feat(driver): BitScrambler support
This adds an assembler for the BitScrambler assembly language,
plus unit tests for it. It also adds the loopback driver,
which can do BitScrambler operations on memory-to-memory
transfers. Documentation is also included.
2024-12-30 09:39:23 +08:00
Frantisek Hrbata
949f6cb9f7 feat(tools): add idf.py diag reporting tool
The initial implementation of a diagnostic tool that collects valuable
information about esp-idf and failed build to assist in investigating
reported issues.

The gathered information includes environmental variables, details about
the python virtual environment, installed tools, platform information,
project_description.json, sdkconfig, build logs, map file, linker
scripts, and others.

usage:

1) create the default report

   # allow diag to create the report directory name
   $ idf.py diag
   # explicitly specify the report directory
   $ idf.py diag --output <report directory>

2) examine the contents of the generated <report directory> for
   sensitive information and add additional content to the
   <report directory>

3) create report archive zip file that can be shared or attached to
   the reported issue

   $ idf.py diag --zip <report directory>

The tool collects information as described in what are known as recipe
files. A recipe file is a YAML file, similar to an Ansible playbook or a
GitHub action, but much more simplified. Each recipe outlines how to
gather a set of related information. For instance, the manager.yml
recipe gathers data related to the component manager. Each recipe
includes metadata such as its description, tags, and steps. Tags are
used to determine which recipes to use; by default, all built-in recipes
located in tools/idf_py_actions/diag/recipes are used. Steps consist of
a list of commands to be executed. Currently, there are four commands:
file, exec, env, and glob. For more detailed information about recipes,
their format, and commands, please refer to
tools/idf_py_actions/diag/recipes/README.md.

Recipe example for component manager:

description: IDF Component Manager information
tags: [manager, base, project]
output: manager
steps:
  - name: 'IDF Component Manager'
    cmds:
      - exec:
        cmd: 'python -m idf_component_manager version'
        output: manager.ver
      - file:
        path: '${PROJECT_DIR}/dependencies.lock'
      - glob:
        # Gather all idf_component.yml files from the project directory and
        # save them in directories relative to the project directory within
        # the idf_component directory.
        pattern: 'idf_component.yml'
        recursive: true
        relative: true
        path: '${PROJECT_DIR}'
        output: 'idf_component/'

Create report for manager

1) all recipes with manager tag

   $ idf.py diag --tag manager

2) use only the manager recipe explicitly; built-in recipes can be
   referenced simply by their name, but all recipes can be referenced
   by their path

   $ idf.py diag --recipe manager
   or
   $ idf.py diag --recipe <full path>

To display available recipes, use

   $ idf.py diag --list

and to verify recipes, use

   $ idf.py diag --check

Both --list and --check honers the --tag and --recipe options.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-12-27 12:08:59 +01:00
Fu Hanxi
647c9bcc53
ci: temp disable sonarqube check. keep it for migrating to codechecker 2024-10-22 13:29:29 +02:00
Fu Hanxi
44c0faed43 ci: add manual job to make sure soc caps are parsed seamlessly 2024-09-23 09:46:36 +08:00
Marek Fiala
88527faff8 feat(tools): Added Windows shells support + refactoring 2024-09-05 10:13:04 +02:00
Ivan Grokhotkov
fc4c445643
test(build_system): move reproducible build test to pytest 2024-08-11 20:24:03 +02:00
morris
dd46392a66 feat(ci): check LL functions not read write register by half word 2024-06-18 14:58:41 +08:00
Aleksei Apaseev
40c8a16ad4 ci: add known failure cases to the target test report
target test report:
- refactor the methods to ensure reusability
- cover report generation with tests
- introduce a known failure tests block in report
- add grafana link to testcases dashboard
2024-05-28 15:36:22 +08:00
Frantisek Hrbata
9df59a2193 ci: add simple test for idf_size.py python compatibility
This adds a simple test that tries to run idf_size.py help and check
if the process does not exit with error. This is just to make sure
that idf_size.py can be used with minimum required python version.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-05-08 13:38:19 +02:00
Fu Hanxi
d60c435935
ci: add c5-bt-lib in submodule patterns
also fix the pattern that triggers the check
2024-04-09 12:37:30 +02:00
Roland Dobai
0e318fb6fc fix(ci): Change expected message in tests after dependency checker update
This should fix the tests after 5f798eb78b20a3dfdc2e5c6c1ce9a2215def9a9c
has changed the error message.
2024-02-22 08:03:29 +01:00
Marius Vikhammer
852a33f32d ci(build): always build apps if gnore_build_warnings.txt changes 2024-01-29 14:24:57 +08:00
Shu Chen
86cf144aa7 feat(ieee802154): remove the ieee802154 lib submodule 2024-01-25 18:59:09 +08:00
Fu Hanxi
fba96d58c2
ci: dynamic pipeline
build:
- upgrade idf-build-apps to 2.x
- unify get_pytest_apps and get_cmake_apps to get_all_apps
	- returns (test_apps, non_test_apps) tuple
- add tests for the new get_all_apps

assign:
- generate build report
- generate target test pipeline based on the build report

target test:
- download artifacts from minio server
- users can use `pytest --pipeline-id xxxxx` to download and flash
the binaries from the artifacts

.post:
- generate target test reports
2024-01-10 15:37:34 +01:00
Fu Hanxi
114af706bb
ci(wifi): migrate from .gitlab/ci/rules.yml to .build-test-rules.yml 2024-01-10 15:31:21 +01:00
Fu Hanxi
bb375ee79a
ci(ethernet): migrate from .gitlab/ci/rules.yml to .build-test-rules.yml 2024-01-10 15:31:11 +01:00
Fu Hanxi
83d4e8c6ab
ci(flash_encryption_wifi_high_traffic): migrate from .gitlab/ci/rules.yml to .build-test-rules.yml 2024-01-10 15:30:53 +01:00
Fu Hanxi
6f6092ed8d
ci(sdio): migrate from .gitlab/ci/rules.yml to .build-test-rules.yml 2024-01-10 15:30:52 +01:00
Fu Hanxi
d44f236f7b
ci(usb): migrate from .gitlab/ci/rules.yml to .build-test-rules.yml 2024-01-10 15:29:44 +01:00
Fu Hanxi
ed1c892a8a
ci(adc): migrate from .gitlab/ci/rules.yml to .build-test-rules.yml 2024-01-10 15:29:44 +01:00
Fu Hanxi
9a9b1cd11f
ci(ecdsa): migrate from .gitlab/ci/rules.yml to .build-test-rules.yml 2024-01-10 15:29:43 +01:00
Fu Hanxi
7138b977f8
ci(nvs_encr_hmac): migrate from .gitlab/ci/rules.yml to .build-test-rules.yml 2024-01-10 15:29:43 +01:00
Fu Hanxi
3645c041e2
ci(flash_multi): migrate from .gitlab/ci/rules.yml to .build-test-rules.yml 2024-01-10 15:29:43 +01:00
Fu Hanxi
b6a93bf81e
ci(i154): migrate from .gitlab/ci/rules.yml to .build-test-rules.yml 2024-01-10 15:29:42 +01:00
Fu Hanxi
b709c880dd
ci: add linter for gitlab yaml files
- remove duplicated artifacts default values
- migrate check_artifacts_expire_time.py
- migrate check_rules_yml.py
2024-01-10 15:29:42 +01:00
laokaiyao
d0a8f3e5c4 feat(esp32c5): support esptool on esp32c5 beta3 2024-01-09 13:11:11 +08:00
Armando
1ab742b3c3 ci(p4): enable esp32p4 target test 2024-01-04 09:34:55 +08:00
Xu Si Yu
13fa6c7af2 feat(ieee802154): Add ieee802154 CLI example 2024-01-03 19:05:16 +08:00
Chen Yudong
77597f7ac8 ci: do not upload caches for dev branches by default 2023-12-19 20:36:55 +08:00
Chen Yudong
ff015d1872 ci: differnet cache key for different idf ver
update caches on release tags and nightly schedules
2023-12-19 16:56:53 +08:00
Fu Hanxi
d3858b493d
ci: run pytest_build_system_win only with labels and schedule pipeline 2023-12-07 11:15:55 +01:00
Frantisek Hrbata
5df4decf07 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-06 10:08:54 +01:00
Roland Dobai
9c4b657ac3 Merge branch 'feature/add_windows_pytest' into 'master'
Tools: Add pytest build system on Windows runner

Closes IDF-7691, IDF-8214, and IDF-1193

See merge request espressif/esp-idf!26603
2023-12-01 16:40:13 +08:00
Liu Linyan
9879615053 Merge branch 'update/ble_mesh_put_lib_in_submodule' into 'master'
fix(ble_mesh): Put Mesh 1.1 lib files in submodule

Closes IDFCI-1860

See merge request espressif/esp-idf!26987
2023-12-01 09:56:19 +08:00
Roland Dobai
bc1d74bb88 fix(ci): Remove unittest-xml-reporting dependency from host tests 2023-11-30 14:03:41 +01:00
Liu Linyan
94d3f5037b fix(ble_mesh): Use submodule for mesh 1.1 lib files 2023-11-30 16:56:58 +08:00
Marek Fiala
0a3b57e48a feat(tools): Add pytest build system on Windows runner 2023-11-29 23:10:37 +01:00
Roland Dobai
cad04baba1 feat(ci): Merge tool test jobs and produce jUnit reports 2023-11-27 09:11:35 +01:00
Armando
b860930545 ci(sdio): updated sdio rules.yml 2023-11-22 14:23:14 +08:00
Chen Yudong
f1c6bc9e68 ci: remove unused integration test rules 2023-10-25 14:16:45 +08:00
Fu Hanxi
ad9b07f589
ci: add idf_pytest package into patterns to trigger target test jobs 2023-10-23 08:54:02 +02:00
Marius Vikhammer
6a3cf1faa2 ci(build): add idf.py and idf.py actions as trigger for build-system test 2023-10-21 12:40:02 +08:00
Chen Yudong
f1d8927ba0 ci: add qa-test-tag rules 2023-10-18 13:01:07 +08:00
Chen Yudong
1a2953ae13 ci: dynamic integration test child pipeline 2023-10-18 12:59:29 +08:00
Fu Hanxi
4dbf8c8948
ci: remove ttfw related files 2023-10-16 10:23:09 +02:00
Fu Hanxi
79bc66b323
ci: upload to minio server instead of gitlab artifacts for pytest jobs 2023-10-13 13:01:23 +02:00
Fu Hanxi
6be05d415b
ci: remove unit-test-app ci jobs 2023-10-13 13:01:16 +02:00
Ondrej Kosta
4f6c86ebb8 Merge branch 'feature/extend_eth_test_targets' into 'master'
CI tests for all supported Ethernet tests

Closes IDF-5704

See merge request espressif/esp-idf!24468
2023-10-13 18:44:10 +08:00
Peter Dragun
95b764970e Merge branch 'feat/uf2-to-esptool' into 'master'
feat(tools): move uf2 file generation to esptool

Closes IDF-7434

See merge request espressif/esp-idf!25655
2023-10-12 16:03:16 +08:00
Ondrej
3a3656ba38 ci(esp_eth): added tests of all supported Etherent chips 2023-10-12 07:23:51 +00:00