Rename TraceData -> TracePipeline

Bug: b/256564627
Test: npm run build:all && npm run test:all
Change-Id: Ic92ad03701f7a9ead1edc73bfbfd4ffbf44bc408
diff --git a/tools/winscope/src/app/components/app_component.ts b/tools/winscope/src/app/components/app_component.ts
index 9600a79..a4c971a 100644
--- a/tools/winscope/src/app/components/app_component.ts
+++ b/tools/winscope/src/app/components/app_component.ts
@@ -26,8 +26,8 @@
 import {AbtChromeExtensionProtocol} from 'abt_chrome_extension/abt_chrome_extension_protocol';
 import {Mediator} from 'app/mediator';
 import {TimelineData} from 'app/timeline_data';
-import {TraceData} from 'app/trace_data';
 import {TRACE_INFO} from 'app/trace_info';
+import {TracePipeline} from 'app/trace_pipeline';
 import {FileUtils} from 'common/file_utils';
 import {PersistentStore} from 'common/persistent_store';
 import {CrossToolProtocol} from 'cross_tool/cross_tool_protocol';
@@ -122,13 +122,13 @@
           <div class="card-grid landing-grid">
             <collect-traces
               class="collect-traces-card homepage-card"
-              [traceData]="traceData"
+              [tracePipeline]="tracePipeline"
               (traceDataLoaded)="mediator.onWinscopeTraceDataLoaded()"
               [store]="store"></collect-traces>
 
             <upload-traces
               class="upload-traces-card homepage-card"
-              [traceData]="traceData"
+              [tracePipeline]="tracePipeline"
               (traceDataLoaded)="mediator.onWinscopeTraceDataLoaded()"></upload-traces>
           </div>
         </div>
@@ -186,12 +186,12 @@
 export class AppComponent implements TraceDataListener {
   title = 'winscope';
   changeDetectorRef: ChangeDetectorRef;
-  traceData = new TraceData();
+  tracePipeline = new TracePipeline();
   timelineData = new TimelineData();
   abtChromeExtensionProtocol = new AbtChromeExtensionProtocol();
   crossToolProtocol = new CrossToolProtocol();
   mediator = new Mediator(
-    this.traceData,
+    this.tracePipeline,
     this.timelineData,
     this.abtChromeExtensionProtocol,
     this.crossToolProtocol,
@@ -273,7 +273,7 @@
   }
 
   getLoadedTraceTypes(): TraceType[] {
-    return this.traceData.getLoadedTraces().map((trace) => trace.type);
+    return this.tracePipeline.getLoadedTraces().map((trace) => trace.type);
   }
 
   getVideoData(): Blob | undefined {
@@ -324,7 +324,7 @@
   }
 
   private makeActiveTraceFileInfo(view: View): string {
-    const traceFile = this.traceData
+    const traceFile = this.tracePipeline
       .getLoadedTraces()
       .find((trace) => trace.type === view.dependencies[0])?.traceFile;
 
@@ -340,7 +340,7 @@
   }
 
   private async makeTraceFilesForDownload(): Promise<File[]> {
-    return this.traceData.getLoadedTraces().map((trace) => {
+    return this.tracePipeline.getLoadedTraces().map((trace) => {
       const traceType = TRACE_INFO[trace.type].name;
       const newName = traceType + '/' + FileUtils.removeDirFromFileName(trace.traceFile.file.name);
       return new File([trace.traceFile.file], newName);
diff --git a/tools/winscope/src/app/components/collect_traces_component.ts b/tools/winscope/src/app/components/collect_traces_component.ts
index 03d12ac..521515a 100644
--- a/tools/winscope/src/app/components/collect_traces_component.ts
+++ b/tools/winscope/src/app/components/collect_traces_component.ts
@@ -27,7 +27,7 @@
   ViewEncapsulation,
 } from '@angular/core';
 import {MatSnackBar} from '@angular/material/snack-bar';
-import {TraceData} from 'app/trace_data';
+import {TracePipeline} from 'app/trace_pipeline';
 import {PersistentStore} from 'common/persistent_store';
 import {TraceFile} from 'trace/trace';
 import {Connection} from 'trace_collection/connection';
@@ -359,7 +359,7 @@
   loadProgress = 0;
 
   @Input() store!: PersistentStore;
-  @Input() traceData!: TraceData;
+  @Input() tracePipeline!: TracePipeline;
 
   @Output() traceDataLoaded = new EventEmitter<void>();
 
@@ -437,7 +437,7 @@
     if (dumpSuccessful) {
       await this.loadFiles();
     } else {
-      this.traceData.clear();
+      this.tracePipeline.clear();
     }
   }
 
@@ -516,9 +516,9 @@
 
   private async loadFiles() {
     console.log('loading files', this.connect.adbData());
-    this.traceData.clear();
+    this.tracePipeline.clear();
     const traceFiles = this.connect.adbData().map((file) => new TraceFile(file));
-    const parserErrors = await this.traceData.loadTraces(traceFiles);
+    const parserErrors = await this.tracePipeline.loadTraces(traceFiles);
     ParserErrorSnackBarComponent.showIfNeeded(this.ngZone, this.snackBar, parserErrors);
     this.traceDataLoaded.emit();
     console.log('finished loading data!');
diff --git a/tools/winscope/src/app/components/upload_traces_component.ts b/tools/winscope/src/app/components/upload_traces_component.ts
index 8f9d3e4..8993667 100644
--- a/tools/winscope/src/app/components/upload_traces_component.ts
+++ b/tools/winscope/src/app/components/upload_traces_component.ts
@@ -23,8 +23,8 @@
   Output,
 } from '@angular/core';
 import {MatSnackBar} from '@angular/material/snack-bar';
-import {TraceData} from 'app/trace_data';
 import {TRACE_INFO} from 'app/trace_info';
+import {TracePipeline} from 'app/trace_pipeline';
 import {FileUtils, OnFile} from 'common/file_utils';
 import {FilesDownloadListener} from 'interfaces/files_download_listener';
 import {Trace, TraceFile} from 'trace/trace';
@@ -58,9 +58,9 @@
         </load-progress>
 
         <mat-list
-          *ngIf="!isLoadingFiles && this.traceData.getLoadedTraces().length > 0"
+          *ngIf="!isLoadingFiles && this.tracePipeline.getLoadedTraces().length > 0"
           class="uploaded-files">
-          <mat-list-item *ngFor="let trace of this.traceData.getLoadedTraces()">
+          <mat-list-item *ngFor="let trace of this.tracePipeline.getLoadedTraces()">
             <mat-icon matListIcon>
               {{ TRACE_INFO[trace.type].icon }}
             </mat-icon>
@@ -73,7 +73,9 @@
           </mat-list-item>
         </mat-list>
 
-        <div *ngIf="!isLoadingFiles && traceData.getLoadedTraces().length === 0" class="drop-info">
+        <div
+          *ngIf="!isLoadingFiles && tracePipeline.getLoadedTraces().length === 0"
+          class="drop-info">
           <p class="mat-body-3 icon">
             <mat-icon inline fontIcon="upload"></mat-icon>
           </p>
@@ -82,7 +84,7 @@
       </mat-card-content>
 
       <div
-        *ngIf="!isLoadingFiles && traceData.getLoadedTraces().length > 0"
+        *ngIf="!isLoadingFiles && tracePipeline.getLoadedTraces().length > 0"
         class="trace-actions-container">
         <button
           color="primary"
@@ -173,7 +175,7 @@
   progressMessage = '';
   progressPercentage?: number;
 
-  @Input() traceData!: TraceData;
+  @Input() tracePipeline!: TracePipeline;
   @Output() traceDataLoaded = new EventEmitter<void>();
 
   constructor(
@@ -183,7 +185,7 @@
   ) {}
 
   ngOnInit() {
-    this.traceData.clear();
+    this.tracePipeline.clear();
   }
 
   onFilesDownloadStart() {
@@ -207,7 +209,7 @@
   }
 
   onClearButtonClick() {
-    this.traceData.clear();
+    this.tracePipeline.clear();
     this.changeDetectorRef.detectChanges();
   }
 
@@ -232,7 +234,7 @@
   onRemoveTrace(event: MouseEvent, trace: Trace) {
     event.preventDefault();
     event.stopPropagation();
-    this.traceData.removeTrace(trace.type);
+    this.tracePipeline.removeTrace(trace.type);
     this.changeDetectorRef.detectChanges();
   }
 
@@ -265,7 +267,7 @@
 
     this.progressMessage = 'Parsing files...';
     this.changeDetectorRef.detectChanges();
-    const parserErrors = await this.traceData.loadTraces(traceFiles, onProgressUpdate);
+    const parserErrors = await this.tracePipeline.loadTraces(traceFiles, onProgressUpdate);
 
     this.isLoadingFiles = false;
     this.changeDetectorRef.detectChanges();
diff --git a/tools/winscope/src/app/components/upload_traces_component_test.ts b/tools/winscope/src/app/components/upload_traces_component_test.ts
index 8da11ba..e2d79ad 100644
--- a/tools/winscope/src/app/components/upload_traces_component_test.ts
+++ b/tools/winscope/src/app/components/upload_traces_component_test.ts
@@ -16,7 +16,7 @@
 import {ComponentFixture, TestBed} from '@angular/core/testing';
 import {MatCardModule} from '@angular/material/card';
 import {MatSnackBar, MatSnackBarModule} from '@angular/material/snack-bar';
-import {TraceData} from 'app/trace_data';
+import {TracePipeline} from 'app/trace_pipeline';
 import {UploadTracesComponent} from './upload_traces_component';
 
 describe('UploadTracesComponent', () => {
@@ -36,8 +36,8 @@
     fixture = TestBed.createComponent(UploadTracesComponent);
     component = fixture.componentInstance;
     htmlElement = fixture.nativeElement;
-    const traceData = new TraceData();
-    component.traceData = traceData;
+    const tracePipeline = new TracePipeline();
+    component.tracePipeline = tracePipeline;
   });
 
   it('can be created', () => {
diff --git a/tools/winscope/src/app/mediator.ts b/tools/winscope/src/app/mediator.ts
index 028f910..8964abf 100644
--- a/tools/winscope/src/app/mediator.ts
+++ b/tools/winscope/src/app/mediator.ts
@@ -27,7 +27,7 @@
 import {Viewer} from 'viewers/viewer';
 import {ViewerFactory} from 'viewers/viewer_factory';
 import {TimelineData} from './timeline_data';
-import {TraceData} from './trace_data';
+import {TracePipeline} from './trace_pipeline';
 
 export type CrossToolProtocolDependencyInversion = RemoteBugreportReceiver &
   RemoteTimestampReceiver &
@@ -46,7 +46,7 @@
   private appComponent: AppComponentDependencyInversion;
   private storage: Storage;
 
-  private traceData: TraceData;
+  private tracePipeline: TracePipeline;
   private timelineData: TimelineData;
   private viewers: Viewer[] = [];
   private isChangingCurrentTimestamp = false;
@@ -54,14 +54,14 @@
   private lastRemoteToolTimestampReceived: Timestamp | undefined;
 
   constructor(
-    traceData: TraceData,
+    tracePipeline: TracePipeline,
     timelineData: TimelineData,
     abtChromeExtensionProtocol: AbtChromeExtensionProtocolDependencyInversion,
     crossToolProtocol: CrossToolProtocolDependencyInversion,
     appComponent: AppComponentDependencyInversion,
     storage: Storage
   ) {
-    this.traceData = traceData;
+    this.tracePipeline = tracePipeline;
     this.timelineData = timelineData;
     this.abtChromeExtensionProtocol = abtChromeExtensionProtocol;
     this.crossToolProtocol = crossToolProtocol;
@@ -117,7 +117,7 @@
 
   onWinscopeCurrentTimestampChanged(timestamp: Timestamp | undefined) {
     this.executeIgnoringRecursiveTimestampNotifications(() => {
-      const entries = this.traceData.getTraceEntries(timestamp);
+      const entries = this.tracePipeline.getTraceEntries(timestamp);
       this.viewers.forEach((viewer) => {
         viewer.notifyCurrentTraceEntries(entries);
       });
@@ -175,7 +175,7 @@
         return; // no timestamp change
       }
 
-      const entries = this.traceData.getTraceEntries(timestamp);
+      const entries = this.tracePipeline.getTraceEntries(timestamp);
       this.viewers.forEach((viewer) => {
         viewer.notifyCurrentTraceEntries(entries);
       });
@@ -192,8 +192,8 @@
 
   private processTraceData() {
     this.timelineData.initialize(
-      this.traceData.getTimelines(),
-      this.traceData.getScreenRecordingVideo()
+      this.tracePipeline.getTimelines(),
+      this.tracePipeline.getScreenRecordingVideo()
     );
     this.createViewers();
     this.appComponent.onTraceDataLoaded(this.viewers);
@@ -205,7 +205,7 @@
   }
 
   private createViewers() {
-    const traceTypes = this.traceData.getLoadedTraces().map((trace) => trace.type);
+    const traceTypes = this.tracePipeline.getLoadedTraces().map((trace) => trace.type);
     this.viewers = new ViewerFactory().createViewers(new Set<TraceType>(traceTypes), this.storage);
 
     // Make sure to update the viewers active entries as soon as they are created.
@@ -227,7 +227,7 @@
   }
 
   private resetAppToInitialState() {
-    this.traceData.clear();
+    this.tracePipeline.clear();
     this.timelineData.clear();
     this.viewers = [];
     this.isTraceDataVisualized = false;
diff --git a/tools/winscope/src/app/mediator_test.ts b/tools/winscope/src/app/mediator_test.ts
index 9d0335f..28730bc 100644
--- a/tools/winscope/src/app/mediator_test.ts
+++ b/tools/winscope/src/app/mediator_test.ts
@@ -27,11 +27,11 @@
 import {UploadTracesComponentStub} from './components/upload_traces_component_stub';
 import {Mediator} from './mediator';
 import {TimelineData} from './timeline_data';
-import {TraceData} from './trace_data';
+import {TracePipeline} from './trace_pipeline';
 
 describe('Mediator', () => {
   const viewerStub = new ViewerStub('Title');
-  let traceData: TraceData;
+  let tracePipeline: TracePipeline;
   let timelineData: TimelineData;
   let abtChromeExtensionProtocol: AbtChromeExtensionProtocolStub;
   let crossToolProtocol: CrossToolProtocolStub;
@@ -45,7 +45,7 @@
 
   beforeEach(async () => {
     timelineComponent = new TimelineComponentStub();
-    traceData = new TraceData();
+    tracePipeline = new TracePipeline();
     timelineData = new TimelineData();
     abtChromeExtensionProtocol = new AbtChromeExtensionProtocolStub();
     crossToolProtocol = new CrossToolProtocolStub();
@@ -53,7 +53,7 @@
     timelineComponent = new TimelineComponentStub();
     uploadTracesComponent = new UploadTracesComponentStub();
     mediator = new Mediator(
-      traceData,
+      tracePipeline,
       timelineData,
       abtChromeExtensionProtocol,
       crossToolProtocol,
@@ -208,7 +208,7 @@
         )
       ),
     ];
-    const errors = await traceData.loadTraces(traces);
+    const errors = await tracePipeline.loadTraces(traces);
     expect(errors).toEqual([]);
   };
 });
diff --git a/tools/winscope/src/app/timeline_data.ts b/tools/winscope/src/app/timeline_data.ts
index 574f89e..694c8af 100644
--- a/tools/winscope/src/app/timeline_data.ts
+++ b/tools/winscope/src/app/timeline_data.ts
@@ -20,7 +20,7 @@
 import {ScreenRecordingUtils} from 'trace/screen_recording_utils';
 import {Timestamp, TimestampType} from 'trace/timestamp';
 import {TraceType} from 'trace/trace_type';
-import {Timeline} from './trace_data';
+import {Timeline} from './trace_pipeline';
 
 export type TimestampCallbackType = (timestamp: Timestamp | undefined) => void;
 export interface TimeRange {
diff --git a/tools/winscope/src/app/timeline_data_test.ts b/tools/winscope/src/app/timeline_data_test.ts
index 9d96ca5..362bf1e 100644
--- a/tools/winscope/src/app/timeline_data_test.ts
+++ b/tools/winscope/src/app/timeline_data_test.ts
@@ -17,7 +17,7 @@
 import {Timestamp, TimestampType} from 'trace/timestamp';
 import {TraceType} from 'trace/trace_type';
 import {TimelineData} from './timeline_data';
-import {Timeline} from './trace_data';
+import {Timeline} from './trace_pipeline';
 
 class TimestampChangedObserver {
   onCurrentTimestampChanged(timestamp: Timestamp | undefined) {
diff --git a/tools/winscope/src/app/trace_data.ts b/tools/winscope/src/app/trace_pipeline.ts
similarity index 98%
rename from tools/winscope/src/app/trace_data.ts
rename to tools/winscope/src/app/trace_pipeline.ts
index 0e89f05..27500a5 100644
--- a/tools/winscope/src/app/trace_data.ts
+++ b/tools/winscope/src/app/trace_pipeline.ts
@@ -28,7 +28,7 @@
   timestamps: Timestamp[];
 }
 
-class TraceData {
+class TracePipeline {
   private parserFactory = new ParserFactory();
   private parsers: Parser[] = [];
   private commonTimestampType?: TimestampType;
@@ -137,4 +137,4 @@
   }
 }
 
-export {Timeline, TraceData};
+export {Timeline, TracePipeline};
diff --git a/tools/winscope/src/app/trace_data_test.ts b/tools/winscope/src/app/trace_pipeline_test.ts
similarity index 68%
rename from tools/winscope/src/app/trace_data_test.ts
rename to tools/winscope/src/app/trace_pipeline_test.ts
index cb4a462..daddbf8 100644
--- a/tools/winscope/src/app/trace_data_test.ts
+++ b/tools/winscope/src/app/trace_pipeline_test.ts
@@ -17,19 +17,19 @@
 import {Timestamp, TimestampType} from 'trace/timestamp';
 import {TraceFile} from 'trace/trace';
 import {TraceType} from 'trace/trace_type';
-import {TraceData} from './trace_data';
+import {TracePipeline} from './trace_pipeline';
 
-describe('TraceData', () => {
-  let traceData: TraceData;
+describe('TracePipeline', () => {
+  let tracePipeline: TracePipeline;
 
   beforeEach(async () => {
-    traceData = new TraceData();
+    tracePipeline = new TracePipeline();
   });
 
   it('can load valid trace files', async () => {
-    expect(traceData.getLoadedTraces().length).toEqual(0);
+    expect(tracePipeline.getLoadedTraces().length).toEqual(0);
     await loadValidSfWmTraces();
-    expect(traceData.getLoadedTraces().length).toEqual(2);
+    expect(tracePipeline.getLoadedTraces().length).toEqual(2);
   });
 
   it('is robust to invalid trace files', async () => {
@@ -37,19 +37,19 @@
       new TraceFile(await UnitTestUtils.getFixtureFile('winscope_homepage.png')),
     ];
 
-    const errors = await traceData.loadTraces(invalidTraceFiles);
+    const errors = await tracePipeline.loadTraces(invalidTraceFiles);
     expect(errors.length).toEqual(1);
-    expect(traceData.getLoadedTraces().length).toEqual(0);
+    expect(tracePipeline.getLoadedTraces().length).toEqual(0);
   });
 
   it('is robust to mixed valid and invalid trace files', async () => {
-    expect(traceData.getLoadedTraces().length).toEqual(0);
+    expect(tracePipeline.getLoadedTraces().length).toEqual(0);
     const traces = [
       new TraceFile(await UnitTestUtils.getFixtureFile('winscope_homepage.png')),
       new TraceFile(await UnitTestUtils.getFixtureFile('traces/dump_WindowManager.pb')),
     ];
-    const errors = await traceData.loadTraces(traces);
-    expect(traceData.getLoadedTraces().length).toEqual(1);
+    const errors = await tracePipeline.loadTraces(traces);
+    expect(tracePipeline.getLoadedTraces().length).toEqual(1);
     expect(errors.length).toEqual(1);
   });
 
@@ -58,32 +58,32 @@
       new TraceFile(await UnitTestUtils.getFixtureFile('traces/no_entries_InputMethodClients.pb')),
     ];
 
-    const errors = await traceData.loadTraces(traceFilesWithNoEntries);
+    const errors = await tracePipeline.loadTraces(traceFilesWithNoEntries);
 
     expect(errors.length).toEqual(0);
 
-    expect(traceData.getLoadedTraces().length).toEqual(1);
+    expect(tracePipeline.getLoadedTraces().length).toEqual(1);
 
-    const timelines = traceData.getTimelines();
+    const timelines = tracePipeline.getTimelines();
     expect(timelines.length).toEqual(1);
     expect(timelines[0].timestamps).toEqual([]);
   });
 
   it('can remove traces', async () => {
     await loadValidSfWmTraces();
-    expect(traceData.getLoadedTraces().length).toEqual(2);
+    expect(tracePipeline.getLoadedTraces().length).toEqual(2);
 
-    traceData.removeTrace(TraceType.SURFACE_FLINGER);
-    expect(traceData.getLoadedTraces().length).toEqual(1);
+    tracePipeline.removeTrace(TraceType.SURFACE_FLINGER);
+    expect(tracePipeline.getLoadedTraces().length).toEqual(1);
 
-    traceData.removeTrace(TraceType.WINDOW_MANAGER);
-    expect(traceData.getLoadedTraces().length).toEqual(0);
+    tracePipeline.removeTrace(TraceType.WINDOW_MANAGER);
+    expect(tracePipeline.getLoadedTraces().length).toEqual(0);
   });
 
   it('gets loaded traces', async () => {
     await loadValidSfWmTraces();
 
-    const traces = traceData.getLoadedTraces();
+    const traces = tracePipeline.getLoadedTraces();
     expect(traces.length).toEqual(2);
     expect(traces[0].traceFile.file).toBeTruthy();
 
@@ -102,16 +102,16 @@
       ),
     ];
 
-    const errors = await traceData.loadTraces(traceFiles);
+    const errors = await tracePipeline.loadTraces(traceFiles);
     expect(errors.length).toEqual(0);
 
     {
-      const entries = traceData.getTraceEntries(undefined);
+      const entries = tracePipeline.getTraceEntries(undefined);
       expect(entries.size).toEqual(0);
     }
     {
       const timestamp = new Timestamp(TimestampType.REAL, 0n);
-      const entries = traceData.getTraceEntries(timestamp);
+      const entries = tracePipeline.getTraceEntries(timestamp);
       expect(entries.size).toEqual(0);
     }
     {
@@ -119,7 +119,7 @@
         TimestampType.REAL,
         200n * 365n * 24n * 60n * 3600n * 1000000000n
       );
-      const entries = traceData.getTraceEntries(twoHundredYearsTimestamp);
+      const entries = tracePipeline.getTraceEntries(twoHundredYearsTimestamp);
       expect(entries.size).toEqual(2);
     }
   });
@@ -127,7 +127,7 @@
   it('gets timelines', async () => {
     await loadValidSfWmTraces();
 
-    const timelines = traceData.getTimelines();
+    const timelines = tracePipeline.getTimelines();
 
     const actualTraceTypes = new Set(timelines.map((timeline) => timeline.traceType));
     const expectedTraceTypes = new Set([TraceType.SURFACE_FLINGER, TraceType.WINDOW_MANAGER]);
@@ -139,7 +139,7 @@
   });
 
   it('gets screenrecording data', async () => {
-    expect(traceData.getScreenRecordingVideo()).toBeUndefined();
+    expect(tracePipeline.getScreenRecordingVideo()).toBeUndefined();
 
     const traceFiles = [
       new TraceFile(
@@ -148,21 +148,21 @@
         )
       ),
     ];
-    await traceData.loadTraces(traceFiles);
+    await tracePipeline.loadTraces(traceFiles);
 
-    const video = traceData.getScreenRecordingVideo();
+    const video = tracePipeline.getScreenRecordingVideo();
     expect(video).toBeDefined();
     expect(video!.size).toBeGreaterThan(0);
   });
 
   it('can be cleared', async () => {
     await loadValidSfWmTraces();
-    expect(traceData.getLoadedTraces().length).toBeGreaterThan(0);
-    expect(traceData.getTimelines().length).toBeGreaterThan(0);
+    expect(tracePipeline.getLoadedTraces().length).toBeGreaterThan(0);
+    expect(tracePipeline.getTimelines().length).toBeGreaterThan(0);
 
-    traceData.clear();
-    expect(traceData.getLoadedTraces().length).toEqual(0);
-    expect(traceData.getTimelines().length).toEqual(0);
+    tracePipeline.clear();
+    expect(tracePipeline.getLoadedTraces().length).toEqual(0);
+    expect(tracePipeline.getTimelines().length).toEqual(0);
   });
 
   const loadValidSfWmTraces = async () => {
@@ -175,7 +175,7 @@
       ),
     ];
 
-    const errors = await traceData.loadTraces(traceFiles);
+    const errors = await tracePipeline.loadTraces(traceFiles);
     expect(errors.length).toEqual(0);
   };
 });