| #!/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 |