google / benchmark

A microbenchmark support library
Apache License 2.0
8.6k stars 1.57k forks source link

[BUG] QNX: Test user_counters_tabular_test is failing #1665

Open avchenbb opened 9 months ago

avchenbb commented 9 months ago

Describe the bug I'm trying to port benchmark v1.5.0 to qnx. I got it to build, but when I'm trying to run the tests on RPI4, user_counters_tabular_test is giving me the following error:

# user_counters_tabular_test 
Running benchmarks...
-------------------------------
Testing ConsoleReporter Output
-------------------------------
1970-01-01 00:29:27
Running user_counters_tabular_test
Run on (4 X 1500 MHz CPU s)
CPU Caches:
  L1 Instruction 49K
  L1 Data 32K
---------------------------------------------------------------------------------------------
Benchmark                                   Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------------
BM_Counters_Tabular/threads:1           0.000 ns        0.000 ns   1000000000 Bar=2 Bat=8 Baz=4 Foo=1 Frob=16 Lob=32
BM_Counters_Tabular/threads:2           0.000 ns        0.000 ns   2000000000 Bar=2 Bat=8 Baz=4 Foo=1 Frob=16 Lob=32
BM_Counters_Tabular/threads:4           0.000 ns        0.000 ns   4000000000 Bar=2 Bat=8 Baz=4 Foo=1 Frob=16 Lob=32
BM_Counters_Tabular/threads:8           0.000 ns        0.000 ns   8000000000 Bar=2 Bat=8 Baz=4 Foo=1 Frob=16 Lob=32
BM_Counters_Tabular/threads:16          0.000 ns        0.000 ns   16000000000 Bar=2 Bat=8 Baz=4 Foo=1 Frob=16 Lob=32
BM_CounterRates_Tabular/threads:1       0.000 ns        0.000 ns   1000000000 Bar=1.89394M/s Bat=7.57576M/s Baz=3.78788M/s Foo=946.97k/s Frob=15.1515M/s Lob=30.303M/s
BM_CounterRates_Tabular/threads:2       0.000 ns        0.000 ns   2000000000 Bar=946.97k/s Bat=3.78788M/s Baz=1.89394M/s Foo=473.485k/s Frob=7.57576M/s Lob=15.1515M/s
BM_CounterRates_Tabular/threads:4       0.000 ns        0.000 ns   4000000000 Bar=416.927k/s Bat=1.66771M/s Baz=833.854k/s Foo=208.464k/s Frob=3.33542M/s Lob=6.67084M/s
BM_CounterRates_Tabular/threads:8       0.000 ns        0.000 ns   8000000000 Bar=82.1288k/s Bat=328.515k/s Baz=164.258k/s Foo=41.0644k/s Frob=657.03k/s Lob=1.31406M/s
BM_CounterRates_Tabular/threads:16      0.000 ns        0.000 ns   16000000000 Bar=51.6769k/s Bat=206.708k/s Baz=103.354k/s Foo=25.8385k/s Frob=413.415k/s Lob=826.831k/s
BM_CounterSet0_Tabular/threads:1        0.000 ns        0.000 ns   1000000000 Bar=20 Baz=40 Foo=10
BM_CounterSet0_Tabular/threads:2        0.000 ns        0.000 ns   2000000000 Bar=20 Baz=40 Foo=10
BM_CounterSet0_Tabular/threads:4        0.000 ns        0.000 ns   4000000000 Bar=20 Baz=40 Foo=10
BM_CounterSet0_Tabular/threads:8        0.000 ns        0.000 ns   8000000000 Bar=20 Baz=40 Foo=10
BM_CounterSet0_Tabular/threads:16       0.000 ns        0.000 ns   16000000000 Bar=20 Baz=40 Foo=10
BM_CounterSet1_Tabular/threads:1        0.000 ns        0.000 ns   1000000000 Bar=25 Baz=45 Foo=15
BM_CounterSet1_Tabular/threads:2        0.000 ns        0.000 ns   2000000000 Bar=25 Baz=45 Foo=15
BM_CounterSet1_Tabular/threads:4        0.000 ns        0.000 ns   4000000000 Bar=25 Baz=45 Foo=15
BM_CounterSet1_Tabular/threads:8        0.000 ns        0.000 ns   8000000000 Bar=25 Baz=45 Foo=15
BM_CounterSet1_Tabular/threads:16       0.000 ns        0.000 ns   16000000000 Bar=25 Baz=45 Foo=15
BM_CounterSet2_Tabular/threads:1        0.000 ns        0.000 ns   1000000000 Bat=30 Baz=40 Foo=10
BM_CounterSet2_Tabular/threads:2        0.000 ns        0.000 ns   2000000000 Bat=30 Baz=40 Foo=10
BM_CounterSet2_Tabular/threads:4        0.000 ns        0.000 ns   4000000000 Bat=30 Baz=40 Foo=10
BM_CounterSet2_Tabular/threads:8        0.000 ns        0.000 ns   8000000000 Bat=30 Baz=40 Foo=10
BM_CounterSet2_Tabular/threads:16       0.000 ns        0.000 ns   16000000000 Bat=30 Baz=40 Foo=10
/home/avchen/benchmark/test/output_test_helper.cc:125: CheckCase: Check `TC.match_rule != MR_Next' failed. Expected line "Benchmark                                   Time             CPU   Iterations UserCounters..." to match regex "^Benchmark %s Time %s CPU %s Iterations %s Bar %s Bat %s Baz %s Foo %s Frob %s Lob$"
    actual regex string "^Benchmark[ ]+Time[ ]+CPU[ ]+Iterations[ ]+Bar[ ]+Bat[ ]+Baz[ ]+Foo[ ]+Frob[ ]+Lob$"
    started matching near: Benchmark                                   Time             CPU   Iterations UserCounters...
Abort (core dumped)

Someone suggested to me under another issue that there might be a possibility that a command-line handling is broken (or simply impossible) on the OS that I'm on.

I have --benchmark_counters_tabular enabled in the CMake file under tests folder:

compile_output_test(user_counters_tabular_test)
add_test(user_counters_tabular_test user_counters_tabular_test --benchmark_counters_tabular=true --benchmark_min_time=0.01)

Anyone has any idea as to why I get this core dumped?

System Which OS, compiler, and compiler version are you using:

To reproduce Steps to reproduce the behavior:

  1. sync to commit ...
  2. cmake/bazel...
  3. make ...
  4. See error
dmah42 commented 9 months ago

you have enabled the flag in CMake, but then you run it outside of cmake. either try running ctest so it runs the test with the flags you've specified, or run the test binary but pass in the required flags for the test.

avchenbb commented 9 months ago

Ok, I've tried it with the latest version and it seems to be working...