1#!/bin/bash 2set -e 3# 4# Copyright 2018 Google Inc. All rights reserved. 5# 6# Licensed under the Apache License, Version 2.0 (the "License"); 7# you may not use this file except in compliance with the License. 8# You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, software 13# distributed under the License is distributed on an "AS IS" BASIS, 14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15# See the License for the specific language governing permissions and 16# limitations under the License. 17 18if [[ "$1" == "mips-unknown-linux-gnu" ]]; then 19 TARGET_FLAG="--target mips-unknown-linux-gnu" 20 export CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_LINKER=mips-linux-gnu-gcc 21 export CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_RUNNER="qemu-mips -L /usr/mips-linux-gnu" 22fi 23 24 25function check_test_result() { 26 if [[ $? == 0 ]]; then 27 echo OK: $1 passed. 28 else 29 echo KO: $1 failed. 30 exit 1 31 fi 32} 33 34cd ./rust_serialize_test 35cargo run $TARGET_FLAG -- --quiet 36check_test_result "Rust serde tests" 37 38cd ../rust_no_std_compilation_test 39rustup install nightly 40rustup component add rust-src --toolchain nightly 41rustup target add thumbv7m-none-eabi 42cargo +nightly build 43check_test_result "Rust flatbuffers test no_std compilation" 44 45cd ../rust_usage_test 46cargo test $TARGET_FLAG -- --quiet 47check_test_result "Rust tests" 48 49cargo test $TARGET_FLAG --no-default-features -- --quiet 50check_test_result "Rust tests (no_std)" 51 52cargo run $TARGET_FLAG --bin=flatbuffers_alloc_check 53check_test_result "Rust flatbuffers heap alloc test" 54 55cargo run $TARGET_FLAG --bin=flexbuffers_alloc_check 56check_test_result "Rust flexbuffers heap alloc test" 57 58rustup component add clippy 59cargo clippy $TARGET_FLAG 60check_test_result "No Cargo clippy lints test" 61 62cargo bench $TARGET_FLAG 63 64# This test is dependent on flatc. 65if [[ -f ../../flatc ]]; then 66 cd outdir 67 cargo test 68 check_test_result "Rust generated file in \$OUT_DIR" 69 cd .. 70fi 71 72# RUST_NIGHTLY environment variable set in dockerfile. 73if [[ $RUST_NIGHTLY == 1 ]]; then 74 rustup +nightly component add miri 75 MIRIFLAGS="-Zmiri-disable-isolation" cargo +nightly miri test 76fi 77