13
13
14
14
TARGET = importlib .import_module ("elf-float-checker" )
15
15
16
- SYMBOL_TABLE_NO_FLOATS = (
16
+ SYMBOL_TABLE_WITHOUT_FLOATS = (
17
17
" Symbol table '.symtab' contains 2723 entries:\n "
18
18
"Num: Value Size Type Bind Vis Ndx Name\n "
19
19
" 0: 00000000 0 NOTYPE LOCAL DEFAULT UND \n "
28
28
" 9: 000046e1 52 FUNC GLOBAL HIDDEN 3 __aeabi_lmul\n "
29
29
)
30
30
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 = [
48
32
"__aeabi_cdcmpeq" ,
49
33
"__aeabi_cfcmpeq" ,
50
34
"__aeabi_f2iz" ,
54
38
"__aeabi_i2f" ,
55
39
]
56
40
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
+
57
58
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 } " ]
59
60
60
61
61
62
class TestElfFloatChecker :
62
63
"""Test class"""
63
64
64
65
@classmethod
65
66
def setup_class (cls ):
66
- # create a dummy elf file
67
+ # Create a dummy ELF format file
67
68
Path (ELF_FORMAT_FILE ).touch ()
68
69
69
70
@classmethod
70
71
def teardown_class (cls ):
71
- # remove the dummy elf file
72
+ # Remove the dummy ELF format file
72
73
Path (ELF_FORMAT_FILE ).unlink ()
73
74
74
75
@mock .patch ("subprocess.run" )
@@ -78,11 +79,11 @@ def test_correctly_detect_absence_of_float_symbols(
78
79
"""Test that no false positive occur."""
79
80
mock_subprocess_run .return_value = subprocess .CompletedProcess (
80
81
args = (
81
- "arm-none-eabi-readelf --symbols mbed-os-example.elf ',"
82
+ f "arm-none-eabi-readelf --symbols { ELF_FORMAT_FILE } ',"
82
83
" check=True, stderr=-2, stdin=None, stdout=-1"
83
84
),
84
85
returncode = 0 ,
85
- stdout = SYMBOL_TABLE_NO_FLOATS .encode (),
86
+ stdout = SYMBOL_TABLE_WITHOUT_FLOATS .encode (),
86
87
stderr = None ,
87
88
)
88
89
assert [] == TARGET .check_float_symbols (ELF_FORMAT_FILE )
@@ -101,14 +102,14 @@ def test_correctly_detect_presence_of_float_symbols(
101
102
"""Test that float symbols can be discovered in a symbol table."""
102
103
mock_subprocess_run .return_value = subprocess .CompletedProcess (
103
104
args = (
104
- "arm-none-eabi-readelf --symbols mbed-os-example.elf ',"
105
+ f "arm-none-eabi-readelf --symbols { ELF_FORMAT_FILE } ',"
105
106
" check=True, stderr=-2, stdin=None, stdout=-1"
106
107
),
107
108
returncode = 0 ,
108
- stdout = SYMBOL_TABLE_FLOATS .encode (),
109
+ stdout = SYMBOL_TABLE_WITH_FLOATS .encode (),
109
110
stderr = None ,
110
111
)
111
- assert FLOAT_SYMBOLS_IN_TABLE == TARGET .check_float_symbols (
112
+ assert FLOAT_SYMBOLS == TARGET .check_float_symbols (
112
113
ELF_FORMAT_FILE
113
114
)
114
115
mock_subprocess_run .assert_called_with (
0 commit comments