All Projects → klemens-morgenstern → metal.test

klemens-morgenstern / metal.test

Licence: LGPL-3.0 license
Deprecated, superseded by https://github.com/metal-ci/test

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to metal.test

mdepx
MDEPX — A BSD-style RTOS
Stars: ✭ 17 (-58.54%)
Mutual labels:  arm, bare-metal
vim-easydebugger
A VIM multi-language debugger plugin
Stars: ✭ 47 (+14.63%)
Mutual labels:  debugger, gdb
raspberry-pi
Raspberry Pi distribution of Alpha
Stars: ✭ 39 (-4.88%)
Mutual labels:  gdb, bare-metal
asm2cfg
Python command-line tool and GDB extension to view and save x86, ARM and objdump assembly files as control-flow graph (CFG) pdf files
Stars: ✭ 42 (+2.44%)
Mutual labels:  arm, gdb
gdb-dashboard
Modular visual interface for GDB in Python
Stars: ✭ 8,699 (+21117.07%)
Mutual labels:  debugger, gdb
mini-lab
a small, virtual setup to locally run the metal-stack
Stars: ✭ 50 (+21.95%)
Mutual labels:  metal, bare-metal
hello-world-gdb
Simple hello world program for debugging with gdb
Stars: ✭ 29 (-29.27%)
Mutual labels:  debugger, gdb
Code Debug
Native debugging for VSCode
Stars: ✭ 232 (+465.85%)
Mutual labels:  debugger, gdb
kakoune-gdb
gdb integration plugin
Stars: ✭ 44 (+7.32%)
Mutual labels:  debugger, gdb
stm32f4-bare-metal
Bare metal STM32F4 examples for various modules
Stars: ✭ 79 (+92.68%)
Mutual labels:  arm, bare-metal
esp-gdbstub
ESP8266 debugging tool
Stars: ✭ 13 (-68.29%)
Mutual labels:  debugger, gdb
lldbg
A lightweight native GUI for LLDB.
Stars: ✭ 83 (+102.44%)
Mutual labels:  debugger, gdb
gdbundle
Minimalist plugin manager for GDB and LLDB
Stars: ✭ 72 (+75.61%)
Mutual labels:  debugger, gdb
elfloader
ARMv7M ELF loader
Stars: ✭ 71 (+73.17%)
Mutual labels:  arm, bare-metal
Gdbghidra
gdbghidra - a visual bridge between a GDB session and GHIDRA
Stars: ✭ 251 (+512.2%)
Mutual labels:  debugger, gdb
drone-stm32-map
STM32 peripheral mappings for Drone, an Embedded Operating System.
Stars: ✭ 16 (-60.98%)
Mutual labels:  arm, bare-metal
Angrgdb
Use angr inside GDB. Create an angr state from the current debugger state.
Stars: ✭ 165 (+302.44%)
Mutual labels:  debugger, gdb
Pyvmidbg
LibVMI-based debug server, implemented in Python. Building a guest aware, stealth and agentless full-system debugger
Stars: ✭ 192 (+368.29%)
Mutual labels:  debugger, gdb
gdb
Go GDB/MI interface
Stars: ✭ 70 (+70.73%)
Mutual labels:  debugger, gdb
OpenOCD
STMicroelectronics customized version of OpenOCD supporting STM32 MCUs and MPUs
Stars: ✭ 34 (-17.07%)
Mutual labels:  debugger, openocd

status stable Issues

About

This framework provides facilities for automated execution of remote code. The core idea is, to utilize the debugger for automated testing, so that it's featured can be used to obtain information.

At the current state it provides functionality for:

  • I/O Forwarding
  • Code Coverage
  • Unit testing
  • Call tracing
  • Profiling
  • Function Stubbing at link-time

This is based on plugin-system, so that it can be extended with functionality for your system. The above features are also done by plugins that are provided by the framework. Since it is built do use the debugger, it can be used for every case a debugger can, which includes the following applications:

  • local execution
  • remote server (gdbsever)
  • openocd
  • qemu

When used with the right plugins, an application run via openocd or qemu behaves as if it were run locally and can be integrated into any automated testing.

It currently only supports the gdb, but lldb support is planned for a future version.

Tool Overview

metal.runner

The debug-runner is the core module of the toolest, it allows automated execution of the debugger. This can be used with plugins, so that custom functionality can be added to breakpoints. The main application is for the automated executing tests on remote targets, such as embedded platforms. It comes with two plugins for embedded targets:

  • I/O (similar to semi-hosting)
  • Exit-Code

When used with these two plugins an embedded application can be run on target, but behaves as if it were run locally. In addition calltrace & backend provide part of the functionality as part as metal.runner plugins.

metal.unit

We provide a very light weight test backend, for easy use with our metal.runner. When used without the debugger, it will only yield a binary result, while it will provide very detailed information through the debugger. This means that it can be used with the same assertions

metal.calltrace

The calltrace provides a way to assert a certain call sequence for functions. Combined with the metal.runner it can be used to log function calls and add profiling.

metal.serial

The serial library provides a light-weight testing tool for environments that do not provide access for a debugger. It outputs the minimum amount of data from the target device, reads the rest from the source files and provides more detailed report that way. E.g. it provides a printf-alternative that does the actual formatting on the host side, thus providing formatted output without required heap usage on the target.

Documentation

The current master Documentation can be found in the wiki.

Test results

Branches Build Tests coverage
Develop: Build Status Coverage Status
Master: Build Status Coverage Status

Dependency

This library requires boost 1.64.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].