[bootloader] Fix issues identified by tests

- expectation derp11 was wrong, there were only 10 calls to next()
- using whole name instead of the not-the-suffix-bit was wrong
- phrase generator wrong length
This commit is contained in:
Adriaan de Groot 2021-11-19 12:42:34 +01:00
parent ed5c4c9c87
commit 7a462f4522
2 changed files with 8 additions and 6 deletions

View File

@ -348,7 +348,7 @@ class phraseEfi(object):
import random
desired_length = 1 + self.counter // 5
v = random.randint(0, len(self.words) ** desired_length)
return "{!s}{!s}".format(self.name, render_in_base(v, self.words, 4))
return "{!s}{!s}".format(self.name, render_in_base(v, self.words))
else:
return self.name
@ -367,11 +367,11 @@ def get_efi_suffix_generator(name):
generator = None
if parts[1] == "SERIAL":
generator = serialEfi(name)
generator = serialEfi(parts[0])
elif parts[1] == "RANDOM":
generator = randomEfi(name)
generator = randomEfi(parts[0])
elif parts[1] == "PHRASE":
generator = phraseEfi(name)
generator = phraseEfi(parts[0])
if generator is None:
raise ValueError("EFI suffix {!r} is unsupported".format(parts[1]))

View File

@ -9,9 +9,11 @@ from src.modules.bootloader import main
# Specific Bootloader test
g = main.get_efi_suffix_generator("derp@@SERIAL@@")
assert g is not None
for n in range(10):
assert g.next() == "derp" # First time, no suffix
for n in range(9):
print(g.next())
assert g.next() == "derp11"
# We called next() 10 times in total, starting from 0
assert g.next() == "derp10"
g = main.get_efi_suffix_generator("derp@@RANDOM@@")
assert g is not None