77 lines
2.2 KiB
Bash
Executable File
77 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
#
|
|
# Copyright 2018 Google Inc. All rights reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
if [[ "$1" == "mips-unknown-linux-gnu" ]]; then
|
|
TARGET_FLAG="--target mips-unknown-linux-gnu"
|
|
export CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_LINKER=mips-linux-gnu-gcc
|
|
export CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_RUNNER="qemu-mips -L /usr/mips-linux-gnu"
|
|
fi
|
|
|
|
|
|
function check_test_result() {
|
|
if [[ $? == 0 ]]; then
|
|
echo OK: $1 passed.
|
|
else
|
|
echo KO: $1 failed.
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
cd ./rust_serialize_test
|
|
cargo run $TARGET_FLAG -- --quiet
|
|
check_test_result "Rust serde tests"
|
|
|
|
cd ../rust_no_std_compilation_test
|
|
rustup install nightly
|
|
rustup component add rust-src --toolchain nightly
|
|
rustup target add thumbv7m-none-eabi
|
|
cargo +nightly build
|
|
check_test_result "Rust flatbuffers test no_std compilation"
|
|
|
|
cd ../rust_usage_test
|
|
cargo test $TARGET_FLAG -- --quiet
|
|
check_test_result "Rust tests"
|
|
|
|
cargo test $TARGET_FLAG --no-default-features -- --quiet
|
|
check_test_result "Rust tests (no_std)"
|
|
|
|
cargo run $TARGET_FLAG --bin=flatbuffers_alloc_check
|
|
check_test_result "Rust flatbuffers heap alloc test"
|
|
|
|
cargo run $TARGET_FLAG --bin=flexbuffers_alloc_check
|
|
check_test_result "Rust flexbuffers heap alloc test"
|
|
|
|
rustup component add clippy
|
|
cargo clippy $TARGET_FLAG
|
|
check_test_result "No Cargo clippy lints test"
|
|
|
|
cargo bench $TARGET_FLAG
|
|
|
|
# This test is dependent on flatc.
|
|
if [[ -f ../../flatc ]]; then
|
|
cd outdir
|
|
cargo test
|
|
check_test_result "Rust generated file in \$OUT_DIR"
|
|
cd ..
|
|
fi
|
|
|
|
# RUST_NIGHTLY environment variable set in dockerfile.
|
|
if [[ $RUST_NIGHTLY == 1 ]]; then
|
|
rustup +nightly component add miri
|
|
MIRIFLAGS="-Zmiri-disable-isolation" cargo +nightly miri test
|
|
fi
|