Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
yangql
googletest
Commits
afaefb0e
Commit
afaefb0e
authored
Jan 07, 2011
by
zhanyong.wan
Browse files
Removes unused NC tests.
parent
7225dd17
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
0 additions
and
349 deletions
+0
-349
test/gtest_nc.cc
test/gtest_nc.cc
+0
-234
test/gtest_nc_test.py
test/gtest_nc_test.py
+0
-115
No files found.
test/gtest_nc.cc
deleted
100644 → 0
View file @
7225dd17
// Copyright 2007, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// Author: wan@google.com (Zhanyong Wan)
// This file is the input to a negative-compilation test for Google
// Test. Code here is NOT supposed to compile. Its purpose is to
// verify that certain incorrect usages of the Google Test API are
// indeed rejected by the compiler.
//
// We still need to write the negative-compilation test itself, which
// will be tightly coupled with the build environment.
//
// TODO(wan@google.com): finish the negative-compilation test.
#ifdef TEST_CANNOT_IGNORE_RUN_ALL_TESTS_RESULT
// Tests that the result of RUN_ALL_TESTS() cannot be ignored.
#include "gtest/gtest.h"
int
main
(
int
argc
,
char
**
argv
)
{
testing
::
InitGoogleTest
(
&
argc
,
argv
);
RUN_ALL_TESTS
();
// This line shouldn't compile.
}
#elif defined(TEST_USER_CANNOT_INCLUDE_GTEST_INTERNAL_INL_H)
// Tests that a user cannot include gtest-internal-inl.h in his code.
#include "src/gtest-internal-inl.h"
#elif defined(TEST_CATCHES_DECLARING_SETUP_IN_TEST_FIXTURE_WITH_TYPO)
// Tests that the compiler catches the typo when a user declares a
// Setup() method in a test fixture.
#include "gtest/gtest.h"
class
MyTest
:
public
testing
::
Test
{
protected:
void
Setup
()
{}
};
#elif defined(TEST_CATCHES_CALLING_SETUP_IN_TEST_WITH_TYPO)
// Tests that the compiler catches the typo when a user calls Setup()
// from a test fixture.
#include "gtest/gtest.h"
class
MyTest
:
public
testing
::
Test
{
protected:
virtual
void
SetUp
()
{
testing
::
Test
::
Setup
();
// Tries to call SetUp() in the parent class.
}
};
#elif defined(TEST_CATCHES_DECLARING_SETUP_IN_ENVIRONMENT_WITH_TYPO)
// Tests that the compiler catches the typo when a user declares a
// Setup() method in a subclass of Environment.
#include "gtest/gtest.h"
class
MyEnvironment
:
public
testing
::
Environment
{
public:
void
Setup
()
{}
};
#elif defined(TEST_CATCHES_CALLING_SETUP_IN_ENVIRONMENT_WITH_TYPO)
// Tests that the compiler catches the typo when a user calls Setup()
// in an Environment.
#include "gtest/gtest.h"
class
MyEnvironment
:
public
testing
::
Environment
{
protected:
virtual
void
SetUp
()
{
// Tries to call SetUp() in the parent class.
testing
::
Environment
::
Setup
();
}
};
#elif defined(TEST_CATCHES_WRONG_CASE_IN_TYPED_TEST_P)
// Tests that the compiler catches using the wrong test case name in
// TYPED_TEST_P.
#include "gtest/gtest.h"
template
<
typename
T
>
class
FooTest
:
public
testing
::
Test
{
};
template
<
typename
T
>
class
BarTest
:
public
testing
::
Test
{
};
TYPED_TEST_CASE_P
(
FooTest
);
TYPED_TEST_P
(
BarTest
,
A
)
{}
// Wrong test case name.
REGISTER_TYPED_TEST_CASE_P
(
FooTest
,
A
);
INSTANTIATE_TYPED_TEST_CASE_P
(
My
,
FooTest
,
testing
::
Types
<
int
>
);
#elif defined(TEST_CATCHES_WRONG_CASE_IN_REGISTER_TYPED_TEST_CASE_P)
// Tests that the compiler catches using the wrong test case name in
// REGISTER_TYPED_TEST_CASE_P.
#include "gtest/gtest.h"
template
<
typename
T
>
class
FooTest
:
public
testing
::
Test
{
};
template
<
typename
T
>
class
BarTest
:
public
testing
::
Test
{
};
TYPED_TEST_CASE_P
(
FooTest
);
TYPED_TEST_P
(
FooTest
,
A
)
{}
REGISTER_TYPED_TEST_CASE_P
(
BarTest
,
A
);
// Wrong test case name.
INSTANTIATE_TYPED_TEST_CASE_P
(
My
,
FooTest
,
testing
::
Types
<
int
>
);
#elif defined(TEST_CATCHES_WRONG_CASE_IN_INSTANTIATE_TYPED_TEST_CASE_P)
// Tests that the compiler catches using the wrong test case name in
// INSTANTIATE_TYPED_TEST_CASE_P.
#include "gtest/gtest.h"
template
<
typename
T
>
class
FooTest
:
public
testing
::
Test
{
};
template
<
typename
T
>
class
BarTest
:
public
testing
::
Test
{
};
TYPED_TEST_CASE_P
(
FooTest
);
TYPED_TEST_P
(
FooTest
,
A
)
{}
REGISTER_TYPED_TEST_CASE_P
(
FooTest
,
A
);
// Wrong test case name.
INSTANTIATE_TYPED_TEST_CASE_P
(
My
,
BarTest
,
testing
::
Types
<
int
>
);
#elif defined(TEST_CATCHES_INSTANTIATE_TYPED_TESET_CASE_P_WITH_SAME_NAME_PREFIX)
// Tests that the compiler catches instantiating TYPED_TEST_CASE_P
// twice with the same name prefix.
#include "gtest/gtest.h"
template
<
typename
T
>
class
FooTest
:
public
testing
::
Test
{
};
TYPED_TEST_CASE_P
(
FooTest
);
TYPED_TEST_P
(
FooTest
,
A
)
{}
REGISTER_TYPED_TEST_CASE_P
(
FooTest
,
A
);
INSTANTIATE_TYPED_TEST_CASE_P
(
My
,
FooTest
,
testing
::
Types
<
int
>
);
// Wrong name prefix: "My" has been used.
INSTANTIATE_TYPED_TEST_CASE_P
(
My
,
FooTest
,
testing
::
Types
<
double
>
);
#elif defined(TEST_STATIC_ASSERT_TYPE_EQ_IS_NOT_A_TYPE)
#include "gtest/gtest.h"
// Tests that StaticAssertTypeEq<T1, T2> cannot be used as a type.
testing
::
StaticAssertTypeEq
<
int
,
int
>
dummy
;
#elif defined(TEST_STATIC_ASSERT_TYPE_EQ_WORKS_IN_NAMESPACE)
#include "gtest/gtest.h"
// Tests that StaticAssertTypeEq<T1, T2> works in a namespace scope.
static
bool
dummy
=
testing
::
StaticAssertTypeEq
<
int
,
const
int
>
();
#elif defined(TEST_STATIC_ASSERT_TYPE_EQ_WORKS_IN_CLASS)
#include "gtest/gtest.h"
template
<
typename
T
>
class
Helper
{
public:
// Tests that StaticAssertTypeEq<T1, T2> works in a class.
Helper
()
{
testing
::
StaticAssertTypeEq
<
int
,
T
>
();
}
void
DoSomething
()
{}
};
void
Test
()
{
Helper
<
bool
>
h
;
h
.
DoSomething
();
// To avoid the "unused variable" warning.
}
#elif defined(TEST_STATIC_ASSERT_TYPE_EQ_WORKS_IN_FUNCTION)
#include "gtest/gtest.h"
void
Test
()
{
// Tests that StaticAssertTypeEq<T1, T2> works inside a function.
testing
::
StaticAssertTypeEq
<
const
int
,
int
>
();
}
#else
// A sanity test. This should compile.
#include "gtest/gtest.h"
int
main
()
{
return
RUN_ALL_TESTS
();
}
#endif
test/gtest_nc_test.py
deleted
100755 → 0
View file @
7225dd17
#!/usr/bin/env python
#
# Copyright 2007, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""Negative compilation test for Google Test."""
__author__
=
'wan@google.com (Zhanyong Wan)'
import
os
import
sys
import
unittest
IS_LINUX
=
os
.
name
==
'posix'
and
os
.
uname
()[
0
]
==
'Linux'
if
not
IS_LINUX
:
sys
.
exit
(
0
)
# Negative compilation tests are not supported on Windows & Mac.
class
GTestNCTest
(
unittest
.
TestCase
):
"""Negative compilation test for Google Test."""
# The class body is intentionally empty. The actual test*() methods
# will be defined at run time by a call to
# DefineNegativeCompilationTests() later.
pass
# Defines a list of test specs, where each element is a tuple
# (test name, list of regexes for matching the compiler errors).
TEST_SPECS
=
[
(
'CANNOT_IGNORE_RUN_ALL_TESTS_RESULT'
,
[
r
'ignoring return value'
]),
(
'USER_CANNOT_INCLUDE_GTEST_INTERNAL_INL_H'
,
[
r
'must not be included except by Google Test itself'
]),
(
'CATCHES_DECLARING_SETUP_IN_TEST_FIXTURE_WITH_TYPO'
,
[
r
'Setup_should_be_spelled_SetUp'
]),
(
'CATCHES_CALLING_SETUP_IN_TEST_WITH_TYPO'
,
[
r
'Setup_should_be_spelled_SetUp'
]),
(
'CATCHES_DECLARING_SETUP_IN_ENVIRONMENT_WITH_TYPO'
,
[
r
'Setup_should_be_spelled_SetUp'
]),
(
'CATCHES_CALLING_SETUP_IN_ENVIRONMENT_WITH_TYPO'
,
[
r
'Setup_should_be_spelled_SetUp'
]),
(
'CATCHES_WRONG_CASE_IN_TYPED_TEST_P'
,
[
r
'BarTest.*was not declared'
,
# GCC
r
'undeclared identifier .*BarTest'
,
# Clang
]),
(
'CATCHES_WRONG_CASE_IN_REGISTER_TYPED_TEST_CASE_P'
,
[
r
'BarTest.*was not declared'
,
# GCC
r
'undeclared identifier .*BarTest'
,
# Clang
]),
(
'CATCHES_WRONG_CASE_IN_INSTANTIATE_TYPED_TEST_CASE_P'
,
[
r
'BarTest.*not declared'
,
# GCC
r
'undeclared identifier .*BarTest'
,
# Clang
]),
(
'CATCHES_INSTANTIATE_TYPED_TESET_CASE_P_WITH_SAME_NAME_PREFIX'
,
[
r
'redefinition of.*My.*FooTest'
]),
(
'STATIC_ASSERT_TYPE_EQ_IS_NOT_A_TYPE'
,
[
r
'StaticAssertTypeEq.* does not name a type'
,
# GCC
r
'requires a type.*\n.*StaticAssertTypeEq'
,
# Clang
]),
(
'STATIC_ASSERT_TYPE_EQ_WORKS_IN_NAMESPACE'
,
[
r
'StaticAssertTypeEq.*int.*const int'
]),
(
'STATIC_ASSERT_TYPE_EQ_WORKS_IN_CLASS'
,
[
r
'StaticAssertTypeEq.*int.*bool'
]),
(
'STATIC_ASSERT_TYPE_EQ_WORKS_IN_FUNCTION'
,
[
r
'StaticAssertTypeEq.*const int.*int'
]),
(
'SANITY'
,
None
)
]
# TODO(wan@google.com): verify that the test specs are satisfied.
if
__name__
==
'__main__'
:
unittest
.
main
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment