Skip to content

Commit f0392b8

Browse files
committed
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 <[email protected]>
1 parent a003ac2 commit f0392b8

13 files changed

+36
-30
lines changed

tests/multi_net/asyncio_tls_server_client.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
PORT = 8000
1212

1313
# These are test certificates. See tests/README.md for details.
14-
cert = cafile = "multi_net/rsa_cert.der"
15-
key = "multi_net/rsa_key.der"
14+
cert = cafile = "rsa_cert.der"
15+
key = "rsa_key.der"
1616

1717
try:
1818
os.stat(cafile)

tests/multi_net/asyncio_tls_server_client_cert_required_error.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
PORT = 8000
1212

1313
# These are test certificates. See tests/README.md for details.
14-
cert = cafile = "multi_net/rsa_cert.der"
15-
key = "multi_net/rsa_key.der"
14+
cert = cafile = "rsa_cert.der"
15+
key = "rsa_key.der"
1616

1717
try:
1818
os.stat(cafile)

tests/multi_net/asyncio_tls_server_client_readline.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
PORT = 8000
1212

1313
# These are test certificates. See tests/README.md for details.
14-
cert = cafile = "multi_net/rsa_cert.der"
15-
key = "multi_net/rsa_key.der"
14+
cert = cafile = "rsa_cert.der"
15+
key = "rsa_key.der"
1616

1717
try:
1818
os.stat(cafile)

tests/multi_net/asyncio_tls_server_client_verify_error.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
PORT = 8000
1212

1313
# These are test certificates. See tests/README.md for details.
14-
cert = cafile = "multi_net/rsa_cert.der"
15-
key = "multi_net/rsa_key.der"
14+
cert = cafile = "rsa_cert.der"
15+
key = "rsa_key.der"
1616

1717
try:
1818
os.stat(cafile)

tests/multi_net/ssl_cert_rsa.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
PORT = 8000
1111

1212
# These are test certificates. See tests/README.md for details.
13-
certfile = "multi_net/rsa_cert.der"
14-
keyfile = "multi_net/rsa_key.der"
13+
certfile = "rsa_cert.der"
14+
keyfile = "rsa_key.der"
1515

1616
try:
1717
os.stat(certfile)

tests/multi_net/sslcontext_check_hostname_error.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
PORT = 8000
1212

1313
# These are test certificates. See tests/README.md for details.
14-
cert = cafile = "multi_net/rsa_cert.der"
15-
key = "multi_net/rsa_key.der"
14+
cert = cafile = "rsa_cert.der"
15+
key = "rsa_key.der"
1616

1717
try:
1818
os.stat(cafile)

tests/multi_net/sslcontext_getpeercert.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
PORT = 8000
1313

1414
# These are test certificates. See tests/README.md for details.
15-
cert = cafile = "multi_net/rsa_cert.der"
16-
key = "multi_net/rsa_key.der"
15+
cert = cafile = "rsa_cert.der"
16+
key = "rsa_key.der"
1717

1818
try:
1919
os.stat(cafile)

tests/multi_net/sslcontext_server_client.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
PORT = 8000
1212

1313
# These are test certificates. See tests/README.md for details.
14-
certfile = "multi_net/rsa_cert.der"
15-
keyfile = "multi_net/rsa_key.der"
14+
certfile = "rsa_cert.der"
15+
keyfile = "rsa_key.der"
1616

1717
try:
1818
os.stat(certfile)

tests/multi_net/sslcontext_server_client_ciphers.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
PORT = 8000
1212

1313
# These are test certificates. See tests/README.md for details.
14-
cert = cafile = "multi_net/rsa_cert.der"
15-
key = "multi_net/rsa_key.der"
14+
cert = cafile = "rsa_cert.der"
15+
key = "rsa_key.der"
1616

1717
try:
1818
os.stat(cafile)

tests/multi_net/sslcontext_server_client_files.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
PORT = 8000
1212

1313
# These are test certificates. See tests/README.md for details.
14-
cert = cafile = "multi_net/rsa_cert.der"
15-
key = "multi_net/rsa_key.der"
14+
cert = cafile = "rsa_cert.der"
15+
key = "rsa_key.der"
1616

1717
try:
1818
os.stat(cafile)

tests/multi_net/sslcontext_verify_error.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
PORT = 8000
1212

1313
# These are test certificates. See tests/README.md for details.
14-
cert = cafile = "multi_net/rsa_cert.der"
15-
key = "multi_net/rsa_key.der"
14+
cert = cafile = "rsa_cert.der"
15+
key = "rsa_key.der"
1616

1717
try:
1818
os.stat(cafile)

tests/multi_net/sslcontext_verify_time_error.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
PORT = 8000
1212

1313
# These are test certificates. See tests/README.md for details.
14-
cert = cafile = "multi_net/expired_cert.der"
15-
key = "multi_net/rsa_key.der"
14+
cert = cafile = "expired_cert.der"
15+
key = "rsa_key.der"
1616

1717
try:
1818
os.stat(cafile)

tests/run-multitests.py

+12-6
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,15 @@
2727

2828
if os.name == "nt":
2929
CPYTHON3 = os.getenv("MICROPY_CPYTHON3", "python3.exe")
30-
MICROPYTHON = os.getenv(
31-
"MICROPY_MICROPYTHON", test_dir + "/../ports/windows/build-standard/micropython.exe"
30+
MICROPYTHON = os.path.abspath(
31+
os.getenv(
32+
"MICROPY_MICROPYTHON", test_dir + "/../ports/windows/build-standard/micropython.exe"
33+
)
3234
)
3335
else:
3436
CPYTHON3 = os.getenv("MICROPY_CPYTHON3", "python3")
35-
MICROPYTHON = os.getenv(
36-
"MICROPY_MICROPYTHON", test_dir + "/../ports/unix/build-standard/micropython"
37+
MICROPYTHON = os.path.abspath(
38+
os.getenv("MICROPY_MICROPYTHON", test_dir + "/../ports/unix/build-standard/micropython")
3739
)
3840

3941
# For diff'ing test output
@@ -155,6 +157,7 @@ def start_file(self, filename, prepend="", append=""):
155157
class PyInstanceSubProcess(PyInstance):
156158
def __init__(self, argv, env=None):
157159
self.argv = argv
160+
self.cwd = None
158161
self.env = {n: v for n, v in (i.split("=") for i in env)} if env else None
159162
self.popen = None
160163
self.finished = True
@@ -163,8 +166,9 @@ def __str__(self):
163166
return self.argv[0].rsplit("/")[-1]
164167

165168
def prepare_script_from_file(self, filename, prepend, append):
166-
# Make tests run in an isolated environment (i.e. `import io` would
167-
# otherwise get the `tests/io` directory).
169+
# Make tests run in the directory of the test file, and in an isolated environment
170+
# (i.e. `import io` would otherwise get the `tests/io` directory).
171+
self.cwd = os.path.dirname(filename)
168172
remove_cwd_from_sys_path = b"import sys\nsys.path.remove('')\n\n"
169173
return remove_cwd_from_sys_path + super().prepare_script_from_file(
170174
filename, prepend, append
@@ -179,6 +183,7 @@ def run_script(self, script):
179183
stdout=subprocess.PIPE,
180184
stderr=subprocess.STDOUT,
181185
input=script,
186+
cwd=self.cwd,
182187
env=self.env,
183188
)
184189
output = p.stdout
@@ -192,6 +197,7 @@ def start_script(self, script):
192197
stdin=subprocess.PIPE,
193198
stdout=subprocess.PIPE,
194199
stderr=subprocess.STDOUT,
200+
cwd=self.cwd,
195201
env=self.env,
196202
)
197203
self.finished = False

0 commit comments

Comments
 (0)