aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorJ08nY2020-02-10 15:45:20 +0100
committerJ08nY2020-02-10 15:45:20 +0100
commitf788291bd6d4b6c967ecad5aad3f290308ffb21c (patch)
tree845fd983750ffc0407e4fa20a20156b9494208e8 /test
parent2398053e00e4b29f75032c6e099b32f54d122751 (diff)
downloadpyecsca-codegen-f788291bd6d4b6c967ecad5aad3f290308ffb21c.tar.gz
pyecsca-codegen-f788291bd6d4b6c967ecad5aad3f290308ffb21c.tar.zst
pyecsca-codegen-f788291bd6d4b6c967ecad5aad3f290308ffb21c.zip
Cleanup builder.
Diffstat (limited to 'test')
-rw-r--r--test/test_builder.py69
1 files changed, 55 insertions, 14 deletions
diff --git a/test/test_builder.py b/test/test_builder.py
index b691bc7..52de066 100644
--- a/test/test_builder.py
+++ b/test/test_builder.py
@@ -1,14 +1,13 @@
-import tempfile
-from os.path import join
from unittest import TestCase
+import tempfile
from click.testing import CliRunner
from pyecsca.ec.curves import get_curve
-from pyecsca.ec.formula import Formula
-from pyecsca.ec.mod import Mod
from pyecsca.ec.mult import LTRMultiplier
+from pyecsca.ec.mod import Mod
from pyecsca.ec.point import Point
+from pyecsca.codegen.common import *
from pyecsca.codegen.builder import *
@@ -32,27 +31,69 @@ class BuilderTests(TestCase):
formulas = [add, dbl, scl]
scalarmult = LTRMultiplier(add, dbl, scl)
config = Configuration(platform, hash_type, mod_rand, mult, sqr, red, model, coords,
- formulas, scalarmult)
+ formulas, scalarmult, True, True, True)
temp = tempfile.mkdtemp()
- render_and_build(config, temp)
+ render_and_build(config, temp, True)
def test_cli_build(self):
runner = CliRunner()
with runner.isolated_filesystem():
- result = runner.invoke(build,
- ["--platform", "HOST", "shortw", "projective", "add-1998-cmo",
+ result = runner.invoke(build_impl,
+ ["--platform", "HOST", "-v", "shortw", "projective", "add-1998-cmo",
"dbl-1998-cmo", "z", "ltr(complete=True)", "test.elf"])
self.assertEqual(result.exit_code, 0)
- result = runner.invoke(build, ["--platform", "HOST", "--strip", "shortw", "projective",
- "add-1998-cmo", "dbl-1998-cmo", "z", "ltr(complete=True)",
- "test_stripped.elf"])
+ result = runner.invoke(build_impl,
+ ["--platform", "HOST", "--strip", "--no-remove", "shortw", "projective",
+ "add-1998-cmo", "dbl-1998-cmo", "z", "ltr(complete=True)",
+ "test_stripped.elf"])
+ self.assertEqual(result.exit_code, 0)
+ result = runner.invoke(build_impl,
+ ["--platform", "HOST", "--no-ecdsa", "montgom",
+ "xz", "ladd-1987-m", "dbl-1987-m", "scale", "ldr()",
+ "test_ldr.elf"])
self.assertEqual(result.exit_code, 0)
+ def test_cli_build_fails(self):
+ runner = CliRunner()
+ with runner.isolated_filesystem():
+ # unknown model
+ result = runner.invoke(build_impl,
+ ["--platform", "HOST", "missing", "projective", "add-1998-cmo",
+ "dbl-1998-cmo", "z", "ltr(complete=True)", "test.elf"])
+ self.assertEqual(result.exit_code, 2)
+ # unknown coordinates
+ result = runner.invoke(build_impl,
+ ["--platform", "HOST", "shortw", "missing", "add-1998-cmo",
+ "dbl-1998-cmo", "z", "ltr(complete=True)", "test.elf"])
+ self.assertEqual(result.exit_code, 2)
+ # unknown formula
+ result = runner.invoke(build_impl,
+ ["--platform", "HOST", "shortw", "projective", "missing",
+ "dbl-1998-cmo", "z", "ltr(complete=True)", "test.elf"])
+ self.assertEqual(result.exit_code, 2)
+ # bad formatted mult spec
+ result = runner.invoke(build_impl,
+ ["--platform", "HOST", "shortw", "projective", "add-1998-cmo",
+ "dbl-1998-cmo", "z", "missing", "test.elf"])
+ self.assertEqual(result.exit_code, 2)
+ # unknown mult
+ result = runner.invoke(build_impl,
+ ["--platform", "HOST", "shortw", "projective", "add-1998-cmo",
+ "dbl-1998-cmo", "z", "missing()", "test.elf"])
+ self.assertEqual(result.exit_code, 2)
+ # missing required formulas to mult
+ result = runner.invoke(build_impl,
+ ["--platform", "HOST", "shortw", "projective", "add-1998-cmo",
+ "z", "missing", "test.elf"])
+ self.assertEqual(result.exit_code, 2)
+
def test_cli_list(self):
runner = CliRunner()
- result = runner.invoke(list, ["montgom"])
+ result = runner.invoke(list_impl, [])
+ self.assertEqual(result.exit_code, 0)
+ result = runner.invoke(list_impl, ["montgom"])
self.assertEqual(result.exit_code, 0)
- result = runner.invoke(list, ["montgom", "xz"])
+ result = runner.invoke(list_impl, ["montgom", "xz"])
self.assertEqual(result.exit_code, 0)
- result = runner.invoke(list, ["montgom", "xz", "ladd-1987-m"])
+ result = runner.invoke(list_impl, ["montgom", "xz", "ladd-1987-m"])
self.assertEqual(result.exit_code, 0)