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