}
public void testSymbolTable() {
V8SymbolTable symbolTable = new V8SymbolTable();
AliasableEntry mockSymbolType = new AliasableEntry("Mock", 1);
V8Symbol symbolOne = new V8Symbol("test1", mockSymbolType, 0x100, 0x10);
assertEquals("test1 : 0x100-0x110", symbolOne.toString());
symbolTable.add(symbolOne);
V8Symbol symbolTwo = new V8Symbol("test2", mockSymbolType, 0x120, 0x5);
assertEquals("test2 : 0x120-0x125", symbolTwo.toString());
symbolTable.add(symbolTwo);
V8Symbol symbolThree = new V8Symbol("test3", mockSymbolType, 0x90, 0x5);
assertEquals("test3 : 0x90-0x95", symbolThree.toString());
symbolTable.add(symbolThree);
assertEquals(symbolOne.toString(), symbolTable.lookup(0x100).toString());
assertEquals(symbolOne.toString(), symbolTable.lookup(0x101).toString());
assertEquals(symbolOne.toString(), symbolTable.lookup(0x110).toString());
assertEquals(symbolTwo.toString(), symbolTable.lookup(0x120).toString());
assertEquals(symbolTwo.toString(), symbolTable.lookup(0x121).toString());
assertEquals(symbolTwo.toString(), symbolTable.lookup(0x125).toString());
assertEquals(symbolThree.toString(), symbolTable.lookup(0x90).toString());
assertEquals(symbolThree.toString(), symbolTable.lookup(0x94).toString());
assertEquals(symbolThree.toString(), symbolTable.lookup(0x95).toString());
// Make sure address lookups outside the range fail
assertNull(symbolTable.lookup(0x50));
assertNull(symbolTable.lookup(0x96));
assertNull(symbolTable.lookup(0x99));