summaryrefslogtreecommitdiffhomepage
path: root/test/benchmarks/base
diff options
context:
space:
mode:
Diffstat (limited to 'test/benchmarks/base')
-rw-r--r--test/benchmarks/base/BUILD9
-rw-r--r--test/benchmarks/base/size_test.go10
-rw-r--r--test/benchmarks/base/startup_test.go12
-rw-r--r--test/benchmarks/base/sysbench_test.go29
4 files changed, 25 insertions, 35 deletions
diff --git a/test/benchmarks/base/BUILD b/test/benchmarks/base/BUILD
index b4b55317b..697ab5837 100644
--- a/test/benchmarks/base/BUILD
+++ b/test/benchmarks/base/BUILD
@@ -1,4 +1,5 @@
-load("//tools:defs.bzl", "go_library", "go_test")
+load("//tools:defs.bzl", "go_library")
+load("//test/benchmarks:defs.bzl", "benchmark_test")
package(licenses = ["notice"])
@@ -14,7 +15,7 @@ go_library(
],
)
-go_test(
+benchmark_test(
name = "startup_test",
size = "enormous",
srcs = ["startup_test.go"],
@@ -26,7 +27,7 @@ go_test(
],
)
-go_test(
+benchmark_test(
name = "size_test",
size = "enormous",
srcs = ["size_test.go"],
@@ -39,7 +40,7 @@ go_test(
],
)
-go_test(
+benchmark_test(
name = "sysbench_test",
size = "enormous",
srcs = ["sysbench_test.go"],
diff --git a/test/benchmarks/base/size_test.go b/test/benchmarks/base/size_test.go
index acc49cc7c..452926e5f 100644
--- a/test/benchmarks/base/size_test.go
+++ b/test/benchmarks/base/size_test.go
@@ -26,12 +26,10 @@ import (
"gvisor.dev/gvisor/test/benchmarks/tools"
)
-var testHarness harness.Harness
-
// BenchmarkSizeEmpty creates N empty containers and reads memory usage from
// /proc/meminfo.
func BenchmarkSizeEmpty(b *testing.B) {
- machine, err := testHarness.GetMachine()
+ machine, err := harness.GetMachine()
if err != nil {
b.Fatalf("failed to get machine: %v", err)
}
@@ -81,7 +79,7 @@ func BenchmarkSizeEmpty(b *testing.B) {
// BenchmarkSizeNginx starts N containers running Nginx, checks that they're
// serving, and checks memory used based on /proc/meminfo.
func BenchmarkSizeNginx(b *testing.B) {
- machine, err := testHarness.GetMachine()
+ machine, err := harness.GetMachine()
if err != nil {
b.Fatalf("failed to get machine with: %v", err)
}
@@ -126,7 +124,7 @@ func BenchmarkSizeNginx(b *testing.B) {
// BenchmarkSizeNode starts N containers running a Node app, checks that
// they're serving, and checks memory used based on /proc/meminfo.
func BenchmarkSizeNode(b *testing.B) {
- machine, err := testHarness.GetMachine()
+ machine, err := harness.GetMachine()
if err != nil {
b.Fatalf("failed to get machine with: %v", err)
}
@@ -178,6 +176,6 @@ func BenchmarkSizeNode(b *testing.B) {
// TestMain is the main method for package network.
func TestMain(m *testing.M) {
- testHarness.Init()
+ harness.Init()
os.Exit(m.Run())
}
diff --git a/test/benchmarks/base/startup_test.go b/test/benchmarks/base/startup_test.go
index 8ef9f99c4..05a43ad17 100644
--- a/test/benchmarks/base/startup_test.go
+++ b/test/benchmarks/base/startup_test.go
@@ -25,11 +25,9 @@ import (
"gvisor.dev/gvisor/test/benchmarks/harness"
)
-var testHarness harness.Harness
-
// BenchmarkStartEmpty times startup time for an empty container.
func BenchmarkStartupEmpty(b *testing.B) {
- machine, err := testHarness.GetMachine()
+ machine, err := harness.GetMachine()
if err != nil {
b.Fatalf("failed to get machine: %v", err)
}
@@ -53,7 +51,7 @@ func BenchmarkStartupEmpty(b *testing.B) {
// Time is measured from start until the first request is served.
func BenchmarkStartupNginx(b *testing.B) {
// The machine to hold Nginx and the Node Server.
- machine, err := testHarness.GetMachine()
+ machine, err := harness.GetMachine()
if err != nil {
b.Fatalf("failed to get machine with: %v", err)
}
@@ -76,7 +74,7 @@ func BenchmarkStartupNginx(b *testing.B) {
// Time is measured from start until the first request is served.
// Note that the Node app connects to a Redis instance before serving.
func BenchmarkStartupNode(b *testing.B) {
- machine, err := testHarness.GetMachine()
+ machine, err := harness.GetMachine()
if err != nil {
b.Fatalf("failed to get machine with: %v", err)
}
@@ -126,8 +124,8 @@ func runServerWorkload(ctx context.Context, b *testing.B, args base.ServerArgs)
return fmt.Errorf("failed to get ip from server: %v", err)
}
- harness.DebugLog(b, "Waiting for container to start.")
// Wait until the Client sees the server as up.
+ harness.DebugLog(b, "Waiting for container to start.")
if err := harness.WaitUntilServing(ctx, args.Machine, servingIP, args.Port); err != nil {
return fmt.Errorf("failed to wait for serving: %v", err)
}
@@ -141,6 +139,6 @@ func runServerWorkload(ctx context.Context, b *testing.B, args base.ServerArgs)
// TestMain is the main method for package network.
func TestMain(m *testing.M) {
- testHarness.Init()
+ harness.Init()
os.Exit(m.Run())
}
diff --git a/test/benchmarks/base/sysbench_test.go b/test/benchmarks/base/sysbench_test.go
index bbb797e14..d0f3f9261 100644
--- a/test/benchmarks/base/sysbench_test.go
+++ b/test/benchmarks/base/sysbench_test.go
@@ -23,8 +23,6 @@ import (
"gvisor.dev/gvisor/test/benchmarks/tools"
)
-var testHarness harness.Harness
-
type testCase struct {
name string
test tools.Sysbench
@@ -32,42 +30,34 @@ type testCase struct {
// BenchmarSysbench runs sysbench on the runtime.
func BenchmarkSysbench(b *testing.B) {
-
testCases := []testCase{
- testCase{
+ {
name: "CPU",
test: &tools.SysbenchCPU{
- Base: tools.SysbenchBase{
+ SysbenchBase: tools.SysbenchBase{
Threads: 1,
- Time: 5,
},
- MaxPrime: 50000,
},
},
- testCase{
+ {
name: "Memory",
test: &tools.SysbenchMemory{
- Base: tools.SysbenchBase{
+ SysbenchBase: tools.SysbenchBase{
Threads: 1,
},
- BlockSize: "1M",
- TotalSize: "500G",
},
},
- testCase{
+ {
name: "Mutex",
test: &tools.SysbenchMutex{
- Base: tools.SysbenchBase{
+ SysbenchBase: tools.SysbenchBase{
Threads: 8,
},
- Loops: 1,
- Locks: 10000000,
- Num: 4,
},
},
}
- machine, err := testHarness.GetMachine()
+ machine, err := harness.GetMachine()
if err != nil {
b.Fatalf("failed to get machine: %v", err)
}
@@ -87,12 +77,15 @@ func BenchmarkSysbench(b *testing.B) {
sysbench := machine.GetContainer(ctx, b)
defer sysbench.CleanUp(ctx)
+ cmd := tc.test.MakeCmd(b)
+ b.ResetTimer()
out, err := sysbench.Run(ctx, dockerutil.RunOpts{
Image: "benchmarks/sysbench",
- }, tc.test.MakeCmd()...)
+ }, cmd...)
if err != nil {
b.Fatalf("failed to run sysbench: %v: logs:%s", err, out)
}
+ b.StopTimer()
tc.test.Report(b, out)
})
}