summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2024-01-03 16:26:52 +1100
committerDamien George <damien@micropython.org>2024-01-05 11:05:34 +1100
commitf0392b8d3d7e37a74f448c8fe4789f0f6bc76541 (patch)
treee98f92749bc2362e52fa90921957fbbc9c3c49a5 /tests
parenta003ac2f73b8f54643e42138ad10249e2b861b63 (diff)
tests/run-multitests.py: Change to dir of test script when running it.
This matches the behaviour of run-tests.py, which sets cwd to the directory containing the test script, which helps to isolate the filesystem. It means that the SSL tests no longer need to know the name of their containing directory to find the certificate files, and helps to run these tests on bare-metal. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/multi_net/asyncio_tls_server_client.py4
-rw-r--r--tests/multi_net/asyncio_tls_server_client_cert_required_error.py4
-rw-r--r--tests/multi_net/asyncio_tls_server_client_readline.py4
-rw-r--r--tests/multi_net/asyncio_tls_server_client_verify_error.py4
-rw-r--r--tests/multi_net/ssl_cert_rsa.py4
-rw-r--r--tests/multi_net/sslcontext_check_hostname_error.py4
-rw-r--r--tests/multi_net/sslcontext_getpeercert.py4
-rw-r--r--tests/multi_net/sslcontext_server_client.py4
-rw-r--r--tests/multi_net/sslcontext_server_client_ciphers.py4
-rw-r--r--tests/multi_net/sslcontext_server_client_files.py4
-rw-r--r--tests/multi_net/sslcontext_verify_error.py4
-rw-r--r--tests/multi_net/sslcontext_verify_time_error.py4
-rwxr-xr-xtests/run-multitests.py18
13 files changed, 36 insertions, 30 deletions
diff --git a/tests/multi_net/asyncio_tls_server_client.py b/tests/multi_net/asyncio_tls_server_client.py
index 996cdb3e0..59e13ec45 100644
--- a/tests/multi_net/asyncio_tls_server_client.py
+++ b/tests/multi_net/asyncio_tls_server_client.py
@@ -11,8 +11,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-cert = cafile = "multi_net/rsa_cert.der"
-key = "multi_net/rsa_key.der"
+cert = cafile = "rsa_cert.der"
+key = "rsa_key.der"
try:
os.stat(cafile)
diff --git a/tests/multi_net/asyncio_tls_server_client_cert_required_error.py b/tests/multi_net/asyncio_tls_server_client_cert_required_error.py
index bd4d7b82e..8607e4ff1 100644
--- a/tests/multi_net/asyncio_tls_server_client_cert_required_error.py
+++ b/tests/multi_net/asyncio_tls_server_client_cert_required_error.py
@@ -11,8 +11,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-cert = cafile = "multi_net/rsa_cert.der"
-key = "multi_net/rsa_key.der"
+cert = cafile = "rsa_cert.der"
+key = "rsa_key.der"
try:
os.stat(cafile)
diff --git a/tests/multi_net/asyncio_tls_server_client_readline.py b/tests/multi_net/asyncio_tls_server_client_readline.py
index 28add38f5..fd8685f5a 100644
--- a/tests/multi_net/asyncio_tls_server_client_readline.py
+++ b/tests/multi_net/asyncio_tls_server_client_readline.py
@@ -11,8 +11,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-cert = cafile = "multi_net/rsa_cert.der"
-key = "multi_net/rsa_key.der"
+cert = cafile = "rsa_cert.der"
+key = "rsa_key.der"
try:
os.stat(cafile)
diff --git a/tests/multi_net/asyncio_tls_server_client_verify_error.py b/tests/multi_net/asyncio_tls_server_client_verify_error.py
index 46a476add..c600dcc2c 100644
--- a/tests/multi_net/asyncio_tls_server_client_verify_error.py
+++ b/tests/multi_net/asyncio_tls_server_client_verify_error.py
@@ -11,8 +11,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-cert = cafile = "multi_net/rsa_cert.der"
-key = "multi_net/rsa_key.der"
+cert = cafile = "rsa_cert.der"
+key = "rsa_key.der"
try:
os.stat(cafile)
diff --git a/tests/multi_net/ssl_cert_rsa.py b/tests/multi_net/ssl_cert_rsa.py
index 71c9a3479..d148c8ebc 100644
--- a/tests/multi_net/ssl_cert_rsa.py
+++ b/tests/multi_net/ssl_cert_rsa.py
@@ -10,8 +10,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-certfile = "multi_net/rsa_cert.der"
-keyfile = "multi_net/rsa_key.der"
+certfile = "rsa_cert.der"
+keyfile = "rsa_key.der"
try:
os.stat(certfile)
diff --git a/tests/multi_net/sslcontext_check_hostname_error.py b/tests/multi_net/sslcontext_check_hostname_error.py
index 94bd47276..ac39211b0 100644
--- a/tests/multi_net/sslcontext_check_hostname_error.py
+++ b/tests/multi_net/sslcontext_check_hostname_error.py
@@ -11,8 +11,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-cert = cafile = "multi_net/rsa_cert.der"
-key = "multi_net/rsa_key.der"
+cert = cafile = "rsa_cert.der"
+key = "rsa_key.der"
try:
os.stat(cafile)
diff --git a/tests/multi_net/sslcontext_getpeercert.py b/tests/multi_net/sslcontext_getpeercert.py
index c75a37952..8748c1f78 100644
--- a/tests/multi_net/sslcontext_getpeercert.py
+++ b/tests/multi_net/sslcontext_getpeercert.py
@@ -12,8 +12,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-cert = cafile = "multi_net/rsa_cert.der"
-key = "multi_net/rsa_key.der"
+cert = cafile = "rsa_cert.der"
+key = "rsa_key.der"
try:
os.stat(cafile)
diff --git a/tests/multi_net/sslcontext_server_client.py b/tests/multi_net/sslcontext_server_client.py
index 4d2ac06c5..c263ae31b 100644
--- a/tests/multi_net/sslcontext_server_client.py
+++ b/tests/multi_net/sslcontext_server_client.py
@@ -11,8 +11,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-certfile = "multi_net/rsa_cert.der"
-keyfile = "multi_net/rsa_key.der"
+certfile = "rsa_cert.der"
+keyfile = "rsa_key.der"
try:
os.stat(certfile)
diff --git a/tests/multi_net/sslcontext_server_client_ciphers.py b/tests/multi_net/sslcontext_server_client_ciphers.py
index e2de4e6ad..be7c332b4 100644
--- a/tests/multi_net/sslcontext_server_client_ciphers.py
+++ b/tests/multi_net/sslcontext_server_client_ciphers.py
@@ -11,8 +11,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-cert = cafile = "multi_net/rsa_cert.der"
-key = "multi_net/rsa_key.der"
+cert = cafile = "rsa_cert.der"
+key = "rsa_key.der"
try:
os.stat(cafile)
diff --git a/tests/multi_net/sslcontext_server_client_files.py b/tests/multi_net/sslcontext_server_client_files.py
index 2c8af21d2..e1ea1b3aa 100644
--- a/tests/multi_net/sslcontext_server_client_files.py
+++ b/tests/multi_net/sslcontext_server_client_files.py
@@ -11,8 +11,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-cert = cafile = "multi_net/rsa_cert.der"
-key = "multi_net/rsa_key.der"
+cert = cafile = "rsa_cert.der"
+key = "rsa_key.der"
try:
os.stat(cafile)
diff --git a/tests/multi_net/sslcontext_verify_error.py b/tests/multi_net/sslcontext_verify_error.py
index 4feb4ce98..4a7a6cfcc 100644
--- a/tests/multi_net/sslcontext_verify_error.py
+++ b/tests/multi_net/sslcontext_verify_error.py
@@ -11,8 +11,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-cert = cafile = "multi_net/rsa_cert.der"
-key = "multi_net/rsa_key.der"
+cert = cafile = "rsa_cert.der"
+key = "rsa_key.der"
try:
os.stat(cafile)
diff --git a/tests/multi_net/sslcontext_verify_time_error.py b/tests/multi_net/sslcontext_verify_time_error.py
index 36711acfc..e5dc49645 100644
--- a/tests/multi_net/sslcontext_verify_time_error.py
+++ b/tests/multi_net/sslcontext_verify_time_error.py
@@ -11,8 +11,8 @@ except ImportError:
PORT = 8000
# These are test certificates. See tests/README.md for details.
-cert = cafile = "multi_net/expired_cert.der"
-key = "multi_net/rsa_key.der"
+cert = cafile = "expired_cert.der"
+key = "rsa_key.der"
try:
os.stat(cafile)
diff --git a/tests/run-multitests.py b/tests/run-multitests.py
index 5ae8b8ea4..93a6d3844 100755
--- a/tests/run-multitests.py
+++ b/tests/run-multitests.py
@@ -27,13 +27,15 @@ import pyboard
if os.name == "nt":
CPYTHON3 = os.getenv("MICROPY_CPYTHON3", "python3.exe")
- MICROPYTHON = os.getenv(
- "MICROPY_MICROPYTHON", test_dir + "/../ports/windows/build-standard/micropython.exe"
+ MICROPYTHON = os.path.abspath(
+ os.getenv(
+ "MICROPY_MICROPYTHON", test_dir + "/../ports/windows/build-standard/micropython.exe"
+ )
)
else:
CPYTHON3 = os.getenv("MICROPY_CPYTHON3", "python3")
- MICROPYTHON = os.getenv(
- "MICROPY_MICROPYTHON", test_dir + "/../ports/unix/build-standard/micropython"
+ MICROPYTHON = os.path.abspath(
+ os.getenv("MICROPY_MICROPYTHON", test_dir + "/../ports/unix/build-standard/micropython")
)
# For diff'ing test output
@@ -155,6 +157,7 @@ class PyInstance:
class PyInstanceSubProcess(PyInstance):
def __init__(self, argv, env=None):
self.argv = argv
+ self.cwd = None
self.env = {n: v for n, v in (i.split("=") for i in env)} if env else None
self.popen = None
self.finished = True
@@ -163,8 +166,9 @@ class PyInstanceSubProcess(PyInstance):
return self.argv[0].rsplit("/")[-1]
def prepare_script_from_file(self, filename, prepend, append):
- # Make tests run in an isolated environment (i.e. `import io` would
- # otherwise get the `tests/io` directory).
+ # Make tests run in the directory of the test file, and in an isolated environment
+ # (i.e. `import io` would otherwise get the `tests/io` directory).
+ self.cwd = os.path.dirname(filename)
remove_cwd_from_sys_path = b"import sys\nsys.path.remove('')\n\n"
return remove_cwd_from_sys_path + super().prepare_script_from_file(
filename, prepend, append
@@ -179,6 +183,7 @@ class PyInstanceSubProcess(PyInstance):
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
input=script,
+ cwd=self.cwd,
env=self.env,
)
output = p.stdout
@@ -192,6 +197,7 @@ class PyInstanceSubProcess(PyInstance):
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
+ cwd=self.cwd,
env=self.env,
)
self.finished = False