Commit 288d4e1
committed
[Test] Restrict test to release stdlibs.
Run OSLogMandatoryOptTest.swift only in configurations with release
stdlibs.
#64789 introduced a simple but
widespread change to SIL. It required updating a number of tests. The
updates primarily involved replacing `begin_borrow` + `copy_value` with
`move_value` instructions.
In particular, OSLogMandatoryOptTest.swift had to be updated as well:
several new `move_value` instructions had to be FileCheck'd. These
instructions all came from inlining code from the OSLogTestHelper
target, a target which is built in the same configuration as the stdlib.
In fact, they all came from inlining the
`_osLogTestHelper(_:assertion:)` function.
When building OSLogTestHelper for release, no optimization passes are
run on the function because it is marked `@_optimize(none)`.
`SemanticARCOpts` would have deleted these `move_value`s, but it doesn't
run on the function.
When building OSLogTestHelper for debug, however, `MandatoryARCOpts` (a
subset of `SemanticARCOpts`) _does_ run despite the function being
marked `@_optimize(none)`. That's because it's part of the
`OnonePassPipeline` which is mandatory, meaning that every pass runs on
each function, regardless of it being annotated `@_optimize(none)`.
As a result the `move_value` instructions--which FileCheck lines were
added to match--are deleted before FileCheck runs. So the new check
lines fail to match the deleted instructions. Besides the absence of
these new `move_value` instructions, there is no difference between the
function in debug vs release. In particular, removing the newly added
check lines allows the test to pass in a configuration with a debug
stdlib.
Rather than duplicate the test for debug configurations, just disable it
in them.
rdar://1197443931 parent ef1f9eb commit 288d4e1
1 file changed
+2
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
| 6 | + | |
5 | 7 | | |
6 | 8 | | |
7 | 9 | | |
| |||
0 commit comments