@@ -108,6 +108,34 @@ class ActivityParserTests: XCTestCase {
108108 return startTokens + logMessageTokens + endTokens
109109 } ( )
110110
111+ lazy var IDEActivityLogSectionTokensWithoutAttachments : [ Token ] = {
112+ let startTokens = [ Token . int ( 2 ) ,
113+ Token . string ( " com.apple.dt.IDE.BuildLogSection " ) ,
114+ Token . string ( " Prepare build " ) ,
115+ Token . string ( " Prepare build " ) ,
116+ Token . double ( 575479851.278759 ) ,
117+ Token . double ( 575479851.778325 ) ,
118+ Token . null,
119+ Token . string ( " note: Using legacy build system " ) ,
120+ Token . list ( 1 ) ,
121+ Token . className ( " IDEActivityLogMessage " ) ,
122+ Token . classNameRef ( " IDEActivityLogMessage " ) ,
123+ ]
124+ let logMessageTokens = IDEActivityLogMessageTokens
125+ let endTokens = [ Token . int ( 1 ) ,
126+ Token . int ( 0 ) ,
127+ Token . int ( 1 ) ,
128+ Token . string ( " subtitle " ) ,
129+ Token . null,
130+ Token . string ( " commandDetailDesc " ) ,
131+ Token . string ( " 501796C4-6BE4-4F80-9F9D-3269617ECC17 " ) ,
132+ Token . string ( " localizedResultString " ) ,
133+ Token . string ( " xcbuildSignature " ) ,
134+ Token . int ( 0 )
135+ ]
136+ return startTokens + logMessageTokens + endTokens
137+ } ( )
138+
111139 let IDEConsoleItemTokens : [ Token ] = [
112140 Token . className ( " IDEConsoleItem " ) ,
113141 Token . classNameRef ( " IDEConsoleItem " ) ,
@@ -288,6 +316,7 @@ class ActivityParserTests: XCTestCase {
288316 }
289317
290318 func testParseIDEActivityLogSection( ) throws {
319+ parser. logVersion = 11
291320 let tokens = IDEActivityLogSectionTokens
292321 var iterator = tokens. makeIterator ( )
293322 let logSection = try parser. parseIDEActivityLogSection ( iterator: & iterator)
@@ -310,15 +339,46 @@ class ActivityParserTests: XCTestCase {
310339 XCTAssertEqual ( " 501796C4-6BE4-4F80-9F9D-3269617ECC17 " , logSection. uniqueIdentifier)
311340 XCTAssertEqual ( " localizedResultString " , logSection. localizedResultString)
312341 XCTAssertEqual ( " xcbuildSignature " , logSection. xcbuildSignature)
342+ XCTAssertEqual ( 1 , logSection. attachments. count)
343+ XCTAssertEqual ( 0 , logSection. unknown)
344+ }
345+
346+ func testParseIDEActivityLogSection_version10( ) throws {
347+ parser. logVersion = 10
348+ let tokens = IDEActivityLogSectionTokensWithoutAttachments
349+ var iterator = tokens. makeIterator ( )
350+ let logSection = try parser. parseIDEActivityLogSection ( iterator: & iterator)
351+ XCTAssertEqual ( 2 , logSection. sectionType)
352+ XCTAssertEqual ( " com.apple.dt.IDE.BuildLogSection " , logSection. domainType)
353+ XCTAssertEqual ( " Prepare build " , logSection. title)
354+ XCTAssertEqual ( " Prepare build " , logSection. signature)
355+ XCTAssertEqual ( 575479851.278759 , logSection. timeStartedRecording)
356+ XCTAssertEqual ( 575479851.778325 , logSection. timeStoppedRecording)
357+ XCTAssertEqual ( 0 , logSection. subSections. count)
358+ XCTAssertEqual ( " note: Using legacy build system " , logSection. text)
359+ XCTAssertEqual ( 1 , logSection. messages. count)
360+ XCTAssertTrue ( logSection. wasCancelled)
361+ XCTAssertFalse ( logSection. isQuiet)
362+ XCTAssertTrue ( logSection. wasFetchedFromCache)
363+ XCTAssertEqual ( " subtitle " , logSection. subtitle)
364+ XCTAssertEqual ( " " , logSection. location. documentURLString)
365+ XCTAssertEqual ( 0 , logSection. location. timestamp)
366+ XCTAssertEqual ( " commandDetailDesc " , logSection. commandDetailDesc)
367+ XCTAssertEqual ( " 501796C4-6BE4-4F80-9F9D-3269617ECC17 " , logSection. uniqueIdentifier)
368+ XCTAssertEqual ( " localizedResultString " , logSection. localizedResultString)
369+ XCTAssertEqual ( " xcbuildSignature " , logSection. xcbuildSignature)
370+ XCTAssertEqual ( 0 , logSection. attachments. count)
313371 XCTAssertEqual ( 0 , logSection. unknown)
314372 }
315373
316374 func testParseActivityLog( ) throws {
317375 let activityLog = try parser. parseIDEActiviyLogFromTokens ( IDEActivityLogTokens)
318376 XCTAssertEqual ( 10 , activityLog. version)
377+ XCTAssertEqual ( 10 , parser. logVersion)
319378 }
320379
321380 func testParseDBGConsoleLog( ) throws {
381+ parser. logVersion = 11
322382 let tokens = DBGConsoleLogTokens
323383 var iterator = tokens. makeIterator ( )
324384 let DBGConsoleLog = try parser. parseDBGConsoleLog ( iterator: & iterator)
0 commit comments