From 8dd7b507021b1c3ce3c81e0a00e444fd6a6715f8 Mon Sep 17 00:00:00 2001 From: Kyle Date: Sun, 18 Jan 2026 00:55:41 +0800 Subject: [PATCH] Add ViewGeometryDualTest case --- .../Layout/View/ViewGeometryTestsStub.c | 14 ++++++++ .../Layout/View/ViewGeometryDualTests.swift | 33 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 Sources/OpenSwiftUISymbolDualTestsSupport/Layout/View/ViewGeometryTestsStub.c create mode 100644 Tests/OpenSwiftUISymbolDualTests/Layout/View/ViewGeometryDualTests.swift diff --git a/Sources/OpenSwiftUISymbolDualTestsSupport/Layout/View/ViewGeometryTestsStub.c b/Sources/OpenSwiftUISymbolDualTestsSupport/Layout/View/ViewGeometryTestsStub.c new file mode 100644 index 000000000..268a2ddd3 --- /dev/null +++ b/Sources/OpenSwiftUISymbolDualTestsSupport/Layout/View/ViewGeometryTestsStub.c @@ -0,0 +1,14 @@ +// +// ViewGeometryTestsStub.c +// OpenSwiftUISymbolDualTestsSupport + +#include "OpenSwiftUIBase.h" + +#if OPENSWIFTUI_TARGET_OS_DARWIN + +#import + +DEFINE_SL_STUB_SLF(OpenSwiftUITestStub_ViewGeometryIsInvalid, SwiftUI, $s7SwiftUI12ViewGeometryV9isInvalidSbvg); + +#endif + diff --git a/Tests/OpenSwiftUISymbolDualTests/Layout/View/ViewGeometryDualTests.swift b/Tests/OpenSwiftUISymbolDualTests/Layout/View/ViewGeometryDualTests.swift new file mode 100644 index 000000000..a8449a8af --- /dev/null +++ b/Tests/OpenSwiftUISymbolDualTests/Layout/View/ViewGeometryDualTests.swift @@ -0,0 +1,33 @@ +// +// ViewGeometryDualTests.swift +// OpenSwiftUISymbolDualTests + +#if canImport(SwiftUI, _underlyingVersion: 6.5.4) +import Foundation +import OpenSwiftUICore +import Testing + +extension ViewGeometry { + var swiftUI_isInvalid: Bool { + @_silgen_name("OpenSwiftUITestStub_ViewGeometryIsInvalid") + get + } +} + +struct ViewGeometryDualTests { + @Test(arguments: [ + (CGFloat.nan, true), + (CGFloat.infinity, false), + (-CGFloat.infinity, false), + (3.0, false), + ] as [(CGFloat, Bool)]) + func isInvalid(originX: CGFloat, expected: Bool) { + let origin = ViewOrigin(x: originX, y: 0) + let geometry = ViewGeometry(origin: origin, dimensions: .zero) + #expect(geometry.isInvalid == expected) + #expect(geometry.swiftUI_isInvalid == expected) + } +} + +#endif +