Marco Mayer / Mbed OS Queue
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers parse_test.py Source File

parse_test.py

00001 import sys
00002 from io import open
00003 from os.path import isfile, join, dirname
00004 import json
00005 
00006 import pytest
00007 
00008 from tools.memap import MemapParser
00009 from copy import deepcopy
00010 
00011 
00012 PARSED_ARM_DATA = {
00013     "startup/startup.o": {".text": 0xc0},
00014     "[lib]/c_p.l/__main.o": {".text": 8},
00015     "irqs/irqs.o": {".text": 0x98},
00016     "data/data.o": {".data": 0x18, ".bss": 0x198},
00017     "main.o": {".text": 0x36},
00018 }
00019 
00020 def test_parse_armcc():
00021     memap = MemapParser()
00022     memap.parse_map_file_armcc(open(join(dirname(__file__), "arm.map")))
00023     assert memap.modules == PARSED_ARM_DATA
00024 
00025 PARSED_IAR_GCC_DATA = {
00026     "startup/startup.o": {".text": 0xc0},
00027     "[lib]/d16M_tlf.a/__main.o": {".text": 8},
00028     "irqs/irqs.o": {".text": 0x98},
00029     "data/data.o": {".data": 0x18, ".bss": 0x198},
00030     "main.o": {".text": 0x36},
00031 }
00032 
00033 def test_parse_iar():
00034     memap = MemapParser()
00035     memap.parse_map_file_iar(open(join(dirname(__file__), "iar.map")))
00036     assert memap.modules == PARSED_IAR_GCC_DATA
00037 
00038 def test_parse_gcc():
00039     memap = MemapParser()
00040     memap.parse_map_file_gcc(open(join(dirname(__file__), "gcc.map")))
00041     assert memap.modules == PARSED_IAR_GCC_DATA
00042 
00043 
00044 def test_add_empty_module():
00045     memap = MemapParser()
00046     old_modules = deepcopy(memap.modules)
00047     memap.module_add("", 8, ".data")
00048     assert(old_modules == memap.modules)
00049     memap.module_add("main.o", 0, ".text")
00050     assert(old_modules == memap.modules)
00051     memap.module_add("main.o", 8, "")
00052     assert(old_modules == memap.modules)
00053 
00054 def test_add_full_module():
00055     memap = MemapParser()
00056     old_modules = deepcopy(memap.modules)
00057     memap.module_add("main.o", 8, ".data")
00058     assert(old_modules != memap.modules)
00059     assert("main.o" in memap.modules)
00060     assert(".data" in memap.modules["main.o"])
00061     assert(memap.modules["main.o"][".data"] == 8)