[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/2gdmgo8ce8m0iy0e/branch/master?svg=true)](https://ci.appveyor.com/project/srz-zumix/iutest/branch/master) [![Azure Pipelines Build Status](https://dev.azure.com/srz-zumix/iutest/_apis/build/status/iutest?branchName=master)](https://dev.azure.com/srz-zumix/iutest/_build/latest?definitionId=4) [![Bitrise iOS Build Status](https://app.bitrise.io/app/6903498632e89465/status.svg?token=siumhVNY6p6lklSZF6xGNA&branch=master)](https://app.bitrise.io/app/6903498632e89465?referrer=a9c0b9baf7536067) [![Buddy branch](https://app.buddy.works/srzzumix/iutest/repository/branch/master/badge.svg?token=1141053422e24104528f0a57150aeeea9d803d3ed04d634fcca80b8344b7a2c6 "buddy branch")](https://app.buddy.works/srzzumix/iutest/repository/branch/master) [![CircleCI](https://circleci.com/gh/srz-zumix/iutest/tree/master.svg?style=svg)](https://circleci.com/gh/srz-zumix/iutest/tree/master) [![Cirrus Build Status](https://api.cirrus-ci.com/github/srz-zumix/iutest.svg?branch=master)](https://cirrus-ci.com/github/srz-zumix/iutest/master) [![Codefresh build status](https://g.codefresh.io/api/badges/pipeline/srz-zumix/iutest%2Fiutest_unittest?branch=master&type=cf-2)](https://g.codefresh.io/pipelines/iutest_unittest/builds?repoOwner=srz-zumix&repoName=iutest&serviceName=srz-zumix%2Fiutest&filter=trigger:build~Build;branch:master;pipeline:58a933be9d1bd40100495882~iutest_unittest) [![Codeship Status for srz-zumix/iutest](https://codeship.com/projects/5bc87030-5b41-0133-6000-4242aa07dce3/status?branch=master)](https://codeship.com/projects/110695) [![Drone Build Status](https://cloud.drone.io/api/badges/srz-zumix/iutest/status.svg?branch=master)](https://cloud.drone.io/srz-zumix/iutest) [![GitHub Actions Status](https://github.com/srz-zumix/iutest/workflows/GitHub%20Actions/badge.svg?branch=master)](https://github.com/srz-zumix/iutest/actions?query=workflow%3A%22GitHub+Actions%22) [![GitLab CI pipeline status](https://gitlab.com/srz-zumix/iutest-test/badges/master/pipeline.svg)](https://gitlab.com/srz-zumix/iutest-test/commits/master) [![Peakflow Build Status](https://www.peakflow.io/en/projects/iutest/branch-statuses/master.svg)](https://www.peakflow.io/en/projects/iutest/build-groups?build_groups_q%5Bbranch_name_cont%5D=master) [![RazorOps Build Status](https://api.razorops.com/apps/blue-bird-776/badge.svg?branch=master)](https://dashboard.razorops.com/apps/blue-bird-776/workflows) [![Scrutinizer Build Status](https://scrutinizer-ci.com/g/srz-zumix/iutest/badges/build.png?b=master)](https://scrutinizer-ci.com/g/srz-zumix/iutest/build-status/master) [![Semaphore Build Status](https://semaphoreci.com/api/v1/srz_zumix/iutest/branches/master/badge.svg)](https://semaphoreci.com/srz_zumix/iutest) [![Semaphore 2.0 Build Status](https://srz-zumix.semaphoreci.com/badges/iutest/branches/master.svg)](https://srz-zumix.semaphoreci.com/projects/iutest) [![Travis-CI Build Status](https://travis-ci.com/srz-zumix/iutest.svg?branch=master)](https://travis-ci.com/srz-zumix/iutest) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/e6407b63c9c844d080ed71c7707bded9?branch=master)](https://www.codacy.com/app/srz-zumix/iutest?utm_source=github.com&utm_medium=referral&utm_content=srz-zumix/iutest&utm_campaign=Badge_Grade) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/srz-zumix/iutest.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/srz-zumix/iutest/context:cpp) [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/srz-zumix/iutest.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/srz-zumix/iutest/context:python) [![Codecov](https://codecov.io/gh/srz-zumix/iutest/branch/master/graph/badge.svg)](https://codecov.io/gh/srz-zumix/iutest) [![Coveralls Coverage Status](https://coveralls.io/repos/github/srz-zumix/iutest/badge.svg?branch=master)](https://coveralls.io/github/srz-zumix/iutest?branch=master) [![Coverity Scan Build Status](https://scan.coverity.com/projects/1316/badge.svg)](https://scan.coverity.com/projects/srz-zumix-iutest) [![GuardRails badge](https://badges.guardrails.io/srz-zumix/iutest.svg?token=fe1bb5ca5f743800d26e4d2b7282c5b316df83c0b228048f4192510bdd7280f0)](https://dashboard.guardrails.io/default/gh/srz-zumix/iutest) [![GitHub Actions reviewdog Status](https://github.com/srz-zumix/iutest/workflows/GitHub%20Actions%20-%20reviewdog/badge.svg?branch=develop)](https://github.com/srz-zumix/iutest/actions?query=workflow%3A%22GitHub+Actions+-+reviewdog%22) [![New(3-clause) BSD License](https://img.shields.io/badge/license-New_BSD-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![NuGet version](https://badge.fury.io/nu/iutest.svg)](https://badge.fury.io/nu/iutest) [![support](https://img.shields.io/badge/%24-support-orange.svg)](https://amzn.asia/6fNxDZU) iutest ========== iutest - iris unit test framework Welcome to the iutest -------------------------------------------------- iutest is framework for writing C++ tests. Features -------------------------------------------------- * An [XUnit](https://en.wikipedia.org/wiki/XUnit) test framework. * Header only, no external dependencies. * Test discovery. * XML/JUnit test report generation. * Assertions. + A rich set of assertions. + User-defined assertions. + Power-assert (expression-assert). + Matchers. + Fatal and non-fatal, warning, assume failures. * Value-parameterized tests. * Type-parameterized tests. * Advanced parameter generation. + Pairwise parameter. + CSV parameter. + Any parameter. + Random parameter. + Multiple parameters can be concatenated. * Test packages (grouping). * Skip test. * Private member test. * Japanese test name (C++03). * Various options for running the tests. * Compatible with [Google Test](https://github.com/google/googletest). (1.5 or later) Platforms -------------------------------------------------- * Windows * Linux * MacOS * FreeBSD * Cygwin * MinGW Compiler -------------------------------------------------- * VC++6~ * GCC 3.4.6~ * Clang 3.1~ * Intel Compiler * Zapcc Documentation -------------------------------------------------- * in repository doc/index.html * online document [latest released version](https://srz-zumix.github.io/iutest/latest) [GitHub master branch](https://srz-zumix.github.io/iutest/master) Project page -------------------------------------------------- * [OSDN Project page](https://iutest.osdn.jp/) * [GitHub](https://github.com/srz-zumix/iutest) Support -------------------------------------------------- * Use [GitHub issues](https://github.com/srz-zumix/iutest/issues) to report bugs and feature requests. * Ask questions at the twitter ([@srz_zumix](https://twitter.com/srz_zumix)) Tools -------------------------------------------------- * fused make fused-src. * Twilio notifies the test results using Twilio * Wandbox (deprecated) tools to make use of the iutest in [Wandbox](https://wandbox.org/) Tests -------------------------------------------------- |CI|master|develop|Tests| |:--|:--|:--|:--| |[AppVeyor](https://www.appveyor.com/)|[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/2gdmgo8ce8m0iy0e/branch/master?svg=true)](https://ci.appveyor.com/project/srz-zumix/iutest/branch/master)|[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/2gdmgo8ce8m0iy0e/branch/develop?svg=true)](https://ci.appveyor.com/project/srz-zumix/iutest/branch/develop)|Windows, Visual Studio, Cygwin, MINGW, NuGet, Visual Studio PREFAST (Code Analysis)| |[Azure Pipelines](https://dev.azure.com)|[![Build Status](https://dev.azure.com/srz-zumix/iutest/_apis/build/status/iutest?branchName=master)](https://dev.azure.com/srz-zumix/iutest/_build/latest?definitionId=4)|[![Build Status](https://dev.azure.com/srz-zumix/iutest/_apis/build/status/iutest?branchName=develop)](https://dev.azure.com/srz-zumix/iutest/_build/latest?definitionId=4)|Config matrix test, Visual Studio build option matrix| |[Bitrise](https://www.bitrise.io/?referrer=a9c0b9baf7536067)|[![Bitrise iOS Build Status](https://app.bitrise.io/app/6903498632e89465/status.svg?token=siumhVNY6p6lklSZF6xGNA&branch=master)](https://app.bitrise.io/app/6903498632e89465?referrer=a9c0b9baf7536067)|[![Bitrise iOS Build Status](https://app.bitrise.io/app/6903498632e89465/status.svg?token=siumhVNY6p6lklSZF6xGNA&branch=develop)](https://app.bitrise.io/app/6903498632e89465?referrer=a9c0b9baf7536067)|iOS| | |[![Bitrise Android Build Status](https://app.bitrise.io/app/f6bc69af3f6e2838/status.svg?token=eqd9m0stwgXuEff2FeLRQA&branch=master)](https://app.bitrise.io/app/f6bc69af3f6e2838?referrer=a9c0b9baf7536067)|[![Bitrise Android Build Status](https://app.bitrise.io/app/f6bc69af3f6e2838/status.svg?token=eqd9m0stwgXuEff2FeLRQA&branch=develop)](https://app.bitrise.io/app/f6bc69af3f6e2838?referrer=a9c0b9baf7536067)|Android| |[Buddy](https://buddy.works/)|[![buddy branch](https://app.buddy.works/srzzumix/iutest/repository/branch/master/badge.svg?token=1141053422e24104528f0a57150aeeea9d803d3ed04d634fcca80b8344b7a2c6 "buddy branch")](https://app.buddy.works/srzzumix/iutest/repository/branch/master)|[![buddy branch](https://app.buddy.works/srzzumix/iutest/repository/branch/develop/badge.svg?token=1141053422e24104528f0a57150aeeea9d803d3ed04d634fcca80b8344b7a2c6 "buddy branch")](https://app.buddy.works/srzzumix/iutest/repository/branch/develop)|benchmark test| |[CircleCI](https://circleci.com/)|[![CircleCI](https://circleci.com/gh/srz-zumix/iutest/tree/master.svg?style=svg)](https://circleci.com/gh/srz-zumix/iutest/tree/master)|[![CircleCI](https://circleci.com/gh/srz-zumix/iutest/tree/develop.svg?style=svg)](https://circleci.com/gh/srz-zumix/iutest/tree/develop)|Basic test with opmimize options| |[Cirrus CI](https://cirrus-ci.org/)|[![Cirrus Build Status](https://api.cirrus-ci.com/github/srz-zumix/iutest.svg?branch=master)](https://cirrus-ci.com/github/srz-zumix/iutest/master)|[![Cirrus Build Status](https://api.cirrus-ci.com/github/srz-zumix/iutest.svg?branch=develop)](https://cirrus-ci.com/github/srz-zumix/iutest/develop)|g++/clang std=c++14,17.. Basic tests, FreeBSD Basic tests| |[Codacy](https://www.codacy.com/)|[![Codacy Badge](https://api.codacy.com/project/badge/Grade/e6407b63c9c844d080ed71c7707bded9?branch=master)](https://www.codacy.com/app/srz-zumix/iutest?utm_source=github.com&utm_medium=referral&utm_content=srz-zumix/iutest&utm_campaign=Badge_Grade)|[![Codacy Badge](https://api.codacy.com/project/badge/Grade/e6407b63c9c844d080ed71c7707bded9?branch=develop)](https://www.codacy.com/app/srz-zumix/iutest?utm_source=github.com&utm_medium=referral&utm_content=srz-zumix/iutest&utm_campaign=Badge_Grade)|Shellcheck, Cppcheck, PyLint, etc...| |[Codefresh](https://codefresh.io/)|[![Codefresh build status](https://g.codefresh.io/api/badges/pipeline/srz-zumix/iutest%2Fiutest_unittest?branch=master&type=cf-1)](https://g.codefresh.io/pipelines/iutest_unittest/builds?repoOwner=srz-zumix&repoName=iutest&serviceName=srz-zumix%2Fiutest&filter=trigger:build~Build;branch:master;pipeline:58a933be9d1bd40100495882~iutest_unittest)|[![Codefresh build status](https://g.codefresh.io/api/badges/pipeline/srz-zumix/iutest%2Fiutest_unittest?branch=develop&type=cf-1)](https://g.codefresh.io/pipelines/iutest_unittest/builds?repoOwner=srz-zumix&repoName=iutest&serviceName=srz-zumix%2Fiutest&filter=trigger:build~Build;branch:develop;pipeline:58a933be9d1bd40100495882~iutest_unittest)|Build tools/docker/Dockerfile, Benchmark test, Gcc 8/9 basic test| |[Codeship](https://codeship.com/)|[![Codeship Status for srz-zumix/iutest](https://app.codeship.com/projects/5bc87030-5b41-0133-6000-4242aa07dce3/status?branch=master)](https://app.codeship.com/projects/110695)|[![Codeship Status for srz-zumix/iutest](https://app.codeship.com/projects/5bc87030-5b41-0133-6000-4242aa07dce3/status?branch=develop)](https://app.codeship.com/projects/110695)|Check coding standard of the project| |[Coverity Scan](https://scan.coverity.com)|[![Coverity Scan Build Status](https://scan.coverity.com/projects/1316/badge.svg)](https://scan.coverity.com/projects/srz-zumix-iutest)||Coverity Scan| |[Drone Cloud](https://cloud.drone.io)|[![Drone Build Status](https://cloud.drone.io/api/badges/srz-zumix/iutest/status.svg?branch=master)](https://cloud.drone.io/srz-zumix/iutest)|[![Build Status](https://cloud.drone.io/api/badges/srz-zumix/iutest/status.svg?branch=develop)](https://cloud.drone.io/srz-zumix/iutest)|gcc/clang each version Basic test| |[GitHub Actions](https://github.com/srz-zumix/iutest/actions?query=workflow%3A"GitHub+Actions")|[![GitHub Actions Status](https://github.com/srz-zumix/iutest/workflows/GitHub%20Actions/badge.svg?branch=master)](https://github.com/srz-zumix/iutest/actions?query=workflow%3A%22GitHub+Actions%22+branch%3Amaster)|[![GitHub Actions Status](https://github.com/srz-zumix/iutest/workflows/GitHub%20Actions/badge.svg?branch=develop)](https://github.com/srz-zumix/iutest/actions?query=workflow%3A%22GitHub+Actions%22+branch%3Adevelop)|Basic test (Windows LLVM clang and mingw and [zapcc](https://github.com/yrnkrn/zapcc)), EditorConfig Lint, Include What You Use, arm-none-eabi-gcc build| |[GitHub Actions - Google Test Compatible](https://github.com/srz-zumix/iutest/actions?query=workflow%3A"Google+Test+Compatible")|[![Google Test Compatible](https://github.com/srz-zumix/iutest/actions/workflows/gtest-compat.yml/badge.svg?branch=master)](https://github.com/srz-zumix/iutest/actions/workflows/gtest-compat.yml)|[![Google Test Compatible](https://github.com/srz-zumix/iutest/actions/workflows/gtest-compat.yml/badge.svg?branch=develop)](https://github.com/srz-zumix/iutest/actions/workflows/gtest-compat.yml)|Google Test/Mock compatible test for released versions| |[GitHub Actions - reviewdog](https://github.com/srz-zumix/iutest/actions?query=workflow%3A"GitHub+Actions+reviewdog")|[![GitHub Actions Reviewdog Status](https://github.com/srz-zumix/iutest/workflows/GitHub%20Actions%20-%20reviewdog/badge.svg?branch=develop)](https://github.com/srz-zumix/iutest/actions?query=workflow%3A%22GitHub+Actions+-+reviewdog%22+branch%3Amaster)||Reviewdog (shellcheck, cpplint)| |[GitHub Actions - Update GitHubPages](https://github.com/srz-zumix/iutest/actions?query=workflow%3A"GitHubPages")|[![Update GitHubPages Status](https://github.com/srz-zumix/iutest/workflows/GitHubPages/badge.svg?branch=master)](https://github.com/srz-zumix/iutest/actions?query=workflow%3A%22GitHubPages%22+branch%3Amaster)||Update documents| |[GitLab CI](https://about.gitlab.com/product/continuous-integration/)|[![GitLab CI pipeline status](https://gitlab.com/srz-zumix/iutest-test/badges/master/pipeline.svg)](https://gitlab.com/srz-zumix/iutest-test/commits/master)|[![GitLab CI pipeline status](https://gitlab.com/srz-zumix/iutest-test/badges/develop/pipeline.svg)](https://gitlab.com/srz-zumix/iutest-test/commits/develop)|Google Test/Google Mock compatibility (HEAD)| |[JFrog Pipelines](https://zumix3.jfrog.io/ui/pipelines/myPipelines/default/iutest_ubuntu_basic_test)|-|-|gcc/clang Baisc test| |[Peakflow](https://www.peakflow.io)|[![Peakflow Build Status](https://www.peakflow.io/en/projects/iutest/branch-statuses/master.svg)](https://www.peakflow.io/en/projects/iutest/build-groups?build_groups_q%5Bbranch_name_cont%5D=master)|[![Peakflow Build Status](https://www.peakflow.io/en/projects/iutest/branch-statuses/develop.svg)](https://www.peakflow.io/en/projects/iutest/build-groups?build_groups_q%5Bbranch_name_cont%5D=develop)|fused-src tests| |[Razorops](https://razorops.com/)|[![RazorOps Build Status](https://api.razorops.com/apps/blue-bird-776/badge.svg?branch=master)](https://dashboard.razorops.com/apps/blue-bird-776/workflows)|[![RazorOps Build Status](https://api.razorops.com/apps/blue-bird-776/badge.svg?branch=develop)](https://dashboard.razorops.com/apps/blue-bird-776/workflows)|gcc3 Basic test| |[Scrutinizer](https://scrutinizer-ci.com/)|[![Scrutinizer Build Status](https://scrutinizer-ci.com/g/srz-zumix/iutest/badges/build.png?b=master)](https://scrutinizer-ci.com/g/srz-zumix/iutest/build-status/master)|[![Scrutinizer Build Status](https://scrutinizer-ci.com/g/srz-zumix/iutest/badges/build.png?b=develop)](https://scrutinizer-ci.com/g/srz-zumix/iutest/build-status/develop)|iuwandbox tests| |[Semaphore](https://semaphoreci.com/)|[![Semaphore Build Status](https://semaphoreci.com/api/v1/srz_zumix/iutest/branches/master/badge.svg)](https://semaphoreci.com/srz_zumix/iutest)|[![Semaphore Build Status](https://semaphoreci.com/api/v1/srz_zumix/iutest/branches/develop/badge.svg)](https://semaphoreci.com/srz_zumix/iutest)|Scan-build| |[Semaphore 2.0](https://semaphoreci.com/)|[![Semaphore 2.0 Build Status](https://srz-zumix.semaphoreci.com/badges/iutest/branches/master.svg)](https://srz-zumix.semaphoreci.com/projects/iutest)|[![Semaphore 2.0 Build Status](https://srz-zumix.semaphoreci.com/badges/iutest/branches/develop.svg)](https://srz-zumix.semaphoreci.com/projects/iutest)|Scan-build, Basic test, sample run| |[Travis CI](https://travis-ci.com/)|[![Travis-CI Build Status](https://travis-ci.com/srz-zumix/iutest.svg?branch=master)](https://travis-ci.com/srz-zumix/iutest)|[![Travis-CI Build Status](https://travis-ci.com/srz-zumix/iutest.svg?branch=develop)](https://travis-ci.com/srz-zumix/iutest)|Basic tests, Coverity-scan| Basic test [Compiler and OS tests status](./docs/status/compiler_os_ci_status.rst) Coverage -------------------------------------------------- [![Coveralls Coverage Status](https://coveralls.io/repos/github/srz-zumix/iutest/badge.svg?branch=master)](https://coveralls.io/github/srz-zumix/iutest?branch=master) [![Codecov](https://codecov.io/gh/srz-zumix/iutest/branch/master/graph/badge.svg)](https://codecov.io/gh/srz-zumix/iutest) [![Codecov](https://codecov.io/gh/srz-zumix/iutest/branch/master/graphs/icicle.svg)](https://codecov.io/gh/srz-zumix/iutest) Contributing change -------------------------------------------------- Please read the [`CONTRIBUTING.md`](CONTRIBUTING.md) for details on how to contribute to this project. License -------------------------------------------------- Copyright (c) 2011-2021, Takazumi Shirayanagi, All rights reserved. This software is released under the New(3-clause) BSD License, see LICENSE If you distribute iutest, you might enjoy the [LICENSE-MIXING](docs/LICENSE-MIXING) document.