mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-27 12:36:09 +00:00

Several profdata tests pass the byte 012 to printf. This causes these tests to fail when using GnuWin32's version of printf because printf will detect that 012 is the LF character and will prepend the byte 015 (CR) in front of LF. This change is required after https://github.com/llvm/llvm-project/pull/82711 which bumped the version number.
89 lines
3.7 KiB
Plaintext
89 lines
3.7 KiB
Plaintext
// Header
|
|
//
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, Magic, __llvm_profile_get_magic())
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, Version, __llvm_profile_get_version())
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, BinaryIdsSize, __llvm_write_binary_ids(NULL))
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, DataSize, DataSize)
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, CountersSize, CountersSize)
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, NumBitmaskBytes, NumBitmaskBytes)
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, NamesSize, NamesSize)
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, CountersDelta, (uintptr_t)CountersBegin)
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, BitmaskDelta, (uintptr_t)BitmaskBegin)
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, NamesDelta, (uintptr_t)NamesBegin)
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, VNamesSize, VNamesSize)
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, NumVTables, NumVTables)
|
|
// INSTR_PROF_RAW_HEADER(uint64_t, ValueKindLast, IPVK_Last)
|
|
|
|
// gnuwin32 printf does not work for this test because it will print \15 (CR)
|
|
// whenever \12 (LF) is in the input string.
|
|
UNSUPPORTED: system-windows
|
|
RUN: printf '\201rforpl\377' > %t.profraw
|
|
RUN: printf '\12\0\0\0\0\0\0\0' >> %t.profraw
|
|
// There will be 2 20-byte binary IDs, so the total Binary IDs size will be 64 bytes.
|
|
// 2 * 8 binary ID sizes
|
|
// + 2 * 20 binary IDs (of size 20)
|
|
// + 2 * 4 binary ID paddings
|
|
// --------
|
|
// = 64 bytes
|
|
RUN: printf '\100\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\2\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\3\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\20\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\4\0\1\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\4\0\2\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
|
|
// Binary IDs - There are only two in this case that are 20 bytes.
|
|
RUN: printf '\24\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\1\2\3\4\5\6\7' >> %t.profraw
|
|
RUN: printf '\0\1\2\3\4\5\6\7' >> %t.profraw
|
|
RUN: printf '\0\1\2\3\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\24\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\1\1\1\1\1\1\1\1' >> %t.profraw
|
|
RUN: printf '\2\2\2\2\2\2\2\2' >> %t.profraw
|
|
RUN: printf '\3\3\3\3\0\0\0\0' >> %t.profraw
|
|
|
|
// Data Section
|
|
//
|
|
// struct ProfData {
|
|
// #define INSTR_PROF_DATA(Type, LLVMType, Name, Initializer) \
|
|
// Type Name;
|
|
// #include "llvm/ProfileData/InstrProfData.inc"
|
|
// };
|
|
|
|
RUN: printf '\254\275\030\333\114\302\370\134' >> %t.profraw
|
|
RUN: printf '\1\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\4\0\1\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\1\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
|
|
RUN: printf '\067\265\035\031\112\165\023\344' >> %t.profraw
|
|
RUN: printf '\02\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\xc8\xff\3\0\1\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\02\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\0\0\0\0\0\0\0\0' >> %t.profraw
|
|
|
|
RUN: printf '\023\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\067\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\101\0\0\0\0\0\0\0' >> %t.profraw
|
|
RUN: printf '\7\0foo\1bar\0\0\0\0\0\0\0' >> %t.profraw
|
|
|
|
// RUN: llvm-profdata show --binary-ids %t.profraw | FileCheck %s
|
|
// CHECK: Instrumentation level: Front-end
|
|
// CHECK: Binary IDs:
|
|
// CHECK-NEXT: 0001020304050607000102030405060700010203
|
|
// CHECK-NEXT: 0101010101010101020202020202020203030303
|