Test Electronic Control Units around the world in a transparent network.

Overview
Eclipse openDuT logo

Eclipse openDuT

Test Electronic Control Units around the world in a transparent network.

Eclipse openDuT provides an open framework to automate the testing and validation process for automotive software and applications in a reliable, repeatable and observable way. Eclipse openDuT is hardware-agnostic with respect to the execution environment and accompanies different hardware interfaces and standards regarding the usability of the framework. Thereby, it is supporting both on-premise installations and hosting in a cloud infrastructure. Eclipse openDuT considers an eventually distributed network of real (HIL) and virtual devices (SIL) under test. Eclipse openDuT reflects hardware capabilities and constraints along with the chosen test method. Test cases are not limited to a specific domain, but it especially realizes functional and explorative security tests.

Funded by the European Union

Developer Setup

Find out how to get started here.

Usage

tbd.

Contribution

We are delighted that you are interested in making Eclipse openDuT better! This project welcomes all contributions: ideas, patches, documentation, bug reports. But before contributing, make sure to read the contribution guideline.

License

Eclipse openDuT is licensed using the Apache License Version 2.0.

Comments
  • CARL should persist its state

    CARL should persist its state

    CARL does currently not persist any state. After a restart of CARL all resources (PeerDescriptor, ClusterConfiguration, ClusterDeployment, ...) are gone.

    • [ ] determine which resources need to be persistent.
    • [ ] select a suitable persistence architecture (relational, event sourced, document based, etc.).
    • [ ] select a suitable DBMS.
    • [ ] implement the required logic to persist resources.
    type: feature component: carl 
    opened by kKdH 0
  • EDGAR's `setup` command should be usable in unattended environments

    EDGAR's `setup` command should be usable in unattended environments

    EDGAR's setup command requires the confirmation from a user. This prevents the usage of the setup command in unattended environments like GH runner trying to setup peers for integration testing.

    We could use the console crate's user_attended() function to check whether stdout is connected to a terminal instead of a file or redirected by other means and require confirmation in this state only.

    component: edgar type: enhancement 
    opened by kKdH 0
  • Authentication for OpenDuT network

    Authentication for OpenDuT network

    To secure the system against unauthenticated access all components need to check the users identity and access privilege. For this purpose OpenID connect (OIDC) shall be used to authenticate users against a common identity provider - for which we use Keycloak. Each of our components shall therefore implement the OIDC protocol to ensure users are authenticated.

    • [ ] implement OIDC client in LEA (public client with browser grant flow)
    • [ ] implement OIDC client in CLEO/EDGAR (initially using a shared client secret)
    • [ ] validate bearer tokens in CARL (using client secret)

    For testing purposes the clients CLEO and EDGAR shall be able to craft access tokens with necessary authorization roles/scopes without contacting Keycloak. This crafted token shall not be checked in CARL when running in test mode.

    opened by reimarstier 0
  • Plugin mechanism

    Plugin mechanism

    We would like to have a plugin mechanism to extend openDuT with functionality for specific use-cases.

    We plan to use WebAssembly as portable compilation target for plugins, but there's still various questions about the how.

    Goals of the exploration:

    • How do we exchange information (data) with plugins?
    • Can we allow for everything we need past the sandboxing of WASM (e.g. FS access, root, network-interfaces/CAP_NET_ADMIN)? Are there meaningful usages of the sandboxing?
    • How is the usability when developing plugins via Rust?
    • Can plugins be developed via e.g. Python? How is usability there?
    • Usage of plugins at least in EDGAR Setup.

    References:

    type: exploration 
    opened by kKdH 0
  • CLEO should be more verbose

    CLEO should be more verbose

    To improve the user experience of CLEO (mostly in failure situations) a '--verbose' flag could provide more information to a user and help to solve the problem faster.

    type: feature component: cleo 
    opened by kKdH 0
  • Test Manager as central test application in openDuT

    Test Manager as central test application in openDuT

    This story is about the Test-Manager (TM) component that represents the central application in openDuT to create new test projects, connect DuTs with specific test cases, schedule/ execute test runs and generate test reports.

    Following features are to be integrated in a first step:

    • [ ] Import and parsing of test cases provided in different formats (DSL, yaml, Robo Framework etc.) - consolidate solutions between ETAS and AVL
    • [ ] TM receives a representation of the DuTs provided by EDGAR and CARL (e.g., available interfaces, other I/O, power supply) and thereby makes DuTs usable in TM
    • [ ] TM communicates with EDGARs via VPN provided by CARL for - Receiving test results that were executed locally (cf. #5) - Provision of test engines (containers) to EDGAR for local execution - Provision of test setups/configuration to EDGAR for preparing local test setup (rest bus simulation, power control, clamps etc.)
    • [ ] Execution, scheduling/planning and control of new test runs based on parsed test case (description) - consolidate solutions between ETAS and AVL - Case 1 (prio): Tests are executed locally on EDGAR - consolidation of test results and reporting by TM - Case 2: Tests are executed centrally by TM and test messages/ data is relayed to EDGAR, TM generates report - Case 3: Integration of external/remote test engines with openDuT (SaaS)
    • [ ] Implement a user management on TM with RBAC (test engineers, project managers, auditors etc.)
    type: feature component: test-manager 
    opened by Ovomaltine85 1
Owner
Eclipse openDuT
Test Electronic Control Units around the world in a transparent network.
Eclipse openDuT
A stupid wrapper around Meilisearch 🐻

Mieli ?? Usage ?? mieli 0.1.10 A stupid wrapper around meilisearch USAGE: mieli [OPTIONS] <SUBCOMMAND> FLAGS: -h, --help Prints help i

Irevoire 16 Aug 5, 2022
Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world.

Note to readers: On December 1, 2020, the Libra Association was renamed to Diem Association. The project repos are in the process of being migrated. A

Diem 16.7k Jan 8, 2023
Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world.

Note to readers: On December 1, 2020, the Libra Association was renamed to Diem Association. The project repos are in the process of being migrated. A

Diem 16.7k Dec 29, 2022
Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world.

Note to readers: On December 1, 2020, the Libra Association was renamed to Diem Association. The project repos are in the process of being migrated. A

Diem 16.7k Jan 9, 2023
ABQ is a universal test runner that runs test suites in parallel. It’s the best tool for splitting test suites into parallel jobs locally or on CI

?? abq.build   ?? @rwx_research   ?? discord   ?? documentation ABQ is a universal test runner that runs test suites in parallel. It’s the best tool f

RWX 13 Apr 7, 2023
Text calculator with support for units and conversion

cpc calculation + conversion cpc parses and evaluates strings of math, with support for units and conversion. 128-bit decimal floating points are used

Kasper 82 Jan 4, 2023
Display file sizes in human-readable units

hsize Display file sizes in human-readable units $ hsize 1000 1000000 5000000 1.00 KB 1.00 MB 5.00 MB $ hsize -p 5 1048576 12345678 1.04858 MB 12.345

Ryan 2 Nov 21, 2022
Rust implementation of Another World (aka Out of this world) game engine

RustyWorld Rust implementation of Another World (aka Out of this world) game engine. I wanted a fun project to challenge myself while learning Rust, a

Francesco Degrassi 3 Jul 1, 2021
Rust on ESP32 STD "Hello, World" app. A "Hello, world!" STD binary crate for the ESP32[XX] and ESP-IDF.

Rust on ESP32 STD "Hello, World" app A "Hello, world!" STD binary crate for the ESP32[XX] and ESP-IDF. This is the crate you get when running cargo ne

Ivan Markov 138 Jan 1, 2023
ARM TrustZone-M example application in Rust, both secure world side and non-secure world side

ARM TrustZone-M example application in Rust, both secure world side and non-secure world side; projects are modified from generated result of cortex-m-quickstart.

null 44 Dec 4, 2022
FlatBuffers compiler (flatc) as API (with focus on transparent `.fbs` to `.rs` code-generation via Cargo build scripts integration)

FlatBuffers flatc API for Rust This crate provides a programmatical way to invoke flatc command (e.g. from build.rs) to generate Rust (or, in fact, an

Vlad Frolov 87 Dec 22, 2022
Easy per application transparent proxy built on cgroup.

cproxy can redirect TCP and UDP traffic made by a program to a proxy, without requiring the program supporting a proxy. Compared to many existi

Xiangru Lian 263 Dec 20, 2022
A transparent QUIC to SOCKSv5 proxy on Linux, UDP/QUIC verison of moproxy.

quproxy A transparent QUIC to SOCKSv5 proxy on Linux, UDP/QUIC verison of moproxy. ?? WORKING IN PROGRESS ?? Features: Transparent forward QUIC to ups

Shell Chen 4 Dec 15, 2022
Let Tauri's transparent background rendering window be stacked on Bevy's rendering window in real time to run the game with native-level performance!

Native Bevy with Tauri HUD DEMO 将 Tauri 的透明背景渲染窗口实时叠在 Bevy 的渲染窗口上,以使用原生级别性能运行游戏! Let Tauri's transparent background rendering window be stacked on Bev

伊欧 3 Mar 25, 2024
An EVM low-level language that gives full control over the control flow of the smart contract.

Meplang - An EVM low-level language Meplang is a low-level programming language that produces EVM bytecode. It is designed for developers who need ful

MEP 19 Jan 31, 2023
Coppers is a custom test harnass for Rust that measures the energy usage of your test suite.

Coppers Coppers is a test harness for Rust that can measure the evolution of power consumptions of a Rust program between different versions with the

Thijs Raymakers 175 Dec 4, 2022
A simple tool to test sqlx with postgres. It will automatically create a database and drop it after the test.

sqlx-db-tester This a tool to test sqlx with postgres. It only supports tokio runtime at this moment. How to use it You should first create a TestDb d

Tyr Chen 4 Nov 29, 2022
Formats output of Solana's cargo test-bpf/test-sbf command

solfmt Formats output of Solana's cargo test-bpf/test-sbf command. Installation cargo install solfmt Usage Run the your test command as usual (cargo t

Thorsten Lorenz 4 Dec 22, 2022
OpenAPI-based test coverage analysis tool that helps teams improve integration test coverage in CI/CD pipelines

Ready-to-use OpenAPI test coverage analysis tool that helps teams improve integration CoveAPI is an advanced test coverage analysis tool based on the

Yasser Tahiri 18 Aug 3, 2023
Docker containers on a synthetic network. Run applications in a context that lets you manipulate their network conditions.

Synthetic Network Docker containers on a synthetic network. Run applications in a context that lets you manipulate their network conditions. Dependenc

Daily 58 Dec 15, 2022