You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@milagro.apache.org by sa...@apache.org on 2020/02/18 14:37:33 UTC
[incubator-milagro-MPC] 03/06: Refactor tests
This is an automated email from the ASF dual-hosted git repository.
sandreoli pushed a commit to branch issue7-schnorr-python-wrapper
in repository https://gitbox.apache.org/repos/asf/incubator-milagro-MPC.git
commit 25e11170b886b97338bb590641cee9085b6e8034
Author: Samuele Andreoli <sa...@yahoo.it>
AuthorDate: Tue Feb 18 14:03:07 2020 +0000
Refactor tests
---
Dockerfile | 2 +-
python/CMakeLists.txt | 35 +-------------------------
python/amcl/CMakeLists.txt | 2 +-
python/test/CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++
python/test/context.py | 25 ++++++++++++++++++
python/{ => test}/test_ecdsa.py | 3 ++-
python/{ => test}/test_mta.py | 5 ++--
python/{ => test}/test_r.py | 4 +--
python/{ => test}/test_s.py | 4 +--
python/{ => test}/test_schnorr.py | 2 +-
10 files changed, 91 insertions(+), 44 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index fb02245..465d617 100755
--- a/Dockerfile
+++ b/Dockerfile
@@ -26,7 +26,7 @@
FROM ubuntu:bionic
-MAINTAINER kealanmccusker@gmail.com
+LABEL maintainer="kealanmccusker@gmail.com"
WORKDIR /root
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index c53f313..55b719c 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -18,37 +18,4 @@ cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
include(PythonSiteDirs)
add_subdirectory(amcl)
-
-file(COPY test_mta.py DESTINATION "${PROJECT_BINARY_DIR}/python/")
-file(COPY test_r.py DESTINATION "${PROJECT_BINARY_DIR}/python/")
-file(COPY test_s.py DESTINATION "${PROJECT_BINARY_DIR}/python/")
-file(COPY test_ecdsa.py DESTINATION "${PROJECT_BINARY_DIR}/python/")
-file(COPY test_schnorr.py DESTINATION "${PROJECT_BINARY_DIR}/python/")
-
-file(COPY "${PROJECT_SOURCE_DIR}/testVectors/mpc/MTA.json" DESTINATION "${PROJECT_BINARY_DIR}/python/")
-file(COPY "${PROJECT_SOURCE_DIR}/testVectors/mpc/R.json" DESTINATION "${PROJECT_BINARY_DIR}/python/")
-file(COPY "${PROJECT_SOURCE_DIR}/testVectors/mpc/S.json" DESTINATION "${PROJECT_BINARY_DIR}/python/")
-
-file(GLOB SCHNORR_TV "${PROJECT_SOURCE_DIR}/testVectors/schnorr/*.json")
-file(COPY ${SCHNORR_TV} DESTINATION "${PROJECT_BINARY_DIR}/python/schnorr/")
-
-if(NOT CMAKE_BUILD_TYPE STREQUAL "ASan")
- add_test(test_python_mpc_mta python3 test_mta.py)
- add_test(test_python_mpc_r python3 test_r.py)
- add_test(test_python_mpc_s python3 test_s.py)
- add_test(test_python_mpc_ecdsa python3 test_ecdsa.py)
- add_test(test_python_mpc_schnorr python3 test_schnorr.py)
-endif(NOT CMAKE_BUILD_TYPE STREQUAL "ASan")
-
-# Set the LD_LIBRARY_PATH or equivalent to the libraries can be loaded when
-# running the test.
-#if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
-# set(ld_library_path_var "DYLD_LIBRARY_PATH")
-#elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
-# set(ld_library_path_var "LD_LIBRARY_PATH")
-#elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
-# set(ld_library_path_var "PATH")
-#endif()
-#set_tests_properties(test_python_mpc_mta PROPERTIES ENVIRONMENT
-# "${ld_library_path_var}=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
-
+add_subdirectory(test)
diff --git a/python/amcl/CMakeLists.txt b/python/amcl/CMakeLists.txt
index b92ebd8..ca45bda 100644
--- a/python/amcl/CMakeLists.txt
+++ b/python/amcl/CMakeLists.txt
@@ -16,4 +16,4 @@
file(GLOB SRCS *.py)
file(COPY ${SRCS} DESTINATION "${PROJECT_BINARY_DIR}/python/amcl")
-install(FILES ${SRCS} DESTINATION ${PYTHON_SITE_PACKAGES}/amcl)
+install(FILES ${SRCS} DESTINATION ${PYTHON_SITE_PACKAGES}/amcl)
diff --git a/python/test/CMakeLists.txt b/python/test/CMakeLists.txt
new file mode 100644
index 0000000..a01ddf4
--- /dev/null
+++ b/python/test/CMakeLists.txt
@@ -0,0 +1,53 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements. See the NOTICE file distributed with this work for
+# additional information regarding copyright ownership. The ASF licenses this
+# file to you under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+# Set the LD_LIBRARY_PATH or equivalent to the libraries can be loaded when
+# running the test.
+if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
+ set(ld_library_path_var "DYLD_LIBRARY_PATH")
+elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ set(ld_library_path_var "LD_LIBRARY_PATH")
+elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
+ set(ld_library_path_var "PATH")
+endif()
+
+# Prepend the env dynamic library path with the mpc path
+set(dynamic_library_path ${PROJECT_BINARY_DIR}/src:$ENV{${ld_library_path_var}})
+
+function(add_python_test name source)
+ add_test(${name} python3 ${source})
+
+ set_tests_properties(${name} PROPERTIES ENVIRONMENT "${ld_library_path_var}=${dynamic_library_path}")
+endfunction()
+
+# Tests
+file(GLOB TESTS *.py)
+file(COPY ${TESTS} DESTINATION "${PROJECT_BINARY_DIR}/python/test")
+
+# MPC test vectors
+file(GLOB MPC_TV "${PROJECT_SOURCE_DIR}/testVectors/mpc/*.json")
+file(COPY ${MPC_TV} DESTINATION "${PROJECT_BINARY_DIR}/python/test/mpc/")
+
+# Schnorr test vectors
+file(GLOB SCHNORR_TV "${PROJECT_SOURCE_DIR}/testVectors/schnorr/*.json")
+file(COPY ${SCHNORR_TV} DESTINATION "${PROJECT_BINARY_DIR}/python/test/schnorr/")
+
+if(NOT CMAKE_BUILD_TYPE STREQUAL "ASan")
+ add_python_test(test_python_mpc_mta test_mta.py)
+ add_python_test(test_python_mpc_r test_r.py)
+ add_python_test(test_python_mpc_s test_s.py)
+ add_python_test(test_python_mpc_ecdsa test_ecdsa.py)
+ add_python_test(test_python_mpc_schnorr test_schnorr.py)
+endif(NOT CMAKE_BUILD_TYPE STREQUAL "ASan")
diff --git a/python/test/context.py b/python/test/context.py
new file mode 100644
index 0000000..c7a9ac2
--- /dev/null
+++ b/python/test/context.py
@@ -0,0 +1,25 @@
+"""
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+"""
+
+import os
+import sys
+
+sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
+
+from amcl import mpc, schnorr
diff --git a/python/test_ecdsa.py b/python/test/test_ecdsa.py
similarity index 99%
rename from python/test_ecdsa.py
rename to python/test/test_ecdsa.py
index 1c60bfd..8a118be 100755
--- a/python/test_ecdsa.py
+++ b/python/test/test_ecdsa.py
@@ -18,10 +18,11 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
"""
+
import unittest
import json
import os
-from amcl import mpc
+from context import mpc
class TestECDSA(unittest.TestCase):
diff --git a/python/test_mta.py b/python/test/test_mta.py
similarity index 96%
rename from python/test_mta.py
rename to python/test/test_mta.py
index 8a74971..dea53ae 100755
--- a/python/test_mta.py
+++ b/python/test/test_mta.py
@@ -18,16 +18,17 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
"""
+
import unittest
import json
-from amcl import mpc
+from context import mpc
class TestMtA(unittest.TestCase):
"""Tests MPC MtA"""
def setUp(self):
- with open("MTA.json", "r") as f:
+ with open("mpc/MTA.json", "r") as f:
self.tv = json.load(f)
for vector in self.tv:
diff --git a/python/test_r.py b/python/test/test_r.py
similarity index 97%
rename from python/test_r.py
rename to python/test/test_r.py
index 2b53ca6..0a8034d 100755
--- a/python/test_r.py
+++ b/python/test/test_r.py
@@ -21,14 +21,14 @@ under the License.
import unittest
import json
-from amcl import mpc
+from context import mpc
class TestR(unittest.TestCase):
"""Tests MPC R"""
def setUp(self):
- with open("R.json", "r") as f:
+ with open("mpc/R.json", "r") as f:
self.tv = json.load(f)
for vector in self.tv:
diff --git a/python/test_s.py b/python/test/test_s.py
similarity index 98%
rename from python/test_s.py
rename to python/test/test_s.py
index ed07453..526e7fb 100755
--- a/python/test_s.py
+++ b/python/test/test_s.py
@@ -21,14 +21,14 @@ under the License.
import unittest
import json
-from amcl import mpc
+from context import mpc
class TestS(unittest.TestCase):
"""Tests MPC S"""
def setUp(self):
- with open("S.json", "r") as f:
+ with open("mpc/S.json", "r") as f:
self.tv = json.load(f)
for vector in self.tv:
diff --git a/python/test_schnorr.py b/python/test/test_schnorr.py
similarity index 99%
rename from python/test_schnorr.py
rename to python/test/test_schnorr.py
index e6b1b84..a232ac5 100755
--- a/python/test_schnorr.py
+++ b/python/test/test_schnorr.py
@@ -21,7 +21,7 @@ under the License.
import unittest
import json
-from amcl import schnorr
+from context import schnorr
class TestCommit(unittest.TestCase):