2020-11-07 00:04:09 +00:00
|
|
|
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
|
|
|
|
root_dir=$(dirname "$0")
|
|
|
|
root_dir=$(cd "$root_dir/.." && pwd)
|
|
|
|
if [ ! -f "$root_dir/LICENSE.txt" ]; then
|
|
|
|
echo "Couldn't find the root dir"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
configuration=Release
|
2020-11-07 12:25:29 +00:00
|
|
|
set_rustflags=y
|
2021-02-14 19:19:46 +00:00
|
|
|
test_gen=y
|
|
|
|
test_instrs=y
|
|
|
|
test_build_no_std=y
|
|
|
|
test_features=y
|
|
|
|
test_current=y
|
|
|
|
test_msrv=y
|
2021-08-17 20:25:37 +00:00
|
|
|
test_code_asm=y
|
2021-10-13 17:20:41 +00:00
|
|
|
gen_cov=n
|
2021-10-12 21:13:32 +00:00
|
|
|
|
|
|
|
kcov=kcov
|
|
|
|
cov_out=$root_dir/cov-out
|
|
|
|
cov_out_rust=$cov_out/rust
|
|
|
|
cov_out_rust_tmp=$cov_out_rust/tmp
|
|
|
|
cov_out_rust_merged=$cov_out_rust/merged
|
2020-11-07 00:04:09 +00:00
|
|
|
|
|
|
|
# Minimum supported Rust version
|
2022-01-11 13:44:30 +00:00
|
|
|
msrv="1.54.0"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
new_func() {
|
2020-11-07 00:04:09 +00:00
|
|
|
echo
|
|
|
|
echo "****************************************************************"
|
|
|
|
echo "$1"
|
|
|
|
echo "****************************************************************"
|
|
|
|
echo
|
|
|
|
}
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
generator_check() {
|
2020-11-07 00:04:09 +00:00
|
|
|
new_func "Run generator, verify no diff"
|
|
|
|
|
2021-12-30 14:52:28 +00:00
|
|
|
dotnet run -c $configuration --project "$root_dir/src/csharp/Intel/Generator/Generator.csproj"
|
2020-11-07 00:04:09 +00:00
|
|
|
git diff --exit-code
|
|
|
|
}
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
test_valid_invalid_instructions() {
|
2020-11-07 00:04:09 +00:00
|
|
|
new_func "Decode valid and invalid instructions"
|
|
|
|
|
|
|
|
valid_file=$(mktemp)
|
|
|
|
invalid_file=$(mktemp)
|
|
|
|
|
2021-09-18 20:08:41 +00:00
|
|
|
# The C# code needs a formatter so add masm feature
|
|
|
|
dotnet build -c:$configuration -p:IcedFeatureFlags="DECODER ENCODER OPCODE_INFO INSTR_INFO MASM" "$root_dir/src/csharp/Intel/IcedFuzzer/IcedFuzzer/IcedFuzzer.csproj"
|
2021-10-13 17:20:41 +00:00
|
|
|
if [ "$gen_cov" = "y" ]; then
|
2021-10-12 21:13:32 +00:00
|
|
|
release_flag=
|
|
|
|
fzgt_output_dir=debug
|
|
|
|
else
|
|
|
|
release_flag="--release"
|
|
|
|
fzgt_output_dir=release
|
|
|
|
fi
|
|
|
|
cargo build --color always $release_flag --manifest-path "$root_dir/src/rust/iced-x86-fzgt/Cargo.toml"
|
|
|
|
fzgt_exe="$root_dir/src/rust/iced-x86-fzgt/target/$fzgt_output_dir/iced-x86-fzgt"
|
2020-11-07 00:04:09 +00:00
|
|
|
for bitness in 16 32 64; do
|
|
|
|
echo "==== ${bitness}-bit: Generating valid/invalid files ===="
|
2021-12-30 14:52:28 +00:00
|
|
|
dotnet run -c:$configuration --no-build --project "$root_dir/src/csharp/Intel/IcedFuzzer/IcedFuzzer/IcedFuzzer.csproj" -- -$bitness -oil "$invalid_file" -ovlc "$valid_file"
|
2020-11-07 00:04:09 +00:00
|
|
|
echo "==== ${bitness}-bit: Testing valid instructions ===="
|
2021-10-12 21:13:32 +00:00
|
|
|
cov_test "test_valid_$bitness" "$fzgt_exe" -b $bitness -f "$valid_file"
|
2020-11-07 00:04:09 +00:00
|
|
|
echo "==== ${bitness}-bit: Testing invalid instructions ===="
|
2021-10-12 21:13:32 +00:00
|
|
|
cov_test "test_invalid_$bitness" "$fzgt_exe" -b $bitness -f "$invalid_file" --invalid
|
2020-11-07 00:04:09 +00:00
|
|
|
done
|
|
|
|
|
|
|
|
for bitness in 16 32 64; do
|
|
|
|
echo "==== ${bitness}-bit (AMD): Generating valid/invalid files ===="
|
2021-12-30 14:52:28 +00:00
|
|
|
dotnet run -c:$configuration --no-build --project "$root_dir/src/csharp/Intel/IcedFuzzer/IcedFuzzer/IcedFuzzer.csproj" -- -$bitness -oil "$invalid_file" -ovlc "$valid_file" --amd
|
2020-11-07 00:04:09 +00:00
|
|
|
echo "==== ${bitness}-bit (AMD): Testing valid instructions ===="
|
2021-10-12 21:13:32 +00:00
|
|
|
cov_test "test_amd_valid_$bitness" "$fzgt_exe" -b $bitness -f "$valid_file" --amd
|
2020-11-07 00:04:09 +00:00
|
|
|
echo "==== ${bitness}-bit (AMD): Testing invalid instructions ===="
|
2021-10-12 21:13:32 +00:00
|
|
|
cov_test "test_amd_invalid_$bitness" "$fzgt_exe" -b $bitness -f "$invalid_file" --invalid --amd
|
2020-11-07 00:04:09 +00:00
|
|
|
done
|
|
|
|
|
|
|
|
rm "$valid_file"
|
|
|
|
rm "$invalid_file"
|
|
|
|
}
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
build_no_std() {
|
2020-11-07 00:04:09 +00:00
|
|
|
new_func "Build no_std"
|
2020-11-07 11:21:34 +00:00
|
|
|
curr_dir=$(pwd)
|
|
|
|
cd "$root_dir/src/rust/iced-x86"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
|
|
|
echo "==== BUILD DEBUG ===="
|
2021-09-14 20:43:57 +00:00
|
|
|
cargo check --color always --no-default-features --features "no_std decoder encoder block_encoder op_code_info instr_info gas intel masm nasm fast_fmt serde code_asm mvex"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
cd "$curr_dir"
|
2020-11-07 00:04:09 +00:00
|
|
|
}
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
build_features() {
|
2020-11-07 00:04:09 +00:00
|
|
|
new_func "Build one feature at a time"
|
2020-11-07 11:21:34 +00:00
|
|
|
curr_dir=$(pwd)
|
|
|
|
cd "$root_dir/src/rust/iced-x86"
|
|
|
|
|
|
|
|
set -- \
|
|
|
|
"std decoder" \
|
2021-09-14 20:43:57 +00:00
|
|
|
"std decoder mvex" \
|
2020-11-07 11:21:34 +00:00
|
|
|
"std encoder" \
|
|
|
|
"std encoder block_encoder" \
|
|
|
|
"std encoder op_code_info" \
|
|
|
|
"std instr_info" \
|
|
|
|
"std gas" \
|
|
|
|
"std intel" \
|
|
|
|
"std masm" \
|
|
|
|
"std nasm" \
|
2021-07-18 10:27:57 +00:00
|
|
|
"std fast_fmt" \
|
2021-08-07 16:39:01 +00:00
|
|
|
"std serde" \
|
|
|
|
"std code_asm"
|
2020-11-07 11:21:34 +00:00
|
|
|
for features in "$@"; do
|
2020-11-07 00:04:09 +00:00
|
|
|
echo "==== $features ===="
|
2020-11-09 01:48:55 +00:00
|
|
|
cargo check --color always --release --no-default-features --features "$features"
|
2020-11-07 00:04:09 +00:00
|
|
|
done
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
set -- \
|
|
|
|
"no_vex" \
|
|
|
|
"no_evex" \
|
|
|
|
"no_xop" \
|
|
|
|
"no_d3now" \
|
2020-11-07 00:04:09 +00:00
|
|
|
"no_vex no_evex no_xop no_d3now"
|
2020-11-07 11:21:34 +00:00
|
|
|
for features in "$@"; do
|
2020-11-07 00:04:09 +00:00
|
|
|
echo "==== $features ===="
|
2020-11-09 01:48:55 +00:00
|
|
|
cargo check --color always --release --features "$features"
|
2020-11-07 00:04:09 +00:00
|
|
|
done
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
set -- \
|
|
|
|
"no_std decoder" \
|
2021-09-14 20:43:57 +00:00
|
|
|
"no_std decoder mvex" \
|
2020-11-07 11:21:34 +00:00
|
|
|
"no_std encoder" \
|
|
|
|
"no_std encoder block_encoder" \
|
|
|
|
"no_std encoder op_code_info" \
|
|
|
|
"no_std instr_info" \
|
|
|
|
"no_std gas" \
|
|
|
|
"no_std intel" \
|
|
|
|
"no_std masm" \
|
|
|
|
"no_std nasm" \
|
2021-07-18 10:27:57 +00:00
|
|
|
"no_std fast_fmt" \
|
2021-08-07 16:39:01 +00:00
|
|
|
"no_std serde" \
|
|
|
|
"no_std code_asm"
|
2020-11-07 11:21:34 +00:00
|
|
|
for features in "$@"; do
|
2020-11-07 00:04:09 +00:00
|
|
|
echo "==== $features ===="
|
2020-11-09 01:48:55 +00:00
|
|
|
cargo check --color always --release --no-default-features --features "$features"
|
2020-11-07 00:04:09 +00:00
|
|
|
done
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
set -- \
|
|
|
|
"std decoder" \
|
2021-09-14 20:43:57 +00:00
|
|
|
"std decoder mvex" \
|
2020-11-07 11:21:34 +00:00
|
|
|
"std decoder encoder" \
|
|
|
|
"std decoder encoder block_encoder" \
|
|
|
|
"std decoder encoder op_code_info" \
|
|
|
|
"std decoder instr_info" \
|
|
|
|
"std decoder gas" \
|
|
|
|
"std decoder intel" \
|
|
|
|
"std decoder masm" \
|
|
|
|
"std decoder nasm" \
|
2021-07-18 10:27:57 +00:00
|
|
|
"std decoder fast_fmt" \
|
2021-08-07 16:39:01 +00:00
|
|
|
"std decoder serde" \
|
|
|
|
"std decoder code_asm"
|
2020-11-07 11:21:34 +00:00
|
|
|
for features in "$@"; do
|
2020-11-07 00:04:09 +00:00
|
|
|
echo "==== TEST $features ===="
|
2020-11-09 01:48:55 +00:00
|
|
|
cargo check --color always --release --tests --no-default-features --features "$features"
|
2020-11-07 00:04:09 +00:00
|
|
|
done
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
set -- \
|
|
|
|
"no_vex" \
|
|
|
|
"no_evex" \
|
|
|
|
"no_xop" \
|
|
|
|
"no_d3now" \
|
2020-11-07 00:04:09 +00:00
|
|
|
"no_vex no_evex no_xop no_d3now"
|
2020-11-07 11:21:34 +00:00
|
|
|
for features in "$@"; do
|
2020-11-07 00:04:09 +00:00
|
|
|
echo "==== TEST $features ===="
|
2020-11-09 01:48:55 +00:00
|
|
|
cargo check --color always --release --tests --features "$features"
|
2020-11-07 00:04:09 +00:00
|
|
|
done
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
cd "$curr_dir"
|
2020-11-07 00:04:09 +00:00
|
|
|
}
|
|
|
|
|
2021-10-12 21:13:32 +00:00
|
|
|
cov_test() {
|
|
|
|
cov_test_dir=$1
|
|
|
|
shift
|
2021-10-13 17:20:41 +00:00
|
|
|
if [ "$gen_cov" = "y" ]; then
|
|
|
|
# Don't include: tests, big generated files
|
|
|
|
"$kcov" --verify --exclude-pattern=/tests/,/test/,/test_utils/,fn_asm_impl.rs,fn_asm_pub.rs --include-pattern=/iced-x86/ "$cov_out_rust_tmp/$cov_test_dir" "$@"
|
2021-10-12 21:13:32 +00:00
|
|
|
else
|
|
|
|
"$@"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
cargo_test_cov() {
|
|
|
|
cov_test_dir=$1
|
|
|
|
shift
|
2021-10-13 17:20:41 +00:00
|
|
|
if [ "$gen_cov" = "y" ]; then
|
2021-10-12 21:13:32 +00:00
|
|
|
test_exe=$(cargo test --color always --no-run --message-format=json "$@" | grep -- '"name":"iced-x86"' | tail -1 | sed -e 's/.*"executable":"\([^"]\+\)".*/\1/')
|
|
|
|
if [ ! -x "$test_exe" ]; then
|
|
|
|
echo "Couldn't get the test executable name, got '$test_exe'"
|
|
|
|
echo "json output:"
|
|
|
|
cargo test --color always --no-run --message-format=json "$@"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
cov_test "$cov_test_dir" "$test_exe"
|
|
|
|
else
|
|
|
|
cargo test --color always "$@"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2021-02-14 19:19:46 +00:00
|
|
|
build_test_current_version() {
|
|
|
|
new_func "Build, test (current version)"
|
2020-11-07 11:21:34 +00:00
|
|
|
curr_dir=$(pwd)
|
|
|
|
cd "$root_dir/src/rust/iced-x86"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
|
|
|
echo "Rust version"
|
2020-11-07 12:25:29 +00:00
|
|
|
rustc --version
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2020-11-09 01:48:55 +00:00
|
|
|
echo "==== CLIPPY RELEASE --tests ===="
|
2021-09-14 20:43:57 +00:00
|
|
|
cargo clippy --color always --release --features "serde code_asm mvex" --tests
|
2020-11-07 00:04:09 +00:00
|
|
|
|
|
|
|
echo "==== FORMAT CHECK ===="
|
|
|
|
cargo fmt -- --color always --check
|
|
|
|
|
|
|
|
echo "==== DOC ===="
|
2021-09-14 20:43:57 +00:00
|
|
|
cargo doc --color always --features "serde code_asm mvex"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
|
|
|
echo "==== BUILD RELEASE ===="
|
2021-09-14 20:43:57 +00:00
|
|
|
cargo check --color always --release --features "serde code_asm mvex"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2021-12-30 15:49:08 +00:00
|
|
|
echo "==== TEST ===="
|
2021-08-19 14:41:35 +00:00
|
|
|
extra_args=""
|
|
|
|
if [ "$test_code_asm" != "y" ]; then
|
|
|
|
extra_args="-- --skip lib.rs"
|
|
|
|
fi
|
2021-12-30 14:51:13 +00:00
|
|
|
cargo test --color always --features "serde $test_code_asm_feat mvex" $extra_args
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2021-02-04 18:13:16 +00:00
|
|
|
# Make sure the two read-mem methods behave the same
|
2021-07-19 16:29:46 +00:00
|
|
|
# Also test serde code. It needs encoder to also test 'db x,y,z', see serde tests
|
|
|
|
echo "==== TEST DEBUG: std decoder encoder serde __internal_flip ===="
|
2021-10-12 21:13:32 +00:00
|
|
|
cargo_test_cov test_internal_flip --tests --no-default-features --features "std decoder encoder serde __internal_flip"
|
2021-02-04 18:13:16 +00:00
|
|
|
|
2020-11-07 00:04:09 +00:00
|
|
|
echo "==== TEST DEBUG ===="
|
2021-10-12 21:13:32 +00:00
|
|
|
cargo_test_cov test_debug --tests --features "serde $test_code_asm_feat mvex"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
|
|
|
echo "==== BUILD RELEASE wasm32-unknown-unknown ===="
|
2021-09-14 20:43:57 +00:00
|
|
|
cargo check --color always --target wasm32-unknown-unknown --release --features "serde code_asm mvex"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
|
|
|
echo "==== PUBLISH DRY-RUN ===="
|
|
|
|
# It fails on Windows (GitHub CI) without this, claiming that some random number of Rust files are dirty.
|
2020-11-07 11:21:34 +00:00
|
|
|
# Redirect to /dev/null so it won't hang (waiting for us to scroll) if it finds modified lines
|
|
|
|
git status > /dev/null
|
|
|
|
git diff > /dev/null
|
2021-09-14 20:43:57 +00:00
|
|
|
cargo publish --color always --features "serde code_asm mvex" --dry-run
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
cd "$curr_dir"
|
2020-11-07 00:04:09 +00:00
|
|
|
}
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
build_test_msrv() {
|
2020-11-07 00:04:09 +00:00
|
|
|
new_func "Build minimum supported Rust version: $msrv"
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
curr_dir=$(pwd)
|
|
|
|
cd "$root_dir/src/rust/iced-x86"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2021-02-14 19:19:46 +00:00
|
|
|
echo "*** If this fails, install Rust $msrv"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2021-08-17 20:25:37 +00:00
|
|
|
echo "==== BUILD DEBUG ===="
|
2021-09-14 20:43:57 +00:00
|
|
|
cargo +$msrv check --color always --features "serde code_asm mvex"
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2021-09-22 17:37:19 +00:00
|
|
|
echo "==== BUILD DEBUG default features ===="
|
|
|
|
# Build with default features since that's what most people probably use
|
|
|
|
cargo +$msrv check --color always
|
|
|
|
|
2021-08-17 20:25:37 +00:00
|
|
|
# We don't test it since we only guarantee that the crate can be built. Testing is for iced devs.
|
|
|
|
# We test it when using the latest rustc, but not rustc MSRV.
|
|
|
|
# This also speeds up CI since code_asm feature's tests take a very long time to compile.
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
cd "$curr_dir"
|
2020-11-07 00:04:09 +00:00
|
|
|
}
|
|
|
|
|
2021-02-14 19:19:46 +00:00
|
|
|
clear_test_vars() {
|
|
|
|
test_gen=n
|
|
|
|
test_instrs=n
|
|
|
|
test_build_no_std=n
|
|
|
|
test_features=n
|
|
|
|
test_current=n
|
|
|
|
test_msrv=n
|
|
|
|
}
|
|
|
|
|
2020-11-07 00:04:09 +00:00
|
|
|
while [ "$#" -gt 0 ]; do
|
|
|
|
case $1 in
|
2021-02-14 19:19:46 +00:00
|
|
|
--no-tests) clear_test_vars ;;
|
|
|
|
--quick-check)
|
|
|
|
clear_test_vars
|
|
|
|
test_current=y
|
2021-08-17 20:25:37 +00:00
|
|
|
test_code_asm=n
|
2021-02-14 19:19:46 +00:00
|
|
|
;;
|
|
|
|
--no-dotnet)
|
|
|
|
test_gen=n
|
|
|
|
test_instrs=n
|
|
|
|
;;
|
|
|
|
|
|
|
|
--no-gen) test_gen=n ;;
|
|
|
|
--no-instrs) test_instrs=n ;;
|
|
|
|
--no-no_std) test_build_no_std=n ;;
|
|
|
|
--no-features) test_features=n ;;
|
|
|
|
--no-current) test_current=n ;;
|
|
|
|
--no-msrv) test_msrv=n ;;
|
|
|
|
|
|
|
|
--test-gen) test_gen=y ;;
|
|
|
|
--test-instrs) test_instrs=y ;;
|
|
|
|
--test-no_std) test_build_no_std=y ;;
|
|
|
|
--test-features) test_features=y ;;
|
|
|
|
--test-current) test_current=y ;;
|
|
|
|
--test-msrv) test_msrv=y ;;
|
2021-10-13 17:20:41 +00:00
|
|
|
--coverage) gen_cov=y ;;
|
2021-02-14 19:19:46 +00:00
|
|
|
|
2020-11-07 12:25:29 +00:00
|
|
|
--no-set-rustflags) set_rustflags=n ;;
|
2020-11-07 00:04:09 +00:00
|
|
|
*) echo "Unknown arg: $1"; exit 1 ;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
2020-11-07 11:21:34 +00:00
|
|
|
echo
|
|
|
|
echo "=================================================="
|
|
|
|
echo "Rust build"
|
|
|
|
echo "=================================================="
|
|
|
|
echo
|
|
|
|
|
2020-11-07 12:25:29 +00:00
|
|
|
if [ "$set_rustflags" = "y" ]; then
|
|
|
|
export RUSTFLAGS="-D warnings"
|
|
|
|
fi
|
2020-11-07 11:21:34 +00:00
|
|
|
|
2020-11-28 00:32:59 +00:00
|
|
|
echo "rustup show"
|
|
|
|
rustup show
|
2020-11-07 00:04:09 +00:00
|
|
|
|
2021-10-13 17:20:41 +00:00
|
|
|
if [ "$gen_cov" = "y" ]; then
|
2021-10-12 21:13:32 +00:00
|
|
|
mkdir -p "$cov_out"
|
2021-10-13 17:20:41 +00:00
|
|
|
rm -rf "$cov_out_rust"
|
2021-10-12 21:13:32 +00:00
|
|
|
mkdir -p "$cov_out_rust_tmp"
|
2021-10-13 17:20:41 +00:00
|
|
|
"$kcov" --version
|
2021-10-12 21:13:32 +00:00
|
|
|
fi
|
|
|
|
|
2021-08-17 20:25:37 +00:00
|
|
|
if [ "$test_code_asm" = "y" ]; then
|
|
|
|
test_code_asm_feat="code_asm"
|
|
|
|
else
|
|
|
|
test_code_asm_feat=""
|
|
|
|
fi
|
|
|
|
|
2021-02-14 19:19:46 +00:00
|
|
|
if [ "$test_gen" = "y" ] || [ "$test_instrs" = "y" ]; then
|
|
|
|
echo "dotnet version (if this fails, install .NET or use --no-dotnet)"
|
|
|
|
dotnet --version
|
|
|
|
fi
|
2020-11-28 00:32:59 +00:00
|
|
|
|
2021-02-14 19:19:46 +00:00
|
|
|
if [ "$test_gen" = "y" ]; then
|
|
|
|
generator_check
|
|
|
|
fi
|
|
|
|
if [ "$test_instrs" = "y" ]; then
|
|
|
|
test_valid_invalid_instructions
|
|
|
|
fi
|
|
|
|
if [ "$test_build_no_std" = "y" ]; then
|
2020-11-28 00:32:59 +00:00
|
|
|
build_no_std
|
2021-02-14 19:19:46 +00:00
|
|
|
fi
|
|
|
|
if [ "$test_features" = "y" ]; then
|
2020-11-28 00:32:59 +00:00
|
|
|
build_features
|
2020-11-07 00:04:09 +00:00
|
|
|
fi
|
2021-02-14 19:19:46 +00:00
|
|
|
if [ "$test_current" = "y" ]; then
|
|
|
|
build_test_current_version
|
|
|
|
fi
|
|
|
|
if [ "$test_msrv" = "y" ]; then
|
2020-11-07 00:04:09 +00:00
|
|
|
build_test_msrv
|
|
|
|
fi
|
2021-10-12 21:13:32 +00:00
|
|
|
|
2021-10-13 17:20:41 +00:00
|
|
|
if [ "$gen_cov" = "y" ]; then
|
|
|
|
"$kcov" --merge "$cov_out_rust_merged" "$cov_out_rust_tmp/"*
|
2021-10-12 22:21:29 +00:00
|
|
|
fi
|