1// Copyright (c) The Thanos Authors.
2// Licensed under the Apache License 2.0.
3
4package testutil
5
6import "testing"
7
8func TestTestOrBench(t *testing.T) {
9	tb := NewTB(t)
10	tb.Run("1", func(tb TB) { testorbenchComplexTest(tb) })
11	tb.Run("2", func(tb TB) { testorbenchComplexTest(tb) })
12}
13
14func BenchmarkTestOrBench(b *testing.B) {
15	tb := NewTB(b)
16	tb.Run("1", func(tb TB) { testorbenchComplexTest(tb) })
17	tb.Run("2", func(tb TB) { testorbenchComplexTest(tb) })
18}
19
20func testorbenchComplexTest(tb TB) {
21	tb.Run("a", func(tb TB) {
22		tb.Run("aa", func(tb TB) {
23			tb.ResetTimer()
24			for i := 0; i < tb.N(); i++ {
25				if !tb.IsBenchmark() {
26					if tb.N() != 1 {
27						tb.FailNow()
28					}
29				}
30			}
31		})
32	})
33	tb.Run("b", func(tb TB) {
34		tb.Run("bb", func(tb TB) {
35			tb.ResetTimer()
36			for i := 0; i < tb.N(); i++ {
37				if !tb.IsBenchmark() {
38					if tb.N() != 1 {
39						tb.FailNow()
40					}
41				}
42			}
43		})
44	})
45
46}
47