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

Akshay Deodhar via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 25 11:26:42 PDT 2025


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

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.

>From 2a138192ca5ef5001cbd011b06aedf9307fb06c6 Mon Sep 17 00:00:00 2001
From: Akshay Deodhar <adeodhar at nvidia.com>
Date: Mon, 21 Jul 2025 23:56:55 +0000
Subject: [PATCH] [llvm-objdump][MachO] Update check in flaky test that depends
 on directory path

---
 llvm/test/tools/llvm-objdump/MachO/function-starts.test | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

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



More information about the llvm-commits mailing list