Skip to content

Commit 9f976a7

Browse files
committed
Embedded float symbols from list into table string
1 parent efa8050 commit 9f976a7

File tree

1 file changed

+27
-26
lines changed

1 file changed

+27
-26
lines changed

tools/executable_analysis_tools/test_elf-float-checker.py

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
TARGET = importlib.import_module("elf-float-checker")
1515

16-
SYMBOL_TABLE_NO_FLOATS = (
16+
SYMBOL_TABLE_WITHOUT_FLOATS = (
1717
" Symbol table '.symtab' contains 2723 entries:\n"
1818
"Num: Value Size Type Bind Vis Ndx Name\n"
1919
" 0: 00000000 0 NOTYPE LOCAL DEFAULT UND \n"
@@ -28,23 +28,7 @@
2828
" 9: 000046e1 52 FUNC GLOBAL HIDDEN 3 __aeabi_lmul\n"
2929
)
3030

31-
SYMBOL_TABLE_FLOATS = (
32-
" Symbol table '.symtab' contains 2723 entries:\n"
33-
"Num: Value Size Type Bind Vis Ndx Name\n"
34-
" 0: 00000000 0 NOTYPE LOCAL DEFAULT UND \n"
35-
" 1: 000045fd 16 FUNC GLOBAL HIDDEN 3 __aeabi_cdcmpeq\n"
36-
" 2: 00004609 16 FUNC GLOBAL HIDDEN 3 lp_ticker_disable_interrupt\n"
37-
" 3: 00004615 16 FUNC GLOBAL HIDDEN 3 __aeabi_cfcmpeq\n"
38-
" 4: 00004625 36 FUNC GLOBAL HIDDEN 3 __aeabi_f2iz\n"
39-
" 5: 00004645 8 FUNC GLOBAL HIDDEN 3 lp_ticker_get_info\n"
40-
" 6: 0000464d 116 FUNC GLOBAL HIDDEN 3 __aeabi_h2f_alt\n"
41-
" 7: 000046bd 20 FUNC GLOBAL HIDDEN 3 lp_ticker_irq_handler\n"
42-
" 8: 000046d1 16 FUNC GLOBAL HIDDEN 3 __aeabi_i2d\n"
43-
" 9: 000046e1 52 FUNC GLOBAL HIDDEN 3 __aeabi_d2iz\n"
44-
" 10: 000046f1 52 FUNC GLOBAL HIDDEN 3 __aeabi_i2f\n"
45-
)
46-
47-
FLOAT_SYMBOLS_IN_TABLE = [
31+
FLOAT_SYMBOLS = [
4832
"__aeabi_cdcmpeq",
4933
"__aeabi_cfcmpeq",
5034
"__aeabi_f2iz",
@@ -54,21 +38,38 @@
5438
"__aeabi_i2f",
5539
]
5640

41+
SYMBOL_TABLE_WITH_FLOATS = (
42+
" Symbol table '.symtab' contains 2723 entries:\n"
43+
"Num: Value Size Type Bind Vis Ndx Name\n"
44+
f" 0: 00000000 0 NOTYPE LOCAL DEFAULT UND \n"
45+
f" 1: 000045fd 16 FUNC GLOBAL HIDDEN 3 {FLOAT_SYMBOLS[0]}\n"
46+
f" 2: 00004609 16 FUNC GLOBAL HIDDEN 3 lp_ticker_disable_interrupt\n"
47+
f" 3: 00004615 16 FUNC GLOBAL HIDDEN 3 {FLOAT_SYMBOLS[1]}\n"
48+
f" 4: 00004625 36 FUNC GLOBAL HIDDEN 3 {FLOAT_SYMBOLS[2]}\n"
49+
f" 5: 00004645 8 FUNC GLOBAL HIDDEN 3 lp_ticker_get_info\n"
50+
f" 6: 0000464d 116 FUNC GLOBAL HIDDEN 3 {FLOAT_SYMBOLS[3]}\n"
51+
f" 7: 000046bd 20 FUNC GLOBAL HIDDEN 3 lp_ticker_irq_handler\n"
52+
f" 8: 000046d1 16 FUNC GLOBAL HIDDEN 3 {FLOAT_SYMBOLS[4]}\n"
53+
f" 9: 000046e1 52 FUNC GLOBAL HIDDEN 3 {FLOAT_SYMBOLS[5]}\n"
54+
f" 10: 000046f1 52 FUNC GLOBAL HIDDEN 3 {FLOAT_SYMBOLS[6]}\n"
55+
)
56+
57+
5758
ELF_FORMAT_FILE = "mbed-os-example.elf"
58-
READELF_CMD = ["arm-none-eabi-readelf", "--symbols", "mbed-os-example.elf"]
59+
READELF_CMD = ["arm-none-eabi-readelf", "--symbols", f"{ELF_FORMAT_FILE}"]
5960

6061

6162
class TestElfFloatChecker:
6263
"""Test class"""
6364

6465
@classmethod
6566
def setup_class(cls):
66-
# create a dummy elf file
67+
# Create a dummy ELF format file
6768
Path(ELF_FORMAT_FILE).touch()
6869

6970
@classmethod
7071
def teardown_class(cls):
71-
# remove the dummy elf file
72+
# Remove the dummy ELF format file
7273
Path(ELF_FORMAT_FILE).unlink()
7374

7475
@mock.patch("subprocess.run")
@@ -78,11 +79,11 @@ def test_correctly_detect_absence_of_float_symbols(
7879
"""Test that no false positive occur."""
7980
mock_subprocess_run.return_value = subprocess.CompletedProcess(
8081
args=(
81-
"arm-none-eabi-readelf --symbols mbed-os-example.elf',"
82+
f"arm-none-eabi-readelf --symbols {ELF_FORMAT_FILE}',"
8283
" check=True, stderr=-2, stdin=None, stdout=-1"
8384
),
8485
returncode=0,
85-
stdout=SYMBOL_TABLE_NO_FLOATS.encode(),
86+
stdout=SYMBOL_TABLE_WITHOUT_FLOATS.encode(),
8687
stderr=None,
8788
)
8889
assert [] == TARGET.check_float_symbols(ELF_FORMAT_FILE)
@@ -101,14 +102,14 @@ def test_correctly_detect_presence_of_float_symbols(
101102
"""Test that float symbols can be discovered in a symbol table."""
102103
mock_subprocess_run.return_value = subprocess.CompletedProcess(
103104
args=(
104-
"arm-none-eabi-readelf --symbols mbed-os-example.elf',"
105+
f"arm-none-eabi-readelf --symbols {ELF_FORMAT_FILE}',"
105106
" check=True, stderr=-2, stdin=None, stdout=-1"
106107
),
107108
returncode=0,
108-
stdout=SYMBOL_TABLE_FLOATS.encode(),
109+
stdout=SYMBOL_TABLE_WITH_FLOATS.encode(),
109110
stderr=None,
110111
)
111-
assert FLOAT_SYMBOLS_IN_TABLE == TARGET.check_float_symbols(
112+
assert FLOAT_SYMBOLS == TARGET.check_float_symbols(
112113
ELF_FORMAT_FILE
113114
)
114115
mock_subprocess_run.assert_called_with(

0 commit comments

Comments
 (0)