Git Product home page Git Product logo

srz-zumix / iutest Goto Github PK

View Code? Open in Web Editor NEW
66.0 8.0 6.0 207.45 MB

c++ testing framework

Home Page: http://iutest.osdn.jp/

License: BSD 3-Clause "New" or "Revised" License

C++ 86.59% Makefile 3.95% CMake 1.17% C 0.70% Batchfile 0.10% Python 6.33% Dockerfile 0.18% Shell 0.28% Ruby 0.01% ASL 0.45% Earthly 0.05% CUE 0.18%
cpp testing-framework cpp17 cpp14 cpp11 cpp03 cpp98 header-only no-dependencies assertions

iutest's Introduction

AppVeyor Build status Azure Pipelines Build Status Bitrise iOS Build Status Buddy branch CircleCI Cirrus Build Status Codefresh build status Codeship Status for srz-zumix/iutest Drone Build Status GitHub Actions Status GitLab CI pipeline status Peakflow Build Status RazorOps Build Status Scrutinizer Build Status Semaphore Build Status Semaphore 2.0 Build Status Travis-CI Build Status

Codacy Badge Language grade: C/C++ Language grade: Python Codecov Coveralls Coverage Status Coverity Scan Build Status GuardRails badge GitHub Actions reviewdog Status
New(3-clause) BSD License NuGet version
support

iutest

iutest - iris unit test framework

Welcome to the iutest

iutest is framework for writing C++ tests.

Features

  • An 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. (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

Project page

Support

Tools

  • fused
    make fused-src.
  • Twilio
    notifies the test results using Twilio
  • Wandbox (deprecated) tools to make use of the iutest in Wandbox

Tests

CI master develop Tests
AppVeyor AppVeyor Build status AppVeyor Build status Windows, Visual Studio, Cygwin, MINGW, NuGet, Visual Studio PREFAST (Code Analysis)
Azure Pipelines Build Status Build Status Config matrix test, Visual Studio build option matrix
Bitrise Bitrise iOS Build Status Bitrise iOS Build Status iOS
Bitrise Android Build Status Bitrise Android Build Status Android
Buddy buddy branch buddy branch benchmark test
CircleCI CircleCI CircleCI Basic test with opmimize options
Cirrus CI Cirrus Build Status Cirrus Build Status g++/clang std=c++14,17.. Basic tests, FreeBSD Basic tests
Codacy Codacy Badge Codacy Badge Shellcheck, Cppcheck, PyLint, etc...
Codefresh Codefresh build status Codefresh build status Build tools/docker/Dockerfile, Benchmark test, Gcc 8/9 basic test
Codeship Codeship Status for srz-zumix/iutest Codeship Status for srz-zumix/iutest Check coding standard of the project
Coverity Scan Coverity Scan Build Status Coverity Scan
Drone Cloud Drone Build Status Build Status gcc/clang each version Basic test
GitHub Actions GitHub Actions Status GitHub Actions Status Basic test (Windows LLVM clang and mingw and zapcc), EditorConfig Lint, Include What You Use, arm-none-eabi-gcc build
GitHub Actions - Google Test Compatible Google Test Compatible Google Test Compatible Google Test/Mock compatible test for released versions
GitHub Actions - reviewdog GitHub Actions Reviewdog Status Reviewdog (shellcheck, cpplint)
GitHub Actions - Update GitHubPages Update GitHubPages Status Update documents
GitLab CI GitLab CI pipeline status GitLab CI pipeline status Google Test/Google Mock compatibility (HEAD)
JFrog Pipelines - - gcc/clang Baisc test
Peakflow Peakflow Build Status Peakflow Build Status fused-src tests
Razorops RazorOps Build Status RazorOps Build Status gcc3 Basic test
Scrutinizer Scrutinizer Build Status Scrutinizer Build Status iuwandbox tests
Semaphore Semaphore Build Status Semaphore Build Status Scan-build
Semaphore 2.0 Semaphore 2.0 Build Status Semaphore 2.0 Build Status Scan-build, Basic test, sample run
Travis CI Travis-CI Build Status Travis-CI Build Status Basic tests, Coverity-scan

Basic test

Compiler and OS tests status

Coverage

Coveralls Coverage Status

Codecov
Codecov

Contributing change

Please read the 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.

iutest's People

Contributors

azure-pipelines[bot] avatar fuyutsubaki avatar mogemimi avatar srz-zumix avatar yumetodo 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iutest's Issues

warning: overflow in implicit constant conversion

In file included from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/iutest_env.hpp:816:0,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/internal/iutest_message.hpp:20,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/iutest_result.hpp:20,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/iutest_assertion.hpp:20,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/iutest_pred.hpp:20,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/internal/iutest_internal.hpp:20,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/internal/iutest_core_impl.hpp:20,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/internal/iutest_result_reporter.hpp:20,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/iutest_core.hpp:20,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/iutest.hpp:23,
                 from D:/user/documents/git/SigContrastFastAviUtl/test/test.cpp:2:
D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/impl/iutest_env.ipp: In static member function 'static bool iutest::TestEnv::ParseCommandLineElemA(const char*)':
D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/impl/iutest_env.ipp:239:54: warning: overflow in implicit constant conversion [-Woverflow]
                 TestFlag::SetFlag(TestFlag::SHOW_SPEC);
                                                      ^
In file included from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/internal/iutest_core_impl.hpp:246:0,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/internal/iutest_result_reporter.hpp:20,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/iutest_core.hpp:20,
                 from D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/iutest.hpp:23,
                 from D:/user/documents/git/SigContrastFastAviUtl/test/test.cpp:2:
D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/impl/iutest_core_impl.ipp: In member function 'bool iutest::UnitTestImpl::PreRunner()':
D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/impl/iutest_core_impl.ipp:98:56: warning: overflow in implicit constant conversion [-Woverflow]
     if( TestFlag::IsEnableFlag(TestFlag::SHOW_INFO_MASK) )
                                                        ^
D:/user/documents/git/SigContrastFastAviUtl/3rd_party/iutest/include/impl/iutest_core_impl.ipp:112:55: warning: overflow in implicit constant conversion [-Woverflow]
         if( TestFlag::IsEnableFlag(TestFlag::SHOW_SPEC) )
                                                       ^

compiler note: -Wmisleading-indentation is disabled

iutest.hpp: In member function 'virtual void iutest::DefalutResultPrintListener::OnTestEnd(const iutest::TestInfo&)':
iutest.hpp:5006:0: note: -Wmisleading-indentation is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers
 #ifdef IUTEST_NOT_SUPPORT_STOPWATCH
 ~

そういえばこれって何なんでしょうか?

CRLF混入

v1.16.2からv1.16.3にあげようとしたところ、

$git config --global core.autocrlf
false

$git config --local core.autocrlf

$git submodule update --init
Submodule path 'iutest': checked out '3b7ebd720cc22e4d25996ef1133118a729b65730'

$cd iutest

$git checkout v1.16.2
Previous HEAD position was 3b7ebd7... update tox.ini
HEAD is now at 6e307aa... version 1.16.2

$ cd ..

$git submodule status
+6e307aa60b6f620933d4597febcef04d6a778177 iutest (v1.16.2)

$cd iutest

$git checkout v1.16.3
Previous HEAD position was 6e307aa... version 1.16.2
HEAD is now at 8c65397... version 1.6.3
warning: CRLF will be replaced by LF in .gitignore.
The file will have its original line endings in your working directory.

$git status
HEAD detached at v1.16.3
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   .gitignore
        modified:   CHANGES
        modified:   LICENSE
        modified:   docs/.gitignore
        modified:   projects/cmake/CMakeLists.txt
        modified:   projects/nuget/iutest.nuspec
        modified:   test/.gitignore

no changes added to commit (use "git add" and/or "git commit -a")
warning: CRLF will be replaced by LF in .gitignore.
The file will have its original line endings in your working directory.

のようになる。CRLFが混入しているのではないか?

gtest 1.7.0 Compatibility

  • New feature: Test::RecordProperty() can now be used outside of the
    lifespan of a test method, in which case it will be attributed to
    the current test case or the test program in the XML report.
  • Improvement: the <testsuites> XML element now has a timestamp attribute.
  • Improvement: When --gtest_filter is specified, XML report now doesn't
    contain information about tests that are filtered out.

iuwandbox.pyはpython3では使えないのか?

現在
https://github.com/yumetodo/string_split
でiutest+shippableを利用しています。

iuwandbox.py ../../../test/test.cpp --boost nothing --default --encode utf-8-sig

のように--boostを利用すると動きません。

D:\user\documents\git\string_split\iutest\tools\wandbox>iuwandbox.py ../../../te
st/test.cpp --boost 1.60 --default --encoding utf-8-sig -s
Traceback (most recent call last):
  File "D:\user\documents\git\string_split\iutest\tools\wandbox\iuwandbox.py", l
ine 395, in <module>
    main()
  File "D:\user\documents\git\string_split\iutest\tools\wandbox\iuwandbox.py", l
ine 392, in main
    run(options)
  File "D:\user\documents\git\string_split\iutest\tools\wandbox\iuwandbox.py", l
ine 300, in run
    r = run_wandbox(code, includes, options)
  File "D:\user\documents\git\string_split\iutest\tools\wandbox\iuwandbox.py", l
ine 205, in run_wandbox
    opt.append('boost-' + options.boost)
AttributeError: 'filter' object has no attribute 'append'

環境

Windows 7 64bit
python 3.4.4(x86)

D:\user\documents\git\string_split\iutest\tools\wandbox>pip list
cycler (0.10.0)
matplotlib (1.5.0)
numpy (1.10.2)
pip (8.0.2)
pyparsing (2.1.0)
python-dateutil (2.4.2)
pytz (2015.7)
requests (2.10.0)
scipy (0.16.1)
setuptools (20.1.1)
six (1.10.0)
wheel (0.29.0)
You are using pip version 8.0.2, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' comm
and.

HTTPSConnectionPool 対応

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='wandbox.org', port=443): Max retries exceeded with url: /api/list.json

circle ci でたまに apt-get に失敗する

https://circleci.com/gh/srz-zumix/iutest/622#tests/containers/1

sudo apt-get -qq install clang-3.9
E: Unable to locate package clang-3.9
E: Couldn't find any package by regex 'clang-3.9'

sudo apt-get -qq install clang-3.9 returned exit code 100

Action failed: sudo apt-get -qq install clang-3.9

その前の update で失敗しているので、リトライかなにかで回避したい。

Err http://apt.llvm.org llvm-toolchain-trusty-3.9 InRelease
  

Err http://apt.llvm.org llvm-toolchain-trusty-3.9 Release.gpg
  Unable to connect to apt.llvm.org:http:

iuwandbox.py : --expand_includeしない場合について

現在--expand_includeする場合はmake_code関数が再帰処理するので確実にヘッダーファイルをコンパイルできるが、しない場合はそれができない。

たとえば

#include "../include/string_split.hpp"

とあったとして、現状ではこのヘッダーはwandboxに送られるものの、パスが違うのでincludeに失敗します。

現状の--expand_includeしない場合のルーチンは

  1. make_code関数が呼ばれる
  2. #includeを見つける
  3. 存在すればファイルパスを記録
  4. setup_includes関数でファイルを開く

となっていますが、これではincludeしているヘッダーからincludeしているファイルを追加できないのでまずいです。

includeしているヘッダーからincludeしていない場合は

#ifdef __WANDBOX__
#include "string_split.hpp"
#else
#include "../include/string_split.hpp"
#endif

のように対処できたりしますが。

--expand_includeすればいいだろ、という話は有りますが。

Doxygen ドキュメントの自動生成の修正

現状、1commit 前との差分をみて更新必要かどうか判断しているため、
複数コミットを push すると更新が行われないことがある。
svn 同期処理と同じように commit メッセージに id つけて対応する。

Coverity-scan failed

Last Build Status: Failed. Your build has failed due to the following reason. Please fix the error and upload the build again.
Error details: :Failed to retrieve tar file

iuwandbox(proposal) : 複数の翻訳単位の対応

http://melpon.org/wandbox/permlink/WlbTScmW4ofzbE2E

のように複数の翻訳単位を作れるようなので将来的に対応してもいいかもしれない。具体的にはinclude解析部分に手を加える必要がある。

@kazatsuyu ほう、ますますstatic/extern/inlineまわりわかんねぇ・・・。

ところでwandboxで複数の翻訳単位作る方法あったのか・・・@srz_zumix 氏のiuwandboxつかっててヘッダーオンリーなものしか使えないイメージだった

— yumetodo-C++erだけど化学科 (@yumetodo) 2016年10月16日

Android Build error

https://www.bitrise.io/build/daf1bd5580ca5655

  • ndk-build
    Android NDK: android-8 is unsupported. Using minimum supported version android-14.
    Android NDK: WARNING: APP_PLATFORM android-14 is higher than android:minSdkVersion 1 in ./AndroidManifest.xml. NDK binaries will not be compatible with devices older than android-14. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md for more information.
    Android NDK: WARNING: APP_STL gnustl_static is deprecated and will be removed in the next release. Please switch to either c++_static or c++_shared. See https://developer.android.com/ndk/guides/cpp-support.html for more information.
    Android NDK: The armeabi ABI is no longer supported. Use armeabi-v7a.
    Android NDK: NDK Application 'local' targets unknown ABI(s): armeabi
    Android NDK: Please fix the APP_ABI definition in ./jni/Application.mk
    /opt/android-ndk/build/core/setup-app.mk:79: *** Android NDK: Aborting . Stop.

CMake の xcode scheme 対応に追従する

cmake が xcode scheme に対応したら test もできるようになるはず。
対応後に .yml にする。

CMake Xcode Schemes (!509) · Merge Requests · CMake / CMake · GitLab
CMake 3.9 で対応されそう?

対応されてたら、Bitrise の設定を更新する。

warning C4267(UTF8ToSJIS): size_tからintへの変換

iutest_charcode.ippiutest::detail::UTF8ToSJIS関数にて。

MultiByteToWideCharの第4引数にsize_t型の値を渡しているが、要求されているのはint型なので

warning C4267: '引数': 'size_t' から 'int' に変換しました。データが失われているかもしれません。

という警告が出る。

MemorySanitizer: use-of-uninitialized-value

環境

  • Ubuntu 16.04 LTS
  • clang 6.0.0 from official llvm apt repo

再現手順

$ clang++-6.0 -Wall -Wextra -std=c++14 -g -fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -O1 iutest/samples/simple.cpp iutest/samples/main.cpp

$ ./a.out

Uninitialized bytes in __interceptor_strlen at offset 4 inside [0x7ffdeeeec080, 5)
==15204==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x7fdd7899fb57  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x127b57)
    #1 0x4bcd9d  (/home/yumetodo/a.out+0x4bcd9d)
    #2 0x4bca82  (/home/yumetodo/a.out+0x4bca82)
    #3 0x4a2de8  (/home/yumetodo/a.out+0x4a2de8)
    #4 0x41e41c  (/home/yumetodo/a.out+0x41e41c)
    #5 0x41f96d  (/home/yumetodo/a.out+0x41f96d)
    #6 0x4fc22c  (/home/yumetodo/a.out+0x4fc22c)
    #7 0x7fdd779857be  (/lib/x86_64-linux-gnu/libc.so.6+0x207be)
    #8 0x41fa98  (/home/yumetodo/a.out+0x41fa98)

  Uninitialized value was created by an allocation of 'ref.tmp' in the stack frame of function '__cxx_global_var_init.7'
    #0 0x41e2c0  (/home/yumetodo/a.out+0x41e2c0)

SUMMARY: MemorySanitizer: use-of-uninitialized-value (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x127b57)
Exiting

cmake: FindIutest

まあincludeするだけのライブラリだけれども、

# - Try to find iutest include dirs
#
# Usage of this module as follows:
#
#     find_package(IUTEST)
#
# Variables used by this module, they can change the default behaviour and need
# to be set before calling find_package:
#
#  IUTEST_ROOT_DIR          Set this variable to the root installation of
#                            iutest if the module has problems finding the
#                            proper installation path.
#
# Variables defined by this module:
#
#  IUTEST_FOUND             System has iutest, include dirs found
#  IUTEST_INCLUDE_DIR       The iutest include directories.

find_path(IUTEST_ROOT_DIR
        NAMES include/iutest.hpp
        )

find_path(IUTEST_INCLUDE_DIR
        NAMES iutest.hpp
        HINTS ${IUTEST_ROOT_DIR}/include
)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(IUTEST DEFAULT_MSG
    IUTEST_INCLUDE_DIR
)

のようなスクリプトがあると使いやすいと思うんですが、どうでしょうか?

iuwandbox: -fオプションのパーサーはスペースを\nに置換するべきではないか

-fオプションで
-f"-O2 -DNO_RDSEED"
のように渡すと

compiler_message:
cc1plus: error: argument to '-O' should be a non-negative integer, 'g', 's' or 'fast'
cc1plus: error: argument to '-O' should be a non-negative integer, 'g', 's' or 'fast'
cc1plus: error: argument to '-O' should be a non-negative integer, 'g', 's' or 'fast'
cc1plus: error: argument to '-O' should be a non-negative integer, 'g', 's' or 'fast'
cc1plus: error: argument to '-O' should be a non-negative integer, 'g', 's' or 'fast'

のように怒られる。

ex.) http://melpon.org/wandbox/permlink/LA263I1vQuyfMqlE

つまりspaceを\nに置換する必要がある。

ただ、(ほとんど指定することないけど)-x c++みたいなオプションもあるので置換が面倒そう。

msys2 mingw clangでコンパイルエラー

$ make Debug CXX=clang++
clang++ test.cpp -o test.out -g -O0 -Wall -Wextra -std=c++14
In file included from test.cpp:6:
In file included from ./../iutest/include/iutest.hpp:23:
In file included from ./../iutest/include/iutest_core.hpp:20:
In file included from ./../iutest/include/internal/iutest_result_reporter.hpp:20:
In file included from ./../iutest/include/internal/iutest_core_impl.hpp:20:
In file included from ./../iutest/include/internal/iutest_internal.hpp:20:
In file included from ./../iutest/include/internal/../iutest_pred.hpp:20:
In file included from ./../iutest/include/iutest_assertion.hpp:20:
In file included from ./../iutest/include/iutest_result.hpp:20:
In file included from ./../iutest/include/internal/iutest_message.hpp:20:
In file included from ./../iutest/include/internal/../iutest_env.hpp:20:
In file included from ./../iutest/include/internal/../impl/../internal/iutest_charcode.hpp:194:
In file included from ./../iutest/include/internal/../impl/iutest_charcode.ipp:22:
D:\msys64\mingw32\i686-w64-mingw32\include\uchar.h:34:24: error: cannot combine with previous 'type-name' declaration specifier
typedef uint_least16_t char16_t;
                       ^
D:\msys64\mingw32\i686-w64-mingw32\include\uchar.h:35:24: error: cannot combine with previous 'type-name' declaration specifier
typedef uint_least32_t char32_t;
                       ^
2 errors generated.
make: *** [Makefile:30: test.out] エラー 1

原因は./include/impl/iutest_charcode.ipp

// include
#include "../internal/iutest_charcode.hpp"
#if IUTEST_HAS_HDR_UCHAR
#  include <uchar.h>
#endif

のようにuchar.hがincludeされているため。msys2 mingw gccでは発生しない。

再現手順

  1. http://sourceforge.net/projects/msys2/files/Base/ よりmsys2-base-[アーキテクチャ]-[日付].tar.xzをDLし展開する
  2. msys2_shell.cmdをダブルクリック、Close Windowと言われたらばってんを押して閉じる
  3. 再びmsys2_shell.cmdをダブルクリック、pacman -Syuuと打ち実行、また閉じる
  4. 再びmsys2_shell.cmdをダブルクリック、pacman -S git mingw-w64-i686-clang mingw-w64-x86_64-clangとと打ち実行、また閉じる
  5. コマンドプロンプトでmsys2_shell.cmdのあるパスに移動し、call msys2_shell.cmd -mingw64(64bit向けのコンパイル)またはcall msys2_shell.cmd -mingw32(32bit向けのコンパイル)を実行
$ git clone https://github.com/yumetodo/string_split.git
$ git submodule update --init
$ make Debug CXX=clang++

参照されていない関数 (iuDebugInitialize, iuDebugBreakAlloc) の警告 C4505

こんにちは、
毎日楽しく iutest を使って CI を回しております。

iutest をインクルードしたテストアプリケーションを Visual Studio でビルドするときに、iutest のヘッダーファイル内で次の警告が表示されます。

>c:\iutest\include\impl\../internal/iutest_debug.hpp(44): warning C4505: 'iutest::detail::iuDebugInitialize': unreferenced local function has been removed
>c:\iutest\include\impl\../internal/iutest_debug.hpp(53): warning C4505: 'iutest::detail::iuDebugBreakAlloc': unreferenced local function has been removed

コンパイラオプションで「警告をエラーとして扱う」ように設定しているので、テストアプリケーションのビルドが上手く通らず少々困っております。

>c:\iutest\include\impl\../internal/iutest_debug.hpp(44): error C2220: warning treated as error - no 'object' file generated

具体的なビルド環境は次の通りです:

  • ヘッダーオンリーで iutest (バージョンは r834) を使用しています
  • _IUTEST_DEBUG プリプロセッサは定義していません
  • <gtest/iutest_switch.hpp><iutest.hpp> の 2 つをアプリケーション側でインクルードして使っています
  • Visual Studio 2015 RC
  • Warning Level: Level4 (/W4)
  • Treat Warnings As Errors: Yes (/WX)

今は該当する警告を無視するオプション (/wd"4505") を追加してコンパイルしています。
警告を無視することなく、ビルドすることはできないでしょうか?よろしくお願いします。:relieved:

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.