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
ba96d0b1
Unverified
Commit
ba96d0b1
authored
Jun 14, 2018
by
Gennadiy Civil
Committed by
GitHub
Jun 14, 2018
Browse files
Merge pull request #1622 from rohanjoyce/bazel_test_filter
Support bazel test filtering
parents
dea79290
0563b52d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
129 additions
and
8 deletions
+129
-8
googletest/include/gtest/internal/custom/gtest-port.h
googletest/include/gtest/internal/custom/gtest-port.h
+0
-5
googletest/src/gtest.cc
googletest/src/gtest.cc
+4
-3
googletest/test/BUILD.bazel
googletest/test/BUILD.bazel
+16
-0
googletest/test/gtest_testbridge_test.py
googletest/test/gtest_testbridge_test.py
+65
-0
googletest/test/gtest_testbridge_test_.cc
googletest/test/gtest_testbridge_test_.cc
+44
-0
No files found.
googletest/include/gtest/internal/custom/gtest-port.h
View file @
ba96d0b1
...
...
@@ -41,11 +41,6 @@
// GTEST_DEFINE_int32_(name, default_val, doc)
// GTEST_DEFINE_string_(name, default_val, doc)
//
// Test filtering:
// GTEST_TEST_FILTER_ENV_VAR_ - The name of an environment variable that
// will be used if --GTEST_FLAG(test_filter)
// is not provided.
//
// Logging:
// GTEST_LOG_(severity)
// GTEST_CHECK_(condition)
...
...
googletest/src/gtest.cc
View file @
ba96d0b1
...
...
@@ -184,13 +184,14 @@ bool g_help_flag = false;
}
// namespace internal
// Bazel passes in the argument to '--test_filter' via the TESTBRIDGE_TEST_ONLY
// environment variable.
static
const
char
*
GetDefaultFilter
()
{
#ifdef GTEST_TEST_FILTER_ENV_VAR_
const
char
*
const
testbridge_test_only
=
g
et
e
nv
(
G
TEST
_TEST_FILTER_ENV_VAR_
);
const
char
*
const
testbridge_test_only
=
internal
::
posix
::
G
et
E
nv
(
"
TEST
BRIDGE_TEST_ONLY"
);
if
(
testbridge_test_only
!=
NULL
)
{
return
testbridge_test_only
;
}
#endif // GTEST_TEST_FILTER_ENV_VAR_
return
kUniversalFilter
;
}
...
...
googletest/test/BUILD.bazel
View file @
ba96d0b1
...
...
@@ -378,3 +378,19 @@ py_test(
data
=
[
":gtest_uninitialized_test_"
],
deps
=
[
":gtest_test_utils"
],
)
cc_binary
(
name
=
"gtest_testbridge_test_"
,
testonly
=
1
,
srcs
=
[
"gtest_testbridge_test_.cc"
],
deps
=
[
"//:gtest_main"
],
)
# Tests that filtering via testbridge works
py_test
(
name
=
"gtest_testbridge_test"
,
size
=
"small"
,
srcs
=
[
"gtest_testbridge_test.py"
],
data
=
[
":gtest_testbridge_test_"
],
deps
=
[
":gtest_test_utils"
],
)
googletest/test/gtest_testbridge_test.py
0 → 100644
View file @
ba96d0b1
#!/usr/bin/env python
#
# Copyright 2018 Google LLC. 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.
"""Verifies that Google Test uses filter provided via testbridge."""
__author__
=
'rfj@google.com (Rohan Joyce)'
import
os
import
gtest_test_utils
binary_name
=
'gtest_testbridge_test_'
COMMAND
=
gtest_test_utils
.
GetTestExecutablePath
(
binary_name
)
TESTBRIDGE_NAME
=
'TESTBRIDGE_TEST_ONLY'
def
Assert
(
condition
):
if
not
condition
:
raise
AssertionError
class
GTestTestFilterTest
(
gtest_test_utils
.
TestCase
):
def
testTestExecutionIsFiltered
(
self
):
"""Tests that the test filter is picked up from the testbridge env var."""
subprocess_env
=
os
.
environ
.
copy
()
subprocess_env
[
TESTBRIDGE_NAME
]
=
'*.TestThatSucceeds'
p
=
gtest_test_utils
.
Subprocess
(
COMMAND
,
env
=
subprocess_env
)
self
.
assertEquals
(
0
,
p
.
exit_code
)
Assert
(
'filter = *.TestThatSucceeds'
in
p
.
output
)
Assert
(
'[ OK ] TestFilterTest.TestThatSucceeds'
in
p
.
output
)
Assert
(
'[ PASSED ] 1 test.'
in
p
.
output
)
if
__name__
==
'__main__'
:
gtest_test_utils
.
Main
()
googletest/test/gtest_testbridge_test_.cc
0 → 100644
View file @
ba96d0b1
// Copyright 2018, Google LLC.
// 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: rfj@google.com (Rohan Joyce)
// This program is meant to be run by gtest_test_filter_test.py. Do not run
// it directly.
#include "gtest/gtest.h"
// These tests are used to detect if filtering is working. Only
// 'TestThatSucceeds' should ever run.
TEST
(
TestFilterTest
,
TestThatSucceeds
)
{}
TEST
(
TestFilterTest
,
TestThatFails
)
{
ASSERT_TRUE
(
false
)
<<
"This test should never be run."
;
}
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