]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
feat: Add statistics for forced recaches
authorJoel Rosdahl <joel@rosdahl.net>
Sun, 8 Aug 2021 16:49:01 +0000 (18:49 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Tue, 10 Aug 2021 13:38:27 +0000 (15:38 +0200)
src/ccache.cpp
src/core/Statistic.hpp
src/core/Statistics.cpp
test/suites/base.bash
test/suites/direct.bash

index 1d629b3c6c5654f91b8c4e2a758f0e9bc0c728cb..309a7f91c7d963c015f898736e25d58231943167 100644 (file)
@@ -2199,7 +2199,7 @@ do_cache_compilation(Context& ctx, const char* const* argv)
   }
   MTR_END("cache", "to_cache");
 
-  return Statistic::cache_miss;
+  return ctx.config.recache() ? Statistic::recache : Statistic::cache_miss;
 }
 
 int
index 8b67e96a80e6eddd9e3172122ea80e35e08677c0..dddfca9272511dc4ec43ef3447a39bc26357ab28 100644 (file)
@@ -63,6 +63,7 @@ enum class Statistic {
   secondary_storage_miss = 38,
   secondary_storage_error = 39,
   secondary_storage_timeout = 40,
+  recache = 41,
 
   END
 };
index 9351f186eddd1fe54cf849401fd7623eff082763..04f67897df9755da605fd90783355e6911bb21be 100644 (file)
@@ -87,6 +87,7 @@ const StatisticsField k_statistics_fields[] = {
   STATISTICS_FIELD(secondary_storage_miss, "secondary storage miss"),
   STATISTICS_FIELD(secondary_storage_error, "secondary storage error"),
   STATISTICS_FIELD(secondary_storage_timeout, "secondary storage timeout"),
+  STATISTICS_FIELD(recache, "forced recache"),
   STATISTICS_FIELD(called_for_link, "called for link"),
   STATISTICS_FIELD(called_for_preprocessing, "called for preprocessing"),
   STATISTICS_FIELD(multiple_source_files, "multiple source files"),
index 3996deaf52fb8cc7747d6580db43833828b8f163..61a854b58d04661b6e9d32b45e4672b5878741eb 100644 (file)
@@ -447,10 +447,12 @@ fi
     $CCACHE_COMPILE -c test1.c
     expect_stat preprocessed_cache_hit 0
     expect_stat cache_miss 1
+    expect_stat recache 0
 
     CCACHE_RECACHE=1 $CCACHE_COMPILE -c test1.c
     expect_stat preprocessed_cache_hit 0
-    expect_stat cache_miss 2
+    expect_stat cache_miss 1
+    expect_stat recache 1
 
     $REAL_COMPILER -c -o reference_test1.o test1.c
     expect_equal_object_files reference_test1.o test1.o
index 4f26a63eb2242729c5743da0f7ada7807400cb2f..4e22c93b8bc9af95c6a6eaad996373fd9fa5b96c 100644 (file)
@@ -1141,6 +1141,7 @@ EOF
     $CCACHE_COMPILE -c test.c
     expect_stat direct_cache_hit 0
     expect_stat cache_miss 1
+    expect_stat recache 0
     expect_stat files_in_cache 2 # result + manifest
 
     manifest_file=$(find $CCACHE_DIR -name '*M')
@@ -1148,7 +1149,8 @@ EOF
 
     CCACHE_RECACHE=1 $CCACHE_COMPILE -c test.c
     expect_stat direct_cache_hit 0
-    expect_stat cache_miss 2
+    expect_stat cache_miss 1
+    expect_stat recache 1
     expect_stat files_in_cache 2
 
     expect_equal_content $manifest_file saved.manifest