llvmorg-github-actions[bot] wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: Charles Zablit (charles-zablit)

<details>
<summary>Changes</summary>

Follow-up to #<!-- -->214701, which added a required `reason` to `requireNot*`. 
Same change for the positive ones, so a test can say why it is tied to a 
platform:

```python
@<!-- -->requireDarwin("uses Darwin-only kernel APIs")
```

Prints with the requirement when the test is reported UNSUPPORTED:

`UNSUPPORTED: ... (requires one of darwin: uses Darwin-only kernel APIs)`

Joining moves into UnsupportedReason(message, reason=None), shared by both 
families. Reason is optional on the positive decorators, still required on the 
negative ones.

All are now called with parentheses. `@<!-- -->requireDarwin()` or `@<!-- 
-->requireDarwin("...")`. Supporting the bare form too was rejected as 
confusing. Most of the diff is adding () to existing call sites.

---

Patch is 214.04 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/215831.diff


279 Files Affected:

- (modified) lldb/docs/resources/test.md (+14-1) 
- (modified) lldb/packages/Python/lldbsuite/test/decorators.py (+32-27) 
- (modified) lldb/packages/Python/lldbsuite/test/skip_reason.py (+15-1) 
- (modified) lldb/test/API/attach/TestWindowsAttachBreakpoint.py (+1-1) 
- (modified) lldb/test/API/commands/add-dsym/uuid/TestAddDsymCommand.py (+1-1) 
- (modified) 
lldb/test/API/commands/command/language/TestFrameLanguageCommands.py (+1-1) 
- (modified) lldb/test/API/commands/dwim-print/TestDWIMPrint.py (+1-1) 
- (modified) lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py (+2-2) 
- (modified) 
lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/argument_passing_restrictions/TestArgumentPassingRestrictions.py
 (+1-1) 
- (modified) 
lldb/test/API/commands/expression/call-function/TestCallStdStringFunction.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/call-function/TestCallStopAndContinue.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/call-function/TestCallUserDefinedFunction.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py (+1-1) 
- (modified) 
lldb/test/API/commands/expression/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py
 (+1-1) 
- (modified) 
lldb/test/API/commands/expression/context-object/TestContextObject.py (+1-1) 
- (modified) 
lldb/test/API/commands/expression/expr-with-fork/TestExprWithFork.py (+16-16) 
- (modified) 
lldb/test/API/commands/expression/expr_inside_lambda/TestExprInsideLambdas.py 
(+1-1) 
- (modified) lldb/test/API/commands/expression/formatters/TestFormatters.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/inline-namespace/TestInlineNamespace.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/namespace-alias/TestInlineNamespaceAlias.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/persistent_types/TestNestedPersistentTypes.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/persistent_types/TestPersistentTypes.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/po_persistent_result/TestPoPersistentResult.py
 (+3-3) 
- (modified) lldb/test/API/commands/expression/pr35310/TestExprsBug35310.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/radar_9531204/TestPrintfAfterUp.py (+1-1) 
- (modified) 
lldb/test/API/commands/expression/radar_9673664/TestExprHelpExamples.py (+1-1) 
- (modified) 
lldb/test/API/commands/expression/result_numbering/TestResultNumbering.py 
(+1-1) 
- (modified) lldb/test/API/commands/expression/test/TestExprs.py (+1-1) 
- (modified) lldb/test/API/commands/expression/timeout/TestCallWithTimeout.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/expression/unwind_expression/TestUnwindExpression.py 
(+1-1) 
- (modified) lldb/test/API/commands/expression/weak_symbols/TestWeakSymbols.py 
(+1-1) 
- (modified) lldb/test/API/commands/expression/xvalue/TestXValuePrinting.py 
(+1-1) 
- (modified) lldb/test/API/commands/frame/var/TestFrameVar.py (+2-2) 
- (modified) 
lldb/test/API/commands/frame/var/direct-ivar/objc/TestFrameVarDirectIvarObjC.py 
(+2-2) 
- (modified) 
lldb/test/API/commands/frame/var/direct-ivar/objcpp/TestFrameVarDirectIvarObjCPlusPlus.py
 (+3-3) 
- (modified) lldb/test/API/commands/platform/sdk/TestPlatformSDK.py (+1-1) 
- (modified) 
lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py (+2-2) 
- (modified) lldb/test/API/commands/process/handle/TestProcessHandle.py (+1-1) 
- (modified) lldb/test/API/commands/protocol/TestMCPUnixSocket.py (+1-1) 
- (modified) lldb/test/API/commands/statistics/basic/TestStats.py (+3-3) 
- (modified) lldb/test/API/commands/target/dump-pcm-info/TestDumpPCMInfo.py 
(+1-1) 
- (modified) 
lldb/test/API/commands/target/dump-separate-debug-info/oso/TestDumpOso.py 
(+5-5) 
- (modified) lldb/test/API/commands/target/stop-hooks/TestStopHooks.py (+1-1) 
- (modified) lldb/test/API/driver/longpath/TestLongPathDriver.py (+1-1) 
- (modified) lldb/test/API/functionalities/archives/TestBSDArchives.py (+3-3) 
- (modified) lldb/test/API/functionalities/asan/TestMemoryHistory.py (+2-2) 
- (modified) lldb/test/API/functionalities/asan/TestReportData.py (+1-1) 
- (modified) 
lldb/test/API/functionalities/breakpoint/breakpoint_conditions/crashing_condition/TestCrashingCondition.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/breakpoint/scripted_bkpt/was_hit/TestWasHit.py 
(+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/builtin-formats/TestBuiltinFormats.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/compactvectors/TestCompactVectors.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSNumber.py
 (+2-2) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-objc/cmtime/TestDataFormatterCMTime.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-objc/nsindexpath/TestDataFormatterNSIndexPath.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py
 (+3-3) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/embedded-summary/TestEmbeddedTypeSummary.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
 (+2-2) 
- (modified) 
lldb/test/API/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py 
(+2-2) 
- (modified) 
lldb/test/API/functionalities/data-formatter/ostypeformatting/TestFormattersOsType.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/poarray/TestPrintObjectArray.py 
(+2-2) 
- (modified) 
lldb/test/API/functionalities/data-formatter/setvaluefromcstring/TestSetValueFromCString.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py
 (+1-1) 
- (modified) lldb/test/API/functionalities/exec/TestExec.py (+3-3) 
- (modified) lldb/test/API/functionalities/fat_archives/TestFatArchives.py 
(+1-1) 
- (modified) 
lldb/test/API/functionalities/fork/resumes-child/TestForkResumesChild.py (+1-1) 
- (modified) 
lldb/test/API/functionalities/gdb_remote_client/TestPlatformMacOSX.py (+1-1) 
- (modified) lldb/test/API/functionalities/load_unload/TestLoadUnload.py (+2-2) 
- (modified) 
lldb/test/API/functionalities/load_using_paths/TestLoadUsingPaths.py (+1-1) 
- (modified) lldb/test/API/functionalities/longpath/TestLongPath.py (+1-1) 
- (modified) lldb/test/API/functionalities/memory/find/TestMemoryFind.py (+1-1) 
- (modified) 
lldb/test/API/functionalities/module_cache/bsd/TestModuleCacheBSD.py (+1-1) 
- (modified) lldb/test/API/functionalities/mtc/simple/TestMTCSimple.py (+1-1) 
- (modified) 
lldb/test/API/functionalities/plugins/python_os_plugin/os_plugin_in_dsym/TestOSIndSYM.py
 (+1-1) 
- (modified) 
lldb/test/API/functionalities/process_crash_info/TestProcessCrashInfo.py (+2-2) 
- (modified) 
lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py (+1-1) 
- (modified) lldb/test/API/functionalities/ptr_refs/TestPtrRefs.py (+1-1) 
- (modified) lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py 
(+1-1) 
- (modified) 
lldb/test/API/functionalities/rerun_and_expr_dylib/TestRerunAndExprDylib.py 
(+1-1) 
- (modified) 
lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py (+1-1) 
- (modified) lldb/test/API/functionalities/signal/TestSendSignal.py (+2-2) 
- (modified) 
lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py (+1-1) 
- (modified) lldb/test/API/functionalities/signal/handle-segv/TestHandleSegv.py 
(+1-1) 
- (modified) lldb/test/API/functionalities/signal/raise/TestRaise.py (+1-1) 
- (modified) lldb/test/API/functionalities/type_lookup/TestTypeLookup.py (+1-1) 
- (modified) lldb/test/API/iohandler/sigint/TestIOHandlerPythonREPLSigint.py 
(+2-2) 
- (modified) lldb/test/API/iohandler/sigint/TestProcessIOHandlerInterrupt.py 
(+1-1) 
- (modified) lldb/test/API/lang/c/anonymous/TestAnonymous.py (+1-1) 
- (modified) lldb/test/API/lang/c/blocks/TestBlocks.py (+3-3) 
- (modified) 
lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py (+1-1) 
- (modified) lldb/test/API/lang/c/enum_types/TestEnumTypes.py (+1-1) 
- (modified) lldb/test/API/lang/c/fpeval/TestFPEval.py (+1-1) 
- (modified) lldb/test/API/lang/c/full_lto_stepping/TestFullLtoStepping.py 
(+1-1) 
- (modified) lldb/test/API/lang/c/function_types/TestFunctionTypes.py (+1-1) 
- (modified) lldb/test/API/lang/c/libc_calls/TestLibcCalls.py (+2-2) 
- (modified) lldb/test/API/lang/c/modules/TestCModules.py (+1-1) 
- (modified) lldb/test/API/lang/c/sizeof/TestCSizeof.py (+1-1) 
- (modified) lldb/test/API/lang/c/strings/TestCStrings.py (+1-1) 
- (modified) lldb/test/API/lang/c/struct_types/TestStructTypes.py (+3-1) 
- (modified) lldb/test/API/lang/cpp/abi_tag_structors/TestAbiTagStructors.py 
(+3-3) 
- (modified) lldb/test/API/lang/cpp/accelerator-table/TestCPPAccelerator.py 
(+1-1) 
- (modified) lldb/test/API/lang/cpp/auto/TestCPPAuto.py (+1-1) 
- (modified) lldb/test/API/lang/cpp/call-function/TestCallCPPFunction.py (+1-1) 
- (modified) lldb/test/API/lang/cpp/chained-calls/TestCppChainedCalls.py (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/class-template-parameter-pack/TestClassTemplateParameterPack.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/const_static_integral_member/TestConstStaticIntegralMember.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/const_static_integral_member_int128/TestConstStaticIntegralMemberInt128.py
 (+1-1) 
- (modified) lldb/test/API/lang/cpp/constructors/TestCppConstructors.py (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/covariant-return-types/TestCovariantReturnTypes.py 
(+1-1) 
- (modified) 
lldb/test/API/lang/cpp/decl-from-submodule/TestDeclFromSubmodule.py (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/default-template-args/TestDefaultTemplateArgs.py (+1-1) 
- (modified) lldb/test/API/lang/cpp/enum-limits/TestCPPEnumLimits.py (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/expression-context-qualifiers/const_method/TestExprInConstMethod.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/expression-context-qualifiers/const_volatile_method/TestExprInConstVolatileMethod.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/expression-context-qualifiers/cv_qualified_objects/TestExprOnCVQualifiedObjects.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/expression-context-qualifiers/non_const_method/TestExprInNonConstMethod.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/expression-context-qualifiers/template_const_method/TestExprInTemplateConstMethod.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/expression-context-qualifiers/template_non_const_method/TestExprInTemplateNonConstMethod.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/function-call-from-object-file/TestFunctionCallFromObjectFile.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/function-qualifiers/TestCppFunctionQualifiers.py (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/function-ref-qualifiers/TestCppFunctionRefQualifiers.py 
(+1-1) 
- (modified) lldb/test/API/lang/cpp/global_operators/TestCppGlobalOperators.py 
(+1-1) 
- (modified) lldb/test/API/lang/cpp/llvm-style/TestLLVMStyle.py (+3-1) 
- (modified) lldb/test/API/lang/cpp/modules-import/TestCXXModulesImport.py 
(+2-2) 
- (modified) 
lldb/test/API/lang/cpp/multiple-inheritance/TestCppMultipleInheritance.py 
(+1-1) 
- (modified) lldb/test/API/lang/cpp/namespace/TestNamespace.py (+2-2) 
- (modified) lldb/test/API/lang/cpp/namespace/TestNamespaceLookup.py (+3-3) 
- (modified) 
lldb/test/API/lang/cpp/namespace_conflicts/TestNamespaceConflicts.py (+3-1) 
- (modified) lldb/test/API/lang/cpp/operators/TestCppOperators.py (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/overloaded-functions/TestOverloadedFunctions.py (+1-1) 
- (modified) lldb/test/API/lang/cpp/printf/TestPrintf.py (+1-1) 
- (modified) lldb/test/API/lang/cpp/rvalue-references/TestRvalueReferences.py 
(+1-1) 
- (modified) lldb/test/API/lang/cpp/scope/TestCppScope.py (+1-1) 
- (modified) lldb/test/API/lang/cpp/static_members/TestCPPStaticMembers.py 
(+3-3) 
- (modified) lldb/test/API/lang/cpp/static_methods/TestCPPStaticMethods.py 
(+1-1) 
- (modified) lldb/test/API/lang/cpp/symbols/TestSymbols.py (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/template-diagnostic-hint/TestTemplateDiagnosticHint.py 
(+1-1) 
- (modified) lldb/test/API/lang/cpp/template-function/TestTemplateFunctions.py 
(+1-1) 
- (modified) lldb/test/API/lang/cpp/this/TestCPPThis.py (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/this_class_type_mixing/TestThisClassTypeMixing.py (+1-1) 
- (modified) lldb/test/API/lang/cpp/typedef/TestCppTypedef.py (+1-1) 
- (modified) lldb/test/API/lang/cpp/unicode-literals/TestUnicodeLiterals.py 
(+1-1) 
- (modified) 
lldb/test/API/lang/cpp/union-static-data-members/TestCppUnionStaticMembers.py 
(+1-1) 
- (modified) lldb/test/API/lang/cpp/unique-types4/TestUniqueTypes4.py (+1-1) 
- (modified) 
lldb/test/API/lang/cpp/virtual-functions/TestCppVirtualFunctions.py (+1-1) 
- (modified) 
lldb/test/API/lang/objc/complete-type-check/TestObjCIsTypeComplete.py (+1-1) 
- (modified) 
lldb/test/API/lang/objc/conflicting-class-list-function-from-user/TestObjCClassListFunctionFromUser.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/objc/cpp_keyword_identifiers/TestCppKeywordsAsObjCIdentifiers.py
 (+1-1) 
- (modified) 
lldb/test/API/lang/objc/languageinfo/TestObjCLanguageSpecificData.py (+1-1) 
- (modified) 
lldb/test/API/lang/objc/module-import-log/TestClangModuleImportLog.py (+1-1) 
- (modified) lldb/test/API/lang/objc/objc-class-method/TestObjCClassMethod.py 
(+1-1) 
- (modified) lldb/test/API/lang/objc/objc-optimized/TestObjcOptimized.py (+1-1) 
- (modified) lldb/test/API/lang/objc/orderedset/TestOrderedSet.py (+1-1) 
- (modified) 
lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
 (+2-2) 
- (modified) 
lldb/test/API/lang/objc/tagged-pointer-children/TestTaggedPointerChildren.py 
(+2-2) 
- (modified) 
lldb/test/API/lang/objc/warnings-in-expr-parser/TestObjCWarningsInExprParser.py 
(+1-1) 
- (modified) 
lldb/test/API/lang/objcxx/cpp_keywords_enabled/TestObjCppKeywordsEnabled.py 
(+1-1) 
- (modified) 
lldb/test/API/linux/aarch64/aarch32_compat/TestAArch64LinuxAArch32Compat.py 
(+1-1) 
- (modified) lldb/test/API/linux/aarch64/fpmr/TestAArch64LinuxFPMR.py (+1-1) 
- (modified) lldb/test/API/linux/aarch64/gcs/TestAArch64LinuxGCS.py (+6-6) 
- (modified) 
lldb/test/API/linux/aarch64/mte_memory_region/TestAArch64LinuxMTEMemoryRegion.py
 (+1-1) 
- (modified) 
lldb/test/API/linux/aarch64/mte_tag_access/TestAArch64LinuxMTEMemoryTagAccess.py
 (+5-5) 
- (modified) 
lldb/test/API/linux/aarch64/mte_tag_faults/TestAArch64LinuxMTEMemoryTagFaults.py
 (+2-2) 
- (modified) 
lldb/test/API/linux/aarch64/non_address_bit_code_break/TestAArch64LinuxNonAddressBitCodeBreak.py
 (+2-2) 
- (modified) 
lldb/test/API/linux/aarch64/non_address_bit_memory_access/TestAArch64LinuxNonAddressBitMemoryAccess.py
 (+4-4) 
- (modified) 
lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py (+1-1) 
- (modified) 
lldb/test/API/linux/aarch64/tagged_memory_access/TestAArch64LinuxTaggedMemoryAccess.py
 (+2-2) 
- (modified) 
lldb/test/API/linux/aarch64/tagged_memory_region/TestAArch64LinuxTaggedMemoryRegion.py
 (+1-1) 
- (modified) 
lldb/test/API/linux/aarch64/tls_registers/TestAArch64LinuxTLSRegisters.py 
(+3-3) 
- (modified) lldb/test/API/linux/aarch64/unwind_signal/TestUnwindSignal.py 
(+1-1) 
- (modified) lldb/test/API/linux/add-symbols/TestTargetSymbolsAddCommand.py 
(+1-1) 
- (modified) lldb/test/API/linux/arm/tls_register/TestArmLinuxTLSRegister.py 
(+1-1) 
- (modified) lldb/test/API/linux/linker-symbols/TestLinkerSymbols.py (+1-1) 
- (modified) 
lldb/test/API/linux/loongarch64/simd_registers/TestLoongArch64LinuxSIMDRegisters.py
 (+2-2) 
- (modified) 
lldb/test/API/linux/mix-dwo-and-regular-objects/TestMixedDwarfBinary.py (+1-1) 
- (modified) 
lldb/test/API/linux/sepdebugsymlink/TestTargetSymbolsSepDebugSymlink.py (+1-1) 
- (modified) 
lldb/test/API/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
 (+1-1) 
- (modified) lldb/test/API/macosx/add-dsym/TestAddDsymDownload.py (+1-1) 
- (modified) lldb/test/API/macosx/add-dsym/TestAddDsymMidExecutionCommand.py 
(+1-1) 
- (modified) 
lldb/test/API/macosx/arm-pointer-metadata-cfa-dwarf-expr/TestArmPointerMetadataCFADwarfExpr.py
 (+1-1) 
- (modified) 
lldb/test/API/macosx/bss-only-data-section-sliding/TestBSSOnlyDataSectionSliding.py
 (+1-1) 
- (modified) 
lldb/test/API/macosx/corefile-exception-reason/TestCorefileExceptionReason.py 
(+1-1) 
- (modified) lldb/test/API/macosx/ctf/TestCTF.py (+2-2) 
- (modified) 
lldb/test/API/macosx/debugserver-exit-code/TestDebugServerExitCode.py (+1-1) 
- (modified) 
lldb/test/API/macosx/debugserver-multimemread/TestDebugserverMultiMemRead.py 
(+1-1) 
- (modified) 
lldb/test/API/macosx/delay-init-dependency/TestDelayInitDependency.py (+1-1) 
- (modified) lldb/test/API/macosx/deny-attach/TestDenyAttach.py (+1-1) 
- (modified) lldb/test/API/macosx/dsym_codesign/TestdSYMCodesign.py (+1-1) 
- (modified) lldb/test/API/macosx/dsym_modules/TestdSYMModuleInit.py (+1-1) 
- (modified) lldb/test/API/macosx/dyld-trie-symbols/TestDyldTrieSymbols.py 
(+1-1) 
- (modified) 
lldb/test/API/macosx/early-process-launch/TestEarlyProcessLaunch.py (+1-1) 
- (modified) 
lldb/test/API/macosx/expedited-stack-memory/TestExpeditedStackMemory.py (+4-4) 
- (modified) 
lldb/test/API/macosx/expedited-thread-pcs/TestExpeditedThreadPCs.py (+1-1) 
- (modified) 
lldb/test/API/macosx/extended-backtrace-api/TestExtendedBacktraceAPI.py (+1-1) 
- (modified) lldb/test/API/macosx/find-app-in-bundle/TestFindAppInBundle.py 
(+1-1) 
- (modified) 
lldb/test/API/macosx/find-dsym/bundle-with-dot-in-filename/TestBundleWithDotInFilename.py
 (+1-1) 
- (modified) lldb/test/API/macosx/find-dsym/deep-bundle/TestDeepBundle.py 
(+1-1) 
- (modified) lldb/test/API/macosx/format/TestFunctionNameWithoutArgs.py (+1-1) 
- (modified) lldb/test/API/macosx/function-starts/TestFunctionStarts.py (+2-2) 
- (modified) lldb/test/API/macosx/ignore_exceptions/TestIgnoredExceptions.py 
(+1-1) 
- (modified) lldb/test/API/macosx/indirect_symbol/TestIndirectSymbols.py (+1-1) 
- (modified) 
lldb/test/API/macosx/lc-note/additional-registers/TestMetadataRegisters.py 
(+1-1) 
- (modified) 
lldb/test/API/macosx/lc-note/addrable-bits/TestAddrableBitsCorefile.py (+1-1) 
- (modified) 
lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py (+3-3) 
- (modified) lldb/test/API/macosx/lc-note/kern-ver-str/TestKernVerStrLCNOTE.py 
(+1-1) 
- (modified) 
lldb/test/API/macosx/lc-note/multiple-binary-corefile/TestMultipleBinaryCorefile.py
 (+2-2) 
- (modified) lldb/test/API/macosx/macCatalyst/TestMacCatalyst.py (+1-1) 
- (modified) 
lldb/test/API/macosx/macCatalystAppMacOSFramework/TestMacCatalystAppWithMacOSFramework.py
 (+1-1) 
- (modified) lldb/test/API/macosx/no-nlist-memory-module/TestNoNlistsDylib.py 
(+1-1) 
- (modified) lldb/test/API/macosx/nslog/TestDarwinNSLogOutput.py (+2-2) 
- (modified) 
lldb/test/API/macosx/objc_exception_recognizer/TestObjCRecognizer.py (+2-2) 
- (modified) lldb/test/API/macosx/order/TestOrderFile.py (+1-1) 
- (modified) lldb/test/API/macosx/posix_spawn/TestLaunchProcessPosixSpawn.py 
(+2-2) 
- (modified) lldb/test/API/macosx/profile_vrs_detach/TestDetachVrsProfile.py 
(+1-1) 
- (modified) lldb/test/API/macosx/queues/TestQueues.py (+3-3) 


``````````diff
diff --git a/lldb/docs/resources/test.md b/lldb/docs/resources/test.md
index 1277a7a5abb8c..6d8c420e7fa4c 100644
--- a/lldb/docs/resources/test.md
+++ b/lldb/docs/resources/test.md
@@ -152,7 +152,7 @@ decorator you pick says which:
   keeps them visible as work still to be done.
 
 ```python
-@requireDarwin      # inherently Darwin-only: reported UNSUPPORTED elsewhere
+@requireDarwin()    # inherently Darwin-only: reported UNSUPPORTED elsewhere
 @skipIfWindows      # ought to work on Windows, currently broken: reported 
SKIPPED
 ```
 
@@ -162,6 +162,19 @@ The `require*` decorators mirror the `skip*` ones 
one-for-one:
 `requireNotWasm`, `requireDarwinHost`, and the general
 `requirePlatform(oslist)` / `requireNotPlatform(oslist)`.
 
+All of them take a reason saying what about the test ties it to the platform,
+which is printed next to the requirement when the test is reported
+UNSUPPORTED. It is optional on the positive decorators, whose name already
+carries most of the story, and required on the negative ones, because
+"unsupported on windows" on its own says nothing about the test. Either way
+they are always called with parentheses:
+
+```python
+@requireDarwin("parses a Mach-O debug map")
+@requireNotWindows("calls fork()")
+@requireDarwin()    # also fine: the requirement alone is the whole story
+```
+
 Reach for `require*` when the test is tied to a platform-specific file format,
 API, or OS feature. If the test is merely untested or broken somewhere, keep
 `skipIf*` so nobody mistakes a bug for a design decision.
diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py 
b/lldb/packages/Python/lldbsuite/test/decorators.py
index 14c6a0fe16dbe..dffd6d3ff0856 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -1151,10 +1151,20 @@ def skipUnlessPlatform(oslist):
 # an OS feature that simply doesn't exist elsewhere. If the test is merely
 # untested or broken somewhere, keep using skipIf / skipUnless so it stays
 # visible as work to be done.
+#
+# Every one of them is called with parentheses, and takes a `reason` explaining
+# what about the test ties it to the platform; it is printed alongside the
+# requirement when the test is reported UNSUPPORTED. The reason is optional on
+# the positive decorators, whose name already carries most of the story, and
+# required on the negative ones, where "unsupported on windows" on its own says
+# nothing about the test.
+#
+#   @requireDarwin()
+#   @requireDarwin("parses a Mach-O debug map")
 ##############################################################################
 
 
-def requirePlatform(oslist):
+def requirePlatform(oslist, reason: Optional[str] = None):
     """Mark the item as runnable only on the listed target platforms.
 
     Unlike `skipUnlessPlatform`, other platforms are reported as UNSUPPORTED
@@ -1162,7 +1172,7 @@ def requirePlatform(oslist):
     """
     return unittest.skipUnless(
         lldbplatformutil.getPlatform() in oslist,
-        UnsupportedReason("requires one of %s" % (", ".join(oslist))),
+        UnsupportedReason("requires one of %s" % (", ".join(oslist)), reason),
     )
 
 
@@ -1172,23 +1182,16 @@ def requireNotPlatform(oslist: list, reason: 
Optional[str] = None):
     Unlike `skipIfPlatform`, the listed platforms are reported as UNSUPPORTED
     rather than SKIPPED.
     """
-    assert isinstance(
-        reason, (str, type(None))
-    ), f"expects 'str' or 'None' got {type(reason).__name__!r}"
-
-    skip_reason = f"unsupported on {', '.join(oslist)}"
-    if reason:
-        skip_reason += f": {reason}"
-
     return unittest.skipIf(
-        lldbplatformutil.getPlatform() in oslist, 
UnsupportedReason(skip_reason)
+        lldbplatformutil.getPlatform() in oslist,
+        UnsupportedReason(f"unsupported on {', '.join(oslist)}", reason),
     )
 
 
-def requireDarwin(func):
+def requireDarwin(reason: Optional[str] = None):
     """Mark the item as inherently Darwin-only (Mach-O, debug maps, Darwin
     kernel/runtime APIs, ...). Non-Darwin targets report UNSUPPORTED."""
-    return 
requirePlatform(lldbplatform.translate(lldbplatform.darwin_all))(func)
+    return requirePlatform(lldbplatform.translate(lldbplatform.darwin_all), 
reason)
 
 
 def requireNotDarwin(reason: str):
@@ -1198,10 +1201,10 @@ def requireNotDarwin(reason: str):
     )
 
 
-def requireLinux(func):
+def requireLinux(reason: Optional[str] = None):
     """Mark the item as inherently Linux-only (procfs, Linux-specific syscalls,
     ...). Other targets report UNSUPPORTED."""
-    return requirePlatform(["linux"])(func)
+    return requirePlatform(["linux"], reason)
 
 
 def requireNotLinux(reason: str):
@@ -1209,10 +1212,10 @@ def requireNotLinux(reason: str):
     return requireNotPlatform(["linux"], reason=reason)
 
 
-def requireWindows(func):
+def requireWindows(reason: Optional[str] = None):
     """Mark the item as inherently Windows-only (PE/COFF, Win32 APIs, ...).
     Other targets report UNSUPPORTED."""
-    return requirePlatform(["windows"])(func)
+    return requirePlatform(["windows"], reason)
 
 
 def requireNotWindows(reason: str):
@@ -1224,24 +1227,26 @@ def requireNotWindows(reason: str):
     return requireNotPlatform(["windows"], reason=reason)
 
 
-def requirePOSIX(func):
+def requirePOSIX(reason: Optional[str] = None):
     """Mark the item as requiring a POSIX target.
 
     A shorthand for `requireNotWindows` that reads better on tests whose
     dependency is POSIX semantics generally rather than anything about
     Windows specifically.
     """
-    return requireNotPlatform(["windows"], reason="uses the posix API.")(func)
+    return requireNotPlatform(["windows"], reason=reason or "uses the posix 
API")
 
 
-def requireSignals(func):
+def requireSignals(reason: Optional[str] = None):
     """Mark the item as requiring POSIX signal support on the target."""
-    return requireNotPlatform(["windows", "wasip1", "wasi"])(func)
+    return requireNotPlatform(
+        ["windows", "wasip1", "wasi"], reason=reason or "requires POSIX 
signals"
+    )
 
 
-def requireExpressionEvaluation(func):
+def requireExpressionEvaluation(reason: Optional[str] = None):
     """Mark the item as requiring expression evaluation."""
-    return requireNotWasm(reason="needs expression evaluation support")(func)
+    return requireNotWasm(reason=reason or "needs expression evaluation 
support")
 
 
 def requireNotWasm(reason: str):
@@ -1254,21 +1259,21 @@ def requireNotWasm(reason: str):
     return requireNotPlatform(["wasip1", "wasi"], reason=reason)
 
 
-def requireHostPlatform(oslist):
+def requireHostPlatform(oslist, reason: Optional[str] = None):
     """Mark the item as runnable only on the listed *host* platforms."""
     return unittest.skipUnless(
         lldbplatformutil.getHostPlatform() in oslist,
-        UnsupportedReason("requires one of %s as host" % (", ".join(oslist))),
+        UnsupportedReason("requires one of %s as host" % (", ".join(oslist)), 
reason),
     )
 
 
-def requireDarwinHost(func):
+def requireDarwinHost(reason: Optional[str] = None):
     """Mark the item as requiring a Darwin host, regardless of target.
 
     Use for tests that drive host-side Darwin facilities: `xcrun`, the
     simulator runtimes, dsymutil, the LLDB.framework layout, and so on.
     """
-    return 
requireHostPlatform(lldbplatform.translate(lldbplatform.darwin_all))(func)
+    return 
requireHostPlatform(lldbplatform.translate(lldbplatform.darwin_all), reason)
 
 
 def skipIfTargetDoesNotSupportThreads():
diff --git a/lldb/packages/Python/lldbsuite/test/skip_reason.py 
b/lldb/packages/Python/lldbsuite/test/skip_reason.py
index b1aece572f4f3..4be3502767493 100644
--- a/lldb/packages/Python/lldbsuite/test/skip_reason.py
+++ b/lldb/packages/Python/lldbsuite/test/skip_reason.py
@@ -9,7 +9,21 @@
 
 class UnsupportedReason(str):
     """A skip reason meaning "this test can never run here", not "this test is
-    broken here". Reported as UNSUPPORTED rather than SKIPPED."""
+    broken here". Reported as UNSUPPORTED rather than SKIPPED.
+
+    *message* says what the decorator requires ("requires one of darwin").
+    *reason* is the optional test-specific explanation the decorator was handed
+    ("uses Darwin APIs"); it is appended to *message* so both end up in the
+    test report.
+    """
+
+    def __new__(cls, message, reason=None):
+        assert isinstance(
+            reason, (str, type(None))
+        ), f"expects 'str' or 'None' got {type(reason).__name__!r}"
+        if reason:
+            message = f"{message}: {reason}"
+        return super().__new__(cls, message)
 
 
 def is_unsupported(reason):
diff --git a/lldb/test/API/attach/TestWindowsAttachBreakpoint.py 
b/lldb/test/API/attach/TestWindowsAttachBreakpoint.py
index 83bc28e5f40c0..21db818fc15d3 100644
--- a/lldb/test/API/attach/TestWindowsAttachBreakpoint.py
+++ b/lldb/test/API/attach/TestWindowsAttachBreakpoint.py
@@ -98,7 +98,7 @@ class PROCESS_INFORMATION(ctypes.Structure):
             process_information.hThread,
         )
 
-    @requireWindows
+    @requireWindows()
     def test_attach_ignores_loader_breakpoint(self):
         """
         lldb must not report the loader's int3 (raised in a system module while
diff --git a/lldb/test/API/commands/add-dsym/uuid/TestAddDsymCommand.py 
b/lldb/test/API/commands/add-dsym/uuid/TestAddDsymCommand.py
index f9490e40298a2..715929a962e3a 100644
--- a/lldb/test/API/commands/add-dsym/uuid/TestAddDsymCommand.py
+++ b/lldb/test/API/commands/add-dsym/uuid/TestAddDsymCommand.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireDarwin
+@requireDarwin()
 class AddDsymCommandCase(TestBase):
     SHARED_BUILD_TESTCASE = False
 
diff --git 
a/lldb/test/API/commands/command/language/TestFrameLanguageCommands.py 
b/lldb/test/API/commands/command/language/TestFrameLanguageCommands.py
index f8e6c17ae34d7..3b12b564d979e 100644
--- a/lldb/test/API/commands/command/language/TestFrameLanguageCommands.py
+++ b/lldb/test/API/commands/command/language/TestFrameLanguageCommands.py
@@ -5,7 +5,7 @@
 
 
 class TestCase(TestBase):
-    @requireDarwin
+    @requireDarwin()
     def test(self):
         self.build()
         _, _, thread, _ = lldbutil.run_to_source_breakpoint(
diff --git a/lldb/test/API/commands/dwim-print/TestDWIMPrint.py 
b/lldb/test/API/commands/dwim-print/TestDWIMPrint.py
index d50c707f33de9..22b01394cf015 100644
--- a/lldb/test/API/commands/dwim-print/TestDWIMPrint.py
+++ b/lldb/test/API/commands/dwim-print/TestDWIMPrint.py
@@ -9,7 +9,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
-@requireExpressionEvaluation
+@requireExpressionEvaluation()
 class TestCase(TestBase):
     def _run_cmd(self, cmd: str) -> str:
         """Run the given lldb command and return its output."""
diff --git a/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py 
b/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py
index a25a192527293..5548e0401cf91 100644
--- a/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py
+++ b/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py
@@ -9,7 +9,7 @@
 
 
 class TestCase(TestBase):
-    @requireDarwin
+    @requireDarwin()
     def test(self):
         self.build()
         lldbutil.run_to_source_breakpoint(self, "break here", 
lldb.SBFileSpec("main.m"))
@@ -18,7 +18,7 @@ def test(self):
             "dwim-print parent.child", patterns=[r'_name = 0x[0-9a-f]+ 
@"Seven"']
         )
 
-    @requireDarwin
+    @requireDarwin()
     def test_with_summary(self):
         self.build()
         lldbutil.run_to_source_breakpoint(self, "break here", 
lldb.SBFileSpec("main.m"))
diff --git 
a/lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py 
b/lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py
index 76735fe62d5cd..69b99b9642823 100644
--- 
a/lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py
+++ 
b/lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py
@@ -13,7 +13,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireExpressionEvaluation
+@requireExpressionEvaluation()
 class TestExprLookupAnonStructTypedef(TestBase):
     def test(self):
         """Test typedeffed untagged struct arguments for function call 
expressions"""
diff --git 
a/lldb/test/API/commands/expression/argument_passing_restrictions/TestArgumentPassingRestrictions.py
 
b/lldb/test/API/commands/expression/argument_passing_restrictions/TestArgumentPassingRestrictions.py
index 55bccb4f84e7a..d9425e0ac9969 100644
--- 
a/lldb/test/API/commands/expression/argument_passing_restrictions/TestArgumentPassingRestrictions.py
+++ 
b/lldb/test/API/commands/expression/argument_passing_restrictions/TestArgumentPassingRestrictions.py
@@ -15,7 +15,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireExpressionEvaluation
+@requireExpressionEvaluation()
 class TestArgumentPassingRestrictions(TestBase):
     @skipIf(compiler="clang", compiler_version=["<", "7.0"])
     def test_argument_passing_restrictions(self):
diff --git 
a/lldb/test/API/commands/expression/call-function/TestCallStdStringFunction.py 
b/lldb/test/API/commands/expression/call-function/TestCallStdStringFunction.py
index 174306ec8e66a..464a32917a4d4 100644
--- 
a/lldb/test/API/commands/expression/call-function/TestCallStdStringFunction.py
+++ 
b/lldb/test/API/commands/expression/call-function/TestCallStdStringFunction.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireExpressionEvaluation
+@requireExpressionEvaluation()
 class ExprCommandCallFunctionTestCase(TestBase):
     @expectedFailureAll(
         compiler="icc", bugnumber="llvm.org/pr14437, fails with ICC 13.1"
diff --git 
a/lldb/test/API/commands/expression/call-function/TestCallStopAndContinue.py 
b/lldb/test/API/commands/expression/call-function/TestCallStopAndContinue.py
index 0034c4d948799..374fb6428bb4c 100644
--- a/lldb/test/API/commands/expression/call-function/TestCallStopAndContinue.py
+++ b/lldb/test/API/commands/expression/call-function/TestCallStopAndContinue.py
@@ -8,7 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireExpressionEvaluation
+@requireExpressionEvaluation()
 class ExprCommandCallStopContinueTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git 
a/lldb/test/API/commands/expression/call-function/TestCallUserDefinedFunction.py
 
b/lldb/test/API/commands/expression/call-function/TestCallUserDefinedFunction.py
index 0172c120065e9..3503ef093b015 100644
--- 
a/lldb/test/API/commands/expression/call-function/TestCallUserDefinedFunction.py
+++ 
b/lldb/test/API/commands/expression/call-function/TestCallUserDefinedFunction.py
@@ -13,7 +13,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireExpressionEvaluation
+@requireExpressionEvaluation()
 class ExprCommandCallUserDefinedFunction(TestBase):
     def test(self):
         """Test return values of user defined function calls."""
diff --git 
a/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py 
b/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py
index 0b62acc4e78c1..527899f7569fc 100644
--- a/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py
+++ b/lldb/test/API/commands/expression/call-restarts/TestCallThatRestarts.py
@@ -9,7 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireSignals
+@requireSignals()
 class ExprCommandThatRestartsTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git 
a/lldb/test/API/commands/expression/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py
 
b/lldb/test/API/commands/expression/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py
index 05e1744b15a49..cd3ba201e2d57 100644
--- 
a/lldb/test/API/commands/expression/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py
+++ 
b/lldb/test/API/commands/expression/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py
@@ -11,7 +11,7 @@
 from lldbsuite.test import lldbutil
 
 
-@requireExpressionEvaluation
+@requireExpressionEvaluation()
 class TestClassTemplateSpecializationParametersHandling(TestBase):
     def test_class_template_specialization(self):
         self.build()
diff --git 
a/lldb/test/API/commands/expression/context-object/TestContextObject.py 
b/lldb/test/API/commands/expression/context-object/TestContextObject.py
index ebbb42418ae19..5d03075b90d9f 100644
--- a/lldb/test/API/commands/expression/context-object/TestContextObject.py
+++ b/lldb/test/API/commands/expression/context-object/TestContextObject.py
@@ -8,7 +8,7 @@
 from lldbsuite.test.lldbtest import *
 
 
-@requireExpressionEvaluation
+@requireExpressionEvaluation()
 class ContextObjectTestCase(TestBase):
     def test_context_object(self):
         """Tests expression evaluation in context of an object."""
diff --git 
a/lldb/test/API/commands/expression/expr-with-fork/TestExprWithFork.py 
b/lldb/test/API/commands/expression/expr-with-fork/TestExprWithFork.py
index 411132370eb45..80f357ea52366 100644
--- a/lldb/test/API/commands/expression/expr-with-fork/TestExprWithFork.py
+++ b/lldb/test/API/commands/expression/expr-with-fork/TestExprWithFork.py
@@ -18,7 +18,7 @@ class ExprWithForkTestCase(TestBase):
 
     # --- Basic expression evaluation across fork/vfork ---
 
-    @requirePOSIX
+    @requirePOSIX()
     @add_test_categories(["fork"])
     def test_expr_with_fork(self):
         """Test that expression evaluation succeeds when the expression calls 
fork()."""
@@ -31,7 +31,7 @@ def test_expr_with_fork(self):
             "fork_and_return(42, false)", result_type="int", result_value="42"
         )
 
-    @requirePOSIX
+    @requirePOSIX()
     @add_test_categories(["fork"])
     def test_expr_with_vfork(self):
         """Test that expression evaluation succeeds when the expression calls 
vfork()."""
@@ -44,7 +44,7 @@ def test_expr_with_vfork(self):
             "fork_and_return(42, true)", result_type="int", result_value="42"
         )
 
-    @requirePOSIX
+    @requirePOSIX()
     @add_test_categories(["fork"])
     def test_expr_with_fork_trap(self):
         """Test that expression evaluation handles a child process that 
triggers a SIGTRAP."""
@@ -66,7 +66,7 @@ def test_expr_with_fork_trap(self):
 
     # --- follow-fork-mode child override during expression evaluation ---
 
-    @requirePOSIX
+    @requirePOSIX()
     @add_test_categories(["fork"])
     def test_expr_with_fork_follow_child(self):
         """Test that expression evaluation succeeds with follow-fork-mode 
child."""
@@ -87,7 +87,7 @@ def test_expr_with_fork_follow_child(self):
         # Verify we are still debugging the original process.
         self.assertEqual(process.GetProcessID(), original_pid)
 
-    @requirePOSIX
+    @requirePOSIX()
     @add_test_categories(["fork"])
     def test_expr_with_vfork_follow_child(self):
         """Test that expression evaluation succeeds with vfork and 
follow-fork-mode child."""
@@ -107,7 +107,7 @@ def test_expr_with_vfork_follow_child(self):
 
     # --- stop-on-fork: fork interrupts expression immediately ---
 
-    @requirePOSIX
+    @requirePOSIX()
     @add_test_categories(["fork"])
     def test_expr_with_fork_stop_on_fork(self):
         """Test that stop-on-fork interrupts expression evaluation on fork."""
@@ -126,7 +126,7 @@ def test_expr_with_fork_stop_on_fork(self):
         # The expression should be interrupted due to the fork.
         self.assertTrue(value.GetError().Fail())
 
-    @requirePOSIX
+    @requirePOSIX()
     @add_test_categories(["fork"])
     def test_expr_with_fork_stop_on_fork_process_state(self):
         """Test that process state is valid after stop-on-fork interrupts on 
fork."""
@@ -150,7 +150,7 @@ def test_expr_with_fork_stop_on_fork_process_state(self):
 
     # --- stop-on-fork with vfork: deferred to vforkdone ---
 
-    @requirePOSIX
+    @requirePOSIX()
     @add_test_categories(["fork"])
     def test_expr_with_vfork_stop_on_fork(self):
         """Test that stop-on-fork with vfork defers to vforkdone and 
interrupts."""
@@ -170,7 +170,7 @@ def test_expr_with_vfork_stop_on_fork(self):
         # vfork) because stop-on-fork is set.
         self.assertTrue(value.GetError().Fail())
 
-    @requirePOSIX
+    @requirePOSIX()
     @add_test_categories(["fork"])
     def test_expr_with_vfork_stop_...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/215831
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to