Keeping the count of failed tests, so we
get better output with failures, like:

  # make tests
  ...
  running static:
  - running test-cpumap.c...OK
  - running test-threadmap.c...OK
  - running test-evlist.c...FAILED test-evlist.c:53 failed to create evsel2
  FAILED test-evlist.c:163 failed to create evsel2
  FAILED test-evlist.c:287 failed count
    FAILED (3)
  - running test-evsel.c...OK
  running dynamic:
  - running test-cpumap.c...OK
  - running test-threadmap.c...OK
  - running test-evlist.c...FAILED test-evlist.c:53 failed to create evsel2
  FAILED test-evlist.c:163 failed to create evsel2
  FAILED test-evlist.c:287 failed count
    FAILED (3)
  - running test-evsel.c...OK
 ...

Link: http://lkml.kernel.org/n/tip-wi78jndi8ymzw7dq11mwx...@git.kernel.org
Signed-off-by: Jiri Olsa <jo...@kernel.org>
---
 tools/perf/lib/include/internal/tests.h | 20 +++++++++++++++++---
 tools/perf/lib/tests/test-cpumap.c      |  2 +-
 tools/perf/lib/tests/test-evlist.c      |  2 +-
 tools/perf/lib/tests/test-evsel.c       |  2 +-
 tools/perf/lib/tests/test-threadmap.c   |  2 +-
 5 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/tools/perf/lib/include/internal/tests.h 
b/tools/perf/lib/include/internal/tests.h
index b7a20cd24ee1..2093e8868a67 100644
--- a/tools/perf/lib/include/internal/tests.h
+++ b/tools/perf/lib/include/internal/tests.h
@@ -4,14 +4,28 @@
 
 #include <stdio.h>
 
-#define __T_START fprintf(stdout, "- running %s...", __FILE__)
-#define __T_OK    fprintf(stdout, "OK\n")
-#define __T_FAIL  fprintf(stdout, "FAIL\n")
+int tests_failed;
+
+#define __T_START                                      \
+do {                                                   \
+       fprintf(stdout, "- running %s...", __FILE__);   \
+       fflush(NULL);                                   \
+       tests_failed = 0;                               \
+} while (0)
+
+#define __T_END                                                                
\
+do {                                                                   \
+       if (tests_failed)                                               \
+               fprintf(stdout, "  FAILED (%d)\n", tests_failed);       \
+       else                                                            \
+               fprintf(stdout, "OK\n");                                \
+} while (0)
 
 #define __T(text, cond)                                                        
  \
 do {                                                                           
  \
        if (!(cond)) {                                                          
 \
                fprintf(stderr, "FAILED %s:%d %s\n", __FILE__, __LINE__, text); 
 \
+               tests_failed++;                                                 
 \
                return -1;                                                      
 \
        }                                                                       
 \
 } while (0)
diff --git a/tools/perf/lib/tests/test-cpumap.c 
b/tools/perf/lib/tests/test-cpumap.c
index aa34c20df07e..c8d45091e7c2 100644
--- a/tools/perf/lib/tests/test-cpumap.c
+++ b/tools/perf/lib/tests/test-cpumap.c
@@ -26,6 +26,6 @@ int main(int argc, char **argv)
        perf_cpu_map__put(cpus);
        perf_cpu_map__put(cpus);
 
-       __T_OK;
+       __T_END;
        return 0;
 }
diff --git a/tools/perf/lib/tests/test-evlist.c 
b/tools/perf/lib/tests/test-evlist.c
index d8c52ebfa53a..9a80c310ac0f 100644
--- a/tools/perf/lib/tests/test-evlist.c
+++ b/tools/perf/lib/tests/test-evlist.c
@@ -407,6 +407,6 @@ int main(int argc, char **argv)
        test_mmap_thread();
        test_mmap_cpus();
 
-       __T_OK;
+       __T_END;
        return 0;
 }
diff --git a/tools/perf/lib/tests/test-evsel.c 
b/tools/perf/lib/tests/test-evsel.c
index 1b6c4285ac2b..135722ac965b 100644
--- a/tools/perf/lib/tests/test-evsel.c
+++ b/tools/perf/lib/tests/test-evsel.c
@@ -130,6 +130,6 @@ int main(int argc, char **argv)
        test_stat_thread();
        test_stat_thread_enable();
 
-       __T_OK;
+       __T_END;
        return 0;
 }
diff --git a/tools/perf/lib/tests/test-threadmap.c 
b/tools/perf/lib/tests/test-threadmap.c
index 8c5f47247d9e..7dc4d6fbedde 100644
--- a/tools/perf/lib/tests/test-threadmap.c
+++ b/tools/perf/lib/tests/test-threadmap.c
@@ -26,6 +26,6 @@ int main(int argc, char **argv)
        perf_thread_map__put(threads);
        perf_thread_map__put(threads);
 
-       __T_OK;
+       __T_END;
        return 0;
 }
-- 
2.21.0

Reply via email to