[llvm] [llvm-objdump][MachO] Update check in flaky test that depends on directory path (PR #150674)

via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 25 11:27:05 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-mc

Author: Akshay Deodhar (akshayrdeodhar)

<details>
<summary>Changes</summary>

Earlier, function-starts.test failed when directory path contained '_main', because objdump prints out the entire directory path, and there is an implicit-check-not for '_main'.
There's three ways in which [function starts are printed by llvm-objdump](https://llvm.org/docs/CommandGuide/llvm-objdump.html#cmdoption-llvm-objdump-function-starts): 

With the "addr" mode, there will be no "_main"\
With "names", it'll be printed as "_main\n"\
With "both", it'll be printed as "<addr> _main\n". 

The existing check for function-starts=addrs checks that the pattern for "names" or "both" does not get printed. This MR makes the check more specific, so that stray _main strings in the directory path will not make the test fail.

---
Full diff: https://github.com/llvm/llvm-project/pull/150674.diff


1 Files Affected:

- (modified) llvm/test/tools/llvm-objdump/MachO/function-starts.test (+4-4) 


``````````diff
diff --git a/llvm/test/tools/llvm-objdump/MachO/function-starts.test b/llvm/test/tools/llvm-objdump/MachO/function-starts.test
index 8c013174c4eca..509bc8629b014 100644
--- a/llvm/test/tools/llvm-objdump/MachO/function-starts.test
+++ b/llvm/test/tools/llvm-objdump/MachO/function-starts.test
@@ -1,7 +1,7 @@
 ## This test verifies that llvm-objdump correctly prints function starts data.
 
-RUN: llvm-objdump --macho --function-starts %p/Inputs/hello.exe.macho-i386 | FileCheck %s --check-prefix=32-BIT --implicit-check-not=_main
-RUN: llvm-objdump --macho --function-starts=addrs %p/Inputs/hello.exe.macho-i386 | FileCheck %s --check-prefix=32-BIT --implicit-check-not=_main
+RUN: llvm-objdump --macho --function-starts %p/Inputs/hello.exe.macho-i386 | FileCheck %s --check-prefix=32-BIT --implicit-check-not='{{(^| )_main}}'
+RUN: llvm-objdump --macho --function-starts=addrs %p/Inputs/hello.exe.macho-i386 | FileCheck %s --check-prefix=32-BIT --implicit-check-not='{{(^| )_main}}'
 32-BIT: 00001f40
 
 RUN: llvm-objdump --macho --function-starts=names %p/Inputs/hello.exe.macho-i386 | FileCheck %s --check-prefix=32-BIT-NAMES
@@ -10,8 +10,8 @@ RUN: llvm-objdump --macho --function-starts=names %p/Inputs/hello.exe.macho-i386
 RUN: llvm-objdump --macho --function-starts=both %p/Inputs/hello.exe.macho-i386 | FileCheck %s --check-prefix=32-BIT-BOTH
 32-BIT-BOTH: 00001f40 _main
 
-RUN: llvm-objdump --macho --function-starts %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s --check-prefix=64-BIT --implicit-check-not=_main
-RUN: llvm-objdump --macho --function-starts=addrs %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s --check-prefix=64-BIT --implicit-check-not=_main
+RUN: llvm-objdump --macho --function-starts %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s --check-prefix=64-BIT --implicit-check-not='{{(^| )_main}}'
+RUN: llvm-objdump --macho --function-starts=addrs %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s --check-prefix=64-BIT --implicit-check-not='{{(^| )_main}}'
 64-BIT: 0000000100000f30
 
 RUN: llvm-objdump --macho --function-starts=names %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s --check-prefix=64-BIT-NAMES

``````````

</details>


https://github.com/llvm/llvm-project/pull/150674


More information about the llvm-commits mailing list