Skip to content
This repository has been archived by the owner on Jan 17, 2023. It is now read-only.

Commit

Permalink
Extend unit tests by backup page checks
Browse files Browse the repository at this point in the history
  • Loading branch information
tomchy committed Sep 21, 2018
1 parent 3bcc766 commit 8163c4b
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 5 deletions.
6 changes: 4 additions & 2 deletions nordicsemi/dfu/bl_dfu_sett.py
Expand Up @@ -211,11 +211,13 @@ def generate(self, arch, app_file, app_ver, bl_ver, bl_sett_ver, custom_bl_sett_
self.ihex.puts(self.bl_sett_addr, data)

if backup_address is None:
backup_address = self.bl_sett_addr - self.bl_sett_backup_offset
self.backup_address = self.bl_sett_addr - self.bl_sett_backup_offset
else:
self.backup_address = backup_address

if no_backup == False:
# Update DFU settings backup page.
self.ihex.puts(backup_address, data)
self.ihex.puts(self.backup_address, data)

def probe_settings(self, base):

Expand Down
78 changes: 75 additions & 3 deletions nordicsemi/dfu/tests/test_bl_dfu_sett.py
Expand Up @@ -72,7 +72,9 @@ def test_generate_without_application_file(self):
app_ver=1,
bl_ver=1,
bl_sett_ver=1,
custom_bl_sett_addr=None)
custom_bl_sett_addr=None,
no_backup=False,
backup_address=None)

self.assertEqual(nRFArch.NRF52, settings.arch)
self.assertEqual('nRF52', settings.arch_str)
Expand All @@ -94,7 +96,9 @@ def test_generate_with_application_file(self):
app_ver=1,
bl_ver=1,
bl_sett_ver=1,
custom_bl_sett_addr=None)
custom_bl_sett_addr=None,
no_backup=False,
backup_address=None)

self.assertEqual(nRFArch.NRF52, settings.arch)
self.assertEqual('nRF52', settings.arch_str)
Expand All @@ -116,10 +120,78 @@ def test_generate_with_custom_start_address(self):
app_ver=1,
bl_ver=1,
bl_sett_ver=1,
custom_bl_sett_addr=0x0006F000)
custom_bl_sett_addr=0x0006F000,
no_backup=False,
backup_address=None)

self.assertEqual(settings.bl_sett_addr, 0x0006F000)

def test_generate_with_backup_page_check_size(self):
settings_raw = BLDFUSettings()
settings_raw.generate(arch='NRF52',
app_file=None,
app_ver=1,
bl_ver=1,
bl_sett_ver=1,
custom_bl_sett_addr=None,
no_backup=True,
backup_address=None)

settings = BLDFUSettings()
settings.generate(arch='NRF52',
app_file=None,
app_ver=1,
bl_ver=1,
bl_sett_ver=1,
custom_bl_sett_addr=None,
no_backup=False,
backup_address=None)

self.assertEqual(len(settings.ihex.todict().keys()), len(settings_raw.ihex.todict().keys()) * 2)

def test_generate_with_backup_page_check_values(self):
settings = BLDFUSettings()
settings.generate(arch='NRF52',
app_file=None,
app_ver=1,
bl_ver=1,
bl_sett_ver=1,
custom_bl_sett_addr=None,
no_backup=False,
backup_address=None)

backup_dict = {(k + settings.bl_sett_backup_offset): v for k, v in settings.ihex.todict().items() if k < settings.bl_sett_addr}
settings_dict = {k: v for k, v in settings.ihex.todict().items() if k >= settings.bl_sett_addr}
self.assertEqual(backup_dict, settings_dict)

def test_generate_with_backup_page_custom_address(self):
settings = BLDFUSettings()
settings.generate(arch='NRF52',
app_file=None,
app_ver=1,
bl_ver=1,
bl_sett_ver=1,
custom_bl_sett_addr=None,
no_backup=False,
backup_address=0x0006F000)

self.assertEqual(settings.backup_address, 0x0006F000)
self.assertTrue(0x0006F000 in settings.ihex.todict().keys())

def test_generate_with_backup_page_default_address(self):
settings = BLDFUSettings()
settings.generate(arch='NRF52',
app_file=None,
app_ver=1,
bl_ver=1,
bl_sett_ver=1,
custom_bl_sett_addr=0x0006F000,
no_backup=False,
backup_address=None)

self.assertEqual(settings.backup_address, (0x0006F000 - settings.bl_sett_backup_offset))
self.assertTrue((0x0006F000 - settings.bl_sett_backup_offset) in settings.ihex.todict().keys())


if __name__ == '__main__':
unittest.main()

0 comments on commit 8163c4b

Please sign in to comment.