mirror of https://github.com/google/benchmark.git
add floating point comparison warnings
This commit is contained in:
parent
f022d780eb
commit
66bf7c8f71
|
@ -39,6 +39,7 @@ add_cxx_compiler_flag(-Wshadow)
|
|||
add_cxx_compiler_flag(-Werror)
|
||||
add_cxx_compiler_flag(-pedantic-errors)
|
||||
add_cxx_compiler_flag(-Wshorten-64-to-32)
|
||||
add_cxx_compiler_flag(-Wfloat-equal)
|
||||
# TODO(ericwf): enable this for g++
|
||||
#add_cxx_compiler_flag(-Wzero-as-null-pointer-constant)
|
||||
# Release flags
|
||||
|
|
|
@ -665,11 +665,11 @@ void RunBenchmark(const benchmark::internal::Benchmark::Instance& b,
|
|||
(seconds >= FLAGS_benchmark_min_time) ||
|
||||
(real_accumulated_time >= 5*FLAGS_benchmark_min_time)) {
|
||||
double bytes_per_second = 0;
|
||||
if (total.bytes_processed > 0 && seconds != 0.0) {
|
||||
if (total.bytes_processed > 0 && seconds > 0.0) {
|
||||
bytes_per_second = (total.bytes_processed / seconds);
|
||||
}
|
||||
double items_per_second = 0;
|
||||
if (total.items_processed > 0 && seconds != 0.0) {
|
||||
if (total.items_processed > 0 && seconds > 0.0) {
|
||||
items_per_second = (total.items_processed / seconds);
|
||||
}
|
||||
|
||||
|
|
15
src/stat.h
15
src/stat.h
|
@ -2,8 +2,10 @@
|
|||
#define BENCHMARK_STAT_H_
|
||||
|
||||
#include <cmath>
|
||||
#include <ostream>
|
||||
#include <limits>
|
||||
#include <ostream>
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
namespace benchmark {
|
||||
|
||||
|
@ -13,10 +15,10 @@ class Stat1;
|
|||
template <typename VType, typename NumType>
|
||||
class Stat1MinMax;
|
||||
|
||||
typedef Stat1<float, float> Stat1_f;
|
||||
typedef Stat1<double, double> Stat1_d;
|
||||
typedef Stat1MinMax<float, float> Stat1MinMax_f;
|
||||
typedef Stat1MinMax<double, double> Stat1MinMax_d;
|
||||
typedef Stat1<float, int64_t> Stat1_f;
|
||||
typedef Stat1<double, int64_t> Stat1_d;
|
||||
typedef Stat1MinMax<float, int64_t> Stat1MinMax_f;
|
||||
typedef Stat1MinMax<double, int64_t> Stat1MinMax_d;
|
||||
|
||||
template <typename VType>
|
||||
class Vector2;
|
||||
|
@ -133,6 +135,9 @@ class Stat1 {
|
|||
}
|
||||
|
||||
private:
|
||||
static_assert(std::is_integral<NumType>::value &&
|
||||
!std::is_same<NumType, bool>::value,
|
||||
"NumType must be an integral type that is not bool.");
|
||||
// Let i be the index of the samples provided (using +=)
|
||||
// and weight[i],value[i] be the data of sample #i
|
||||
// then the variables have the following meaning:
|
||||
|
|
|
@ -158,7 +158,7 @@ static void BM_LongTest(benchmark::State& state) {
|
|||
while (state.KeepRunning())
|
||||
for (int i = 0; i < state.range_x(); ++i)
|
||||
tracker += i;
|
||||
assert(tracker != 0.0);
|
||||
assert(tracker > 1.0);
|
||||
}
|
||||
BENCHMARK(BM_LongTest)->Range(1<<16,1<<28);
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#include "benchmark/benchmark.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
#include <cstdint>
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
@ -69,7 +69,7 @@ BENCHMARK(BM_CalculatePi)->ThreadPerCpu();
|
|||
int main(int argc, const char* argv[]) {
|
||||
benchmark::Initialize(&argc, argv);
|
||||
|
||||
assert(CalculatePi(1) == 0.0);
|
||||
assert(std::fabs(CalculatePi(1)) < 0.001);
|
||||
|
||||
TestReporter test_reporter;
|
||||
benchmark::RunSpecifiedBenchmarks(&test_reporter);
|
||||
|
|
Loading…
Reference in New Issue