forked from emk/rust-musl-builder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test-image
executable file
·60 lines (49 loc) · 1.68 KB
/
test-image
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
# Make bash fail much more aggressively on errors.
set -euo pipefail
# Make sure we can build our main container.
docker build -t ekidd/rust-musl-builder .
# Make sure we can build our example derived container.
docker build -t rust-musl-zlib examples/adding-a-library
# Make sure we can build a multi-stage container.
docker build -t rust-musl-builder-using-diesel examples/using-diesel
docker run --rm rust-musl-builder-using-diesel
echo "==== Verifying static linking"
# Make sure we can build a static executable.
docker run --rm ekidd/rust-musl-builder bash -c "
set -euo pipefail
export USER=rust
cargo new --vcs none --bin testme
cd testme
echo -e '--- Test case for x86_64:'
cargo build
echo 'ldd says:'
if ldd target/x86_64-unknown-linux-musl/debug/testme; then
echo '[FAIL] Executable is not static!' 1>&2
exit 1
fi
echo -e '[PASS] x86_64 binary is statically linked.\n'
echo -e '--- Test case for ARMhf:'
cargo build --target=armv7-unknown-linux-musleabihf
echo 'ldd says:'
if ldd target/armv7-unknown-linux-musleabihf/debug/testme; then
echo '[FAIL] Executable is not static!' 1>&2
exit 1
fi
echo -e '[PASS] ARMhf binary is statically linked.\n'
"
# Make sure we can build a static executable using `git2`.
docker build -t rust-musl-builder-linking-with-git2 examples/linking-with-git2
docker run --rm rust-musl-builder-linking-with-git2 bash -c "
set -euo pipefail
cd /home/rust/src
echo -e '--- Test case for libgit2:'
echo 'ldd says:'
if ldd target/x86_64-unknown-linux-musl/debug/linking-with-git2; then
echo '[FAIL] Executable is not static!' 1>&2
exit 1
fi
echo -e '[PASS] libgit2 binary is statically linked.\n'
"
# We're good.
echo 'OK. ALL TESTS PASSED.' 1>&2