Skip to content

Commit be88a31

Browse files
committed
simplify CI more, exclude tests of compiler-builtins
1 parent b1fdf6b commit be88a31

File tree

1 file changed

+145
-145
lines changed

1 file changed

+145
-145
lines changed

ci/run.sh

Lines changed: 145 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -25,152 +25,152 @@ if [ "${USING_CONTAINER_RUSTC:-}" = 1 ]; then
2525
rustup target add "$target"
2626
fi
2727

28-
# Test our implementation
29-
if [ "${BUILD_ONLY:-}" = "1" ]; then
30-
echo "no tests to run for build-only targets"
31-
else
32-
test_builtins=(cargo test --package builtins-test --no-fail-fast --target "$target")
33-
"${test_builtins[@]}"
34-
"${test_builtins[@]}" --release
35-
"${test_builtins[@]}" --features c
36-
"${test_builtins[@]}" --features c --release
37-
"${test_builtins[@]}" --features no-asm
38-
"${test_builtins[@]}" --features no-asm --release
39-
"${test_builtins[@]}" --features no-f16-f128
40-
"${test_builtins[@]}" --features no-f16-f128 --release
41-
"${test_builtins[@]}" --benches
42-
"${test_builtins[@]}" --benches --release
43-
44-
if [ "${TEST_VERBATIM:-}" = "1" ]; then
45-
verb_path=$(cmd.exe //C echo \\\\?\\%cd%\\builtins-test\\target2)
46-
"${test_builtins[@]}" --target-dir "$verb_path" --features c
47-
fi
48-
fi
49-
50-
51-
declare -a rlib_paths
52-
53-
# Set the `rlib_paths` global array to a list of all compiler-builtins rlibs
54-
update_rlib_paths() {
55-
if [ -d /builtins-target ]; then
56-
rlib_paths=( /builtins-target/"${target}"/debug/deps/libcompiler_builtins-*.rlib )
57-
else
58-
rlib_paths=( target/"${target}"/debug/deps/libcompiler_builtins-*.rlib )
59-
fi
60-
}
61-
62-
# Remove any existing artifacts from previous tests that don't set #![compiler_builtins]
63-
update_rlib_paths
64-
rm -f "${rlib_paths[@]}"
65-
66-
cargo build -p compiler_builtins --target "$target"
67-
cargo build -p compiler_builtins --target "$target" --release
68-
cargo build -p compiler_builtins --target "$target" --features c
69-
cargo build -p compiler_builtins --target "$target" --features c --release
70-
cargo build -p compiler_builtins --target "$target" --features no-asm
71-
cargo build -p compiler_builtins --target "$target" --features no-asm --release
72-
cargo build -p compiler_builtins --target "$target" --features no-f16-f128
73-
cargo build -p compiler_builtins --target "$target" --features no-f16-f128 --release
74-
75-
PREFIX=${target//unknown-/}-
76-
case "$target" in
77-
armv7-*)
78-
PREFIX=arm-linux-gnueabihf-
79-
;;
80-
thumb*)
81-
PREFIX=arm-none-eabi-
82-
;;
83-
*86*-*)
84-
PREFIX=
85-
;;
86-
esac
87-
88-
NM=$(find "$(rustc --print sysroot)" \( -name llvm-nm -o -name llvm-nm.exe \) )
89-
if [ "$NM" = "" ]; then
90-
NM="${PREFIX}nm"
91-
fi
92-
93-
# i686-pc-windows-gnu tools have a dependency on some DLLs, so run it with
94-
# rustup run to ensure that those are in PATH.
95-
TOOLCHAIN="$(rustup show active-toolchain | sed 's/ (default)//')"
96-
if [[ "$TOOLCHAIN" == *i686-pc-windows-gnu ]]; then
97-
NM="rustup run $TOOLCHAIN $NM"
98-
fi
99-
100-
# Look out for duplicated symbols when we include the compiler-rt (C) implementation
101-
update_rlib_paths
102-
for rlib in "${rlib_paths[@]}"; do
103-
set +x
104-
echo "================================================================"
105-
echo "checking $rlib for duplicate symbols"
106-
echo "================================================================"
107-
set -x
28+
# # Test our implementation
29+
# if [ "${BUILD_ONLY:-}" = "1" ]; then
30+
# echo "no tests to run for build-only targets"
31+
# else
32+
# test_builtins=(cargo test --package builtins-test --no-fail-fast --target "$target")
33+
# "${test_builtins[@]}"
34+
# "${test_builtins[@]}" --release
35+
# "${test_builtins[@]}" --features c
36+
# "${test_builtins[@]}" --features c --release
37+
# "${test_builtins[@]}" --features no-asm
38+
# "${test_builtins[@]}" --features no-asm --release
39+
# "${test_builtins[@]}" --features no-f16-f128
40+
# "${test_builtins[@]}" --features no-f16-f128 --release
41+
# "${test_builtins[@]}" --benches
42+
# "${test_builtins[@]}" --benches --release
43+
44+
# if [ "${TEST_VERBATIM:-}" = "1" ]; then
45+
# verb_path=$(cmd.exe //C echo \\\\?\\%cd%\\builtins-test\\target2)
46+
# "${test_builtins[@]}" --target-dir "$verb_path" --features c
47+
# fi
48+
# fi
49+
50+
51+
# declare -a rlib_paths
52+
53+
# # Set the `rlib_paths` global array to a list of all compiler-builtins rlibs
54+
# update_rlib_paths() {
55+
# if [ -d /builtins-target ]; then
56+
# rlib_paths=( /builtins-target/"${target}"/debug/deps/libcompiler_builtins-*.rlib )
57+
# else
58+
# rlib_paths=( target/"${target}"/debug/deps/libcompiler_builtins-*.rlib )
59+
# fi
60+
# }
61+
62+
# # Remove any existing artifacts from previous tests that don't set #![compiler_builtins]
63+
# update_rlib_paths
64+
# rm -f "${rlib_paths[@]}"
65+
66+
# cargo build -p compiler_builtins --target "$target"
67+
# cargo build -p compiler_builtins --target "$target" --release
68+
# cargo build -p compiler_builtins --target "$target" --features c
69+
# cargo build -p compiler_builtins --target "$target" --features c --release
70+
# cargo build -p compiler_builtins --target "$target" --features no-asm
71+
# cargo build -p compiler_builtins --target "$target" --features no-asm --release
72+
# cargo build -p compiler_builtins --target "$target" --features no-f16-f128
73+
# cargo build -p compiler_builtins --target "$target" --features no-f16-f128 --release
74+
75+
# PREFIX=${target//unknown-/}-
76+
# case "$target" in
77+
# armv7-*)
78+
# PREFIX=arm-linux-gnueabihf-
79+
# ;;
80+
# thumb*)
81+
# PREFIX=arm-none-eabi-
82+
# ;;
83+
# *86*-*)
84+
# PREFIX=
85+
# ;;
86+
# esac
87+
88+
# NM=$(find "$(rustc --print sysroot)" \( -name llvm-nm -o -name llvm-nm.exe \) )
89+
# if [ "$NM" = "" ]; then
90+
# NM="${PREFIX}nm"
91+
# fi
92+
93+
# # i686-pc-windows-gnu tools have a dependency on some DLLs, so run it with
94+
# # rustup run to ensure that those are in PATH.
95+
# TOOLCHAIN="$(rustup show active-toolchain | sed 's/ (default)//')"
96+
# if [[ "$TOOLCHAIN" == *i686-pc-windows-gnu ]]; then
97+
# NM="rustup run $TOOLCHAIN $NM"
98+
# fi
99+
100+
# # Look out for duplicated symbols when we include the compiler-rt (C) implementation
101+
# update_rlib_paths
102+
# for rlib in "${rlib_paths[@]}"; do
103+
# set +x
104+
# echo "================================================================"
105+
# echo "checking $rlib for duplicate symbols"
106+
# echo "================================================================"
107+
# set -x
108108

109-
duplicates_found=0
110-
111-
# NOTE On i586, It's normal that the get_pc_thunk symbol appears several
112-
# times so ignore it
113-
$NM -g --defined-only "$rlib" 2>&1 |
114-
sort |
115-
uniq -d |
116-
grep -v __x86.get_pc_thunk --quiet |
117-
grep 'T __' && duplicates_found=1
118-
119-
if [ "$duplicates_found" != 0 ]; then
120-
echo "error: found duplicate symbols"
121-
exit 1
122-
else
123-
echo "success; no duplicate symbols found"
124-
fi
125-
done
126-
127-
rm -f "${rlib_paths[@]}"
128-
129-
build_intrinsics_test() {
130-
cargo build \
131-
--target "$target" --verbose \
132-
--manifest-path builtins-test-intrinsics/Cargo.toml "$@"
133-
}
134-
135-
# Verify that we haven't dropped any intrinsics/symbols
136-
build_intrinsics_test
137-
build_intrinsics_test --release
138-
build_intrinsics_test --features c
139-
build_intrinsics_test --features c --release
140-
141-
# Verify that there are no undefined symbols to `panic` within our
142-
# implementations
143-
CARGO_PROFILE_DEV_LTO=true build_intrinsics_test
144-
CARGO_PROFILE_RELEASE_LTO=true build_intrinsics_test --release
145-
146-
# Ensure no references to any symbols from core
147-
update_rlib_paths
148-
for rlib in "${rlib_paths[@]}"; do
149-
set +x
150-
echo "================================================================"
151-
echo "checking $rlib for references to core"
152-
echo "================================================================"
153-
set -x
154-
155-
tmpdir="${CARGO_TARGET_DIR:-target}/tmp"
156-
test -d "$tmpdir" || mkdir "$tmpdir"
157-
defined="$tmpdir/defined_symbols.txt"
158-
undefined="$tmpdir/defined_symbols.txt"
159-
160-
$NM --quiet -U "$rlib" | grep 'T _ZN4core' | awk '{print $3}' | sort | uniq > "$defined"
161-
$NM --quiet -u "$rlib" | grep 'U _ZN4core' | awk '{print $2}' | sort | uniq > "$undefined"
162-
grep_has_results=0
163-
grep -v -F -x -f "$defined" "$undefined" && grep_has_results=1
164-
165-
if [ "$target" = "powerpc64-unknown-linux-gnu" ]; then
166-
echo "FIXME: powerpc64 fails these tests"
167-
elif [ "$grep_has_results" != 0 ]; then
168-
echo "error: found unexpected references to core"
169-
exit 1
170-
else
171-
echo "success; no references to core found"
172-
fi
173-
done
109+
# duplicates_found=0
110+
111+
# # NOTE On i586, It's normal that the get_pc_thunk symbol appears several
112+
# # times so ignore it
113+
# $NM -g --defined-only "$rlib" 2>&1 |
114+
# sort |
115+
# uniq -d |
116+
# grep -v __x86.get_pc_thunk --quiet |
117+
# grep 'T __' && duplicates_found=1
118+
119+
# if [ "$duplicates_found" != 0 ]; then
120+
# echo "error: found duplicate symbols"
121+
# exit 1
122+
# else
123+
# echo "success; no duplicate symbols found"
124+
# fi
125+
# done
126+
127+
# rm -f "${rlib_paths[@]}"
128+
129+
# build_intrinsics_test() {
130+
# cargo build \
131+
# --target "$target" --verbose \
132+
# --manifest-path builtins-test-intrinsics/Cargo.toml "$@"
133+
# }
134+
135+
# # Verify that we haven't dropped any intrinsics/symbols
136+
# build_intrinsics_test
137+
# build_intrinsics_test --release
138+
# build_intrinsics_test --features c
139+
# build_intrinsics_test --features c --release
140+
141+
# # Verify that there are no undefined symbols to `panic` within our
142+
# # implementations
143+
# CARGO_PROFILE_DEV_LTO=true build_intrinsics_test
144+
# CARGO_PROFILE_RELEASE_LTO=true build_intrinsics_test --release
145+
146+
# # Ensure no references to any symbols from core
147+
# update_rlib_paths
148+
# for rlib in "${rlib_paths[@]}"; do
149+
# set +x
150+
# echo "================================================================"
151+
# echo "checking $rlib for references to core"
152+
# echo "================================================================"
153+
# set -x
154+
155+
# tmpdir="${CARGO_TARGET_DIR:-target}/tmp"
156+
# test -d "$tmpdir" || mkdir "$tmpdir"
157+
# defined="$tmpdir/defined_symbols.txt"
158+
# undefined="$tmpdir/defined_symbols.txt"
159+
160+
# $NM --quiet -U "$rlib" | grep 'T _ZN4core' | awk '{print $3}' | sort | uniq > "$defined"
161+
# $NM --quiet -u "$rlib" | grep 'U _ZN4core' | awk '{print $2}' | sort | uniq > "$undefined"
162+
# grep_has_results=0
163+
# grep -v -F -x -f "$defined" "$undefined" && grep_has_results=1
164+
165+
# if [ "$target" = "powerpc64-unknown-linux-gnu" ]; then
166+
# echo "FIXME: powerpc64 fails these tests"
167+
# elif [ "$grep_has_results" != 0 ]; then
168+
# echo "error: found unexpected references to core"
169+
# exit 1
170+
# else
171+
# echo "success; no references to core found"
172+
# fi
173+
# done
174174

175175
# Test libm
176176

0 commit comments

Comments
 (0)