object_instance_test.js revision 66a37686207944273ced825e0e8b6b6375f8c3de
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)'use strict'; 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base.require('tracing.test_utils'); 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base.require('tracing.trace_model.object_instance'); 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base.unittest.testSuite('tracing.trace_model.object_instance', function() { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test('getSnapshotAtWithImplicitCreation', function() { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var instance = new tracing.trace_model.ObjectInstance( 13ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch {}, '0x1000', 'cat', 'n', 10); 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var s10 = instance.addSnapshot(10, 'a'); 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) instance.addSnapshot(40, 'b'); 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) instance.wasDeleted(60); 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var s1 = instance.getSnapshotAt(1); 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assertEquals(s10, s1); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var s10 = instance.getSnapshotAt(10); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assertEquals('a', s10.args); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assertEquals(s10, instance.getSnapshotAt(15)); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) var s40 = instance.getSnapshotAt(40); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assertEquals('b', s40.args); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assertEquals(s40, instance.getSnapshotAt(50)); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assertEquals(s40, instance.getSnapshotAt(59.9)); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) test('getSnapshotAtWithExplicitCreation', function() { 3268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) var instance = new tracing.trace_model.ObjectInstance( 3368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {}, '0x1000', 'cat', 'n', 10); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) instance.creationTsWasExplicit = true; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) instance.addSnapshot(10, 'a'); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) instance.wasDeleted(60); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assertThrows(function() { 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) instance.getSnapshotAt(1); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }); 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) var s10 = instance.getSnapshotAt(10); 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) assertEquals('a', s10.args); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assertEquals(s10, instance.getSnapshotAt(15)); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test('getSnapshotBeforeFirstSnapshot', function() { 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var instance = new tracing.trace_model.ObjectInstance( 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) {}, '0x1000', 'cat', 'n', 10); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var s15 = instance.addSnapshot(15, 'a'); 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) instance.wasDeleted(40); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assertEquals(s15, instance.getSnapshotAt(10)); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }); 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test('getSnapshotAfterLastSnapshot', function() { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var instance = new tracing.trace_model.ObjectInstance( 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) {}, '0x1000', 'cat', 'n', 10); 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var s15 = instance.addSnapshot(15, 'a'); 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) instance.wasDeleted(40); 611e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 621e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) assertEquals(s15, instance.getSnapshotAt(20)); 631e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) }); 641e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}); 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)