Coder Social home page Coder Social logo

tinytest's Introduction

TinyTest

A really really really tiny and simple no-hassle C unit-testing framework.

Features

  • No library dependencies. Not even itself. Just a header file.
  • Simple ANSI C. Should work with virtually every C or C++ compiler on virtually any platform.
  • Reports assertion failures, including expressions and line numbers.
  • Stops test on first failed assertion.
  • ANSI color output for maximum visibility.
  • Easy to embed in apps for runtime tests (e.g. environment tests).

Example Usage

#include "tinytest.h"
#include "mylib.h"

void test_sheep()
{
  ASSERT("Sheep are cool", are_sheep_cool());
  ASSERT_EQUALS(4, sheep.legs);
}

void test_cheese()
{
  ASSERT("Cheese is tangy", cheese.tanginess > 0);
  ASSERT_STRING_EQUALS("Wensleydale", cheese.name);
}

int main()
{
  RUN(test_sheep);
  RUN(test_cheese);
  return TEST_REPORT();
}

To run the tests, compile the tests as a binary and run it.

2010-2014, -Joe Walnes [email protected] http://joewalnes.com

Bitdeli Badge

tinytest's People

Contributors

bitdeli-chef avatar byannoni avatar chrisajs avatar joewalnes avatar mrfabbri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tinytest's Issues

License information

Hi,

Is there any license information for this project? I'd like to use it in some of my own code which is Apache 2.0 and another which is 2-clause BSD, but I prefer if all code I reuse is easily attributable and licensed under agreeable terms; without that, technically I don't have the legal permission to use it at all!

(I'm not being pushy, but obviously something really liberal would be great!)

This is not how C works

By having variables and code in a header file, every time that header is included in a different file, a separate function and variable is created. No one should touch this library as is unless they want to stare at endless linker issues and broken code.

string.h

I had not included <string.h> but used ASSERT_STRING_EQUALS. So I had an error because strcmp isn't defined.
It is not really important but including <string.h> in the header makes sense.
Thank you for sharing this piece of code.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.