Tracing and integration test tweaks (#3336)

* Disable image and document picker integration tests as they randomly fail to load and are flakey.

* Delete any pre-existing log files

* Various tracing tweaks and fixes:
- delete the custom tracing log levels as we can't control their ouput
- implement comparable on them
- change default levels only if the new chosen level increases their verbosity

* Make logging targets mandatory and fix their logging levels

* Switch back to using the `run_tests` reset simulator flag as `fastlane snapshot reset_simulators` was too generic and slow

* Switch all integration test taps to `tapCenter` (nee forceTap) after noticing missed taps on CI.

* Make the logging file prefix explicit, let the main app not use one.

* Rename tracing configuration `target` to `currentTarget`
This commit is contained in:
Stefan Ceriu
2024-09-27 15:08:47 +03:00
committed by GitHub
parent df6d0a999f
commit 9d23dec2e9
16 changed files with 126 additions and 138 deletions
+2 -2
View File
@@ -22,7 +22,7 @@ class LoggingTests: XCTestCase {
let target = "tests"
XCTAssertTrue(RustTracing.logFiles.isEmpty)
MXLog.configure(target: target, logLevel: .info)
MXLog.configure(currentTarget: target, filePrefix: target, logLevel: .info)
// There is something weird with Rust logging where the file writing handle doesn't
// notice that the file it is writing to was deleted, so we can't run these checks
@@ -168,7 +168,7 @@ class LoggingTests: XCTestCase {
content: .init(body: "FileString", source: nil, thumbnailSource: nil, contentType: nil))
// When logging that value
MXLog.configure(logLevel: .info)
MXLog.configure(currentTarget: "tests", filePrefix: nil, logLevel: .info)
MXLog.info(textMessage)
MXLog.info(noticeMessage)
@@ -10,14 +10,35 @@ import XCTest
@testable import ElementX
class TracingConfigurationTests: XCTestCase {
func testConfiguration() {
let configuration = TracingConfiguration(logLevel: .trace, target: nil)
func testConfiguration() { // swiftlint:disable line_length
var filter = TracingConfiguration(logLevel: .error, currentTarget: "tests", filePrefix: nil).filter
let filterComponents = configuration.filter.components(separatedBy: ",")
XCTAssertEqual(filterComponents.first, "info")
XCTAssertTrue(filterComponents.contains("matrix_sdk_base::sliding_sync=trace"))
XCTAssertTrue(filterComponents.contains("matrix_sdk::http_client=debug"))
XCTAssertTrue(filterComponents.contains("matrix_sdk_crypto=debug"))
XCTAssertTrue(filterComponents.contains("hyper=warn"))
XCTAssertEqual(filter, "hyper=warn,matrix_sdk_ffi=info,matrix_sdk::client=trace,matrix_sdk_crypto=debug,matrix_sdk_crypto::olm::account=trace,matrix_sdk::oidc=trace,matrix_sdk::http_client=debug,matrix_sdk::sliding_sync=info,matrix_sdk_base::sliding_sync=info,matrix_sdk_ui::timeline=info,tests=error")
filter = TracingConfiguration(logLevel: .warn, currentTarget: "tests", filePrefix: nil).filter
XCTAssertEqual(filter, "hyper=warn,matrix_sdk_ffi=info,matrix_sdk::client=trace,matrix_sdk_crypto=debug,matrix_sdk_crypto::olm::account=trace,matrix_sdk::oidc=trace,matrix_sdk::http_client=debug,matrix_sdk::sliding_sync=info,matrix_sdk_base::sliding_sync=info,matrix_sdk_ui::timeline=info,tests=warn")
filter = TracingConfiguration(logLevel: .info, currentTarget: "tests", filePrefix: nil).filter
XCTAssertEqual(filter, "hyper=warn,matrix_sdk_ffi=info,matrix_sdk::client=trace,matrix_sdk_crypto=debug,matrix_sdk_crypto::olm::account=trace,matrix_sdk::oidc=trace,matrix_sdk::http_client=debug,matrix_sdk::sliding_sync=info,matrix_sdk_base::sliding_sync=info,matrix_sdk_ui::timeline=info,tests=info")
filter = TracingConfiguration(logLevel: .debug, currentTarget: "tests", filePrefix: nil).filter
XCTAssertEqual(filter, "hyper=warn,matrix_sdk_ffi=debug,matrix_sdk::client=trace,matrix_sdk_crypto=debug,matrix_sdk_crypto::olm::account=trace,matrix_sdk::oidc=trace,matrix_sdk::http_client=debug,matrix_sdk::sliding_sync=debug,matrix_sdk_base::sliding_sync=debug,matrix_sdk_ui::timeline=debug,tests=debug")
filter = TracingConfiguration(logLevel: .trace, currentTarget: "tests", filePrefix: nil).filter
XCTAssertEqual(filter, "hyper=warn,matrix_sdk_ffi=trace,matrix_sdk::client=trace,matrix_sdk_crypto=trace,matrix_sdk_crypto::olm::account=trace,matrix_sdk::oidc=trace,matrix_sdk::http_client=trace,matrix_sdk::sliding_sync=trace,matrix_sdk_base::sliding_sync=trace,matrix_sdk_ui::timeline=trace,tests=trace")
} // swiftlint:enable line_length
func testLevelOrdering() {
var logLevels: [TracingConfiguration.LogLevel] = [.info, .error, .trace, .debug, .warn]
XCTAssertEqual(logLevels.sorted(), [.error, .warn, .info, .debug, .trace])
logLevels = [.warn, .error, .debug, .trace, .info, .error]
XCTAssertEqual(logLevels.sorted(), [.error, .error, .warn, .info, .debug, .trace])
}
}