Skip to content

Commit 3d09bb9

Browse files
committed
add more tools and frameworks, add lychee link checking GHA
1 parent 2b91ea2 commit 3d09bb9

File tree

3 files changed

+84
-1
lines changed

3 files changed

+84
-1
lines changed

.github/workflows/links.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Links
2+
3+
on:
4+
repository_dispatch:
5+
workflow_dispatch:
6+
schedule:
7+
- cron: "00 18 * * *"
8+
9+
jobs:
10+
linkChecker:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
issues: write # required for peter-evans/create-issue-from-file
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Link Checker
18+
id: lychee
19+
uses: lycheeverse/lychee-action@v2
20+
with:
21+
fail: false
22+
23+
- name: Create Issue From File
24+
if: steps.lychee.outputs.exit_code != 0
25+
uses: peter-evans/create-issue-from-file@v5
26+
with:
27+
title: Link Checker Report
28+
content-filepath: ./lychee/out.md
29+
labels: report, automated issue

README.md

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Embedded Testing
22
[![Awesome](https://awesome.re/badge.svg)](https://awesome.re)
3+
[![Check Links](https://github.com/onmcu/awesome-embedded-testing/actions/workflows/links.yml/badge.svg)](https://github.com/org/repo/actions/workflows/links.yml)
34

45
Curated list of tools and resources for testing Embedded and Low-level software
56

@@ -9,9 +10,51 @@ Curated list of tools and resources for testing Embedded and Low-level software
910
- [Books, blogs and training materials](#books-blogs-and-training-materials)
1011
- [Test Frameworks](#test-frameworks)
1112
- [Rust Test Frameworks](#rust-test-frameworks)
13+
- [General Embedded Testing Frameworks](#general-embedded-testing-frameworks)
14+
- [Mocking and Hardware Simulation](#mocking-and-hardware-simulation)
15+
- [Embedded Integration & Continuous Integration (CI)](#embedded-integration--continuous-integration-ci)
16+
- [Static & Dynamic Analysis](#static--dynamic-analysis)
17+
- [Embedded-Specific Testing Techniques & Tools](#embedded-specific-testing-techniques--tools)
18+
- [Test Automation & Hardware-in-the-Loop (HIL)](#test-automation--hardware-in-the-loop-hil)
19+
- [Examples & Reference Projects](#examples--reference-projects)
1220

1321
## Books, blogs and training materials
1422

1523
## Test Frameworks
1624
### Rust Test Frameworks
17-
- https://crates.io/crates/embedded-test **Rust** test harness and runner for embedded devices [![crates.io](https://img.shields.io/crates/v/embedded-test.svg)](https://crates.io/crates/embedded-test)
25+
- **[embedded-test](https://crates.io/crates/embedded-test)** Rust test harness and runner for embedded devices ![Lang: Rust](https://img.shields.io/badge/Lang:-Rust-fe7d37)
26+
27+
### General Embedded Testing Frameworks
28+
- **[Ceedling/Unity](https://github.com/ThrowTheSwitch/Ceedling)** – Popular C-based unit testing and build framework, great for small to medium-sized embedded projects. ![Lang: C](https://img.shields.io/badge/Lang:-C-blue)
29+
- **[GoogleTest (gtest)](https://github.com/google/googletest)** – Widely used and highly customizable C++ testing framework, commonly adopted in embedded C++ projects. ![Lang: C++](https://img.shields.io/badge/Lang:-C++-violet)
30+
- **[CppUTest](https://github.com/cpputest/cpputest)** – Flexible testing framework tailored specifically to embedded software, emphasizing memory safety and simplicity. ![Lang: C++](https://img.shields.io/badge/Lang:-C++-violet)
31+
- **[Catch2](https://github.com/catchorg/Catch2)** – Modern C++ testing framework known for ease of use and expressive assertions, lightweight enough for embedded targets. ![Lang: C++](https://img.shields.io/badge/Lang:-C++-violet)
32+
33+
### Mocking and Hardware Simulation
34+
- **[CMock](https://github.com/ThrowTheSwitch/CMock)** – Generates mock objects automatically for C, ideal for testing interactions with hardware-dependent code. ![Lang: C](https://img.shields.io/badge/Lang:-C-blue)
35+
- **[Fake Function Framework (FFF)](https://github.com/meekrosoft/fff)** – Lightweight, simple mocking framework for C-based embedded software. ![Lang: C](https://img.shields.io/badge/Lang:-C-blue)
36+
- **[Renode](https://github.com/renode/renode)** – Powerful framework for hardware simulation and testing, allowing execution and debugging of embedded binaries without actual hardware. ![Lang: Multi](https://img.shields.io/badge/Lang:-Multi-blueviolet)
37+
- **[QEMU](https://github.com/qemu/qemu)** – Widely adopted open-source emulator, very useful for full-system simulation of embedded platforms during testing. ![Lang: Multi](https://img.shields.io/badge/Lang:-Multi-blueviolet)
38+
- **[embedded-hal-mock](https://github.com/dbrgn/embedded-hal-mock)** – Mocks for testing embedded-hal based drivers without hardware access. ![Lang: Rust](https://img.shields.io/badge/Lang:-Rust-fe7d37)
39+
40+
### Embedded Integration & Continuous Integration (CI)
41+
- **[PlatformIO](https://github.com/platformio/platformio-core)** – Cross-platform build tool and package manager, ideal for automating builds and tests for embedded projects. ![Lang: Multi](https://img.shields.io/badge/Lang:-Multi-blueviolet)
42+
- **[Embench](https://github.com/embench/embench-iot)** – Open-source benchmarking suite specifically targeting IoT-class embedded systems. ![Lang: Multi](https://img.shields.io/badge/Lang:-Multi-blueviolet)
43+
- **[Robot Framework](https://github.com/robotframework/robotframework)** – Generic acceptance-test automation framework, commonly used for higher-level integration and system tests. ![Lang: Python](https://img.shields.io/badge/Lang:-Python-3775A9)
44+
45+
### Static & Dynamic Analysis
46+
- **[Cppcheck](https://github.com/danmar/cppcheck)** – Popular static analysis tool specifically tailored for C and C++ codebases. ![Lang: C/C++](https://img.shields.io/badge/Lang:-C/C++-fe7d37)
47+
- **[Valgrind](https://github.com/paulfloyd/freebsd_valgrind)** – Dynamic analysis tool useful for memory leak detection and error tracking. ![Lang: Multi](https://img.shields.io/badge/Lang:-Multi-blueviolet)
48+
- **[Clang Sanitizers](https://github.com/google/sanitizers)** – Effective runtime debugging tools for detecting memory safety errors in embedded C/C++ applications. ![Lang: C/C++](https://img.shields.io/badge/Lang:-C/C++-fe7d37)
49+
50+
### Embedded-Specific Testing Techniques & Tools
51+
- **[Embedded Artistry's Embedded Testing Guides](https://github.com/embeddedartistry/embedded-resources)** – Curated resources and examples for best practices in embedded software testing. ![Lang: Multi](https://img.shields.io/badge/Lang:-Multi-blueviolet)
52+
- **[Tracealyzer](https://github.com/Percepio)** *(Commercial with free tiers)* – Real-time trace visualization for debugging and performance analysis of embedded systems. ![Lang: Multi](https://img.shields.io/badge/Lang:-Multi-blueviolet)
53+
54+
### Test Automation & Hardware-in-the-Loop (HIL)
55+
- **[Labgrid](https://github.com/labgrid-project/labgrid)** – Automation framework for hardware-in-the-loop testing, integrates smoothly with continuous integration. ![Lang: Python](https://img.shields.io/badge/Lang:-Python-3775A9)
56+
- **[OpenHTF](https://github.com/google/openhtf)** – Hardware testing framework from Google designed for automated manufacturing tests and HIL testing. ![Lang: Python](https://img.shields.io/badge/Lang:-Python-3775A9)
57+
58+
### Examples & Reference Projects
59+
- **[Nasa JPL's F Prime](https://github.com/nasa/fprime)** – NASA's open-source flight software framework, extensively tested and validated. ![Lang: C++](https://img.shields.io/badge/Lang:-C++-violet)
60+
- **[LittlevGL](https://github.com/lvgl/lvgl)** – Embedded GUI library extensively using unit tests and automated integration testing. ![Lang: C](https://img.shields.io/badge/Lang:-C-blue)

badges.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Languages
2+
- C: ![Lang: C](https://img.shields.io/badge/Lang:-C-blue)
3+
- C++: ![Lang: C++](https://img.shields.io/badge/Lang:-C++-violet)
4+
- Rust: ![Lang: Rust](https://img.shields.io/badge/Lang:-Rust-fe7d37)
5+
- Python: ![Lang: Python](https://img.shields.io/badge/Lang:-Python-yellow)
6+
7+
8+
9+
## Rust
10+
11+
- Crates: [![crates.io](https://img.shields.io/crates/v/embedded-test.svg)](https://crates.io/crates/embedded-test)

0 commit comments

Comments
 (0)