Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .coverage
Binary file not shown.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ jobs:
"
- name: Platform count check
run: |
count=$(ls -d platforms/*/platform.yml 2>/dev/null | wc -l)
count=$(ls -d eosim/platforms/*/platform.yml 2>/dev/null | wc -l)
echo "Platform count: $count"
if [ "$count" -lt 100 ]; then
echo "::warning::Platform count ($count) is below 100"
Expand Down
60 changes: 54 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,15 +212,63 @@ The optional Tkinter GUI provides:
| Repo | Description |
|---|---|
| [eos](https://github.com/embeddedos-org/eos) | Embedded OS — HAL, RTOS kernel, drivers, services |
| [eboot](https://github.com/embeddedos-org/eboot) | Bootloader — 24 board ports, secure boot, A/B slots |
| [eBoot](https://github.com/embeddedos-org/eBoot) | Bootloader — secure boot, A/B slots, recovery |
| [ebuild](https://github.com/embeddedos-org/ebuild) | Build system — SDK generator, packaging |
| [eipc](https://github.com/embeddedos-org/eipc) | IPC framework — Go + C SDK, HMAC auth |
| [eai](https://github.com/embeddedos-org/eai) | AI layer — LLM inference, agent loop |
| [eni](https://github.com/embeddedos-org/eni) | Neural interface — BCI, Neuralink adapter |
| [eApps](https://github.com/embeddedos-org/eApps) | Cross-platform apps — 38 C + LVGL apps |
| [EoStudio](https://github.com/embeddedos-org/EoStudio) | Design suite — 10 editors with LLM integration |
| [eFirmware](https://github.com/embeddedos-org/eFirmware) | `.efw` image format and `efwtool` |
| [eIPC](https://github.com/embeddedos-org/eIPC) | IPC framework — Go + C SDK, HMAC auth |
| [eAI](https://github.com/embeddedos-org/eAI) | AI layer — LLM inference, agent loop |
| [eNI](https://github.com/embeddedos-org/eNI) | Neural interface — BCI adapters |
| [eDB](https://github.com/embeddedos-org/eDB) | Embedded data and storage service |
| [eApps](https://github.com/embeddedos-org/eApps) | Cross-platform apps — C + LVGL |
| [EoStudio](https://github.com/embeddedos-org/EoStudio) | Design suite — editors with LLM integration |
| **EoSim** | **Simulation platform (this repo)** |

Repository names are case-sensitive on Linux filesystems. They are written here
exactly as they are on disk, because getting that wrong is not a cosmetic
mistake: the ecosystem runner once held a hardcoded list of lowercase names
(`eboot`, `eipc`, `eni`) and consequently discovered 2 of the 19 repositories,
silently skipping the rest.

### Testing the whole organisation

`eosim.integrations.ecosystem` builds and tests every repository in the
workspace, so one command covers the platform rather than each repo separately.

```python
from eosim.integrations.ecosystem import find_repos, test_repo_all

for name, path in sorted(find_repos("/path/to/workspace").items()):
for result in test_repo_all(name, path):
print(result.repo, result.kind, result.status,
result.tests_passed, result.tests_failed)
```

Repositories are found by inspecting the workspace, not from a list, and each
one's build systems are detected from the files it actually contains —
including below the root, so a repo whose firmware lives in
`firmware/build-system/` is built rather than skipped. A repo with more than one
build system is exercised through all of them; reporting only the primary is how
a broken CMake build stays invisible behind a green Python suite.

Statuses are deliberately distinct, because they call for different responses:

| Status | Meaning |
|---|---|
| `PASS` | Built and its tests passed |
| `FAIL` | Built and its tests failed, or the repo's own build is broken |
| `DEPS` | The suite would run, but a dependency is absent from this environment — an unset `*_SDK_PATH`, a failed `find_package`, an uninstalled Python module, `npm ci` not run |
| `SKIP` | Nothing to test |
| `ERROR` | The runner itself could not complete |

`DEPS` is separated from `FAIL` on purpose. "Install the nRF5 SDK" and "this
CMakeLists references a source file that does not exist" are opposite problems,
and a single red status would hide which one you have.

Counts are whatever the underlying runner printed. They are never derived from
an exit status — an earlier version inferred `tests_passed` from a successful
build, which made every repo that compiled report a passing suite whether or not
it had run a single test.

## Security

### QEMU Connection Security
Expand Down
14 changes: 7 additions & 7 deletions eosim.egg-info/PKG-INFO
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
Metadata-Version: 2.4
Name: eosim
Version: 3.0.1
Summary: World-class multi-architecture embedded simulation platform — 150+ platforms, 40 domains, 26 architectures
Summary: Multi-architecture embedded simulation platform for EoS — native engine plus Renode/QEMU backends
Author-email: EoS Project <[email protected]>
Maintainer-email: EoS Project <[email protected]>
License: MIT
Project-URL: Homepage, https://github.com/embeddedos-org/eosim
Project-URL: Repository, https://github.com/embeddedos-org/eosim
Project-URL: Documentation, https://github.com/embeddedos-org/eosim/tree/main/docs
Project-URL: Bug Tracker, https://github.com/embeddedos-org/eosim/issues
Project-URL: Changelog, https://github.com/embeddedos-org/eosim/blob/main/CHANGELOG.md
Classifier: Development Status :: 5 - Production/Stable
Project-URL: Homepage, https://github.com/embeddedos-org/EoSim
Project-URL: Repository, https://github.com/embeddedos-org/EoSim
Project-URL: Documentation, https://docs.eosim.io
Project-URL: Bug Tracker, https://github.com/embeddedos-org/EoSim/issues
Project-URL: Changelog, https://github.com/embeddedos-org/EoSim/blob/master/CHANGELOG.md
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Expand Down
203 changes: 203 additions & 0 deletions eosim.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ eosim/cli/__init__.py
eosim/cli/main.py
eosim/codegen/__init__.py
eosim/codegen/generator.py
eosim/config/__init__.py
eosim/config/production.py
eosim/core/__init__.py
eosim/core/cluster.py
eosim/core/domains.py
Expand Down Expand Up @@ -173,6 +175,8 @@ eosim/gui/widgets/memory_view.py
eosim/gui/widgets/peripheral_panel.py
eosim/gui/widgets/uart_terminal.py
eosim/gui/widgets/viewer_3d.py
eosim/i18n/__init__.py
eosim/i18n/translator.py
eosim/integrations/__init__.py
eosim/integrations/airsim.py
eosim/integrations/carla.py
Expand All @@ -192,6 +196,205 @@ eosim/integrations/xplane.py
eosim/network/__init__.py
eosim/network/topology.py
eosim/platforms/__init__.py
eosim/platforms/adi-aducm4050/platform.yml
eosim/platforms/aerodynamics-sim/platform.yml
eosim/platforms/aerodynamics-sim/tests.yml
eosim/platforms/agriculture-sim/platform.yml
eosim/platforms/allwinner-d1/platform.yml
eosim/platforms/am62x/platform.yml
eosim/platforms/am64x/platform.yml
eosim/platforms/am64x/tests.yml
eosim/platforms/ambiq-apollo4/platform.yml
eosim/platforms/android-arm64/platform.yml
eosim/platforms/android-tv/platform.yml
eosim/platforms/android-x86/platform.yml
eosim/platforms/apple-m1/platform.yml
eosim/platforms/apple-tv/platform.yml
eosim/platforms/arc-em/platform.yml
eosim/platforms/arc-em/tests.yml
eosim/platforms/arm-ethos-u55/platform.yml
eosim/platforms/arm-mcu/nrf52.yml
eosim/platforms/arm-mcu/platform.yml
eosim/platforms/arm-mcu/rp2040.yml
eosim/platforms/arm-mcu/tests.yml
eosim/platforms/arm-vexpress/platform.yml
eosim/platforms/arm64/eos.yml
eosim/platforms/arm64/platform.yml
eosim/platforms/arm64/tests.yml
eosim/platforms/atmega2560/platform.yml
eosim/platforms/atmega328p/platform.yml
eosim/platforms/attiny85/platform.yml
eosim/platforms/aurix-tc3xx/platform.yml
eosim/platforms/aurix-tc3xx/tests.yml
eosim/platforms/beaglebone/platform.yml
eosim/platforms/beaglebone/tests.yml
eosim/platforms/bl602/platform.yml
eosim/platforms/bl706/platform.yml
eosim/platforms/canaan-k510/platform.yml
eosim/platforms/cc2652/platform.yml
eosim/platforms/cc3220/platform.yml
eosim/platforms/ch32v307/platform.yml
eosim/platforms/cisco-catalyst-embedded/platform.yml
eosim/platforms/construction-sim/platform.yml
eosim/platforms/cortex-r5/platform.yml
eosim/platforms/cortex-r5/tests.yml
eosim/platforms/cortex-r52/platform.yml
eosim/platforms/cortex-r52/tests.yml
eosim/platforms/dialog-da14695/platform.yml
eosim/platforms/efm32gg/platform.yml
eosim/platforms/efr32bg22/platform.yml
eosim/platforms/efr32mg24/platform.yml
eosim/platforms/ericsson-baseband/platform.yml
eosim/platforms/esp32/platform.yml
eosim/platforms/esp32/tests.yml
eosim/platforms/esp32c3/platform.yml
eosim/platforms/esp32c3/tests.yml
eosim/platforms/esp32s3/platform.yml
eosim/platforms/esp32s3/tests.yml
eosim/platforms/finance-sim/platform.yml
eosim/platforms/finance-sim/tests.yml
eosim/platforms/fire-tv/platform.yml
eosim/platforms/gaming-sim/platform.yml
eosim/platforms/gaming-sim/tests.yml
eosim/platforms/gd32f303/platform.yml
eosim/platforms/gd32vf103/platform.yml
eosim/platforms/gd32vf103/tests.yml
eosim/platforms/google-coral/platform.yml
eosim/platforms/gowin-gw1n/platform.yml
eosim/platforms/hailo-8/platform.yml
eosim/platforms/holtek-ht32/platform.yml
eosim/platforms/huawei-kunpeng/platform.yml
eosim/platforms/imx8m/platform.yml
eosim/platforms/imx8m/tests.yml
eosim/platforms/imxrt1060/platform.yml
eosim/platforms/infineon-tc4xx/platform.yml
eosim/platforms/intel-cyclone-v/platform.yml
eosim/platforms/intel-movidius/platform.yml
eosim/platforms/ios-arm64/platform.yml
eosim/platforms/jetson-nano/platform.yml
eosim/platforms/jetson-nano/tests.yml
eosim/platforms/jetson-orin/platform.yml
eosim/platforms/jetson-orin/tests.yml
eosim/platforms/k64f/platform.yml
eosim/platforms/k64f/tests.yml
eosim/platforms/kendryte-k210/platform.yml
eosim/platforms/kendryte-k210/tests.yml
eosim/platforms/kneron-kl520/platform.yml
eosim/platforms/lattice-ecp5/platform.yml
eosim/platforms/lattice-ice40/platform.yml
eosim/platforms/logistics-sim/platform.yml
eosim/platforms/lpc4088/platform.yml
eosim/platforms/lpc55s69/platform.yml
eosim/platforms/maritime-sim/platform.yml
eosim/platforms/max32660/platform.yml
eosim/platforms/mcxn947/platform.yml
eosim/platforms/mediatek-mt7688/platform.yml
eosim/platforms/microblaze/platform.yml
eosim/platforms/microblaze/tests.yml
eosim/platforms/mikrotik-routerboard/platform.yml
eosim/platforms/milkv-duo/platform.yml
eosim/platforms/mining-sim/platform.yml
eosim/platforms/mipsel/platform.yml
eosim/platforms/msp430/platform.yml
eosim/platforms/mythic-amp/platform.yml
eosim/platforms/nokia-fpga-radio/platform.yml
eosim/platforms/nrf52/platform.yml
eosim/platforms/nrf52/tests.yml
eosim/platforms/nrf5340/platform.yml
eosim/platforms/nrf9160/platform.yml
eosim/platforms/nuclear-sim/platform.yml
eosim/platforms/nuvoton-m480/platform.yml
eosim/platforms/nxp-s32g/platform.yml
eosim/platforms/omap-l138/platform.yml
eosim/platforms/onsemi-rsl10/platform.yml
eosim/platforms/physiology-sim/platform.yml
eosim/platforms/physiology-sim/tests.yml
eosim/platforms/pic18f/platform.yml
eosim/platforms/pic32mx/platform.yml
eosim/platforms/pic32mz/platform.yml
eosim/platforms/ppce500/platform.yml
eosim/platforms/ppce500/tests.yml
eosim/platforms/ps5-embedded/platform.yml
eosim/platforms/psoc6/platform.yml
eosim/platforms/qemu-q35/platform.yml
eosim/platforms/qemu-q35/tests.yml
eosim/platforms/qualcomm-qcs610/platform.yml
eosim/platforms/ra4m1/platform.yml
eosim/platforms/railway-sim/platform.yml
eosim/platforms/raspi-zero2w/platform.yml
eosim/platforms/raspi-zero2w/tests.yml
eosim/platforms/raspi2b/platform.yml
eosim/platforms/raspi2b/tests.yml
eosim/platforms/raspi3/platform.yml
eosim/platforms/raspi3/tests.yml
eosim/platforms/raspi4/platform.yml
eosim/platforms/raspi4/tests.yml
eosim/platforms/raspi5/platform.yml
eosim/platforms/raspi5/tests.yml
eosim/platforms/rcar-h3/platform.yml
eosim/platforms/rcar-s4/platform.yml
eosim/platforms/renesas-ra6m5/platform.yml
eosim/platforms/renesas-rcar-s4/platform.yml
eosim/platforms/renesas-rh850/platform.yml
eosim/platforms/riscv64/eos.yml
eosim/platforms/riscv64/platform.yml
eosim/platforms/riscv64/tests.yml
eosim/platforms/rl78/platform.yml
eosim/platforms/roku-tv/platform.yml
eosim/platforms/rp2040/platform.yml
eosim/platforms/rp2040/tests.yml
eosim/platforms/rx65n/platform.yml
eosim/platforms/rza2m/platform.yml
eosim/platforms/s32g274a/platform.yml
eosim/platforms/s32k344/platform.yml
eosim/platforms/s32z/platform.yml
eosim/platforms/samc21/platform.yml
eosim/platforms/samd21/platform.yml
eosim/platforms/samd51/platform.yml
eosim/platforms/samd51/tests.yml
eosim/platforms/same70/platform.yml
eosim/platforms/saml21/platform.yml
eosim/platforms/samsung-exynos-auto-v9/platform.yml
eosim/platforms/si7021/platform.yml
eosim/platforms/sifive_u/platform.yml
eosim/platforms/sifive_u/tests.yml
eosim/platforms/smart-city-sim/platform.yml
eosim/platforms/starfive-jh7110/platform.yml
eosim/platforms/steamdeck-embedded/platform.yml
eosim/platforms/stm32f4/platform.yml
eosim/platforms/stm32f4/tests.yml
eosim/platforms/stm32h7/platform.yml
eosim/platforms/stm32h7/tests.yml
eosim/platforms/stm32l4/platform.yml
eosim/platforms/stm32l4/tests.yml
eosim/platforms/stm32mp1/platform.yml
eosim/platforms/stm32mp1/tests.yml
eosim/platforms/switch-embedded/platform.yml
eosim/platforms/tda4vm/platform.yml
eosim/platforms/templates/arm64-board.yml
eosim/platforms/templates/mcu-board.yml
eosim/platforms/ti-msp432/platform.yml
eosim/platforms/ti-tda4vm/platform.yml
eosim/platforms/ti-tms570/platform.yml
eosim/platforms/tizen-tv/platform.yml
eosim/platforms/tms320/platform.yml
eosim/platforms/ubiquiti-edgerouter/platform.yml
eosim/platforms/versatilepb/platform.yml
eosim/platforms/versatilepb/tests.yml
eosim/platforms/vexpress-a15/platform.yml
eosim/platforms/vexpress-a15/tests.yml
eosim/platforms/vexpress-a9/platform.yml
eosim/platforms/vexpress-a9/tests.yml
eosim/platforms/weather-sim/platform.yml
eosim/platforms/weather-sim/tests.yml
eosim/platforms/webos-tv/platform.yml
eosim/platforms/x86_64/platform.yml
eosim/platforms/x86_64/tests.yml
eosim/platforms/xilinx-versal/platform.yml
eosim/platforms/xilinx-versal-auto/platform.yml
eosim/platforms/xilinx-zynq7020/platform.yml
eosim/platforms/xtensa-esp/platform.yml
eosim/platforms/xtensa-esp/tests.yml
eosim/plugins/__init__.py
eosim/plugins/base.py
eosim/plugins/loader.py
Expand Down
Loading
Loading