Skip to content

Commit 7c11b65

Browse files
committed
add test for exporter
1 parent c22d2d3 commit 7c11b65

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

tests/build/__init__.py

Whitespace-only changes.

tests/build/test_exporter.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import pathlib
2+
import shutil
3+
import subprocess
4+
import tempfile
5+
6+
from gardenlinux.build.exporter import export
7+
8+
arm64 = {'usr', 'usr/lib', 'usr/lib/aarch64-linux-gnu', 'usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1', 'usr/lib/aarch64-linux-gnu/libc.so.6', 'usr/lib/aarch64-linux-gnu/libpthread.so.0'}
9+
amd64 = {'usr', 'usr/lib', 'usr/lib/x86_64-linux-gnu', 'usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2', 'usr/lib/x86_64-linux-gnu/libc.so.6', 'usr/lib/x86_64-linux-gnu/libpthread.so.0'}
10+
11+
def test_requests_export():
12+
dpkg = shutil.which("dpkg")
13+
assert dpkg
14+
15+
out = subprocess.run([dpkg, "--print-architecture"], stdout=subprocess.PIPE)
16+
assert out.returncode == 0
17+
arch = out.stdout.decode().strip()
18+
19+
with tempfile.TemporaryDirectory() as target_dir:
20+
target_dir = pathlib.Path(target_dir)
21+
site_packages = target_dir.joinpath("site-packages")
22+
required_libs = target_dir.joinpath("required_libs")
23+
24+
site_packages.mkdir()
25+
required_libs.mkdir()
26+
27+
pip3 = shutil.which("pip3")
28+
assert pip3
29+
30+
out = subprocess.run([pip3, "install", "--target", site_packages, "requests"])
31+
32+
assert out.returncode == 0
33+
34+
export(required_libs, site_packages)
35+
36+
exported = set()
37+
38+
for path in required_libs.rglob("*"):
39+
exported.add(str(path.relative_to(required_libs)))
40+
41+
if arch == "arm64":
42+
expected = arm64
43+
elif arch == "amd64":
44+
expected = amd64
45+
else:
46+
raise NotImplementedError(f"Architecture {arch} not supported")
47+
48+
assert exported == expected

0 commit comments

Comments
 (0)