llvm-project/compiler-rt/test/profile
KAWASHIMA Takahiro 9180c14fe4 Fix simultaneous .gcda creation
The intent of the `llvm_gcda_start_file` function is that only
one process create the .gcda file and initialize it to be updated
by other processes later.

Before this change, if multiple processes are started simultaneously,
some of them may initialize the file because both the first and
second `open` calls may succeed in a race condition and `new_file`
becomes 1 in those processes. This leads incorrect coverage counter
values. This often happens in MPI (Message Passing Interface) programs.
The test program added in this change is a simple reproducer.

This change ensures only one process creates/initializes the file by
using the `O_EXCL` flag.

Differential Revision: https://reviews.llvm.org/D76206
2020-04-01 10:29:50 +09:00
..
ContinuousSyncMode [profile] Support counter relocation at runtime 2020-01-17 15:02:23 -08:00
Inputs Fix simultaneous .gcda creation 2020-04-01 10:29:50 +09:00
Linux compiler-rt: Rename remaining cc files in test/profile to cpp 2019-08-05 13:42:31 +00:00
Posix Fix simultaneous .gcda creation 2020-04-01 10:29:50 +09:00
Windows [profile] Fix file contention causing dropped counts on Windows under -fprofile-generate 2019-11-27 15:55:13 +01:00
CMakeLists.txt Revert "[profile] Add a test dependency on cxx-headers" 2019-09-27 20:24:48 +00:00
coverage-inline.cpp [InstrProf] Use separate comdat group for data and counters 2019-02-27 23:38:44 +00:00
gcc-flag-compatibility.test
infinite_loop.c [PGO] Test case changes for D41059 2017-12-18 17:56:42 +00:00
instrprof-basic.c [profile] Support merge pool size >= 10 2020-01-12 00:27:18 -08:00
instrprof-bufferio.c
instrprof-darwin-dead-strip.c [profile] Test the exported symbol set for empty programs 2018-02-28 19:00:16 +00:00
instrprof-darwin-exports.c [profile] Add explanatory comments to instrprof-darwin-exports.c, NFC 2019-12-10 09:45:04 -08:00
instrprof-dump.c
instrprof-error.c
instrprof-gcov-__gcov_flush-multiple.test [GCOV] Close file mapping handle on Windows, so flushed gcda files can be removed while the process is in execution 2018-11-07 09:38:26 +00:00
instrprof-gcov-__gcov_flush-terminate.test Add a test with __gcov_flush called before terminating the program. 2018-07-16 09:13:46 +00:00
instrprof-gcov-exceptions.test [InstrProf] Port test suite to Windows 2019-02-07 17:52:05 +00:00
instrprof-gcov-multiple-bbs-single-line.test [profile] Fix tests in compiler-rt for patch in gcov (https://reviews.llvm.org/D49659) 2018-09-20 16:21:09 +00:00
instrprof-gcov-one-line-function.test [GCOV] Add a test for function defined on one line (follow-up of https://reviews.llvm.org/D53600) 2018-10-30 18:41:41 +00:00
instrprof-gcov-switch.test [gcov] Add tests using switch, one with break clauses and one with fallthrough 2018-07-31 23:26:50 +00:00
instrprof-gcov-two-objects.test [Profile] Fix gcov tests 2018-09-25 11:12:15 +00:00
instrprof-get-filename.c [profile] Add interface to get profile filename 2018-07-19 19:03:50 +00:00
instrprof-hostname.c
instrprof-icall-promo.test compiler-rt: Rename remaining cc files in test/profile to cpp 2019-08-05 13:42:31 +00:00
instrprof-merge-match.test [InstrProf] Port test suite to Windows 2019-02-07 17:52:05 +00:00
instrprof-merge.c NFC: Unforget a colon in a few CHECK: directives. 2019-07-12 02:16:56 +00:00
instrprof-merging.cpp [Coverage] Collect all function records in an object (D69471 followup) 2020-03-02 12:01:09 -08:00
instrprof-order-file.test Reland compiler-rt support for order file instrumentation. 2019-03-08 15:30:56 +00:00
instrprof-override-filename-then-reset-default.c
instrprof-override-filename-with-env.c
instrprof-override-filename.c [profile] Move __llvm_profile_filename into a separate object 2017-06-29 17:42:24 +00:00
instrprof-path.c [InstrProf] Port test suite to Windows 2019-02-07 17:52:05 +00:00
instrprof-reset-counters.c Add space inside the regular expression. 2018-02-08 02:29:56 +00:00
instrprof-set-dir-mode.c [compiler-rt][test] Make instrprof-set-dir-mode test tolerant of group ID 2019-04-02 03:24:12 +00:00
instrprof-set-file-object-merging.c [test] Clean up previous raw profile before merging into it 2019-09-16 22:32:18 +00:00
instrprof-set-file-object.c (Reland with changes) Adding a function for setting coverage output file. 2019-06-24 21:32:50 +00:00
instrprof-set-filename-then-reset-default.c
instrprof-set-filename.c [compiler-rt][profile] fix test/instrprof-set-filename.c on windows 2020-01-29 15:00:56 -08:00
instrprof-value-prof-2.c
instrprof-value-prof-evict.test
instrprof-value-prof-reset.c
instrprof-value-prof.c
instrprof-value-prof.test [profile] Delete stale profiles in test/profile/instrprof-value-prof.test, NFC 2019-12-11 10:03:59 -08:00
instrprof-version-mismatch.c [InstrProf] Port test suite to Windows 2019-02-07 17:52:05 +00:00
instrprof-without-libc.c [InstrProf] Port test suite to Windows 2019-02-07 17:52:05 +00:00
instrprof-write-file-atexit-explicitly.c
instrprof-write-file-only.c
instrprof-write-file.c [profile] Clean up stale raw profiles in instrprof-write-file.c 2019-10-31 16:04:08 -07:00
lit.cfg.py compiler-rt: Rename remaining cc files in test/profile to cpp 2019-08-05 13:42:31 +00:00
lit.site.cfg.py.in [compiler-rt] Rename lit.*.cfg.* -> lit.*.cfg.py.* 2019-06-27 20:56:04 +00:00
profile_test.h [profile][test] Fix Profile-* :: instrprof-merge.c etc. on SPARC 2019-07-11 18:26:24 +00:00
runtime_infinite.c [PGO] Test case changes for D41059 2017-12-18 17:56:42 +00:00