Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add integration tests #535

Merged
merged 39 commits into from
Aug 11, 2024
Merged

Add integration tests #535

merged 39 commits into from
Aug 11, 2024

Conversation

bamx23
Copy link
Collaborator

@bamx23 bamx23 commented Jul 21, 2024

This is a foundation for integration tests

Base automatically changed from extend-samples to master July 21, 2024 23:48
@GLinnik21
Copy link
Collaborator

GLinnik21 commented Aug 3, 2024

It seems that it fails on watchOS because there is no SIGNAL API on that OS. (Or maybe the signal buttons are out of sight, so we have to scroll with code?)

@GLinnik21
Copy link
Collaborator

Wow, exporting test.xcresult as an artefact is an excellent idea. I wish we could have a dump of the Application Support folder in this report as well, if it allows arbitrary attachments to be added.

@bamx23 bamx23 marked this pull request as ready for review August 10, 2024 19:24
Copy link
Collaborator

@GLinnik21 GLinnik21 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! Just a few minor tweaks and we're good to go!

Samples/Tests/Core/IntegrationTestBase.swift Show resolved Hide resolved
}

func readRawCrashReportData() throws -> Data {
enum Error: Swift.Error {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just asking. Is it OK to use Error which can be ambiguous in some cases? Also, maybe it would be more useful to define one Error enum for the whole TestCase?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, these are only valid inside tests and not expected to be used as API. Made it a bit more clear but not sure if we need a single common enum

Samples/Tests/Core/IntegrationTestBase.swift Outdated Show resolved Hide resolved
Samples/Tests/IntegrationTests.swift Outdated Show resolved Hide resolved
@bamx23 bamx23 merged commit 69d30a2 into master Aug 11, 2024
10 checks passed
@bamx23 bamx23 deleted the integration-tests branch August 11, 2024 19:52
sweetloser pushed a commit to sweetloser/KSCrash that referenced this pull request Sep 18, 2024
* Add accessibility labels

* Support install path override

* Add integration test

* Add integration test CI job

* Wait for crash

* Do not CI tvOS

* Assert Apple-formatted report

* Remove visionOS part

* Extract integration tests to a separate workflow

* Add testplan and fix scheme

* Lower repetitions number

* Wait for install button

* Add some swifty sugar

* Use directory sink for tests

* Add other crash types

* Fix watchOS

* Split helper and crash triggers

* Add crash search and use it in tests

* Just use scroll instead of search

* Use a different second test

* Fix format

* Run tests in parallel

* Remove typealias

* Limit number of scrolls

* Fix throws

* Swipe slowly

* Even slower?

* Add generic crashed thread validation

* Add mach exception test

* Fix C++ test by enabling cxa_throw swap

* Fix toggle logic

* Use env + script instead of UI elements

* Test Mach only on iOS

* Add tvOS test target

* Address comments

* Add platform-specific action delay

* Add macOS

* Remove test UI ids

* Use manual run for most changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants