In `initializeProfileForContinuousMode`, we have already locked the profile file when merging is enabled, so there's no need to lock the same file second time in `openFileForMerging`. On Linux/Darwin, the locking the same file twice doesn't cause any problem. But on Windows, it causes the problem to hang forever. With this minor fix, continuous mode seems working with online merging on Windows. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D154748
35 lines
1.6 KiB
C
35 lines
1.6 KiB
C
// REQUIRES: linux || windows
|
|
|
|
// RUN: %clang -fprofile-instr-generate -fcoverage-mapping -mllvm -runtime-counter-relocation=true -o %t.exe %s
|
|
// RUN: echo "garbage" > %t.profraw
|
|
// RUN: env LLVM_PROFILE_FILE="%c%t.profraw" %run %t.exe
|
|
// RUN: llvm-profdata show --counts --all-functions %t.profraw | FileCheck %s -check-prefix=CHECK-COUNTS
|
|
// RUN: llvm-profdata merge -o %t.profdata %t.profraw
|
|
// RUN: llvm-cov report %t.exe -instr-profile %t.profdata | FileCheck %s -check-prefix=CHECK-COVERAGE
|
|
|
|
// CHECK-COUNTS: Counters:
|
|
// CHECK-COUNTS-NEXT: main:
|
|
// CHECK-COUNTS-NEXT: Hash: 0x{{.*}}
|
|
// CHECK-COUNTS-NEXT: Counters: 2
|
|
// CHECK-COUNTS-NEXT: Function count: 1
|
|
// CHECK-COUNTS-NEXT: Block counts: [1]
|
|
// CHECK-COUNTS-NEXT: Instrumentation level: Front-end
|
|
// CHECK-COUNTS-NEXT: Functions shown: 1
|
|
// CHECK-COUNTS-NEXT: Total functions: 1
|
|
// CHECK-COUNTS-NEXT: Maximum function count: 1
|
|
// CHECK-COUNTS-NEXT: Maximum internal block count: 1
|
|
|
|
// CHECK-COVERAGE: Filename Regions Missed Regions Cover Functions Missed Functions Executed Lines Missed Lines Cover
|
|
// CHECK-COVERAGE-NEXT: ---
|
|
// CHECK-COVERAGE-NEXT: runtime-counter-relocation.c 4 1 75.00% 1 0 100.00% 5 1 80.00%
|
|
// CHECK-COVERAGE-NEXT: ---
|
|
// CHECK-COVERAGE-NEXT: TOTAL 4 1 75.00% 1 0 100.00% 5 1 80.00%
|
|
|
|
extern int __llvm_profile_is_continuous_mode_enabled(void);
|
|
|
|
int main() {
|
|
if (__llvm_profile_is_continuous_mode_enabled())
|
|
return 0;
|
|
return 1;
|
|
}
|