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.SetBytes(120220)
34	tb.Run("b", func(tb TB) {
35		tb.Run("bb", func(tb TB) {
36			tb.ResetTimer()
37			for i := 0; i < tb.N(); i++ {
38				if !tb.IsBenchmark() {
39					if tb.N() != 1 {
40						tb.FailNow()
41					}
42				}
43			}
44		})
45	})
46
47}
48