@@ -338,6 +338,72 @@ tests:
338338 expect_true : true
339339 mode : [mock]
340340
341+ # -- Mock boot counter --
342+ - name : " Set and get boot counter"
343+ action : script
344+ script : |
345+ dev._data = {}
346+ dev.set_boot_count(427)
347+ result = dev.get_boot_count() == 427
348+ expect_true : true
349+ mode : [mock]
350+
351+ - name : " Get boot counter returns None when not set"
352+ action : script
353+ script : |
354+ dev._data = {}
355+ result = dev.get_boot_count() is None
356+ expect_true : true
357+ mode : [mock]
358+
359+ - name : " Increment boot counter from empty starts at 1"
360+ action : script
361+ script : |
362+ dev._data = {}
363+ dev.increment_boot_count()
364+ result = dev.get_boot_count() == 1
365+ expect_true : true
366+ mode : [mock]
367+
368+ - name : " Increment boot counter increases existing value"
369+ action : script
370+ script : |
371+ dev._data = {}
372+ dev.set_boot_count(41)
373+ dev.increment_boot_count()
374+ result = dev.get_boot_count() == 42
375+ expect_true : true
376+ mode : [mock]
377+
378+ - name : " Boot counter survives save/load"
379+ action : script
380+ script : |
381+ dev._data = {}
382+ dev.set_boot_count(427)
383+ dev.save()
384+ dev2 = SteamiConfig(dev._bridge)
385+ dev2.load()
386+ result = dev2.get_boot_count() == 427
387+ expect_true : true
388+ mode : [mock]
389+
390+ - name : " Boot counter coexists with other config values"
391+ action : script
392+ script : |
393+ dev._data = {}
394+ dev.board_revision = 3
395+ dev.board_name = "STeaMi-Test"
396+ dev.set_boot_count(12)
397+ dev.set_accelerometer_calibration(ox=0.01, oy=-0.02, oz=0.03)
398+ result = (
399+ dev.board_revision == 3
400+ and dev.board_name == "STeaMi-Test"
401+ and dev.get_boot_count() == 12
402+ and dev.get_accelerometer_calibration()["ox"] == 0.01
403+ )
404+ expect_true : true
405+ mode : [mock]
406+
341407 # ----- Hardware -----
342408
343409 - name : " Save and load config on hardware"
@@ -541,3 +607,84 @@ tests:
541607 )
542608 expect_true : true
543609 mode : [hardware]
610+
611+ # -- Hardware Boot Counter --
612+ - name : " Save and load boot counter on hardware"
613+ action : script
614+ script : |
615+ from time import sleep_ms
616+ dev._bridge.clear_config()
617+ dev._data = {}
618+ dev.set_boot_count(427)
619+ dev.save()
620+ sleep_ms(200)
621+ dev2 = SteamiConfig(dev._bridge)
622+ dev2.load()
623+ result = dev2.get_boot_count() == 427
624+ expect_true : true
625+ mode : [hardware]
626+
627+ - name : " Increment boot counter on hardware"
628+ action : script
629+ script : |
630+ from time import sleep_ms
631+ dev._bridge.clear_config()
632+ dev._data = {}
633+ dev.set_boot_count(5)
634+ dev.save()
635+ sleep_ms(200)
636+
637+ dev2 = SteamiConfig(dev._bridge)
638+ dev2.load()
639+ dev2.increment_boot_count()
640+ dev2.save()
641+ sleep_ms(200)
642+
643+ dev3 = SteamiConfig(dev._bridge)
644+ dev3.load()
645+ result = dev3.get_boot_count() == 6
646+ expect_true : true
647+ mode : [hardware]
648+
649+ - name : " Boot counter survives clear_flash"
650+ action : script
651+ script : |
652+ from time import sleep_ms
653+ from daplink_flash import DaplinkFlash
654+ dev._bridge.clear_config()
655+ dev._data = {}
656+ dev.set_boot_count(99)
657+ dev.save()
658+ sleep_ms(200)
659+
660+ flash = DaplinkFlash(dev._bridge)
661+ flash.clear_flash()
662+ sleep_ms(500)
663+
664+ dev2 = SteamiConfig(dev._bridge)
665+ dev2.load()
666+ result = dev2.get_boot_count() == 99
667+ expect_true : true
668+ mode : [hardware]
669+
670+ - name : " Boot counter coexists with temperature calibration on hardware"
671+ action : script
672+ script : |
673+ from time import sleep_ms
674+ dev._bridge.clear_config()
675+ dev._data = {}
676+ dev.set_boot_count(12)
677+ dev.set_temperature_calibration("hts221", gain=1.05, offset=-0.3)
678+ dev.save()
679+ sleep_ms(200)
680+
681+ dev2 = SteamiConfig(dev._bridge)
682+ dev2.load()
683+ tc = dev2.get_temperature_calibration("hts221")
684+ result = (
685+ dev2.get_boot_count() == 12
686+ and tc["gain"] == 1.05
687+ and tc["offset"] == -0.3
688+ )
689+ expect_true : true
690+ mode : [hardware]
0 commit comments