summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--test/perf/BUILD8
-rw-r--r--test/perf/linux/getdents_benchmark.cc2
-rw-r--r--test/runner/gtest/gtest.go25
3 files changed, 24 insertions, 11 deletions
diff --git a/test/perf/BUILD b/test/perf/BUILD
index 7a2bf10ed..346a28e16 100644
--- a/test/perf/BUILD
+++ b/test/perf/BUILD
@@ -29,7 +29,7 @@ syscall_test(
)
syscall_test(
- size = "large",
+ size = "enormous",
test = "//test/perf/linux:getdents_benchmark",
)
@@ -39,7 +39,7 @@ syscall_test(
)
syscall_test(
- size = "large",
+ size = "enormous",
test = "//test/perf/linux:gettid_benchmark",
)
@@ -87,7 +87,7 @@ syscall_test(
)
syscall_test(
- size = "large",
+ size = "enormous",
test = "//test/perf/linux:signal_benchmark",
)
@@ -102,7 +102,7 @@ syscall_test(
)
syscall_test(
- size = "large",
+ size = "enormous",
add_overlay = True,
test = "//test/perf/linux:unlink_benchmark",
)
diff --git a/test/perf/linux/getdents_benchmark.cc b/test/perf/linux/getdents_benchmark.cc
index 0e03975b4..afc599ad2 100644
--- a/test/perf/linux/getdents_benchmark.cc
+++ b/test/perf/linux/getdents_benchmark.cc
@@ -141,7 +141,7 @@ void BM_GetdentsNewFD(benchmark::State& state) {
state.SetItemsProcessed(state.iterations());
}
-BENCHMARK(BM_GetdentsNewFD)->Range(1, 1 << 16)->UseRealTime();
+BENCHMARK(BM_GetdentsNewFD)->Range(1, 1 << 12)->UseRealTime();
} // namespace
diff --git a/test/runner/gtest/gtest.go b/test/runner/gtest/gtest.go
index 23bf7b5f6..f96e2415e 100644
--- a/test/runner/gtest/gtest.go
+++ b/test/runner/gtest/gtest.go
@@ -43,6 +43,10 @@ type TestCase struct {
// Name is the name of this individual test.
Name string
+ // all indicates that this will run without flags. This takes
+ // precendence over benchmark below.
+ all bool
+
// benchmark indicates that this is a benchmark. In this case, the
// suite will be empty, and we will use the appropriate test and
// benchmark flags.
@@ -57,6 +61,9 @@ func (tc TestCase) FullName() string {
// Args returns arguments to be passed when invoking the test.
func (tc TestCase) Args() []string {
+ if tc.all {
+ return []string{} // No arguments.
+ }
if tc.benchmark {
return []string{
fmt.Sprintf("%s=^$", filterTestFlag),
@@ -81,11 +88,16 @@ func ParseTestCases(testBin string, benchmarks bool, extraArgs ...string) ([]Tes
cmd := exec.Command(testBin, args...)
out, err := cmd.Output()
if err != nil {
- exitErr, ok := err.(*exec.ExitError)
- if !ok {
- return nil, fmt.Errorf("could not enumerate gtest tests: %v", err)
- }
- return nil, fmt.Errorf("could not enumerate gtest tests: %v\nstderr:\n%s", err, exitErr.Stderr)
+ // We failed to list tests with the given flags. Just
+ // return something that will run the binary with no
+ // flags, which should execute all tests.
+ return []TestCase{
+ TestCase{
+ Suite: "Default",
+ Name: "All",
+ all: true,
+ },
+ }, nil
}
// Parse test output.
@@ -114,7 +126,6 @@ func ParseTestCases(testBin string, benchmarks bool, extraArgs ...string) ([]Tes
Suite: suite,
Name: name,
})
-
}
// Finished?
@@ -127,6 +138,8 @@ func ParseTestCases(testBin string, benchmarks bool, extraArgs ...string) ([]Tes
cmd = exec.Command(testBin, args...)
out, err = cmd.Output()
if err != nil {
+ // We were able to enumerate tests above, but not benchmarks?
+ // We requested them, so we return an error in this case.
exitErr, ok := err.(*exec.ExitError)
if !ok {
return nil, fmt.Errorf("could not enumerate gtest benchmarks: %v", err)