Previously -dump-hashes dumped the current state of the hashes in a format like
the following:
$REPO_NAME $HASH $SUBJECT
While this dumps the relevant information, it is not machine parseable. Instead
in this commit, we dump out the hashes into a update-checkout config json file
with a scheme name of repro. Thus to reproduce the current repository state on
someone else's machine, you don't need to type in the exact hashes. Instead, one
can just do:
```
$ ./swift/utils/update-checkout -dump-hashes > repro.json
```
and then give the repro.json file to another swift developer. They then can run:
```
$ ./swift/utils/update-checkout -config=repro.json -scheme=repro
```
which will checkout all of the appropriate hashes for each repository to
reproduce the build on the other user's machine.
Previously, if a branch scheme did not specify a branch for a repository,
update-checkout would crash. It's implied that all repositories should be
cloned by all schemes, which is not necessarily the case.
Now, repositories not specified in a scheme are not cloned.
Addresses SR-8060.
This used matplotlib internally to plot the values. Now one can produce scurves
without leaving the command line.
I tried to get logarithmic scale to work, but I was unable to do so in a trivial
way. That is something for a different hacking session. I need to move on.
I am upstreaming this for two reasons:
1. Traditionally I have done this by hand in a spreadsheet program. I would
rather just have a program fix it up for me.
2. Multiple people have asked me about how to produce this sort of graph and I
would just like to document it via a script.
I hope it is useful to others. You use the script by invoking it as:
./csvcolumn_to_scurve <input_file> <before_column> <after_column> [output_file]
With the recent changes upstream we use lit as the test driver for CMake
based builds. Instead of invoking lit and dotest separately, we need to
pass the dotest arguments to lit and have it take care of everything for
us.
Switched to using `build-for-testing`/`test-without-building` for the PlaygroundLogger tests.
The new PlaygroundLogger tests are now a proper XCTest unit test bundle, so it needs to be done this way (instead of building the test runner and then just invoking that).
This is part of <rdar://problem/37765445>.
LLDB_Swift_DebugAssert_with_devices and
LLDB_Swift_ReleaseAssert_with_devices presets -
we don't need debug information in the stdlib
that we use when testing on-device.
(cherry picked from commit c7ce1148a3)
This is a test-only change except for the introduction of a new request
that is only used by tests.
Our notifications are dispatched in the XPC event handler, which is not
synchronized with replies to explicit XPC send_message_with_reply calls.
This is fine for most users of sourcekitd, since the notifications are
already enqueued on the client side, but for testing we need a way to
guarantee that all notifications are passed to the client-side handler
before we exit. This commit introduces a new request for testing that
triggers a notification, allowing the client to wait on that
notification to ensure all previously posted notifications have been
handled.
Note: the non-deterministic test failures can be triggered by adding a
sleep of ~100 ms in the event handler before the notification is
dispatched to the main queue.
rdar://40311995
Specifically:
1. SKIP_TEST_BENCHMARK => SKIP_TEST_BENCHMARKS
I looked for --skip-test-benchmark (notice no s) and SKIP_TEST_BENCHMARK. It
seems like it is dead, especially since we have --skip-test-benchmarks.
2. Remove the code that works around SKIP_TEST_BENCHMARK typo.