diff options
| author | J08nY | 2020-02-10 15:45:20 +0100 |
|---|---|---|
| committer | J08nY | 2020-02-10 15:45:20 +0100 |
| commit | f788291bd6d4b6c967ecad5aad3f290308ffb21c (patch) | |
| tree | 845fd983750ffc0407e4fa20a20156b9494208e8 /test | |
| parent | 2398053e00e4b29f75032c6e099b32f54d122751 (diff) | |
| download | pyecsca-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.py | 69 |
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) |
