assertEquals(0, slice.subSlices.length);
});
- test('basicSingleThreadNonnestedParsingWiththreadDuration', function() {
+ test('basicSingleThreadNonnestedParsingWithCpuDuration', function() {
var events = [
{name: 'a', args: {}, pid: 52, ts: 520, cat: 'foo', tid: 53, ph: 'B', tts: 221}, // @suppress longLineCheck
{name: 'a', args: {}, pid: 52, ts: 560, cat: 'foo', tid: 53, ph: 'E', tts: 259}, // @suppress longLineCheck
assertEquals('foo', slice.category);
assertEquals(0, slice.start);
assertAlmostEquals((560 - 520) / 1000, slice.duration);
- assertAlmostEquals((259 - 221) / 1000, slice.threadDuration);
+ assertAlmostEquals((259 - 221) / 1000, slice.cpuDuration);
assertEquals(0, slice.subSlices.length);
slice = t.sliceGroup.slices[1];
assertEquals('bar', slice.category);
assertAlmostEquals((629 - 520) / 1000, slice.start);
assertAlmostEquals((631 - 629) / 1000, slice.duration);
- assertAlmostEquals((331 - 329) / 1000, slice.threadDuration);
+ assertAlmostEquals((331 - 329) / 1000, slice.cpuDuration);
assertEquals(0, slice.subSlices.length);
});
assertEquals(0.001, sA.start);
assertEquals(0.003, sA.duration);
assertEquals(0.002, sA.selfTime);
- assertEquals(0.001, sA.threadSelfTime);
+ assertEquals(0.001, sA.cpuSelfTime);
assertEquals('b', sB.title);
assertEquals('bar', sB.category);
assertEquals(0.001, sA.start);
assertEquals(0.007, sA.duration);
assertEquals(0.004, sA.selfTime);
- assertEquals(0.005, sA.threadSelfTime);
+ assertEquals(0.005, sA.cpuSelfTime);
assertEquals('b', sB.title);
assertEquals('bar', sB.category);
ctr.addSeries(value1Series);
ctr.addSeries(value2Series);
- value1Series.addSample(0, 0);
- value1Series.addSample(1, 1);
- value1Series.addSample(2, 1);
- value1Series.addSample(3, 2);
- value1Series.addSample(4, 3);
- value1Series.addSample(5, 1);
- value1Series.addSample(6, 3);
- value1Series.addSample(7, 3.1);
-
- value2Series.addSample(0, 0);
- value2Series.addSample(1, 0);
- value2Series.addSample(2, 1);
- value2Series.addSample(3, 1.1);
- value2Series.addSample(4, 0);
- value2Series.addSample(5, 7);
- value2Series.addSample(6, 0);
- value2Series.addSample(7, 0.5);
+ value1Series.addCounterSample(0, 0);
+ value1Series.addCounterSample(1, 1);
+ value1Series.addCounterSample(2, 1);
+ value1Series.addCounterSample(3, 2);
+ value1Series.addCounterSample(4, 3);
+ value1Series.addCounterSample(5, 1);
+ value1Series.addCounterSample(6, 3);
+ value1Series.addCounterSample(7, 3.1);
+
+ value2Series.addCounterSample(0, 0);
+ value2Series.addCounterSample(1, 0);
+ value2Series.addCounterSample(2, 1);
+ value2Series.addCounterSample(3, 1.1);
+ value2Series.addCounterSample(4, 0);
+ value2Series.addCounterSample(5, 7);
+ value2Series.addCounterSample(6, 0);
+ value2Series.addCounterSample(7, 0.5);
ctr.updateBounds();
assertEquals(0.0, t.samples_[0].start);
assertEquals(0.0, t.samples_[1].start);
assertApproxEquals(0.01, t.samples_[2].start);
- assertEquals('a', t.samples_[0].title);
- assertEquals('b', t.samples_[1].title);
- assertEquals('c', t.samples_[2].title);
+ assertEquals('a', t.samples_[0].leafStackFrame.title);
+ assertEquals('b', t.samples_[1].leafStackFrame.title);
+ assertEquals('c', t.samples_[2].leafStackFrame.title);
assertFalse(m.hasImportWarnings);
});
assertAlmostEquals(10 / 1000, slice.duration);
});
- test('importCompleteEventWithThreadDuration', function() {
+ test('importCompleteEventWithCpuDuration', function() {
var events = [
{ name: 'a', args: {}, pid: 52, ts: 629, dur: 1, cat: 'baz', tid: 53, ph: 'X', tts: 12, tdur: 1 }, // @suppress longLineCheck
{ name: 'b', args: {}, pid: 52, ts: 730, dur: 20, cat: 'foo', tid: 53, ph: 'X', tts: 110, tdur: 16 }, // @suppress longLineCheck
assertEquals('baz', slice.category);
assertAlmostEquals(0, slice.start);
assertAlmostEquals(1 / 1000, slice.duration);
- assertAlmostEquals(12 / 1000, slice.threadStart);
- assertAlmostEquals(1 / 1000, slice.threadDuration);
+ assertAlmostEquals(12 / 1000, slice.cpuStart);
+ assertAlmostEquals(1 / 1000, slice.cpuDuration);
assertEquals(0, slice.subSlices.length);
slice = t.sliceGroup.slices[1];
assertEquals('foo', slice.category);
assertAlmostEquals((730 - 629) / 1000, slice.start);
assertAlmostEquals(20 / 1000, slice.duration);
- assertAlmostEquals(110 / 1000, slice.threadStart);
- assertAlmostEquals(16 / 1000, slice.threadDuration);
+ assertAlmostEquals(110 / 1000, slice.cpuStart);
+ assertAlmostEquals(16 / 1000, slice.cpuDuration);
assertEquals(1, slice.subSlices.length);
slice = t.sliceGroup.slices[2];
assertEquals(subSlices[i].args['seq'], i);
});
+ test('sampleDataSimple', function() {
+ var events = {
+ 'traceEvents': [],
+ 'stackFrames': {
+ '1': {
+ 'category': 'mod',
+ 'name': 'main'
+ },
+ '2': {
+ 'category': 'mod',
+ 'name': 'a',
+ 'parent': 1
+ },
+ '3': {
+ 'category': 'mod',
+ 'name': 'a_sub',
+ 'parent': 2
+ },
+ '4': {
+ 'category': 'mod',
+ 'name': 'b',
+ 'parent': 1
+ }
+ },
+ 'samples': [
+ {
+ 'cpu': 0, 'tid': 1, 'ts': 1000.0,
+ 'name': 'cycles:HG', 'sf': 3, 'weight': 1
+ },
+ {
+ 'cpu': 0, 'tid': 1, 'ts': 2000.0,
+ 'name': 'cycles:HG', 'sf': 2, 'weight': 1
+ },
+ {
+ 'cpu': 1, 'tid': 1, 'ts': 3000.0,
+ 'name': 'cycles:HG', 'sf': 3, 'weight': 1
+ }
+ ]
+ };
+ var m = new tracing.TraceModel(events, false);
+ assertNotUndefined(m.kernel.cpus[0]);
+ assertEquals(1, m.getAllThreads().length);
+
+ assertEquals(4, tvcm.dictionaryKeys(m.stackFrames).length);
+ assertEquals(3, m.samples.length);
+
+ var t1 = m.processes[1].threads[1];
+ assertEquals(3, t1.samples.length);
+
+ var c0 = m.kernel.cpus[0];
+ var c1 = m.kernel.cpus[1];
+ assertEquals(2, c0.samples.length);
+ assertEquals(1, c1.samples.length);
+
+ assertEquals(c0, m.samples[0].cpu);
+ assertEquals(t1, m.samples[0].thread);
+ assertEquals('cycles:HG', m.samples[0].title);
+ assertEquals(1, m.samples[0].start);
+ assertArrayEquals(
+ ['main', 'a', 'a_sub'],
+ m.samples[0].stackTrace.map(function(x) { return x.title; }));
+ assertEquals(1, m.samples[0].weight);
+ });
+
// TODO(nduca): one slice, two threads
// TODO(nduca): one slice, two pids