Execute Input/Output tests on a software

Related tags

Debug IO-TESTER
Overview

IO-Tester

The goal of this software is to take files as parameter that contains lists of inputs and expected ouputs and to tell the user if the tests succeed, failed or crashed.

Installation

After cloning the repository enter the following command :

make install

If the the command fails, use sudo :

sudo make install

IO_Tester will be installed at usr/local/bin.

Usage

Lets say we want to test that program :

// main.c

#include <stdio.h>

int main(int ac, char **av)
{
    for (int i = 1; i < ac; i++)
        printf("%s\n", av[i]);
    return 0;
}

First lets compile it :

gcc main.c -o printer

Then prepare your tests in a file with this patern :

[Simple Print] ./printer test
test

[END]

[Multiple Prints] ./printer Hello World !
Hello
World
!

[END]

[Oooops] ./printer I am bad
You
are
bad

[END]

Then execute IO_Tester with the file containing the tests as argument.

You can add --details as final argument to display the real and the expected output when a test fails. Details You can add --diff as final argument to display the diff between the real and the expected output in VS Code when a test fails. Details You can also run multiple test files at once :

IO_Tester test1 test2 test3 --diff

Contributors

You might also like...
Input-overlay - Show keyboard, gamepad and mouse input on stream
Input-overlay - Show keyboard, gamepad and mouse input on stream

Show keyboard, mouse and gamepad input on stream. Available for OBS Studio 19.0.3+ on windows (32bit/64bit) and linux (64bit). Head over to releases f

 	Cobalt Strike is a commercial, full-featured, remote access tool that bills itself as
Cobalt Strike is a commercial, full-featured, remote access tool that bills itself as "adversary simulation software designed to execute targeted attacks and emulate the post-exploitation actions of advanced threat actors".

COBALT STRIKE 4.4 Cobalt Strike is a commercial, full-featured, remote access tool that bills itself as "adversary simulation software designed to exe

Xournal++ is a handwriting notetaking software with PDF annotation support. Written in C++ with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Windows 10. Supports pen input from devices such as Wacom Tablets.
Xournal++ is a handwriting notetaking software with PDF annotation support. Written in C++ with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Windows 10. Supports pen input from devices such as Wacom Tablets.

Xournal++ is a hand note taking software written in C++ with the target of flexibility, functionality and speed. Stroke recognizer and other parts are based on Xournal Code

Universal State Monitor software for home automation input devices

Universal State Monitor Copyright 2019-2021 SuperHouse Automation Pty Ltd www.superhouse.tv A binary state monitor for DIY home automation projects. T

Haptic input knob with software-defined endstops and virtual detents
Haptic input knob with software-defined endstops and virtual detents

SmartKnob SmartKnob is an open-source input device with software-configurable endstops and virtual detents. A brushless gimbal motor is paired with a

A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)
A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)
A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

Write tests in C

NAME libtap - Write tests in C SYNOPSIS #include tap.h int main () { plan(5); int bronze = 1, silver = 2, gold = 3; ok(bronze silver,

A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)
A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

Simple useful interoperability tests for WebRTC libraries. If you are a WebRTC library developer we'd love to include you!
Simple useful interoperability tests for WebRTC libraries. If you are a WebRTC library developer we'd love to include you!

Overview This project aims to be a convenient location for WebRTC library developers to perform interoperability tests. Who can Participate The projec

Palanteer is a set of high performance visual profiler, debugger, tests enabler  for C++ and Python
Palanteer is a set of high performance visual profiler, debugger, tests enabler for C++ and Python

Palanteer is a set of lean and efficient tools to improve the general software quality, for C++ and Python programs.

Driver layer GPU libraries and tests for PSP2

PVR_PSP2 Driver layer GPU libraries and tests for PSP2 Currently this project include: Common and PSP2-specific GPU driver headers. Extension library

A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant)

lest – lest errors escape testing This tiny C++11 test framework is based on ideas and examples by Kevlin Henney [1,2] and on ideas found in the CATCH

This repository aims to contain solutions and explanations to various competitive programming problems, which may be important for interviews and online tests of different companies.
This repository aims to contain solutions and explanations to various competitive programming problems, which may be important for interviews and online tests of different companies.

Competitive Programming Solutions Compilation Hello everyone 👋 This repository contains solutions and explanations to various competitive programming

Harbour DB speed tests comparison

hbDBSpeedTests Harbour DB speed tests comparison - Registers Count: 821051 MySql configuration( 1 or 2 ) /data/mysql/dbstru.zip - Import structure of

Community-gathered tests for C++ course read in YSDA
Community-gathered tests for C++ course read in YSDA

YSDA-CPP-collective-tests Коллективно собранные тесты для задач с закрытыми тестами из курса C++. Структура Структура этого репозитория соответствует

Tests to check the determinism of the basic floating point arithmetic operations on different devices, using Unity and Rust.
Tests to check the determinism of the basic floating point arithmetic operations on different devices, using Unity and Rust.

This repo contains tests to check the determinism (consistency) of the basic floating point arithmetic operations (add, subtract, multiply, divide) on

Tests and validation for the Hive Helsinki GET_Next_Line project.

gnl-eval Tests and validation for the Hive Helsinki GET_Next_Line project. This is not meant to completely replace careful evaluation, but to give som

Comments
  • [Install] Add install rule to Makefile

    [Install] Add install rule to Makefile

    This install rule is in place in order to copy the binary into /usr/bin to allow to use the program from any project without the hassle to copy the binary into the repository. The user_install rule is quite similar but instead of copying the binary into /usr/bin, it copies it into ${HOME}/.local/bin for those who want to install it for a single user instead of installing it system wide. This requires you to have this path in your PATH environment variable.

    opened by Breigner01 0
  • Improved overall repo

    Improved overall repo

    The repo had to be improved. The Makefile has been modified to use standards and implicit variables and rules. The build error has been fixed because of a missing include for strcmp. A gitignore has been added to prevent some files to be pushed on the repo.

    opened by Breigner01 0
Releases(v1.9.0)
Owner
Martin
Martin
A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

Catch Org 16k Jan 8, 2023
Write tests in C

NAME libtap - Write tests in C SYNOPSIS #include <tap.h> int main () { plan(5); int bronze = 1, silver = 2, gold = 3; ok(bronze < silver,

Jacob Gelbman 231 Jan 2, 2023
Palanteer is a set of high performance visual profiler, debugger, tests enabler for C++ and Python

Palanteer is a set of lean and efficient tools to improve the general software quality, for C++ and Python programs.

Damien Feneyrou 1.9k Dec 29, 2022
A C++ commandline for use in servers and chat software. Provides very simple asynchronous input/output.

commandline A C++ commandline for use in servers and terminal chat software. Provides very simple asynchronous input/output. Supports reading and writ

Lion 70 Dec 20, 2022
The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced.

libxo libxo - A Library for Generating Text, XML, JSON, and HTML Output The libxo library allows an application to generate text, XML, JSON, and HTML

Juniper Networks 253 Dec 10, 2022
C library for cross-platform real-time audio input and output

libsoundio C library providing cross-platform audio input and output. The API is suitable for real-time software such as digital audio workstations as

Andrew Kelley 1.6k Jan 6, 2023
OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

AirenSoft 1.8k Jan 8, 2023
JSON Input Output Streams

JIOS : JSON Input Output Streams Similar to C++ streams, but the stream elements are structured JSON data rather than characters. Contents Features [P

Castedo Ellerman 3 Aug 16, 2019
Libsio - A runtime library for Speech Input (stt) & Output (tts)

libsio A runtime library for Speech Input (stt) & Output (tts) Speech To Text unified CTC and WFST decoding via beam search online(streaming) decoding

null 26 Nov 24, 2022