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